🚧 wip
This commit is contained in:
parent
f475ea8b09
commit
9640f9cc96
6 changed files with 64 additions and 6 deletions
|
@ -41,8 +41,9 @@ tasks:
|
||||||
desc: Format .v files
|
desc: Format .v files
|
||||||
cmds:
|
cmds:
|
||||||
- v fmt -w *.v
|
- v fmt -w *.v
|
||||||
- v fmt -w commands/*.v
|
- v fmt -w commands
|
||||||
- v fmt -w template/*.v
|
- v fmt -w internal/template
|
||||||
|
- v fmt -w internal/config/
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
desc: Clean test files
|
desc: Clean test files
|
||||||
|
|
|
@ -7,12 +7,12 @@ import time
|
||||||
import toml
|
import toml
|
||||||
import regex
|
import regex
|
||||||
import markdown
|
import markdown
|
||||||
import template
|
import internal.template
|
||||||
|
|
||||||
const default_config = 'config.toml'
|
const default_config = 'config.toml'
|
||||||
|
|
||||||
// Allowed parameters
|
// Allowed parameters
|
||||||
const config_params = ['title', 'description', 'baseUrl']
|
const config_params = ['title', 'description', 'baseUrl', 'build']
|
||||||
|
|
||||||
const default_template = 'layouts/index.html'
|
const default_template = 'layouts/index.html'
|
||||||
|
|
||||||
|
|
3
example/README.md
Normal file
3
example/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Example project
|
||||||
|
|
||||||
|
This is vss example project.
|
|
@ -1,6 +1,6 @@
|
||||||
title = "Open Sea"
|
title = "Open Sea"
|
||||||
description = "Takumi Tsuruta's home page"
|
description = "Takumi Tsuruta's home page"
|
||||||
# baseUrl = 'https://zztkm.github.io/vss/'
|
# base_url = 'https://zztkm.github.io/vss/'
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
ignoreFiles = ["ignore.md", "README.md"]
|
ignore_files = ["ignore.md", "README.md"]
|
32
internal/config/config.v
Normal file
32
internal/config/config.v
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
module config
|
||||||
|
|
||||||
|
import toml
|
||||||
|
|
||||||
|
// Build settings for build
|
||||||
|
struct Build {
|
||||||
|
pub mut:
|
||||||
|
ignore_files []string
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Config {
|
||||||
|
pub mut:
|
||||||
|
build Build
|
||||||
|
title string
|
||||||
|
description string
|
||||||
|
base_url string
|
||||||
|
}
|
||||||
|
|
||||||
|
// load
|
||||||
|
pub fn load(toml_text string) ?Config {
|
||||||
|
doc := toml.parse_text(toml_text)?
|
||||||
|
|
||||||
|
mut config := doc.reflect<Config>()
|
||||||
|
config.build = doc.value('build').reflect<Build>()
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
||||||
|
// as_map for template.parse
|
||||||
|
pub fn (c Config) as_map() ?map[string]string {
|
||||||
|
|
||||||
|
}
|
22
internal/config/config_test.v
Normal file
22
internal/config/config_test.v
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
module config
|
||||||
|
|
||||||
|
const toml_text = '# for test
|
||||||
|
title = "test site"
|
||||||
|
description = "test page"
|
||||||
|
base_url = "https://vss.github.io/vss/"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
ignore_files = ["ignore.md", "README.md"]
|
||||||
|
'
|
||||||
|
|
||||||
|
fn test_load() {
|
||||||
|
config := load(config.toml_text) or {
|
||||||
|
eprintln(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
assert config.title == 'test site'
|
||||||
|
assert config.description == 'test page'
|
||||||
|
assert config.base_url == 'https://vss.github.io/vss/'
|
||||||
|
assert config.build.ignore_files == ['ignore.md', 'README.md']
|
||||||
|
}
|
Loading…
Reference in a new issue