✨ support config ignore files
This commit is contained in:
parent
9640f9cc96
commit
3f4688f363
4 changed files with 28 additions and 25 deletions
|
@ -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
|
||||
|
@ -16,7 +20,7 @@ pub mut:
|
|||
base_url string
|
||||
}
|
||||
|
||||
// load
|
||||
// load
|
||||
pub fn load(toml_text string) ?Config {
|
||||
doc := toml.parse_text(toml_text)?
|
||||
|
||||
|
@ -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…
Add table
Reference in a new issue