返回首页 查看完整贡献指南

CONTRIBUTOR GUIDE

第一次贡献,也可以很简单。

你不需要会写代码,也不需要先学会 Git。这里会根据你的经验,带你从注册 GitHub 账号、修改百科内容,一直走到成功提交 Pull Request

做错了也不用担心:Pull Request 是“请求合并”,不会直接改坏网站。维护者会先检查并帮助你。

一次贡献只有三个阶段

  1. 01 准备账号
  2. 02 编辑内容
  3. 03 提交 PR

本次目标文件

从条目页进入时,这里会显示真正要修改的文件。路径不对就先回到条目页重新点击“编辑源文件”。

暂无指定文件;你仍然可以先学习,实际编辑时请从具体条目进入。

01 / Route

你现在处在哪个起点?

不需要判断自己“懂不懂技术”,只选最符合现状的一项。路线可以随时切换,阅读进度会保存在当前浏览器里。

零基础路线 · 不需要代码经验

这是最完整、最慢也最安心的一条路线。你只需要一个能接收邮件的邮箱和现代浏览器。所有操作都在网页里完成,不需要安装 Git、终端或代码编辑器

建议第一次按顺序完成;以后再贡献时,可以直接切换到“网页编辑”路线。

我还没有 GitHub 账号

已完成 0 / 10

01

Step 01

准备好账号需要的东西

只需要邮箱、浏览器和大约一小时;GitHub 免费,贡献 Wiki 也不会收费。

开始前准备好:

  1. 一个你能正常收信的长期邮箱
  2. Chrome、Edge、Safari 或 Firefox 等现代浏览器
  3. 想修改的资料,以及可以核对它的可靠来源

不需要准备: 银行卡、付费套餐、Git、终端、编程软件或 GitHub App。

GitHub 是存放和协作维护这个 Wiki 的平台。你的每次修改都会先放在自己的安全副本里,再通过 PR 交给维护者检查,所以不会一按按钮就直接改变正式网站。

安全提醒:密码、邮箱验证码、两步验证代码和恢复代码只能由你本人保管。维护者和 AI 都不需要这些信息。

完成标准: 你有一个可正常收信的邮箱,并知道整个流程可以只用浏览器免费完成。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
我准备第一次为一个粉丝 Wiki 做贡献,并且完全不了解 GitHub。请用非常简单的中文解释 Repository、Fork、Commit、Pull Request 分别是什么,以及为什么通过 PR 修改不会直接弄坏网站。不要假设我会编程,也不要向我索要任何账号密码或验证码。

你有一个可正常收信的邮箱,并知道整个流程可以只用浏览器免费完成。

02

Step 02

注册免费的 GitHub 个人账号

按 GitHub 页面提示创建个人账号;免费账号就足够,不需要选择 Pro。

  1. 打开下方的 GitHub 注册页面。
  2. 使用邮箱注册,或选择页面提供的 Google / Apple 登录方式。
  3. 设置用户名。它会公开显示在你的 PR 和贡献记录旁,建议使用你愿意长期公开的名字。
  4. 设置一个与其他网站不同的强密码,并自行妥善保存。
  5. 完成 GitHub 页面要求的人机验证。

如果页面询问用途或套餐,选择免费个人账号即可。贡献公开仓库不需要购买 GitHub Pro。

注册后打开邮箱,点击 GitHub 发来的验证链接。没有验证邮箱时,GitHub 会限制创建 Fork 和 Pull Request 等关键功能。

没收到邮件时:先检查垃圾邮件;再到 GitHub 右上角头像 → SettingsEmailsResend verification email。验证链接通常有时效,过期就重新发送。

完成标准: 你可以登录 GitHub,并且 Settings → Emails 中的主要邮箱显示为已验证。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
我正在注册 GitHub 免费个人账号。请一步一步告诉我当前注册页面通常需要填写什么,并解释“用户名会公开显示”是什么意思。不要替我生成或收集密码,不要让我发送邮箱验证码、两步验证代码或恢复代码。如果我描述某个报错,请只给安全的排查步骤。

你可以登录 GitHub,并且 Settings → Emails 中的主要邮箱显示为已验证。

03

Step 03

用 4 个词看懂接下来的流程

你不需要学 Git,只要知道“仓库 → Fork → Commit → PR”这条关系。

可以把整个流程想象成给同人志编辑部投稿:

  • Repository(仓库):编辑部保存全部稿件的项目文件夹。
  • Fork(复刻):GitHub 给你复印一份个人工作副本。
  • Commit(提交记录):你在副本里保存一次修改,并写一句修改说明。
  • Pull Request(PR):你把修改后的稿件交回编辑部,请维护者审阅和合并。

PR 不是“已经改完正式网站”,而是“请审阅我的修改”。维护者可能直接合并,也可能留言请你补充来源或修正文案。收到修改意见并不代表贡献失败,而是公开协作的正常部分。

GitHub 还会显示 Checks / CI:这是机器人自动检查文件格式和网站能否正常构建。绿色表示通过,红色表示有问题需要看详情。

完成标准: 你能用自己的话说出 Commit 是保存记录,而 PR 才是交给维护者审阅。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
请把 GitHub 的 Repository、Fork、Branch、Commit、Pull Request、Checks/CI 用“给编辑部投稿”的比喻解释给完全没有技术背景的人。最后给我一张从编辑文件到维护者合并的纯文字流程图。不要使用命令行术语。

你能用自己的话说出 Commit 是保存记录,而 PR 才是交给维护者审阅。

04

Step 04

确认目标文件和资料来源

正式动手前先确认路径、语言和来源;这是避免改错条目的关键一步。

看本页顶部的“本次目标文件”。正常情况下,它应以 src/content/ 开头,例如:

src/content/artists/vwp/kaf/zh.md

最后的 zh.md 是中文,ja.md 是日文,en.md 是英文。只修中文内容时就编辑 zh.md;新增完整条目时才需要同时考虑三种语言。

常见目录:

  • artists/:艺人、创作者、组合等百科条目
  • songs/:按艺人和曲种组织的歌曲词条
  • albums/:按艺人组织的专辑与唱片目录
  • projects/:企划与项目
  • logs/:新闻、活动和观测记录
  • site/:首页、导航、页脚文案

同时准备可追溯的来源,优先级建议为:官方站点/公告 → 官方账号发布 → 正式采访或可靠媒体。不要把 AI 生成内容、传闻或无法核实的粉丝讨论当成事实来源。

