🚧 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
|
||||
cmds:
|
||||
- v fmt -w *.v
|
||||
- v fmt -w commands/*.v
|
||||
- v fmt -w template/*.v
|
||||
- v fmt -w commands
|
||||
- v fmt -w internal/template
|
||||
- v fmt -w internal/config/
|
||||
|
||||
clean:
|
||||
desc: Clean test files
|
||||
|
|
|
@ -7,12 +7,12 @@ import time
|
|||
import toml
|
||||
import regex
|
||||
import markdown
|
||||
import template
|
||||
import internal.template
|
||||
|
||||
const default_config = 'config.toml'
|
||||
|
||||
// Allowed parameters
|
||||
const config_params = ['title', 'description', 'baseUrl']
|
||||
const config_params = ['title', 'description', 'baseUrl', 'build']
|
||||
|
||||
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"
|
||||
description = "Takumi Tsuruta's home page"
|
||||
# baseUrl = 'https://zztkm.github.io/vss/'
|
||||
# base_url = 'https://zztkm.github.io/vss/'
|
||||
|
||||
[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