13 个不稳定版本 (4 个重大变更)

0.5.0 2022年12月11日
0.5.0-alpha2022年11月7日
0.4.1 2022年10月11日
0.4.0-alpha2022年6月22日
0.1.2 2020年10月27日

#1276 in Web 编程

Download history 9/week @ 2024-03-08 3/week @ 2024-03-15 17/week @ 2024-03-29 8/week @ 2024-04-05

每月 81 次下载
blades-katex 中使用

GPL-3.0-or-later

3MB
2.5K SLoC

包含 (WOFF 字体, 20KB) Merriweather300-latin.woff2, (WOFF 字体, 19KB) Merriweather300-latin-ext.woff2, (WOFF 字体, 20KB) Merriweather300-latin.woff2, (WOFF 字体, 19KB) Merriweather700-latin-ext.woff2, (WOFF 字体, 19KB) Merriweather700-latin.woff2, (WOFF 字体, 19KB) Merriweather300-latin-ext.woff2 及更多.

Blades logo

Blades

Crates.io status Docs

blazing fast
 dead simple
  static site generator

用户手册

Blades 设计用于执行一项任务并执行得很好 - 使用提供的模板将提供的内容生成 HTML 文件。
感谢 零拷贝 反序列化和 Ramhorns 模板引擎,它可以在毫秒内渲染整个网站,可能比像 Hugo 这样的其他生成器快 20 倍以上。

它易于设置和使用。静态网站生成器应该是无脑的。它使用 mustache 模板,语法极其简洁明显(如 7 条规则!),提供必要的构建块,让您专注于内容。

功能

  • 强大的插件系统
  • 主题
  • 图片库生成
  • CommonMark markdown,带有表格和脚注用于内容
  • 使用 cmark-syntax 自动语法高亮(可以将 LaTeX 公式转换为 MathML
  • 可自定义的分类法(如分类或标签)
  • 分页
  • 面包屑
  • 资产共定位
  • 包含所有网站数据的目录
  • 自动生成网站地图、Atom 和 RSS 源

为什么选择 blades

与其他单一生成器不同,Blades 的范围相对较小。它所做的只是生成网站。它不会做任何复杂的事情,比如将 Haskell 转换为压缩的 JavaScript,或者一直监视网站以查看更改。为此,您可以使用像 caretaker 这样的专用工具。

尽管如此,如果您有功能请求或在使用Blades时遇到问题,请提交一个问题。任何贡献都受欢迎!:)

为什么是blades

它们剃掉了mustache

安装

安装了Rust工具链后,您可以从crates.io安装Blades

cargo install blades

或从其仓库

git clone https://github.com/grego/blades
cd blades
cargo install --path .

macOS

使用包管理器MacPorts

sudo port install blades

运行

然后,您可以使用以下子命令运行可执行文件blades

  • init:在当前目录中初始化站点,创建基本文件和文件夹
  • build:根据配置、内容、模板和当前目录中的主题构建站点
  • colocate:将“assets”目录中的资产以及(如果使用)主题中的资产移动到输出目录
  • all:构建站点并集中资产
  • lazy:构建站点(仅在切换主题时集中资产)[默认]
  • new:创建新页面

插件

Blades可以与4种类型的插件一起使用。

  • 输入 - 它们在标准输出上放置一个JSON序列化的页面列表,可以用来从不同来源获取页面
  • 输出 - 它们接收标准输入上的JSON序列化的页面列表,并可用于生成更多页面数据,如处理图像
  • 转换 - 它们接收标准输出上的JSON序列化的页面列表,并在标准输出上输出另一个这样的列表,可以转换页面上的任何内容
  • 内容 - 它们接收一个页面的markdown内容作为标准输入,并在标准输出上输出markdown;它们按页面启用,可用于渲染LaTeX公式或突出显示语法

可以使用任何语言的代码,因为假设只使用标准输入和输出。对于Rust,Blades还提供了一个用于自动序列化和反序列化页面。

示例

示例插件配置可以在此处找到,以及一个示例玩具转换插件。要尝试它,首先将Casper主题作为子模块下载

git submodule update --init

然后构建插件

cargo build --release transform_plugin

然后在examples目录中运行Blades

cargo run --release

有关插件的更多信息,请查看它们的文档现有插件

主题

当您在配置中指定主题时,会使用主题的模板和资产。每个不使用主题的站点都可以用作另一个站点的主题。因此,使用主题的最简单方法是只需将相应主题的仓库克隆到themes目录中。可用的主题列表可以在此处找到。

要覆盖主题,只需使用页面根目录下templates、分别assets子目录中的文件即可。

资产

所有来自 assets 目录(以及主题中的文件)都将移动到配置文件中指定的目录(在之前已清空)。这是输出目录的子目录(默认为 assets)。

Blades会处理之前渲染的页面,如果其中一些被删除,则输出目录中对应的文件也将被删除。输出目录中的其他文件保持不变。这样,您可以放置任何内容在输出目录中(只要其名称与页面名称不同,并且不在assets子目录中),Blades不会对其进行操作。

元数据

除非在配置文件中明确禁用,否则Blades将渲染 网站地图(到 sitemap.xml),Atom(到 atom.xml)和 RSS(到 rss.xml)源。

将Blades作为库使用

Blades的主要组件也作为库导出。它们与解析器无关,因此可以用于使用实现 serde::Deserialize 的任何格式的网站生成。目前,Cargo不支持仅二进制依赖项。因此,这些依赖项位于 bin 功能门之后,该功能门默认启用。当将Blades作为库使用时,它们不是必需的,因此建议使用 default_features = false 导入blades。

贡献

如果您在Blades中发现了错误或希望看到某些功能,欢迎提交问题或拉取请求!同样,如果您在此文档中发现某些内容不够清晰或不准确,也欢迎提出。

许可证

Blades是免费软件,根据GNU通用公共许可证版本3发布。请参阅 LICENSE

依赖项

~6.5MB
~90K SLoC