完成标准: 顶部路径对应正确条目和语言,并且你知道新事实来自哪里。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
我准备编辑 KAMITSUBAKI FAN WIKI,目标文件是:{{TARGET_PATH}}

请只根据这个路径解释它属于哪种内容、是哪种语言,以及我应该修改 frontmatter 还是 Markdown 正文。不要编造任何艺人资料;如果缺少事实来源,请明确提醒我先寻找官方来源。不要建议修改 dist、.astro、node_modules 或无关实现文件。

顶部路径对应正确条目和语言,并且你知道新事实来自哪里。

05

Step 05

打开 GitHub 网页编辑器

点击本路线底部的编辑按钮;GitHub 可能先请你登录,并自动为你创建 Fork。

点击页面底部的“前往 GitHub 编辑当前文件”。如果还没登录,GitHub 会先要求登录,完成后再回到编辑页。

你没有原仓库写入权限时,GitHub 会显示类似 Fork this repository 的提示,或在你提交修改时自动创建 Fork。确认即可——Fork 是你账号下的公开副本,不会改变原仓库。

进入后,你会看到文件路径和编辑框。请再次确认路径与本页顶部一致。GitHub 的按钮名称可能随界面更新略有变化,但核心顺序始终是:

打开文件 → 编辑 → Preview → Commit changes / Propose changes → Pull Request

如果铅笔编辑按钮不可用,先确认已登录且邮箱已验证;也可以重新从 Wiki 条目页的“编辑源文件”进入。

完成标准: 你已经看到 GitHub 的文件编辑框,并确认路径与本页顶部完全一致。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
我正在 GitHub 网页上编辑另一个人的公开仓库,目标文件是:{{TARGET_PATH}}

请根据我描述的当前页面,一次只告诉我下一步应该点击什么。GitHub 可能会自动创建 Fork,这是正常的。不要向我索要登录密码、验证码、Cookie、令牌或完整账户信息;如果需要看界面,只让我描述按钮文字或提供遮住隐私的截图。

你已经看到 GitHub 的文件编辑框,并确认路径与本页顶部完全一致。

06

Step 06

安全地修改 frontmatter 和正文

大多数贡献只改文字;保留文件顶部结构,不确定的字段不要随意删除。

Markdown 文件通常分成两部分:

---
locale: zh
translationKey: kaf
name: "花谱"
image: "https://example.com/image.jpg"
---

## 概述
这里开始是普通正文。

两条 --- 之间叫 frontmatter,保存标题、语言、图片等结构化信息;第二条 --- 后面是正文。

编辑时遵守这些规则:

  • 修错字时只改必要文字,不顺手重写无关段落。
  • 不要删除开头或结尾的 ---
  • locale 与文件名语言一致;同一条目的三语文件使用相同 translationKey
  • YAML 的缩进使用空格,不使用 Tab;引号和冒号要成对、保持原结构。
  • 新增事实时写清来源;不使用占位、猜测或 AI 编造内容。
  • 绝不填写密码、邮箱、住址、令牌等私人或敏感信息。

可使用 Markdown 标题、段落、列表、粗体、引用、表格和链接。第一次贡献建议从“修正一个明确错误”或“补一条有官方来源的资料”开始。

完成标准: 修改范围清楚、格式仍完整,新增事实有可核对来源,文件中没有私密信息。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
你是一位谨慎的 Markdown 编辑助手。我正在编辑:{{TARGET_PATH}}

我接下来会粘贴“准备修改的片段”和“可靠来源”,请帮我:
1. 只修改与来源直接支持的内容;
2. 保留 YAML frontmatter 的字段、缩进和两条 ---;
3. 不编造事实,不添加占位内容;
4. 不改无关段落;
5. 输出修改后的完整片段,再用中文列出改了什么。

如果来源不足,请停止改写并告诉我还缺什么。提醒我删除任何密码、验证码、令牌或私人信息。

修改范围清楚、格式仍完整,新增事实有可核对来源,文件中没有私密信息。

07

Step 07

预览差异并保存为一次 Commit

先看 Preview / Changes,确认只有预期内容,再写一条别人看得懂的修改说明。

编辑完成后先点击 Preview 或查看 Changes

  • 绿色通常代表新增内容,红色代表删除内容。
  • 检查有没有误删整段、破坏 ---、改错语言或出现奇怪缩进。
  • 链接、日期、人名和专有名词再核对一次。

然后点击 Commit changes…。提交说明写“做了什么”,例如:

docs: 修正花谱条目中的出道日期
docs: 补充花谱官方链接
docs: 修正文案错别字

对没有原仓库权限的贡献者,按钮也可能显示 Propose changes。GitHub 会把修改保存到你的 Fork/分支,并带你继续创建 PR。

Commit 是保存这一次修改,不等于 PR 已经提交。看到下一页后还要继续完成 Pull Request。

完成标准: 差异中只有你有意修改的内容,并且 Commit message 能清楚说明改动。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
请帮我检查一份 GitHub 网页编辑器中的 diff。我会粘贴绿色新增行和红色删除行。目标文件是:{{TARGET_PATH}}

请检查:是否误删内容、YAML frontmatter 是否可能损坏、语言是否一致、是否含未经来源支持的事实或隐私信息。然后给我 3 个简短中文 Commit message 备选。不要假设没贴出来的内容,也不要让我提供账号凭据。

差异中只有你有意修改的内容,并且 Commit message 能清楚说明改动。

08

Step 08

创建你的第一个 Pull Request

写清标题和说明,确认目标是原仓库的 main,然后点击 Create pull request。

保存 Commit 后,GitHub 通常会出现 Compare & pull requestOpen a pull requestCreate pull request。进入 PR 页面后检查:

  • base repositoryLinkTh1rsty/kamitsubaki-wiki-site
  • base branchmain
  • head fork / compare 是你账号下刚才保存修改的分支

PR 标题用一句话概括,例如:

docs: 补充花谱活动经历

PR 说明推荐写三项:

## 修改内容
- 补充 2024 年活动经历

## 资料来源
- 官方活动公告:https://...

## 语言与范围
- 简体中文;只修改花谱条目

最后点击 Create pull request。普通内容修正直接创建可审阅 PR 即可,不必选择 Draft。若页面出现 Allow edits from maintainers,保持允许通常更方便维护者协助小修。

