有些笔记您可能不希望作为网站发布。Quartz 通过两种可结合使用的机制支持这一需求:

过滤器插件

过滤器插件 是根据特定条件过滤内容的插件。默认情况下,Quartz 使用 RemoveDrafts 插件,该插件会过滤掉所有在 frontmatter 中包含 draft: true 的笔记。

如果您希望仅发布选定的笔记,可以使用 ExplicitPublish 插件,该插件会过滤掉所有未在 frontmatter 中包含 publish: true 的笔记。

Warning

无论使用何种过滤器插件,所有非 Markdown 文件都会在最终构建中被公开输出。 这包括图片、录音、PDF 等文件。要防止这种情况同时仍能嵌入本地图片,可以创建一个专门用于公共媒体的文件夹,并在 ignorePatterns 数组中添加以下两个模式:

"!(PublicMedia)**/!(*.md)", "!(*.md)"

ignorePatterns

这是 configuration 主配置下 quartz.config.ts 文件中的一个字段,允许您指定一组模式来完全排除解析。任何有效的 fast-glob 模式均可在此处使用。

Note

Bash 的 glob 语法与 fast-glob 略有不同,使用 bash 语法可能导致意外结果。

常见示例包括:

  • some/folder: 排除整个 some/folder 目录
  • *.md: 排除所有扩展名为 .md 的文件
  • !*.md 排除所有_不_以 .md 为扩展名的文件
  • **/private: 排除任何层级中名为 private 的文件或文件夹

Warning

通过插件或 ignorePatterns 模式标记为私有的内容,只会阻止页面被包含在最终构建的网站中。如果您的 GitHub 仓库是公开的,请确保同时在 Quartz 的 .gitignore 文件中添加对应的忽略规则。更多信息请参阅 git 文档