内容简介:从
rxjs6.docset 成品下载地址
代码仓库
https://github.com/xinshangshangxin/dash-rxjs-6
原理
从 官方文档 Any HTML Documentation 可知, 只要有 HTML, 就可以轻松构建 Dash 文档
步骤
创建文件夹 <docset name>.docset/Contents/Resources/Documents/
创建 Info.plist 文件 和 icon.png
Info.plist 的模板 在 https://kapeli.com/resources/Info.plist
从 https://rxjs-dev.firebaseapp.com/api 解析有哪些 API
从 Network 中可以 看到 一个 /generated/docs/api/api-list.json 的请求, 里面有每个 API 内容, 如下图
创建 SQLite Index
将上面 api-json 的内容 创建到 SQLite Index
CREATE TABLE searchIndex(id INTEGER PRIMARY KEY, name TEXT, type TEXT, path TEXT);
创建 每个 API 的 html 界面
- 从
api-json的内容中 有path属性, 可以请求每个界面的详细内容(content属性)
- 从
ReactiveX/rxjs的仓库中 发现 用了assets/js/prettify.js来格式化代码, 所以相同的, 在我们创建的 html 界面中需要 prettify 来格式化代码显示, 代码如下
let codeEleList = document.querySelectorAll('body code-example');
[...codeEleList].forEach((ele) => {
let html = window.prettyPrintOne(ele.innerHTML, 'javascript', false);
ele.innerHTML = `<aio-code>
<pre class="prettyprint lang-javascript">
<code class="animated fadeIn">${html}
</code>
</pre>
</aio-code>`;
});
- 由于是离线文档, 所以在 html 中所有的地址都要转化成相对路径, 代码如下
let depth = location.href.replace(/.*\/api\//, '').split('/').length;
let aEleList = document.querySelectorAll('a');
[...aEleList].forEach((ele) => {
let href = ele.href;
if (/\/api\//.test(href)) {
let depthStr = new Array(depth).fill('..').join('/');
let [preUrl, anchor = ''] = href.split('#');
ele.href = preUrl.replace(/.*\/api\//, `${depthStr}/api/`) + '.html' + '#' + anchor;
}
});
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
构建之法(第二版)
邹欣 / 人民邮电出版社 / 2015-7 / 59
软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此基础上,作者对......一起来看看 《构建之法(第二版)》 这本书的介绍吧!