窑
一个用Rust编写的静态站点生成器 hakula.xyz,具有cjk友好的Markdown创作和可定制的主题。
突出了
- cjk友好的Markdown技术写作,与数学,图表和语法高亮显示
- 通过嵌套自定义内容组件
:::指令和主题模板 - 将文字、图像和页面特定样式保持在一起的页面包
- 全文检索 Pagefind,提供查找和跟踪帖子的存档和提要
- IgnIt 主题响应式布局和黑暗模式,可通过网站覆盖自定义
- 本地预览与实时加载,加上优化的样式表和图像加载占位符发布
文档
| 文档 | 描述 |
|---|---|
| 内容 | 内容,前端内容和Hugo迁移 |
| 语法参考 | Markdown扩展和指令 |
| 资产和样式表 | 发布、样式表、指纹和实时重载 |
| 主题 | 网站配置,主题和模板 |
| 基准 | 性能测量和基线比较 |
| 路线图 | 开发人员能力状态、约束和优先级 |
安装
通过npm
安装Node.js 20或更新版本,例如 等于是,然后选择一种窑型:
fnm install --latest --use
npm install -g @kiln-ssg/kiln@latest
选择 @kiln-ssg/kiln-extended@latest 用于avf加载占位符。它有相同的 dav1d需求 作为扩展的存档。两个变体都安装 kiln,因此在切换之前卸载当前的变体。
预发布版本使用 next npm标签。支持的平台为Linux x86_64 (glibc)、Apple Silicon和Windows x86_64。
当站点需要时,在相同的安装命令中添加可选工具:
npm install -g @kiln-ssg/kiln@latest @kiln-ssg/[email protected] [email protected]
@kiln-ssg/tailwindcss:当网站或主题编译顺风CSS时需要。pagefind:启用搜索时必选。
预先构建的二进制
为您的平台下载最新版本 释放:
# Linux x86_64
curl -fsSL https://github.com/hakula139/kiln/releases/latest/download/kiln-x86_64-unknown-linux-gnu.tar.gz | tar -xz
sudo mv kiln /usr/local/bin/
# macOS aarch64 (Apple Silicon)
curl -fsSL https://github.com/hakula139/kiln/releases/latest/download/kiln-aarch64-apple-darwin.tar.gz | tar -xz
sudo mv kiln /usr/local/bin/
# Windows x86_64 (Git Bash / MSYS / WSL)
curl -fsSLO https://github.com/hakula139/kiln/releases/latest/download/kiln-x86_64-pc-windows-msvc.zip
unzip kiln-x86_64-pc-windows-msvc.zip
kiln --version
选择默认值 kiln-<target> 归档文件或 kiln-extended-<target> 用于avf加载占位符。只有扩展的二进制文件才需要dav1d:
| 平台 | 扩展运行时需求 |
|---|---|
| Linux | 系统 libdav1d 包 |
| macOS | brew install dav1d |
| 窗户 | 包含在二进制文件中 |
从源
cargo install --git https://github.com/hakula139/kiln --locked
要为AVIF图像生成加载占位符,请安装 本地依赖关系 并启用该功能:
cargo install --git https://github.com/hakula139/kiln --locked --features avif
通过无
nix run github:hakula139/kiln -- build # one-shot
nix profile install github:hakula139/kiln # install to user profile
雪花提供了 hakula 预构建包的缓存。Nix以交互方式提示信任。对于非交互式使用,请在传递之前验证缓存密钥 --accept-flake-config.
要从另一个薄片中使用此缓存,请在该薄片或您的Nix安装中配置它。
要在另一个薄片中使用窑炉,请添加以下输入:
inputs.kiln.url = "github:hakula139/kiln";
# Outputs: packages.${system}.{default,kiln}
Nix包将Tailwind编译器和Pagefind放在kiln的编译器上 PATH,因此样式表编译和搜索无需单独安装即可工作。
第一个网站
创建一个站点 IgnIt,使用符合主题的窑版 min_kiln_version. 点火需要 顺风处理器,它包含在kiln的Nix包中。
git init my-site
cd my-site
git submodule add https://github.com/hakula139/IgnIt.git themes/IgnIt
mkdir -p content/posts/hello
cat > config.toml <<'CONFIG'
base_url = "https://example.com"
title = "My Site"
theme = "IgnIt"
CONFIG
cat > content/posts/hello/index.md <<'POST'
+++
title = "Hello"
+++
Welcome to my site.
POST
kiln serve --open
运行 kiln build --minify 生成 public/ 为部署。看到 网站配置 查看引擎设置和 内容 用于组织页面。
使用
kiln build --root /path/to/site --minify
kiln build --base-url https://preview.example.com
kiln serve --port 3000 --open
kiln init-theme my-theme
kiln convert --source /path/to/hugo --dest /path/to/kiln
build, serve 和 init-theme 使用当前目录作为站点根目录,除非 --root 供应。 KILN_BASE_URL 时提供构建URL重写 --base-url 不在。
看到 雨果迁移 为转换器的支持范围和手动跟踪。
搜索
默认禁用搜索功能。要启用它,请安装 Pagefind 并设置 [search] enabled = true 在 config.toml:
[search]
enabled = true
# binary = "/path/to/pagefind" # optional, if not on $PATH
kiln build 和 kiln serve 当启用搜索时,在生成HTML后运行Pagefind。
从源头构建
需要 生锈 1.89或更新版本和C工具链。
cargo build --release # Binary at target/release/kiln
AVIF占位符
图像发布和尺寸检测在任何一个构建中都可以工作。要添加AVIF加载占位符,请安装dav1d≥1.3和 pkg-config:
| 平台 | 构建依赖关系 |
|---|---|
| macOS | Xcode命令行工具和 brew install dav1d pkg-config |
| Debian / Ubuntu | sudo apt install build-essential libdav1d-dev pkg-config |
然后启用该特性:
cargo build --release --features avif
在macOS和Linux上,生成的二进制文件在运行时需要dav1d,就像 延长档案.
可复制的开发shell (Nix)
Nix包默认启用AVIF支持。它的开发shell提供了构建依赖和预提交钩子:
nix develop # interactive shell
nix flake check # run the pre-commit hooks that don't use Node
direnv 自动激活外壳通过 .envrc.