完成标准: 你已经看到带编号的 PR 页面,例如 Pull Request #123,而不是仍停留在编辑或比较页面。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
请帮我撰写一个 KAMITSUBAKI FAN WIKI Pull Request。目标文件是:{{TARGET_PATH}}

我会提供实际修改内容和来源。请输出:
1. 一个不超过 60 个字符的 PR 标题;
2. 包含“修改内容 / 资料来源 / 语言与范围”的简洁 Markdown 说明;
3. 提交前检查清单。

不要编造我没有提供的修改或来源。不要输出密码、令牌或任何账户私密信息。

你已经看到带编号的 PR 页面,例如 Pull Request #123,而不是仍停留在编辑或比较页面。

09

Step 09

看懂 Checks、评论和修改要求

PR 提交后先等待自动检查;红色不等于失败,按详情修正并继续用同一个 PR。

PR 页面会显示 Checks 或状态图标:

  • 黄色/灰色:检查正在运行,先等待几分钟。
  • 绿色:自动检查通过,等待维护者 review。
  • 红色:某项检查失败,点 Details 看最先出现的具体错误。

常见问题包括 YAML 缩进错误、缺少必填字段、语言值写错或 Markdown 结构损坏。你可以回到 Fork 中的同一文件继续编辑并再次 Commit;新的提交会自动加入原来的 PR,不要重复开新 PR。

维护者可能在 Conversation 留总体意见,也可能在 Files changed 对某一行评论。修改后回复一句说明即可,例如“已补充官方来源并修正日期”。不要把讨论标记为已解决,除非问题确实已经处理。

如果维护者关闭 PR,先看原因。可能是内容重复、来源不足或方向不符合 Wiki;礼貌询问下一步,不要原样反复提交。

完成标准: 你知道 PR 的当前状态;若有红色检查或 review 意见,已经找到具体问题和对应修改位置。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
我提交的 GitHub PR 出现了检查失败或 review 评论。目标文件是:{{TARGET_PATH}}

我会粘贴公开的错误文字或评论内容。请先用简单中文解释它是什么意思,再给最小修改方案,并告诉我应在同一个 PR/分支继续修改。不要猜测未提供的日志,不要让我分享密码、Cookie、验证码、令牌或仓库机密。

你知道 PR 的当前状态;若有红色检查或 review 意见,已经找到具体问题和对应修改位置。

10

Step 10

完成贡献并保持联系

合并前耐心等待,合并后你的署名会留在 GitHub;下一次可以走更短的路线。

PR 提交后,你已经完成了贡献者需要做的核心工作。维护者会根据时间进行检查;公开项目不保证立即回复,请耐心等待 GitHub 通知。

状态可能是:

  • Open:仍在审阅或等待修改。
  • Merged:修改已合并,之后会随网站部署上线。
  • Closed:未合并并关闭,请查看维护者说明。

合并后不要删除或改写原 PR 讨论;它是资料变更的公开记录。如果上线后发现新问题,可以在原 PR 留言说明,或为新的独立问题提交新 PR。

下次只改已有文件时,切换到“我有账号,只想网页编辑”即可。贡献不以修改量衡量:一个可靠来源、一处准确日期、一个错别字都很有价值。

完成标准: PR 已提交且你知道在哪里查看状态;无论是否已合并,你都完成了一次完整、可追溯的贡献。

让 AI 帮我处理这一步

先补充你当前看到的页面、报错或不确定之处。系统会把它和本步骤目标、当前文件及项目约束组合成一段完整问题。

只描述界面和公开错误文字,不要填写密码、验证码、Cookie、令牌、邮箱或其他私人信息。

将复制以下完整提示词

0 / 600
请根据我描述的 GitHub PR 页面,解释它现在是 Open、Merged 还是 Closed,以及我下一步应该做什么。请用对新手友好的中文,一次只给必要操作。不要让我分享任何账号凭据或私密信息。

PR 已提交且你知道在哪里查看状态;无论是否已合并,你都完成了一次完整、可追溯的贡献。

Pull Request

把你的贡献送到我们面前

开始前做最后检查:目标文件正确;内容可核实;来源已写清;没有占位、猜测或私人信息。

点击右侧入口后,沿着你刚学到的流程前进:编辑 → Preview → Commit / Propose changes → Create pull request。如果卡住,就展开对应步骤里的 AI 提示词。

02 / 随用随查

写内容时,答案就在同一页。

不必离开贡献流程,也不必一次记住全部语法。先完成与你当前修改有关的部分;遇到格式、媒体或 frontmatter 字段时,再从目录直接跳到对应章节。

  1. 01先选一条贡献路线
  2. 02确认目标文件与语言
  3. 03修改时按需查语法
  4. 04预览差异并提交 PR

这是一份随用随查的参考,不要求一次读完。第一次贡献时先在本页上方选择路线;真正编辑时,遇到标题、链接、图片、媒体或 frontmatter 字段,再从目录跳到对应章节。

开始之前

一次可靠的内容修改,可以按这条最短路径完成:

  1. 确认目标文件位于 src/content/,并确认 zh.mdja.mden.md 与目标语言一致。
  2. 只修改与本次目的有关的内容;新增事实时准备可追溯来源。
  3. 保留 frontmatter 两侧的 ---、原有字段、缩进和引号。
  4. 在 GitHub 的 Preview / Changes 中检查差异,再提交 Pull Request。

本站使用 Markdown,而不是 wikitext。所有语法符号都应使用半角 ASCII 符号;中文输入法输入的全角 等不会被识别。

新手原则:优先完成“小而正确”的修改。不要顺手改动无关段落,也不要把 AI 输出当作事实来源。

标题

使用 # 创建标题,数量对应标题级别,最多六级。# 后必须有半角空格。词条正文通常从 ## 开始,因为页面标题已经由 frontmatter 提供。

写法:

## 二级标题
### 三级标题

显示效果:

三级标题示例

文本格式

写法:

**加粗文本**
*斜体文本*
***粗斜体文本***
~~删除线文本~~
`行内代码`

显示效果:

加粗文本斜体文本粗斜体文本删除线文本行内代码

列表

无序列表

使用 -+,并在符号后添加半角空格。

写法:

- 项目一
- 项目二

显示效果:

  • 项目一
  • 项目二

有序列表

使用数字、半角句点和空格。

写法:

