F.A.Q.

本页面主要解答一些常见的问题。

我想问点与这个 Wiki 相关的问题

Q:你们是为什么想要做这个 Wiki 的呢

A:不知道你在学 OI 的时候,面对庞大的知识体系,有没有感到过迷茫无助的时候?OI Wiki 想要做的事情可能类似于“让更多竞赛资源不充裕的同学能方便地接触到训练资源”。当然这么表述也不完全,做 Wiki 的动机可能也很纯粹,只是简单地想要对 OI 的发展做出一点点微小的贡献吧。XD


Q:我很感兴趣,怎么参与?

A:OI Wiki 现在托管在 GitHub 上,你可以直接访问这个 repo 来查看最新进展。参与的途径包括在 GitHub 上面开 IssuePull Request,或者在交流群中分享你的想法、直接向管理员投稿。目前,我们使用的框架是用 Python 开发的 MkDocs,支持 Markdown 格式(也支持插入数学公式)。


Q:可是我比较弱……不知道我能做点什么

A:一切源于热爱。你可以协助其他人审核修改稿件,帮助我们宣传 OI Wiki,为社区营造良好学习交流氛围!


Q:现在主要是谁在做这件事啊?感觉这是个大坑,真的能做好吗?

A:最开始主要是一些退役老年选手在做这件事,后来遇到了很多志同道合的小伙伴:有现役选手,退役玩家,也有从未参加过 OI 的朋友。目前,这个项目主要是由 OI Wiki 项目组来维护(下面是一张合影)。

当然,这个项目只靠我们的力量是很难做得十全十美的,我们诚挚地邀请你一起来完善 OI Wiki


Q:你们怎么保证我们添加的内容不会突然消失

A:我们把内容托管在 GitHub 上面,即使我们的服务器翻车了,内容也不会丢失。另外,我们也会定期备份大家的心血,即使有一天 GitHub 倒闭了(?),我们的内容也不会丢失。


Q:OI Wiki 好像有空的页面啊

A:是的。受限于项目组成员的水平和时间,我们暂时无法完成这些空页面。所以我们在这里进行征稿和招募,希望可以遇到有同样想法的朋友,我们一起把 OI Wiki 完善起来。


Q:为什么不直接去写 中文维基百科

A:因为我们希望可以真正帮到更多的选手或者对这些内容感兴趣的人。而且由于众所周知的原因,中文维基上的内容并不是无门槛就可以获取到的。

我想参与进来!

Q:我要怎么与项目组交流?

A:可以通过 关于本项目里的交流方式 联系我们。


Q:我要怎么贡献代码或者内容?

请参考 如何参与 页面。


Q:目录在哪?

A:目录在项目根目录下的 mkdocs.yml 文件中。


Q:如何修改一个 topic 的内容

A:在对应页面右上方有一个编辑按钮edit,点击并确认阅读了 如何贡献 之后会跳转到 GitHub 上对应文件的位置。

或者也可以自行阅读目录 (mkdocs.yml) 查找文件位置。


Q:如何添加一个 topic?

A:有两种选择:

  • 可以开一个 Issue,注明希望能添加的内容。
  • 可以开一个 Pull Request,在目录 (mkdocs.yml) 中加上新的 topic,并在 docs 文件夹下对应位置创建一个空的 .md 文件。文档的格式细节请参考 格式手册

Q:我尝试访问 GitHub 的时候遇到了困难

A:推荐在 hosts 文件中加入如下几行1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# GitHub Start
192.30.255.112  gist.github.com
192.30.255.112  github.com
192.30.255.112  www.github.com
151.101.56.133  avatars0.githubusercontent.com
151.101.56.133  avatars1.githubusercontent.com
151.101.56.133  avatars2.githubusercontent.com
151.101.56.133  avatars3.githubusercontent.com
151.101.56.133  avatars4.githubusercontent.com
151.101.56.133  avatars5.githubusercontent.com
151.101.56.133  avatars6.githubusercontent.com
151.101.56.133  avatars7.githubusercontent.com
151.101.56.133  avatars8.githubusercontent.com
151.101.56.133  camo.githubusercontent.com
151.101.56.133  cloud.githubusercontent.com
151.101.56.133  gist.githubusercontent.com
151.101.56.133  marketplace-screenshots.githubusercontent.com
151.101.56.133  raw.githubusercontent.com
151.101.56.133  repository-images.githubusercontent.com
151.101.56.133  user-images.githubusercontent.com
# GitHub End

可以在 GoogleHosts 主页 上了解到更多信息。

