DragonRster`s Void
Banner Image
目录
示例文章标题

副标题或装饰文字


写在前面

这篇文章演示了构建脚本支持的全部功能。包括自定义 TOC 目录自动提取目录脚注系统、 标签分类、代码块、表格等等。

关于构建脚本本身的详细介绍,可以看这篇构建脚本全解析

正文第一节:自动目录与自定义目录

如果文章里使用了 <font size="5" color="#ff66cc"> 作为章节标题, 构建脚本会自动提取这些标题生成 TOC 目录[1]。 每个标题前会自动插入 <a name="toc-N"> 锚点,侧边栏的目录链接可以直接跳转。

如果在文章顶部写了 <!-- toc: 条目1, 条目2 | custom-anchor -->, 构建脚本会优先使用自定义目录[2]。 自定义目录的每个条目可以只写标题(自动分配 toc-N 锚点), 也可以用 标题 | 锚点名 的格式指定锚点。

如果自定义目录存在,文章里需要放置 <!-- toc-anchor --> 标记来告诉构建脚本在哪里插入锚点。标记会按顺序依次替换:第一个标记对应第一个目录条目,以此类推。

本篇文章同时演示了两种方式:前两个目录项用了自定义目录 + <!-- toc-anchor --> 标记, 后面这个自动目录章节则是靠标题自动提取的[3]

第二个章节:脚注系统详解

脚注是学术写作和长文章的重要工具。本项目的脚注系统完全在构建时处理, 不依赖 JavaScript[4]

正文中使用 [^数字] 引用脚注,文末用 [^数字]: 内容 定义脚注。 构建脚本会做三件事[5]

1. 将正文中的 [^N] 替换为带锚点链接的上标数字
2. 将文末的 [^N]: 定义 收集成脚注区域
3. 在文章底部渲染脚注列表,每一条都可以点击跳回正文引用处

脚注定义支持两种格式

格式一:带段落标签(推荐,支持跨行)

<p> 标签包裹的脚注定义。 这种方式支持跨行,脚注内容可以很长, 可以包含 <code> 标签、链接等各种 HTML 元素。 构建脚本会正确提取完整的跨行内容。

格式二:裸定义(单行)

点击正文中的脚注编号 [8] 可以跳到底部注释, 再点击注释左侧的编号可以跳回正文[8]。 这是 HTML 3.2 时代就支持的标准锚点跳转机制。

脚注演示

下面演示脚注在代码和技术文章中的典型用法。构建脚本的版本管理遵循了几个原则 [9]: 每次修改后手动运行构建、用 Git 追踪源码而非输出文件、 通过 build.cmd 统一构建入口。

构建流程的设计也考虑了实用性[10]。 如果想深入了解构建系统的技术细节,可以阅读 构建脚本全解析 这篇文章。

代码与表格

PowerShell 构建脚本的核心调用方式:

powershell -ExecutionPolicy Bypass -File scripts/build.ps1 `
  -PageName "blog-SLUG" `
  -Title "页面标题" `
  -ContentFile "src/content/pages/blog/content-SLUG.html"

下面是一个表格示例:

功能 用法 说明
自定义 TOC <!-- toc: 标题 | 锚点 --> 逗号分隔,锚点可选
自动 TOC <font size="5" color="#ff66cc"> 从标题自动提取
TOC 锚点标记 <!-- toc-anchor --> 自定义目录的跳转目标
脚注引用 [^N] 正文中的上标链接
脚注定义 <p>[^N]: 内容</p> 带标签可跨行
标签分类 <!-- tags: A, B --> 逗号分隔,显示在侧边栏
草稿标记 <!-- draft: true --> 默认构建跳过

更多细节请参考项目根目录下的scripts/build.ps1 源码。


[1]自动提取的标题正则:<font[^>]*size="5"[^>]*color="#ff66cc"[^>]*>。 构建脚本按匹配顺序从后往前插入锚点并生成目录列表,确保锚点位置正确。
[2]自定义目录使用逗号分隔多个条目,每个条目可选 标题 | 锚点名 格式。 如果省略锚点名,自动分配 toc-1toc-2 等。
[3]如果自定义目录存在且非空,就使用自定义目录;如果不存在或为空, 则自动从标题提取。两种方式互斥,不会同时生效。
[4]JavaScript 在复古浏览器(IE5.5 等)中可能不可用或被禁用。 纯 HTML 锚点跳转是 HTML 3.2 标准特性,兼容性最好。
[5]脚注处理在构建脚本中分两步完成:第一步匹配带 <p> 等标签包裹的定义(支持跨行),第二步匹配裸定义(单行)。 两步都完成后统一替换引用并渲染脚注区域。
[6]这是一个跨行的脚注示例。 这段脚注内容横跨多行,包含了中文、英文 Mixed Content、 以及 inline code 和内联样式。 这在写长注释时非常实用,不用把所有内容挤在一行里。
[7]裸定义不用标签包裹,内容只能写一行。适合简短说明。
[8]正文中提到的 [^8] 本身就是一个脚注引用。 这句话出现在正文里,点击它可以跳到文末这条注释,再点击编号跳回去。 这就是脚注系统的"自指演示"。
[9]构建脚本每次修改后手动运行,Git 追踪源码文件而非 dist/ 输出目录。这样可以保持输出目录干净,且每次构建都是确定性的。
[10]单页面构建只替换占位符不扫描博客目录,速度很快。 如果新增了文章,需要先运行 generate-archive.ps1 更新 latest-posts 组件,再运行 build.ps1
English

搜索

最新文章

» 站点框架的缺陷分析与...
» 脚本详解:build.ps1
» 留言板架构记录
» 2026年4月 · ...
» 盘龙阁·服务器

» 文章归档


本文标签

标签A 标签B 标签C


功能

» RSS 订阅
» GitHub 源码
» 返回顶部
» 文章归档


DRAGONRSTER
CC BY-NC-SA
© 2004-2026 DragonRster • Made with HTML • 本站支持IE5.5+
最佳浏览分辨率:1024x768 • 最后更新于 2026年04月30日 01:27:30