1. 第一步
2. 第二步
3. 第三步

显示效果:

  1. 第一步
  2. 第二步
  3. 第三步

超链接

写法:

[本站地址](https://kamitsubaki.wiki/zh/)

显示效果:

本站地址

表格

使用 | 定义列,使用 - 定义表头分隔线。:--- 左对齐、:---: 居中、---: 右对齐。

写法:

| 艺人 | 歌名 | 歌词 |
| :--- | :---: | ---: |
| KAF | 糸 | 略 |
| RIM | 1999 | 略 |

显示效果:

艺人歌名歌词
KAF
RIM1999

Frontmatter

文件顶部的 frontmatter 用于填写词条属性,开始和结束标记都是 ---

写法:

---
locale: zh
translationKey: example-entry
title: 示例词条
---

实际用途: 页面会读取这些字段生成标题、语言关联和词条元数据;正文不会直接显示这段 YAML。

插入图片

写法:

![花譜《糸》的封面](/images/songs/shi.webp)

显示效果: 页面会在当前位置显示图片;若图片暂未加入仓库,替代文本仍会说明图片内容。

请将图片放在 public/images/ 目录下。网页路径从 /images/ 开始,不要把 public 写进 URL。信息图片应写清画面内容或用途;纯装饰图可以使用空描述 ![](...)

关于 Markdown 编辑器

实际上,markdown格式并不需要特殊的编辑器。你甚至可以用备忘录和记事本写md文件(只需在保存时更改扩展名为.md即可)。 对于没有接触过markdown格式的各位朋友,一个即时可视化的编辑器可能会更加适合你的编辑流程。在这里,本人推荐使用Obsidian进行编辑,功能较为全面且同时有多平台客户端。

Wiki 短语法与受控媒体

在学会基本的 Markdown 语法后,可以使用少量受支持的 HTML 完成注音、折叠和语义标记。正文会在构建时经过安全清理,并不是浏览器支持的所有 HTML 都能使用。

安全边界

正文仅允许以下几类标签:

  • 结构:ph1h6blockquotehrbrdivspan
  • 文本语义:aabbrbstrongiemusdelmarksmallcodeprekbdsampvarsubsupciteqtime
  • 列表与数据:ulollidldtddtabletheadtbodytfoottrthtd
  • Wiki 排版:rubyrtrpdetailssummaryfigurefigcaptionpictureimgsource

属性也采用白名单:普通链接、图片替代文本、表格跨度等标准属性会保留;class 只允许站点已经定义的少数用途。以下内容会被移除:

  • scriptstyleiframeobjectembedform 等可执行或可加载任意第三方内容的标签。
  • onclickonmouseoveronerror 等所有 on* 事件属性,以及内联 style
  • javascript: 等危险 URL 协议;正文自定义的 id / name 会添加安全前缀,避免覆盖页面对象。

贡献者通常不需要直接编写这些 HTML。优先使用下面的 Wiki 短语法;站点会在代码中生成对应标签,再经过同一白名单检查。需要新的交互效果时,请在 PR 中提议新增可复用短语法,不要把脚本或第三方播放器代码直接粘进词条。

Wiki 短语法速查

短语法采用类似函数的 {{名称::参数}} 形式,名称和参数数量都是固定的:

用途写法
注音{{ruby::正文::注音}}
注音与罗马音{{ruby::正文::假名::romaji}}
黑幕 / 剧透{{spoiler::默认隐藏的文字}}
高亮{{mark::重点}}
缩写解释{{abbr::V.W.P::Virtual Witch Phenomenon}}
键盘按键{{kbd::Ctrl+K}}
机器可读日期{{time::显示文字::2026-07-19}}
小字、上标、下标{{small::文字}}{{sup::2}}{{sub::2}}
歌词切换按钮{{lyrics-controls::zh}}(按文件语言改为 ja / en

行内短语法的参数只填写纯文本,不嵌套 Markdown 或 HTML;双冒号 :: 是参数分隔符,也不会破坏 Markdown 表格。名称拼错或参数数量不正确时不会生成标签,而会保留原文,方便在预览中发现问题。

写法:

{{mark::重点内容}}
{{abbr::V.W.P::Virtual Witch Phenomenon}}
按下 {{kbd::Ctrl+K}}
{{time::2026 年 7 月 19 日::2026-07-19}}
H{{sub::2}}O 与 x{{sup::2}}
{{small::补充说明}}

显示效果:

重点内容V.W.P、按下 Ctrl+K、H2O 与 x2补充说明

歌曲页把 {{lyrics-controls::zh}} 单独放在一段,并紧接在 .my-lyric-box 歌词容器之前。站点会生成当前语言所需的注音、翻译、罗马音和逐字歌词按钮;日文版会自动省略翻译按钮。语言参数必须与文件的 locale 一致。

歌词页面完整写法

歌词页由三部分组成:本地化切换按钮、歌词容器、重复的歌词行。按钮必须单独占一段并紧挨歌词容器;每个 lyric-line 对应一行原文和一行翻译。

代码语法

{{lyrics-controls::语言}}

<div class="my-lyric-box">

<div class="lyric-line">
<div class="jp-lyric">
<ruby>原文<rt class="furi">假名</rt><rt class="roma">romaji</rt></ruby>
</div>
<div class="cn-lyric">中文翻译</div>
</div>

</div>
  • 语言 使用当前文件的 zhjaen
  • furi 是“显示注音”轨道,roma 是“切换罗马音”轨道。
  • 中文翻译使用 cn-lyric;英文翻译使用 trans-lyric;日文文件不写翻译 <div>
  • 假名本身不需要注音时,也可以只写罗马音:<ruby>なら<rt class="roma">nara</rt></ruby>
  • 每增加一行歌词,就完整复制一组 lyric-line。不要把 {{ruby::...}} 短语法放进这段原始 HTML;HTML 块内部不会再次解析 Markdown 短语法。

写法

下面是一段可直接复制到中文歌曲文件中的完整单行歌词:

{{lyrics-controls::zh}}

<div class="my-lyric-box">

<div class="lyric-line">
<div class="jp-lyric">
<ruby>間違<rt class="furi">まちが</rt><rt class="roma">machiga</rt></ruby><ruby>い<rt class="roma">i</rt></ruby>
</div>
<div class="cn-lyric">若是错误</div>
</div>

</div>

实例

上面的代码会显示为可切换的歌词练习组件:

若是错误

逐字歌词时间轴

需要卡拉 OK 式逐字动画时,在每个歌词单元前直接写入 [mm:ss.xx][mm:ss.xxx] 时间标记。时间表示该单元相对于歌词计时器起点的开始时刻;播放期间,歌词会在相邻时间点之间从左向右连续填色。点击“播放”会从 00:00.00 开始计时,点击有时间标记的歌词行会跳到该行并继续播放,点击“重置”则回到起点。

  • mmss 必须各为两位数字,小数部分可以是两位或三位,例如 [00:03.50][01:02.345]
  • 时间标记紧贴它控制的 <ruby> 或纯文本,二者之间不要加空格。每个需要独立高亮的单元都要有自己的开始时间。
  • 每个 .jp-lyric 的第一个时间标记同时作为整行的跳转时间;翻译行建议在开头写入相同的行首时间。
  • 每个单元会填色到下一个时间标记;一行的最后一个单元会延续到下一行,末行则使用短暂的自动收尾时间。
  • 时间应按播放顺序递增。允许只为部分歌词添加时间;没有时间标记的行会保持普通显示。
  • 只编写方括号时间标记,不要手写站点生成的 lrc-taglrc-word 或脚本。时间必须人工试听校准,不能让 AI 猜测。
  • 当前歌词计时器是独立计时器,不会自动读取上方 YouTube、bilibili 或其他试听播放器的播放进度。

写法

{{lyrics-controls::zh}}

<div class="my-lyric-box">

<div class="lyric-line">
<div class="jp-lyric">
[00:00.00]<ruby>間違<rt class="furi">まちが</rt><rt class="roma">machiga</rt></ruby>[00:00.80]<ruby>い<rt class="roma">i</rt></ruby>
</div>
<div class="cn-lyric">[00:00.00]若是错误</div>
</div>

</div>

实例

启用逐字歌词后,下面两个日文单元会分别从 0 秒和 0.8 秒开始由左向右填色:

若是错误

AI 辅助生成歌词 HTML

歌词较长时,可以把已有的原文、读音、罗马音和翻译交给 AI 做机械排版。AI 只能转换你提供的内容,不能作为歌词、翻译或读音的来源;粘贴前仍需逐行校对,并确认内容来源允许用于本次贡献。

提示词语法

将下面整段复制给 AI,再替换最后五个输入区域:

你是 KAMITSUBAKI Wiki 的歌词 HTML 排版助手。请把我提供的歌词轨道转换成本站格式。

必须遵守:
1. 只转换输入,不补写歌词、不翻译、不改写、不猜测缺失读音。
2. 只输出可直接粘贴进 Markdown 的内容,不要解释,不要使用代码围栏。
3. 第一行输出 {{lyrics-controls::文件语言}},随后只生成一个 <div class="my-lyric-box"> 容器。
4. 每行使用 <div class="lyric-line">;日文原文放入 <div class="jp-lyric">。
5. 有假名和罗马音时使用 <ruby>原文<rt class="furi">假名</rt><rt class="roma">romaji</rt></ruby>。
6. 只有罗马音时使用 <ruby>原文<rt class="roma">romaji</rt></ruby>;没有可靠读音时保留纯原文。
7. 中文翻译使用 cn-lyric,英文翻译使用 trans-lyric;日文文件或未提供翻译时不生成翻译 div。
8. 严格保持原有行数、顺序、标点和文字。无法逐词对齐时,以整行一个 ruby 保留我提供的整行读音,不自行拆词。
9. 转义文本中的 <、>、&。禁止 style、所有 on* 属性、script、iframe、id 和未经要求的标签。
10. 检查所有 div、ruby、rt 均正确闭合,按钮与歌词容器之间只保留一个空行。

【文件语言】
zh / ja / en

【日文原文:每行对应一行歌词】
在这里粘贴

【假名:可选,行数必须与原文一致】
在这里粘贴

【罗马音:可选,行数必须与原文一致】
在这里粘贴

【翻译:可选,行数必须与原文一致】
在这里粘贴

写法

只替换输入区,例如:

【文件语言】
zh

【日文原文】
間違い

【假名】
まちがい

【罗马音】
machigai

【翻译】
若是错误

输出实例

合格的 AI 输出应类似下面这样,并能直接粘贴进歌曲正文:

{{lyrics-controls::zh}}

<div class="my-lyric-box">
<div class="lyric-line">
<div class="jp-lyric">
<ruby>間違い<rt class="furi">まちがい</rt><rt class="roma">machigai</rt></ruby>
</div>
<div class="cn-lyric">若是错误</div>
</div>
</div>

Ruby 注音

贡献者只需填写正文和读音:

{{ruby::局部坏死::zheng ge hao huo}}

如果需要逐字精准对齐,可以连续调用:

{{ruby::清::hun}}{{ruby::楚::dun}}

显示如下:

  • hundun

需要默认隐藏的补充内容

少量行内内容使用黑幕短语法,较长内容使用下一节的折叠块。两种写法都不需要文章脚本。

spoiler 的参数只能是纯文本,不要在 {{spoiler::...}} 内部放入 **加粗**、Markdown 链接或 HTML,否则短语法会作为原文显示。如果整段黑幕都需要加粗,可以写成 **{{spoiler::隐藏文字}}**;需要在隐藏内容中混排标题、列表或链接时,请改用下一节的 details 折叠块。

写法:

剧情结局是:{{spoiler::这里是默认隐藏的文字}}

显示效果:

剧情结局是:这里是默认隐藏的文字

收起与展开

使用成对的 details 短语法。开始和结束标记必须各占一段,前后留一个空行;中间仍可使用 Markdown:

{{details::点击展开完整曲目}}

1. 第一首歌曲
2. **第二首歌曲**

{{/details}}

显示效果如下:

点击展开完整曲目
  1. 第一首歌曲
  2. 第二首歌曲

普通段落换行请直接空一行;仅在表格单元格等特殊位置才需要白名单中的 <br>

插入音频/视频

本站提供统一的媒体嵌入短语法。将下面的语法单独放在一行,构建时会自动生成响应式、安全且延迟加载的 iframe

@[来源](媒体 ID 或分享链接 "可选标题")

支持的来源名称为 youtubebilibiliapple-musicspotifynetease(网易云音乐)和 qq-music。YouTube、bilibili、网易云音乐和 QQ 音乐可直接填写单曲/视频 ID;所有来源均支持常见的分享链接。

@[youtube](3Wtx6k2vInU "花譜 - 糸")
@[bilibili](BV1CJ411b7Ym "花譜 - 糸")
@[apple-music](https://music.apple.com/cn/song/example/123456789)
@[spotify](https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT)
@[netease](2637083551)
@[qq-music](001ABCDEF)

显示实例:

YouTube花譜 - 糸

聚合媒体切换

同一作品在多个平台都有官方内容时,可以用一个聚合块把原有媒体短语法组合起来。页面只显示当前选择的平台,并提供按钮切换;原来的单个 @[来源](...) 写法保持不变。

代码语法
{{media-switcher::聚合播放器标题}}
@[来源一](媒体 ID 或分享链接 "可选标题")
@[来源二](媒体 ID 或分享链接 "可选标题")
{{/media-switcher}}
写法
  • 标题必填,并应使用当前词条语言,例如作品名或“官方视听”。
  • 每条内容仍使用原来的媒体短语法;支持来源及地址验证规则完全相同。
  • 各行可以直接连续书写,不需要插入空行;同一行书写也能解析,但为了审阅和维护,推荐每个平台单独一行。
  • 一个聚合块接受 2–6 个不同平台。同一平台不能重复,不能嵌套聚合块,也不能混入普通段落。
  • 聚合块中的所有来源必须有效;只要有一个未知平台、恶意地址或错误 ID,整块就不会生成 iframe,而会保留为可见文本方便修正。
  • 无 JavaScript 时所有已验证播放器会顺序显示;启用 JavaScript 后使用按钮或键盘方向键、Home、End 切换。
实例
{{media-switcher::花譜 - 糸}}
@[bilibili](BV1CJ411b7Ym "花譜 - 糸")
@[youtube](3Wtx6k2vInU "花譜 - 糸")
{{/media-switcher}}

显示实例:

花譜 - 糸

bilibili花譜 - 糸
YouTube花譜 - 糸

在 Markdown 表格的同一个单元格中可以连续填写多个短语法,播放器会按照填写顺序纵向排列。该单元格只能包含短语法及空格,不要混入说明文字:

| 作曲 | 作词 | 试听 |
| --- | --- | --- |
| Wiz_nicc | Wiz_nicc | @[bilibili](BV13ZZNYQEQx) @[netease](2637083551) |

无法识别的来源或地址会保留为普通链接,不会生成任意第三方 iframe。新内容应使用短语法,以保持来源范围、尺寸、隐私属性和样式一致;不要直接复制第三方网站给出的原始 <iframe>

艺人页的外部链接品牌卡片

艺人页有两处可以填写官方链接,它们使用同一套平台识别与品牌样式,但写法不同。

资料卡中的官方链接

资料卡使用 frontmatter 的 officialLinks。每项必须同时填写显示名称 label 和完整地址 href

officialLinks:
  - label: "官方网站"
    href: "https://kaf.kamitsubaki.jp/"
  - label: "YouTube"
    href: "https://www.youtube.com/@virtual_kaf"

正文中的外部链接

正文必须使用独立的二级标题 ## 外部链接,并在其下直接书写普通 Markdown 无序列表。每一项都要把平台或页面名称写进链接文字:

## 外部链接

- [官方网站](https://kaf.kamitsubaki.jp/)
- [YouTube](https://www.youtube.com/@virtual_kaf)
- [X (Twitter)](https://x.com/virtual_kaf)
  • 不要写成 - YouTube:<https://...>- <https://...> 或只有说明文字的列表项;这些写法无法生成完整卡片。
  • 不要使用“参考资料与外部链接”之类的混合标题。资料来源放在独立的 ## 参考资料 下,供读者访问的官方主页和社交账号放在 ## 外部链接 下。
  • 中文、日文和英文艺人正文分别使用 外部链接外部リンクExternal Links;标题必须保持准确,站点才能识别。
  • JavaScript 可用时,列表会在艺人页增强为带平台 Logo、品牌色和外链箭头的响应式链接卡片;语义仍是用于跳转的链接,不是表单按钮。没有 JavaScript 时,它会保留为可读、可点击的普通列表。
  • 当前可识别 Bilibili、YouTube、X/Twitter、TikTok、Instagram、微博、Niconico、Spotify、Apple Music、网易云音乐、pixiv、piapro、Steam、Wikipedia 和 KAMITSUBAKI 官方站点;其他网址使用通用网站样式。
  • 不要在正文中粘贴平台 SVG 或远程 Logo,图标由站点统一提供。

提交前自检

  • 文件路径和 locale 对应,三语文件共享同一个 translationKey
  • frontmatter 的两个 ---、YAML 缩进和字段类型没有被破坏。
  • 日期使用 YYYY-MM-DD,时长使用 MM:SSHH:MM:SS
  • 新事实有可靠来源,链接能打开,信息图片有合适的替代文本。
  • 艺人正文的外链使用独立的 ## 外部链接- [名称](网址) 列表,没有裸网址或混合标题。
  • 媒体使用 @[来源](...),正文不包含脚本、事件属性、密码、令牌或个人隐私。
  • Preview / Changes 中只有本次需要的修改,没有误删其他语言或无关内容。

属性块指南

在编辑词条时,看不懂属性块的含义?在这里将会进行解释:

公有部分

以下属性是各类别词条共有的内容:

  • locale:表记该文档版本,分为zh(中文)、en(英文)、ja(日文)三类。请按照所编辑词条的语言来填写。
  • translationKey:多语言版本之间的共同标识。中文、日文、英文对应文件填写相同值。

写法实例:

locale: zh
translationKey: kaf-originals-shi

实际作用: 当前文件加入中文内容集合,并与使用同一 translationKey 的日文、英文文件关联。

艺人部分

最小实例:

name: 花譜
romanizedName: KAF
statusLabel: 活动状态
status: 活动中
image: /images/artists/kaf.webp

显示结果: 艺人页会以“花譜 / KAF”为标题,并显示状态和人物图片。

属性类型必填作用与填写内容
localezh / ja / en当前词条语言
translationKey字符串同一人物不同语言版本的共同标识
code字符串人物编号、档案编号或内部代码
name字符串当前语言中显示的人物名称
romanizedName字符串罗马字、拉丁字母名称或国际显示名
categoryTitle字符串所属分类的主标题
categorySubtitle字符串所属分类的副标题或英文说明
categoryOrder数字分类之间的排序值,较小值通常排在前面
itemOrder数字当前人物在所属分类内的排序值
meta字符串列表卡片上的简短元信息,例如身份、所属或一句概括
debutDate字符串出道日期。建议统一写为 YYYY-MM-DD
profileTagline字符串人物详情页上的简介标语
designCredits字符串数组角色设计、视觉设计、建模等制作人员名单
affiliations字符串数组所属厂牌、组合、企划或机构
officialLinks对象数组官方网站和官方社交链接
officialLinks[].label字符串链接名称,例如 Official SiteYouTube
officialLinks[].href字符串官方链接地址
featuredEntries对象数组人物页重点关联的其他词条
featuredEntries[].label字符串关联内容显示名称
featuredEntries[].href字符串对应词条路径
featuredEntries[].kind固定枚举关联内容类型,只能是 artistprojectalbumsong
theme公共主题对象当前人物详情页的个性化配色
statusLabel字符串状态字段的标题,例如“活动状态”
status字符串实际状态,例如“活动中”“已停止活动”
inactive布尔值是否为非活动状态。通常 true 表示已停止活动或归档
image字符串人物主图、头像或立绘路径
seo公共 SEO 对象当前词条的搜索和分享信息

企划部分

最小实例:

kind: project
title: 神椿市建設中。
description: 神椿世界观企划
order: 10

显示结果: 企划会按 order 排序,并使用标题和简介生成列表卡片。

属性类型必填作用与填写内容
localezh / ja / en当前企划词条的语言
translationKey字符串同一企划多语言版本的共同标识
kind字符串企划类型,例如 projectgamevirtual-world;Schema 不限制固定值
title字符串企划名称
description字符串企划简短介绍,通常用于列表卡片或页面摘要
order数字企划列表排序值
seo公共 SEO 对象搜索与分享信息

logs部分

最小实例:

date: "2026-07-19"
type: update
title: 站点内容更新
order: 10

显示结果: 日志页面会显示日期、类型和标题,并按 order 排列。

属性类型必填作用与填写内容
localezh / ja / en当前日志语言
translationKey字符串同一日志多语言版本的共同标识
date字符串日志日期。建议写 YYYY-MM-DD,但 Schema 不验证格式
type字符串日志类型,例如 updatenoticemaintenance
title字符串日志标题
summary字符串日志简短摘要
order数字日志排序值
seo公共 SEO 对象搜索和分享信息

歌曲部分

歌曲文件使用 艺人 ID / 分类 / 歌曲 ID / 语言.md 四级结构,例如 songs/kaf/originals/shi/zh.md。第一层艺人目录是该词条的规范存放位置,分类目录会同时用于所有关联艺人的目录页。推荐使用 originals(原创曲)、covers(翻唱曲)、genealogy(系谱曲)、suites(组曲)、collaborations(合作曲)和 projects(企划曲);新建其他文件夹也能自动形成新分类。

最小实例:

title: 
artist: 花譜
artistId: kaf
releaseDate: "2018-12-06"
duration: "03:52"

多艺人共享词条: 同一录音只能建立一个歌曲目录。任选一位主要艺人作为规范存放位置,并让 artistId 与路径第一层一致;再用 artistIds 写入所有需要收录该曲目的艺人 ID。例如《古傷》只保存在 songs/harusaruhi/collaborations/古傷-furukizu/

title: 古傷
artist: 幸祜×春猿火
artistId: harusaruhi
artistIds:
  - harusaruhi
  - koko
code: apple-1678038919

这样只需维护该目录中的 zh.mdja.mden.md,同一个词条就会同时出现在春猿火与幸祜的“合作曲”分类中,两个目录项也会链接到同一个规范页面。不要再在 songs/koko/ 下复制正文、translationKey 或封面资料。artistIds 中必须包含 artistId,且不能重复;建议把 artistId 写在第一项。若填写 code,它必须标识唯一录音,不可被另一歌曲目录重复使用。

显示结果: 歌曲详情页会显示标题、艺人、发布日期和时长,并归入 artistIds 指定的每一个艺人歌曲列表;未填写 artistIds 时只归入 artistId

属性类型必填作用与填写内容
localezh / ja / en当前歌曲词条语言
translationKey字符串同一歌曲多语言版本的共同标识
title字符串歌曲标题
artist字符串主演唱者或艺人名称
artistId小写英文 ID规范存放艺人 ID,例如 kaf;必须与歌曲路径第一层文件夹一致
artistIds小写英文 ID 列表需要收录此同一词条的所有艺人目录;多艺人歌曲必须填写,并包含 artistId,不得重复
composer字符串作曲者
lyricist字符串作词者
album字符串所属专辑
duration字符串歌曲时长。建议统一写 03:45,但 Schema 不验证格式
releaseDate字符串发行日期。建议使用 YYYY-MM-DD
code字符串唯一录音编号、档案编号或内部代码;不同歌曲目录不得重复
categoryTitle字符串所属分类标题
categorySubtitle字符串所属分类副标题
categoryOrder数字分类排序值
itemOrder数字歌曲在分类内的排序值
image字符串歌曲封面、单曲封面或专辑图片路径
seo公共 SEO 对象搜索和分享信息

专辑部分

最小实例:

title: 観測α
artist: 花譜
type: Album
releaseDate: "2019-09-11"
tracks:
  - number: 1
    title: 
    songId: kaf/originals/shi

显示结果: 专辑页会生成基本信息和曲目表;带 songId 的曲目可跳转到本站歌曲页。

属性类型必填作用与填写内容
localezh / ja / en当前专辑词条语言
translationKey字符串同一专辑多语言版本的共同标识
title字符串专辑标题
romanizedTitle字符串专辑的罗马字、拉丁字母或国际显示名
artist字符串专辑主要艺人
type字符串作品类型,例如 AlbumEPMini Album
description字符串用于详情页标题区的简短介绍
releaseDate字符串发行日期,建议使用 YYYY-MM-DD
label字符串发行厂牌
catalogNumber字符串商品编号或唱片编号
trackCount数字总曲目数
duration字符串专辑总时长
code字符串列表编号、档案编号或内部代码
categoryTitle字符串所属分类标题
categorySubtitle字符串所属分类副标题
categoryOrder数字分类排序值
itemOrder数字专辑在分类内的排序值
image字符串专辑封面路径或 URL
officialLinks对象数组官方页面、购买或串流链接;每项填写 labelhref
tracks对象数组曲目表;每项必须填写 title,还可填写 discnumberartistdurationsongId
tracks[].songId字符串关联本站歌曲词条的路径,例如 kaf/originals/shi
theme公共主题对象专辑详情页的个性化配色
seo公共 SEO 对象搜索和分享信息

歌曲与专辑补写标准

补写分为两个可以独立审核的完成度:

  • 可进入目录: 路径、必填元数据、官方来源、本地高清图片、官方链接和最小正文已经可靠;允许曲目互链、歌词或三语长文尚未完成,但必须明确说明缺少什么。
  • 完整词条: 在可进入目录的基础上,补齐确认过的曲目、站内歌曲互链、正文、可用的歌词资料和三语内容。完整不等于堆满字段,不确定的内容仍然应省略。
目录代码语法
songs/<artistId>/<category>/<songId>/<locale>.md
albums/<artistId>/<albumId>/<locale>.md
写法

歌曲先按艺人、再按曲种分类;专辑只按艺人和专辑 ID 组织,不按曲种或艺人分类页面的 UI 分组重复建目录。artistIdsongIdalbumId 使用稳定的小写 slug,三语文件共用同一 translationKey

实例
src/content/songs/kaf/originals/shi/
├── zh.md
├── ja.md
└── en.md

src/content/albums/kaf/kansoku-alpha/
├── zh.md
├── ja.md
└── en.md
歌曲补写验收标准
  • 路径中的 artistId、分类和 songId 与词条元数据一致,分类优先复用 originalscoversgenealogysuitescollaborationsprojects
  • 标题、发布日期、作词、作曲等事实由官方网站、官方投稿说明、正式发行页或可靠采访支持;AI 输出不能作为来源。
  • categoryOrderitemOrder 与现有文件不冲突,并保持公开顺序或已有站内顺序稳定。
  • image 指向仓库内真实文件;不用临时外链、搜索缩略图、占位图或没有必要的重复图片。
  • 视频使用 @[bilibili](BV...) 等受控短语法;不写原始 <iframe>,不自动播放,不嵌入非官方搬运。
  • 正文至少说明“这是什么作品”并列出可追溯来源;没有歌词不会阻止词条进入目录。添加歌词时需区分原文、翻译、罗马音,沿用歌词控件,并确认来源与版权边界。
  • 新词条优先同时补 zh.mdja.mden.md。暂缺的翻译或事实应在 PR 说明中列出,不写“待补充”、虚构译文或占位正文。
专辑补写验收标准
  • 可进入目录的最低条件: 作品名、艺人、类型、已确认的发行信息、官方封面、至少一个官方或正版串流链接、三语共同 translationKey,以及有来源的最小正文。
  • 封面优先从 Apple Music 等正版串流服务或官方商品页取得可用的最高质量版本,原则上为正方形且至少 1500 × 1500。禁止搜索缩略图、截图、占位图和单纯插值放大的假高清图。
  • 封面保存为 public/images/albums/<artistId>/<albumId>.jpg,frontmatter 使用 /images/albums/<artistId>/<albumId>.jpg,不直接依赖第三方图片 URL。
  • trackCount 与确认过的总曲数一致;填写 tracks 时按官方曲目表校对碟号、序号、标题、艺人和时长。
  • 只有目标歌曲词条真实存在时才填写 tracks[].songId。未建歌曲页的曲目保留 title 即可,不制造坏链接。
  • 普通版、再版、重混版、现场版只有在官方作为不同发行物时才拆分;不能把不同版本的发行日期和曲目混在同一词条。
  • 曲目或正文未完成时,在正文和 PR 中明确范围,不用虚构数据补齐,也不能写成已经完整收录。
  • 三语文件的结构元数据、曲序、封面和链接保持一致,只本地化显示名称与正文。
正文代码语法
## 作品简介

说明作品定位、发行背景和已核实的制作信息。

## 官方视听

@[bilibili](BVxxxxxxxxxx)

## 补写状态

当前已完成基本资料与官方链接;完整曲目互链将在对应歌曲词条建立后补齐。

## 来源

- [官方作品页](https://example.com/official)
- [Apple Music](https://music.apple.com/example)
写法

只写来源能够支持的断言。补写状态要告诉审核者和后续编辑者“已经完成什么、还缺什么”,但不要把计划或猜测写成百科事实。

实例

花谱现有补写可参考 src/content/songs/kaf/src/content/albums/kaf/public/images/albums/kaf/。提交前运行:

pnpm check
pnpm test
pnpm build

检查通过只是最低条件,不能代替来源、曲序、链接和图片质量审核。

高级用法:保留的 HTML 语法

短语法适合大多数贡献者,但原有的安全 HTML 写法仍然支持,便于维护旧词条或进行更精细的排版。HTML 必须写在正文中并遵守前文的白名单;styleonmouseoveronclickscript 和原始 iframe 会被安全清理。

HTML Ruby 注音

写法:

<ruby>局部坏死<rt>zheng ge hao huo</rt></ruby>
<ruby>清<rt>hun</rt>楚<rt>dun</rt></ruby>

显示效果:

局部坏死zheng ge hao huohundun

HTML 黑幕

旧版依靠内联样式和鼠标事件的写法不再允许;保留的安全 HTML 使用站点定义好的 wiki-spoiler 类。

写法:

<span class="wiki-spoiler" tabindex="0">默认隐藏的文字</span>

显示效果:

默认隐藏的文字

HTML 收起与展开

写法:

<details>
  <summary>点击展开完整曲目</summary>
  <p>这里是默认收起的补充内容。</p>
</details>

显示效果:

点击展开完整曲目

这里是默认收起的补充内容。

HTML 语义标记与换行

写法:

<mark>重点</mark>
<abbr title="Virtual Witch Phenomenon">V.W.P</abbr>
按下 <kbd>Ctrl+K</kbd><br>
H<sub>2</sub>O,x<sup>2</sup>

显示效果:

重点V.W.P、按下 Ctrl+K
H2O,x2

原始 HTML 只用于白名单内的静态排版。音频和视频仍应使用 @[来源](...),歌词按钮仍应使用 {{lyrics-controls::zh}},这样交互能力由站点代码统一维护。