【介绍】
项目的发起人注册了 js.org 域名,并且免费提供给前端开发者使用它的二级域名。
提供形如 https://domain.js.org 的三级域名服务。
官网:https://js.org/
官网:https://github.com/js-org
示例:https://charge.js.org/
原址:http://charge-js.netlify.com/
【安装】
讲明白了 github pages 服务和 js.org 服务,这两个服务的使用方法,以及整篇文章联系起来,如何快速给你的项目发布一个在线文档的途径。
创建自己的 github pages:
1. github pages 则不需要费用,它是免费的。
2. github 给每一个开发者提供了一个免费的 github.io 子域名,二级域名名称就是开发者的注册 id,在你开通 github pages 服务之后,就可以使用这个子域名了。
1. 在 github 上创建一个新项目,作为要放 pages 的项目。
比如创建一个名字叫 xxx.github.io 的项目,然后将自己的网站源码 push 到这个项目中。(pages 服务只接受静态资源)
可以给单个项目创建一个文档服务,可以有两种选择:
1)在项目 master 分支根目录下方创建一个 docs 目录,用于存放文档;
2)创建一个新分支 gh-pages 作为存放文档的独立分支。
2. 上传网站文件。
在每一种方式的根目录下,放一个 index.html 作为首页。docs 目录作为 gh-pages 时,把 index.html 放在 docs 目录下。因为只允许提供静态资源,所以,基本上,你只能靠 js 来完成编程了。
完成网站的制作后,把对应的内容 push 到仓库中。
3. 开启 pages 服务。
你已经完成了前两步。接下来,我们开启 pages 服务。点击项目顶部导航中的 Settings 菜单,往下拉,找到 GitHub Pages 这个部分,
选择对应的 Source 选项。在最新版的 github 后台,点击其中一个选项之后,会自动刷新页面,并且提示你 pages 已经发布成功,你可以访问网页上出现的网址进行访问。
根据官方提示,只有在管理员的 push 才能触发 pages 网站的更新,因此要额外注意这一点。
现在,你可以使用 yourname.github.io/yourproject 访问你的 pages 主页了。
域名绑定:
1. CNAME 文件。
在文档根目录创建一个名为 CNAME 的文件,在这个文件中,其内容必须只能是你要绑定的域名。例如:nautil.js.org
然后将更新后的 pages 文件 push 到项目中。 经过测试,你不需要自己创建这个 CNAME 文件,而是在执行下一步时自动帮你生成这个 CNAME 文件。
这个时候,当你再访问 github 给你默认配的域名地址时,你会发现,网址发生了跳转。
2. 绑定域名。
理论上,CNAME 被 push 之后,github 应该自动给我做域名绑定。但是实际上,并没有,CNAME 文件似乎只是为了实现跳转。而要将我们自己的域名绑定到 gh-pages 服务上,还必须在刚才操作的设置页面,填写要绑定的域名(必须和 CNAME 中的一致)。
填写好,点击 Save 之后,在 github 所要做的事情就完成了。
3. 域名解析。
如果你不是使用 js.org 域名,你需要到你的 dns 服务商处去修改对应的解析记录。这条解析记录应该是一个指向 yourname.github.io 的 CNAME 记录。
当然,如果你要使用 js.org 域名,请继续往下读。
申请和绑定 js.org 域名:
1. fork 仓库。
进入 js.org 的主仓库:https://github.com/js-org/js.org ,点击右上角的 Fork 按钮。稍等一下刷新页面。这样,这个仓库就被 fork 到你自己的名下。
2. 修改代码。
将 fork 过来到仓库 clone 到本地,然后用编辑器打开,找到 cnames_active.js 文件,添加你的二级域名,以及 CNAME 到的网址。push 回 github。
3. Pull Request。
回到你 fork 的仓库页面,找到一个叫 Pull Request 的按钮。点击它,提交。
这样就完成了域名申请和绑定了。是不是很简单。接下来的事情,就是等待,因为中美之间的时差关系,你最好在晚上 12 点之前完成上面这些操作(根据indus的提醒,他实际上是在德国工作,因此时间比我们早)。等美国那边的项目维护者上线之后,就会对你的 pull request 进行检查,如果没有问题,就会 approve,一切顺利,就会 merge,之后很快你就可以用拿到的域名访问你的 gh-pages 了。
如果你有兴趣,还可以继续看看 ns_active.js,看完之后,你就能再次明白,js.org 就是一个域名服务项目啊。
使用 docsify :
这个项目,专门为前端开发者写 gh-pages 而生。这个项目本身是用 vue 实现的,就是为 github 上的项目写文档而设计的。
我们在项目中怎么写文档?当然是用 markdown 来写。如果你要发布一个网页来组织文档,怎么想都会很麻烦,比如直接用 html 写,不现实;比如用 md 写完之后,本地用一个工具转为 html,例如 gitbook 做的,也不如意。而 docsify 直接通过解析 md 文档来实现渲染。你写文档就是写 md 文件,不用做任何修改。只是,在你的 docs 目录下,再加一个 index.html 即可。在这个 index.html 文档中,我们直接使用 docsify 的 CDN 文件,然后整个 pages 网站就渲染好了。
你可以阅读 nautil 的文档主页 https://nautil.js.org/ ,然后查看源码,就可以发现,原来事情如此简单。
【参考】