15 个版本 (7 个重大更新)
0.8.0 | 2024年8月2日 |
---|---|
0.6.0 | 2024年3月31日 |
0.5.0 | 2023年11月7日 |
0.4.0 | 2021年11月30日 |
0.1.1 | 2018年12月16日 |
#31 在 模板引擎
每月246次下载
38KB
902 行
Site
Site 是一个快速、简单、有见地的静态网站生成器,使用 Rust 编写。主要特点包括
- 使用 Markdown 格式编写内容。Site 使用 pulldown_cmark 作为具有扩展功能的 Markdown 解析器。
- 使用 Jinja2 作为模板语言。Site 使用 tera 模板引擎。
- 非常简单。速度极快。并行构建文章。
- 受 Pelican 启发,Pelican 是一个用 Python 编写的静态网站生成器。Site 具有类似的 文章 和 页面 概念。
- 设计上不灵活且有见地。Site 实现了作者构建简单静态网站所需的功能,如 https://hayatoito.github.io/。如果您想进行自定义,我建议fork Site 本身。Site 故意保持非常小巧,以便您能够轻松理解代码库并进行自定义。
安装
cargo install site
用法
尚无文档。
同时,作为一个活文档,请使用 hayatoito/hayatoito.github.io 作为您的起始模板。 https://hayatoito.github.io/ 是从该仓库构建的。
文件夹结构
root_dir/
- src/
- (Put your markdown files here)
- template/
- (Put your template files here)
-
src/
是存放所有 Markdown 文件的文件夹。它们使用 Jinja2 模板转换为 HTML 文件,并复制到输出目录。src
目录中的任何其他资源也会复制到输出目录。 -
template/
是存放 Jinja2 模板文件的文件夹。
Markdown 格式
Site
使用 Markdown。
# Article title
<!--
date = "2021-12-01"
-->
# Section
Hello Article!
- hello
- world
没有特别之处,除了
- 第一个部分被视为文章的标题。
- 元数据,例如
date
,随后。
元数据
待完成:解释
名称 | 描述 | 默认值 |
---|---|---|
page |
false | |
date |
(date 是必填项,除非 page: true ) |
|
update_date |
NA | |
author |
NA | |
slug |
页面的 URL | 通过相对于 src 的相对路径计算 |
toc |
是否生成目录 | false |
toc_level |
NA (任意深度) | |
draft |
跳过此 markdown | false |
template |
在 template 文件夹中使用的模板文件 |
article 或 page |
页面
如果 markdown 的元数据包含 page: true
,站点 会认为该 markdown 表示一个 页面,而不是一个 文章。
# Page title
<!--
page = true
-->
# Section
Hello Page!
- hello
- world
文章 和 页面 的区别是
- 一个 页面 不会被包含在
articles
模板变量中。也不在articles_by_year
中。 - 一个 页面 不必包含
date
元数据。
模板变量
待完成:解释
名称 | page | article | 描述 |
---|---|---|---|
entry |
x | x | 代表一个文章或页面(其元数据和内容) |
site |
x | x | 通过 --config 参数提供的站点配置 |
articles |
x | 文章列表 | |
articles_by_year |
x | { 年份,文章列表} |
articles
和articles_by_year
只在页面中可用。换句话说,一篇文章无法知道其他文章。
entry
除了其元数据外,entry
还包含以下字段
名称 | 描述 |
---|---|
entry.title |
标题 |
entry.content |
生成的 HTML |
entry.toc_html |
生成的目录(如果 toc: true ) |
构建
CLI
site build --root-dir . --config=config.toml --out-dir out
root-dir
应包含 src
和 template
文件夹。
有关各种任务的示例 CLI 使用,请参阅 Make.zsh。
GitHub Action
如果您使用 GitHub Pages,还可以使用 GitHub Action 来自动构建和部署。请参阅 build.yml 作为示例。
依赖项
~8–18MB
~231K SLoC