This commit is contained in:
zztkm 2022-09-22 09:47:20 +09:00
parent f475ea8b09
commit 9640f9cc96
6 changed files with 64 additions and 6 deletions

View file

@ -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

View file

@ -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
View file

@ -0,0 +1,3 @@
# Example project
This is vss example project.

View file

@ -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
View 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 {
}

View 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']
}