2 个版本

0.0.2 2024 年 4 月 5 日
0.0.1 2024 年 3 月 3 日

257模板引擎

Download history 4/week @ 2024-05-20 1/week @ 2024-06-10

116 每月下载量
用于 mockingbird

MIT/Apache 许可

1.5MB
4.5K SLoC

Harper + Mockingbird

这是一个正在进行中的项目。


lib.rs:

用于创建极快静态站点生成器的工具包。

概述

Sketch 是一个用于创建非常快的静态站点生成器的库:消耗文件并输出静态 HTML 网站及其资产的程序。它不对源内容的结构或内容操作强加任何特定结构。

内部,Harper 按以下方式组织内容

                           +-------+
                           | Site  |
                           +---+---+
                               |
 +-----------------------------+--------------------------------+
 |                                                              |
 |  +------------+    +------------+    +-------+    +-------+  |
 |  | Collection |... | Collection |    | Asset |... | Asset |  |
 |  +------------+    +------+-----+    +-------+    +-------+  |
 |                           |                                  |
 |    +----------------------+----------------------+           |
 |    |      +--------+           +------------+    |           |
 |    |      | index? |           | data group |    |           |
 |    |      +--------+           +-----+------+    |           |
 |    |  +------+   +------+   +------+ | +------+  |           |
 |    |  | item |...| item |   | data |...| data |  |           |
 |    |  +------+   +------+   +------+   +------+  |           |
 |    +---------------------------------------------+           |
 +--------------------------------------------------------------+

换句话说,一个 站点 由以下组成

  • 集合,由

    • 组成,可能已排序,其中之一可能是 索引。项表示为字符串键和类似 JSON 的值的字典。这个字典称为项的 元数据。所有项数据都存储在其 元数据 中。元数据在项处理过程中进行转换。

    • 组织成 数据组数据

    您可以将集合视为目录,其内容分为文本内容()和数据,尽管它不一定必须按此方式组织。

  • 资产

    资产,如图像和样式表,将根据文件的类型对应的管道进行渲染。

渲染

站点通常通过以下一系列操作进行渲染

  1. 将目录中的文件读取到集合中。
  2. 根据 SSG 的喜好对项的元数据进行转换。典型的转换可能如下所示
    • 前言元数据直接读取到文件的元数据中。
    • 将项文本渲染为 markdown 并存储在 content 元数据字段中。
    • 使用项的 metadata 作为模板上下文将项渲染到模板中。
  3. 根据 SSG 的喜好对资产进行转换。
  4. 将完全转换后的内容写入输出目录。

依赖项

~19–30MB
~482K SLoC