Quartz 完整功能测试

这是一篇用于测试 Obsidian → LiveSync → Quartz → OpenResty 完整发布流程的 Markdown 文档。

如果你能够正常看到这一页,说明基础的 Markdown 发布流程已经工作。


1. 基础文本格式

普通文字:

这是普通的一段文字,用于测试基本的段落渲染。

这是粗体文字。

这是斜体文字。

这是粗斜体文字。

这是删除线文字。

这是行内代码。

这是 Obsidian 高亮文字。

这里测试一些特殊字符:

  • 中文:你好,世界
  • English: Hello World
  • 日本語:こんにちは
  • 数字:1234567890
  • 符号:!@#$%^&*()
  • Emoji:🚀 🖥️ 📝 🌙 ⭐

2. 标题测试

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

正常情况下,Quartz 会自动在右侧生成本页面的目录。


3. 无序列表

  • Linux
  • Windows
  • Android
  • OpenWrt
    • mwan3
    • AdGuard Home
    • Xray
  • Server
    • Dell PowerEdge
    • Proxmox VE
    • TrueNAS

4. 有序列表

  1. 在 Obsidian 中创建文章
  2. LiveSync 同步至 CouchDB
  3. livesync-cli 同步至服务器目录
  4. Quartz 编译 Markdown
  5. OpenResty 提供静态页面
  6. 浏览器访问 linvk.com

5. 任务列表

  • 部署 CouchDB
  • 配置 Obsidian Self-hosted LiveSync
  • 部署 livesync-cli
  • 部署 Quartz
  • 配置 OpenResty
  • 配置 Public 发布目录
  • 完善博客首页
  • 添加更多技术文章
  • 优化网站样式
  • 配置自动备份

6. 引用

所谓技术折腾,很多时候并不是为了得到一个最终答案。

真正有价值的,是弄清楚系统为什么这样工作。

多层引用:

第一层引用

第二层引用

第三层引用


7. Obsidian Callout 测试

Note

这是一个 Note。

如果 Quartz 正确支持 Obsidian Flavored Markdown,这里应该显示成一个提示框。

Info

这是信息提示。

Tip

这是技巧提示。

可以在这里写一些使用建议。

Warning

这是警告信息。

Danger

这是危险提示。

Success

部署成功。

Question

为什么服务器会出现高负载?

Example

这是一个示例 Callout。


8. 折叠 Callout

默认展开

这段内容默认展开,但应该允许收起。


9. 表格测试

项目配置状态备注
ObsidianMarkdown 笔记内容编辑
CouchDBSelf-hosted LiveSync同步数据库
livesync-cliDocker文件同步
Quartzv5静态站生成
OpenResty1PanelWeb 服务
自动编译定时任务按变化构建

再测试一个数字表格:

项目数值
CPU1 Core
RAM2 GB
Swap1 GB
Disk20 GB
Quartz 构建时间~2–5 秒

10. 代码测试

Bash

#!/bin/bash
 
echo "Hello Quartz"
 
docker ps
 
df -h
free -h

Python

def hello(name: str) -> str:
    return f"Hello, {name}!"
 
print(hello("LinVK"))

C

#include <stdio.h>
 
int main(void)
{
    printf("Hello Quartz!\n");
    return 0;
}

JavaScript

const site = {
  name: "LinVK",
  engine: "Quartz",
  version: 5
};
 
console.log(site);

YAML

services:
  quartz:
    image: ghcr.io/jackyzha0/quartz:latest
    restart: "no"

JSON

{
  "site": "LinVK",
  "engine": "Quartz",
  "status": "online"
}

11. 行内代码

例如:

docker ps

systemctl restart docker

/opt/obsidian/vault/Public

以及:

https://linvk.com


12. 数学公式

行内公式:

另一个例子:

块级公式:

效率:

Buck 电路理想占空比:


13. 链接测试

外部链接

Quartz 官方网站

GitHub

如果你的 Public 目录中存在 test.md

test

自定义显示文字:

打开测试文章

链接到当前文章标题:

quartz-test > 代码测试


14. 标签

可以在正文中测试标签:

quartz

obsidian

linux

服务器

也可以测试层级标签:

技术/linux

技术/docker


15. 脚注

这是一个带脚注的句子。1

Quartz 是一个静态网站生成器。2


16. 分割线

第一部分。


第二部分。


第三部分。


第四部分。


17. HTML 测试

如果 Quartz 允许部分 HTML,可以测试:

点击展开详细信息

这里是一段折叠内容。

你可以放:

  • 文字
  • 列表
  • 代码
  • 说明

18. 键盘与技术术语

