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 次下载

ISC 许可证

26KB
465

Sigen   builds.sr.ht 状态

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