8 个版本
0.3.2 | 2024 年 6 月 5 日 |
---|---|
0.3.1 | 2024 年 6 月 5 日 |
0.2.2 | 2024 年 6 月 3 日 |
0.2.1 | 2024 年 5 月 14 日 |
0.1.1 | 2024 年 5 月 13 日 |
#107 in 模板引擎
每月 26 次下载
26KB
465 行
Sigen
Sigen 是一个简单的静态网站生成器,允许完全控制生成的结果。一切都是围绕使用 Handlebars 模板文件来生成输出。
用法
Usage: sigen [OPTIONS]
Options:
-i, --input <INPUT> source folder location [default: ./]
-o, --output <OUTPUT> output folder location [default: ./output]
-w, --watch Watch files and regenerate on change
-h, --help Print help
-V, --version Print version
此生成器使用以下文件夹结构
example/
├── data/
│ └── file.yaml
├── markdown/
│ ├── test.md
│ └── test2.md
├── static/
│ └── style.css
└── templates/
├── base.part
├── index.hbs
└── markdown.hbs
它将生成以下输出
output/
├── content/
│ ├── test.html
│ └── test2.html
├── index.html
├── markdown.html
└── static/
└── style.css
data
在 data 文件夹中,您可以放置 yaml
文件,其中包含将传递给模板的数据。这些文件将被解析并添加到以文件名为标识符的 user_data
对象中。要使用文件 example
中的数据,您将使用 {{user_data.example.xxx}}
。
markdown
此文件夹中的所有 markdown 文件 (.md
) 都将被渲染为 html 并放置在 output/content/
。Sigen 支持 markdown 文件中的 yaml 元数据字段。使用元数据可以影响生成的输出。您可以自由添加任何字段,这些数据将作为变量 content
传递给渲染器。有一些字段会直接影响渲染器
renderer
:当 markdown html 生成时,输出将使用配置的渲染文件渲染,该文件位于templates
文件夹中。datetime
:当提供时,作为 iso8601 格式的字符串,markdown 文件将根据此日期排序。没有此字段的 markdown 文件将获取当前 UTC 的时间戳。
如果 Markdown 文件包含元数据字段 renderer
,则 Markdown 文件将使用指定的渲染模板进行解析。Markdown 渲染器生成的 HTML 输出将作为变量 content
传递到模板中。所有其他 Markdown 元数据字段将存储在数据对象中,并传递给模板渲染器。
静态
此文件夹将递归地复制到输出文件夹。
模板
所有模板文件都使用 handlebars 渲染,扩展名为 .part
的文件将注册为部分。所有 hbs
文件将渲染为 HTML,并可以访问部分和 Markdown 文件信息。部分将使用与它们的文件名相同的名称,不包含扩展名。
所有模板都将传递以下 JSON
{
"markdown_files":[
{
"name":"",
"datetime": "",
"data": {}
}
...
],
"user_data": {},
"git": {
"branch":"",
"rev_short":"",
"rev":""
}
}
辅助函数
扩展 handlebars 渲染器的辅助函数。
(format_datetime <datatime> <format>)
:格式化日期时间字符串。请查看 此处 了解格式化选项。- 所有 handlebars 库辅助函数
依赖项
~13–27MB
~383K SLoC