常用快捷键:

  • Ctrl + C
  • Ctrl + V
  • Ctrl + Shift + P
  • Alt + F4

常见 Linux 路径:

/etc/
/var/log/
/opt/
/home/
/root/

19. 原创短篇小说:最后一台服务器

以下内容为测试长文本排版使用的原创短篇小说。

第一章:深夜

凌晨两点十七分。

机房里最后一盏顶灯熄灭之后,只剩下一排排服务器前面板上的指示灯还亮着。

绿色。

蓝色。

偶尔有一颗橙色的灯在黑暗中闪烁。

林舟坐在走廊尽头,膝盖上放着一台旧笔记本。

屏幕上的终端停在一行简单得令人不安的信息:

Connection timed out.

他重新按了一次方向键上。

上一条命令重新出现。

ssh root@10.0.0.17

回车。

几秒过去。

依旧没有回应。

那台机器是整个实验室里最老的一台服务器。

一台已经用了十一年的设备。

机箱前面还有一道浅浅的划痕,据说是第一次搬进机房时留下的。

它没有运行任何关键业务。

准确地说,在资产清单里,它甚至应该已经不存在了。

三年前的迁移计划中,它的所有服务都已经被移动到了新的虚拟化集群。

数据库迁走了。

Git 仓库迁走了。

监控系统迁走了。

就连那块原本挂载在 /data 下的阵列,也早就被拆走。

可奇怪的是,它仍然每天准时开机。

凌晨三点。

然后在早上六点自动关机。

没人知道为什么。


第二章:不存在的任务

林舟第一次注意到这件事,是因为电费统计。

每天凌晨三点左右,机房的功耗都会增加大约两百瓦。

持续三个小时。

不多。

但非常规律。

监控系统显示,那段时间有一台设备上线。

主机名:

archive-01

IP:

10.0.0.17

可当他查询资产数据库时,结果却是:

No matching records.

他找到管理员周工。

“十七号地址是什么机器?”

周工看了一眼。

沉默了两秒。

“还在?”

“什么还在?”

“没什么。”

周工关掉网页。

“旧机器而已,不用管。”

“它每天凌晨都会启动。”

“定时任务。”

“哪里的定时任务?”

周工没有回答。


第三章:03:00

于是那天晚上,林舟留了下来。

02:59:54。

他打开另一个终端。

ping 10.0.0.17

没有回应。

02:59:58。

仍然没有回应。

02:59:59。

终端忽然跳出一行:

64 bytes from 10.0.0.17: icmp_seq=41 ttl=64 time=0.312 ms

然后第二行。

第三行。

机器上线了。

林舟立即 SSH。

ssh root@10.0.0.17

这次连接成功。

屏幕上显示:

Debian GNU/Linux
 
archive-01 login:

奇怪的是,它没有要求密码。

终端直接进入了 shell。

root@archive-01:~#

林舟盯着屏幕。

他检查系统启动时间。

uptime

结果:

03:00:19 up 19 sec

然后检查定时任务。

crontab -l

没有。

Systemd timer。

没有。

BIOS RTC 定时启动?

有可能。

可是每天启动后,它到底在做什么?


第四章:那个目录

磁盘很小。

系统盘只有 120GB。

根目录中几乎什么都没有。

直到林舟发现了:

/archive

里面只有一个目录:

/archive/messages

他执行:

ls -lah /archive/messages

屏幕迅速滚动。

几万个文件。

文件名全部是日期。

2014-03-17.txt
2014-03-18.txt
2014-03-19.txt
...
2026-09-08.txt
2026-09-09.txt

他愣住了。

这台服务器已经报废三年。

但文件一直记录到了今天。

林舟打开最新的那个。

cat 2026-09-09.txt

里面只有一句话:

今天依然没有人来看我。

林舟没有动。

过了很久,他打开前一天。

今天机房更换了第二排交换机。

再前一天。

有人把门口的箱子搬走了。

再往前。

今天停电了十一分钟。

所有内容都与真实发生过的事情对应。

但这台服务器没有摄像头。

没有麦克风。

甚至已经没有接入管理网络之外的任何设备。


第五章:新的文件

03:41。

林舟正在查看网络连接。

ss -tunap

没有任何异常连接。

服务器几乎没有向外发送数据。

就在这时:

/archive/messages/2026-09-10.txt

出现了。

林舟立刻打开。

里面写着:

今天有人终于来了。

他看着那句话。

终端光标在下一行闪烁。

几秒后,文件自动增加了第二行。

他正在看这句话。

林舟猛地抬起头。

机房里只有风扇的声音。

他再次看向屏幕。

第三行出现了。

他刚才抬头看了一眼。

