#静态网站生成器 #Markdown #内容 #模板 #文章 #tera-模板

bin+lib site

一个简单、快速、有见地的静态网站生成器

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模板引擎

Download history 27/week @ 2024-06-29 3/week @ 2024-07-20 204/week @ 2024-07-27 39/week @ 2024-08-03

每月246次下载

Apache-2.0

38KB
902

Site

build crates.io

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 文件夹中使用的模板文件 articlepage

页面

如果 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 { 年份,文章列表}
  • articlesarticles_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 应包含 srctemplate 文件夹。

有关各种任务的示例 CLI 使用,请参阅 Make.zsh

GitHub Action

如果您使用 GitHub Pages,还可以使用 GitHub Action 来自动构建和部署。请参阅 build.yml 作为示例。

依赖项

~8–18MB
~231K SLoC