13 个不稳定版本 (4 个重大变更)
0.5.0 | 2022年12月11日 |
---|---|
0.5.0-alpha | 2022年11月7日 |
0.4.1 | 2022年10月11日 |
0.4.0-alpha | 2022年6月22日 |
0.1.2 | 2020年10月27日 |
#1276 in Web 编程
每月 81 次下载
在 blades-katex 中使用
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
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