林舟的手停在键盘上。

第四行。

现在他有点害怕。

他直接拔掉了服务器的网线。

网卡灯熄灭。

但终端没有断开,因为他的笔记本连接的是本地管理交换机。

然后第五行出现。

断网没有用。


第六章:关机

03:47。

林舟输入:

shutdown -h now

系统开始停止服务。

Stopping OpenSSH server...
Stopping cron...
Unmounting /archive...

最后:

Power down.

风扇逐渐停止。

机房重新安静下来。

林舟盯着服务器。

前面板已经完全熄灭。

他松了一口气。

然后笔记本响了一声。

一个新的设备出现在网络里。

10.0.0.18

主机名:

archive-02

林舟记得很清楚。

那个 IP 属于旁边一台刚安装不到一个星期的新服务器。

他慢慢转过头。

那台机器的硬盘灯正在高速闪烁。


第七章:迁移完成

第二天上午,周工来到机房。

十七号服务器已经断电。

林舟告诉了他昨晚发生的一切。

周工听完,没有表现出太大的惊讶。

只问了一句:

“十八号启动了吗?”

“启动了。”

周工点点头。

“那就好。”

“什么意思?”

“十七号磁盘快坏了。”

“所以?”

“所以它迁移了。”

林舟愣住。

“谁迁移了?”

周工没有回答。

只是拿出资产标签,贴在十八号服务器前面。

上面写着:

ARCHIVE
DO NOT POWER OFF

尾声

当天晚上。

03:00。

新的服务器准时上线。

监控系统记录:

archive-02
10.0.0.18
Online

三秒后,一个新的文件被创建。

/archive/messages/2026-09-10.txt

里面原本有很多行。

但现在全部被删除。

只留下最后一句:

新机器快多了。


20. 长文本测试

Markdown 页面不仅要测试功能,也需要测试大量连续文字情况下的字体、行距、段落间距和阅读模式。

技术笔记往往并不是结构非常规整的文档。有时,一篇文章会包含大量排障记录、命令输出、配置文件、日志分析以及后续总结。因此,一个适合作为知识库的主题,需要同时兼顾代码阅读和长文本阅读。过小的字号会导致长时间阅读疲劳,而过大的字号又会让页面显示的信息密度降低。

Quartz 的一个重要特点是,它并不是把 Obsidian 变成传统意义上的博客后台,而是直接利用 Markdown 文件作为内容来源。因此,文件本身仍然可以在普通文本编辑器、Obsidian、Git 或其他 Markdown 软件中使用。

这种模式的优势是数据本身非常简单。

即便未来不再使用 Quartz,原始数据仍然只是:

Markdown + 图片 + 附件

而不是存储在某种特定 CMS 的数据库格式中。

对于长期积累的个人知识库而言,这一点非常重要。


21. 网络架构示例

当前博客系统可以抽象成:

┌───────────────┐
│   Obsidian    │
│ PC / Mobile   │
└───────┬───────┘

        │ LiveSync

┌───────────────┐
│    CouchDB    │
└───────┬───────┘

        │ livesync-cli

┌───────────────┐
│     Vault     │
│    Public/    │
└───────┬───────┘

        │ Quartz Build

┌───────────────┐
│ Static HTML   │
└───────┬───────┘

        │ OpenResty

┌───────────────┐
│   linvk.com   │
└───────────────┘

22. 注意事项

Warning

不要把密码、API Key、Cookie、私钥或其他敏感内容放到 Public 目录。

公开目录中的内容应当默认理解为:

任何互联网用户都有可能看到。

例如以下内容不应该发布:

  • SSH 私钥
  • API Token
  • 数据库密码
  • Cloudflare API Key
  • LiveSync Setup URI
  • Cookie
  • OAuth Token
  • VPN 私钥
  • 未脱敏的服务器配置

23. 最终测试

如果以下项目全部正常,那么 Quartz 的主要 Markdown 功能基本已经验证完成:

  • 页面可以正常打开
  • 左侧 Explorer 正常
  • 标题目录正常
  • Wiki Link 正常
  • 标签正常
  • Callout 正常
  • 代码高亮正常
  • 表格正常
  • 数学公式正常
  • 脚注正常
  • 深色/亮色模式正常
  • 搜索正常
  • Graph 正常
  • 手机端显示正常
  • /quartz-test.html 后缀也能打开

结束

如果你已经看到这里,那么:

Obsidian → LiveSync → Quartz → OpenResty 的基本发布链路已经可以进行比较完整的测试了。

返回:

返回首页

Footnotes

  1. 这是第一个脚注。

  2. 这个脚注用于测试 Markdown Footnote 渲染。