support config ignore files

main
zztkm 2 years ago
parent 9640f9cc96
commit 3f4688f363

@ -30,7 +30,7 @@ tasks:
test:
desc: Run test
cmds:
- v test commands/
- v test .
vet:
desc: Report suspicious code constructs
@ -62,6 +62,11 @@ tasks:
cmds:
- v . -o {{.TARGET}}
prod-build:
desc: Build vss for production
cmds:
- v -prod . -o {{.TARGET}}
example:
desc: Setup for example
cmds:

@ -4,16 +4,13 @@ import os
import cli
import log
import time
import toml
import regex
import markdown
import internal.template
import internal.config
const default_config = 'config.toml'
// Allowed parameters
const config_params = ['title', 'description', 'baseUrl', 'build']
const default_template = 'layouts/index.html'
const defautl_static = 'static'
@ -43,19 +40,6 @@ fn read_file(filename string) ?string {
return contents
}
fn get_config_map() ?map[string]string {
mut config_map := map[string]string{}
// https://modules.vlang.io/toml.html
toml_str := read_file(commands.default_config)?
config := toml.parse_text(toml_str)?
for param in commands.config_params {
v := config.value_opt(param) or { continue }
config_map[param] = v.string()
}
return config_map
}
fn get_html_path(md_path string) string {
mut file_name := os.file_name(md_path)
file_name = file_name.replace('.md', '.html')
@ -112,11 +96,19 @@ fn build(mut logger log.Log) ? {
}
template_content := os.read_file(commands.default_template)?
mut config_map := get_config_map()?
toml_text := read_file(commands.default_config)?
config := config.load(toml_text)?
mut config_map := config.as_map()
md_paths := normalise_paths(os.walk_ext('.', '.md'))
logger.info('start md to html')
for path in md_paths {
file_name := os.file_name(path)
if file_name in config.build.ignore_files {
logger.info('$file_name is included in ignore_files, skip build')
continue
}
mut md := os.read_file(path)?
md = pre_proc_md_to_html(md)?
contents := markdown.to_html(md)

@ -1,7 +1,5 @@
module commands
import os
fn test_get_html_filename() {
test_path := 'index.md'
mut html_name := get_html_path(test_path)

@ -2,12 +2,16 @@ module config
import toml
// template_params list of field names to convert as_map
const template_params = ['title', 'description', 'base_url']
// Build settings for build
struct Build {
pub mut:
ignore_files []string
}
// Config general settings for vss
struct Config {
pub mut:
build Build
@ -27,6 +31,10 @@ pub fn load(toml_text string) ?Config {
}
// as_map for template.parse
pub fn (c Config) as_map() ?map[string]string {
pub fn (c Config) as_map() map[string]string {
mut mp := map[string]string{}
mp['title'] = c.title
mp['description'] = c.description
mp['base_url'] = c.base_url
return mp
}
Loading…
Cancel
Save