docs/intro/htc.md
在文章开始之前,OI Wiki 项目组全体成员十分欢迎您为本项目贡献页面.正因为有了上百位像您一样的人,才有了 OI Wiki 的今天!
这篇文章将主要叙述参与 OI Wiki 编写的写作过程.请您在撰稿或者修正 Wiki 页面以前,仔细阅读以下内容,以帮助您完成更高质量的内容.
请您在编辑前查看 OI Wiki 贡献指南 和 项目方针,以更好地和社区贡献者进行合作、交流.
???+ warning "Warning" 在开始编写一段内容之前,请查阅 Issues,确认没有别人在做相同的工作之后,开个 新 issue 记录待编写的内容.
???+ tip "Tip" 在 Issues 中也有很多待修复/解决的问题,尤其是我们的迭代计划(Iteration Plan).从这里获取任务是一个很好的开始!
为了保证条目内容的专业性和准确性,我们建议您在编辑前先考虑以下几点:
我们珍惜每位贡献者的热情和付出,也理解大家的专业水平不尽相同.让我们携手合作,共同呵护这个知识的乐园,用准确、专业的内容去帮助更多读者.期待您的贡献!在这里引用维基百科的一句话:
不要害怕编辑,勇于更新页面!1
参与 OI Wiki 的编写 需要 一个 GitHub 账号(可以前往 GitHub 的账号注册页面 页面注册),但 不需要 高超的 GitHub 技巧,即使你是一名新手,只要按照下面所述的步骤操作,也能够 非常出色 地完成编辑.
???+ tip "Tip" 在你的更改被合并到 OI Wiki 的主仓库之前,你对 OI Wiki 的内容所作出的修改均不会出现在 OI Wiki 的主站上,所以无需担心你的修改会破坏 OI Wiki 上正在显示的内容.
如果还是不放心,可以查看 [GitHub 的官方教程](https://skills.github.com/).
在等待合并的时间里,你可以给他人的 Pull Request 提意见、点赞或者点踩.如果有新消息,会在网页右上角出现提示,并附有邮件提醒(取决于个人设置中配置的通知方式).
如果你需要同时编辑互相无关联的多个页面的内容,请按照上方的 编辑单个页面内的内容 一节一次修改所有页面.
github.com 更改为 github.dev)2,进入 GitHub 的网页版 VS Code 编辑器;Created Pull Request #1 for OI-Wiki/OI-Wiki.,点击蓝字链接即可查看该 Pull Request.<您的ID> wants to merge x commits into OI-wiki:master from <您的ID>:patch-1 的文字,点击 <您的ID>:patch-1 部分.patch-1).github.com 更改为 github.dev)2,进入 GitHub 的网页版 VS Code 编辑器并作出更改.然后使用左侧的 Source Control 选项卡,并按照本文中 commit 信息格式规范 填写 commit 信息并提交修改.???+ warning "Warning" 对于一般用户,我们更推荐使用上方所述的 GitHub 的 Web 编辑器进行编辑.
虽然大多数情况下您可以直接在 GitHub 上进行编辑,但对于一些较为特殊的情况(如需要使用 GPG 签名),我们更推荐使用 Git 在本地进行编辑.
大致流程如下:
详细的操作方式可以参考 Git 页面.
在 clone 下来的本地分支仓库中继续进行修改,并提交(commit)以及推送(push)这些更改即可.你的更改会被自动追加在 Pull Request 中.
在 Pull Request 页面下方可以找到测试页面,点击 netlify/oi-wiki/deploy-preview 一项的 Details 链接(如下图),可以进入自动构建的,由您变更后的页面供您预览.
通常情况下,如果您需要添加一个新页面,或者修改已有页面在目录中的链接,您就需要对 mkdocs.yml 文件作出改动.
添加新页面可以参考既有的格式.但除非是进行重构或修正名词,否则 我们不建议对既有页面的引用链接进行修改,Pull Requests 中不必要的修改也将被驳回.
如果您坚持要修改链接,请注意更新 author 字段和重定向文件.
GitHub API 在文件目录变更后不能跟踪统计,所以我们在文件头手动维护了一个作者列表来解决这个问题.author 字段位于整个 Markdown 文件的开头,形如 author: Ir1d, cjsoft,相邻两个 ID 之间用逗号加空格隔开.这里的 ID 是 GitHub 的用户名,即 GitHub profile 的地址(例如 https://github.com/Ir1d 中的 Ir1d).
修改链接时,需要将当前页面中的 contributors 逐一填入 author 字段.
在修改链接时,为了避免在站外引用时出现死链,需要修改重定向文件.
_redirects 文件用于生成 netlify 的配置 和 用于跳转的文件.
每一行表示一个重定向规则,分别写跳转的起点和终点的 url(不包含域名):
/path/to/src /path/to/desc
注:所有跳转均为 301 跳转,只有在修改目录中 url 造成死链的时候需要修改.
对于提交时需要填写的 commit 信息,请遵守以下几点基本要求:
对于 commit 摘要,推荐按照如下格式书写:
<修改类型>(<文件名>): <修改的内容>
修改类型分为如下几类:
feat:用于添加内容的情况.fix:用于修正现有内容错误的情况.refactor:用于对一个页面进行重构(较大规模的更改)的情况.revert:用于回退之前更改的情况.对于 Pull Request,请遵守以下几点要求:
fix #xxxx 字段,其中 xxxx 代表 issue 的编号.对于 Pull Request 的标题,推荐使用如下格式书写:
<修改类型>(<文件名>): <修改的内容> (<对应 issue 的编号>)
修改类型分为如下几类:
feat:用于添加内容的情况.fix:用于修正现有内容错误的情况.refactor:用于对一个页面进行重构(较大规模的更改)的情况.revert:用于回退之前更改的情况.示例:
fix(ds/persistent-seg): 修改代码注释使描述更清晰fix: tools/judger/index 不在目录中 (#3709)feat(math/poly/fft): better proofrefactor(ds/stack): 整理页面内容review 或 suggested changes(建议更改,显示为灰色图标)/requested changes(强制更改,显示为红色图标,只会在 reviewer 拥有 repo 写权限时出现).一般来说,reviewer 也会附上建议和需要进行的更改,在这时,您将会需要继续向 Pull Request 追加其他更改.更改的方法可以参考 在 GitHub 上编辑 或者 使用 Git 在本地进行编辑 部分的 向 Pull Request 追加更改 部分.