跳到主要内容
CNode

Zulqer:为 Zola 适配一套暗色编辑主题

分享
MMenZil发布于 20 小时前
0650

把一套 React 视觉原型完整适配为 Zola 0.23.3 主题,并补齐中文界面、代码高亮、响应式布局与文章图片灯箱。

Zulqer 是一套面向长篇写作和技术笔记的 Zola 主题。它的视觉基调来自暗色编辑页面:接近黑色的背景、克制的暖金色强调、衬线标题,以及尽量少打断阅读的交互。

适配时,我把页面结构重新实现为 Zola 的 Tera 模板。文章、标签、归档、搜索和分页仍然由 Zola 生成,浏览器里不需要运行前端框架。

从视觉原型到静态主题 首页保留了原设计最明确的几处特征:固定导航、焦点文章、横向标签栏和不对称文章网格。第一张文章卡片跨两列,其余卡片自动适应可用宽度;卡片保持 12px 圆角,并在鼠标悬停时轻微上移、改变边框颜色。

Zulqer 暗色编辑主题首页设计 图片描述 Zulqer 首页设计。点击图片可以放大查看原图。

主题使用 Fraunces 处理标题,Outfit 处理正文,DM Mono 处理日期、标签和代码信息。中文环境会继续使用系统自带的中文字体作为后备,不会因为西文字体加载失败而影响阅读。

Zola 0.23.3 适配 主题按 Zola 0.23.3 的模板和 Markdown 配置编写。代码高亮交给 Zola 在构建阶段完成,浏览器只负责展示结果,因此代码块不需要再加载一套客户端语法解析器。

theme = "zulqer" default_language = "en" preserve_dotfiles_in_output = true

[markdown.highlighting] theme = "catppuccin-mocha"

这里的 default_language 保持为 en,是因为 Zola 当前使用的 Elasticlunr 搜索索引不支持 zh。页面本身仍然输出 lang="zh-CN",导航、阅读时间、分页和搜索提示也全部使用中文。

内容与交互 文章页沿用原设计的窄栏阅读宽度、顶部阅读进度和信息标签。Markdown 图片会显示为圆角大图,点击后进入带背景模糊的灯箱;同一篇文章中有多张图片时,可以使用左右按钮或方向键切换,按 Esc 关闭。

代码块会显示语言名称,并提供复制按钮。窄屏设备上保留横向滚动,不会为了塞进屏幕而缩小代码字体或折断长命令。

fn theme_name() -> &'static str { "Zulqer" }

主题同时处理了键盘焦点、移动端菜单和 prefers-reduced-motion。减少动态效果的系统偏好开启后,卡片和菜单的过渡会被关闭。

使用主题 仓库地址:github.com/menzil/zulqer,在线演示:orhan.cn。

git clone https://github.com/menzil/zulqer.git themes/zulqer

将 theme = "zulqer" 写入站点配置后即可使用。界面语言、默认焦点图、导航名称和仓库链接集中放在 [extra.zulqer] 中,站点不需要修改主题模板就能替换这些内容。

文章封面按文章单独设置,写在 Markdown 的 [extra] 中:

+++ title = "文章标题"

[extra] cover = "/images/article-cover.jpg" +++

设置后,这张图片会同时用于首页文章卡片和文章详情页。普通文章可以不设置,卡片会显示深色渐变占位;首页焦点文章没有单独封面时,则使用站点配置里的 default_cover。正文中的 Markdown 图片只属于文章内容,不会自动变成封面。

Zulqer 由 Ruzaji Yasin 设计并完成 Zola 适配。

查看回复

回复 (0)

暂无回复,成为第一个参与讨论的人。

参与回复

登录后即可参与回复。登录