Linux 和 macOS 用户可以尝试使用 依云gh-check 脚本 获取访问最快的 IP,使用 --hosts 参数可以直接更新 hosts 文件。使用 --help 参数可以获取使用帮助。使用先需要安装 Python3 和 aiohttp(pip install aiohttp -i https://pypi.tuna.tsinghua.edu.cn/simple/)。依云博客的介绍:寻找最快的 GitHub IP

同时,您可以使用 FastGit 服务加速 Clone,可以阅读其 使用文档

如果您仅仅是想 Clone OI Wiki 的仓库,那么:

1
git clone https://hub.fastgit.xyz/OI-wiki/OI-wiki.git

如果您需要向 OI Wiki 贡献,那么首先 fork OI Wiki 的仓库,然后(将 username 替换为您的用户名),需要注意的是提供的示例将使您使用 SSH 连接到 GitHub5

1
2
git clone https://hub.fastgit.xyz/username/OI-wiki.git
git remote set-url origin [email protected]:username/OI-wiki.git

Q:我这里 pip 也太慢了

A:可以选择更换国内源2,或者:

1
pip install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

Q:我在客户端 clone 了这个项目,速度太慢

A:如果有安装 git bash,可以加几个限制来减少下载量。3

1
git clone https://github.com/OI-wiki/OI-wiki.git --depth=1 -b master

Q:我没装过 Python 3

A:可以访问 Python 官网 了解更多信息。


Q:好像提示我 pip 版本过低

A:进入 cmd/shell 之后,执行以下命令:

1
python -m pip install --upgrade pip

Q:我安装依赖失败了

A:检查一下:网络?权限?查看错误信息?


Q:我已经 clone 下来了,为什么部署不了?

A:检查一下是否安装好了依赖?


Q:我 clone 了很久之前的 repo,怎么更新到新版本呢

A:请参考 GitHub 官方的帮助页面 Syncing a fork - GitHub Docs


Q:如果是装了之前的依赖怎么更新?

A:请输入以下命令:

1
pip install -U -r requirements.txt

Q:为什么我的 markdown 格式乱了?

A:可以查阅 cyent 的笔记,或者 MkDocs 使用说明

我们目前使用 remark-lint 来自动化修正格式,可能还有一些 配置 不够好的地方,欢迎指出。


Q:GitHub 是不是不显示我的数学公式?

A:是的,GitHub 的预览不显示数学公式。但是请放心,MkDocs 是支持数学公式的,可以正常使用,只要是 MathJax 支持的句式都可以使用。


Q:我的数学公式怎么乱码了?

A:如果是行间公式(用的 $$),目前已知的问题是需要在 $$ 两侧留有空行,且 $$单独 放在一行里(且不要在前加空格)。格式如下:

1
2
3
4
5
// 空行
$$
a_i
$$
// 空行

Q:我的公式为什么在目录里没有正常显示?好像双倍了

A:是的,这个是 python-markdown 的一个 bug,可能近期会修复。

如果想要避免目录中出现双倍公式,可以参考 string 分类下 SAM 的目录写法

1
结束位置 <script type="math/tex">endpos</script>

在目录中会变成

1
结束位置 endpos

注:现在请尽量避免在目录中引入 MathJax 公式。


Q:如何给一个页面单独声明版权信息

A:在页面开头加一行即可。4

比如:

1
copyright: SATA

注:默认的是 CC BY-SA 4.0 和 SATA。


Q:为什么作者信息统计处没有我的名字?

A:因为 GitHub API 在文件目录变更后不能跟踪统计,所以我们在文件头手动维护了一个作者列表来解决这个问题。

如果你发现自己写过一个页面中的部分内容,但是你没有被记录进作者列表,可以把自己的 GitHub ID 加入到文件头的 author 字段,格式是 author: Ir1d, cjsoft,相邻两个 ID 之间用 (逗号和空格)隔开。

注:这里记录的 ID 是对应到 GitHub Profile 的地址(即点击 GitHub 页面右上角之后跳转到的个人主页的 url)。


Q:重定向文件怎么用?

A:_redirects 文件用于生成 netlify 的配置用于跳转的文件

每一行表示一个重定向规则,分别写跳转的起点和终点的 url(不包含域名):

1
/path/to/src /path/to/desc

注:所有跳转均为 301 跳转,只有在修改目录中 url 造成死链的时候需要修改。


感谢你看到了最后,我们现在亟需的,就是你的帮助。

OI Wiki 项目组

2018.8

参考资料与注释


评论