diff --git a/assets/index.js b/assets/index.js
index 5994aec7..161b5329 100644
--- a/assets/index.js
+++ b/assets/index.js
@@ -1,7 +1,15 @@
// 正则转义
-RegExp.escape = function (s) {
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
-};
+escapeRe = s => {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+}
+
+// html实体编码
+escapeHtml = s => {
+ return s.replace(//g, ">")
+ .replace(/"/g, """)
+ .replace(/'/g, "");
+}
// 列表
list = (path, initial, type, name ,desc) => {
@@ -19,26 +27,29 @@ showList = (text, index, listnum) => {
var obn = [];
var obd = [];
index.forEach(i => {
- let name = i.name,
- desc = i.desc != undefined ? i.desc : "",
- initial = name.slice(0, 1).toUpperCase(),
- reg = new RegExp(RegExp.escape(text), "i"),
- match1 = reg.exec(name),
- match2 = reg.exec(desc);
+ let reg = new RegExp(escapeRe(text), "i",)
+ match1 = reg.exec(i.name),
+ match2 = reg.exec(i.desc),
+ name = escapeHtml(i.name),
+ desc = i.desc != undefined ? escapeHtml(i.desc) : "",
+ type = i.type != undefined ? escapeHtml(i.type) : "";
+ let initial = i.name.replace(/<|>|"|'/ig, '')
+ initial = /^.*?([a-zA-Z])/.exec(initial);
+ initial = initial ? initial[1].toUpperCase() : ' ';
// 优先显示名称匹配的内容
if (match1) {
name = highlightList(name, match1[0]);
if (match2) desc = highlightList(desc, match2[0]);
// 置顶全字匹配的内容
if (i.name.toUpperCase() == text.toUpperCase()) {
- obn.unshift(list(i.path, initial, i.type, name, desc));
+ obn.unshift(list(i.path, initial, type, name, desc));
} else {
- obn.push(list(i.path, initial, i.type, name, desc));
+ obn.push(list(i.path, initial, type, name, desc));
}
// 其次显示描述匹配的内容
} else if (match2) {
desc = highlightList(desc, match2[0]);
- obd.push(list(i.path, initial, i.type, name, desc));
+ obd.push(list(i.path, initial, type, name, desc));
}
});
window.info = obn.concat(obd);
@@ -47,39 +58,38 @@ showList = (text, index, listnum) => {
utools.setExpendHeight(num > 11 ? 550 : 50 * num);
$(".select").removeClass('select');
$(".info:first").addClass('select');
+ // 鼠标锁,方式鼠标抢占选择条
window.mouseLockTime = new Date().getTime();
}
// 显示手册
-showManual = async path => {
+showManual = path => {
utools.setExpendHeight(550);
if (/^((ht|f)tps?):\/\//.test(path)) {
window.open(path);
} else {
- let p = path.split('.html#')
- if (p.length == 2) {
- var f = p[0] + '.html';
- var id = '#' + p[1];
+ let e = /(.*?)(\.html)*#(.*)/.exec(path);
+ if (e) {
+ var f = e[1] + '.html';
+ var id = '#' + e[3];
} else {
- var f = p[0]
+ var f = window.dirs.idxFile ? path : path + '.html';
}
var file = `${window.dirs.docPath}/${f}`;
- try {
- var data = await readFile(file);
- $("#mainlist").fadeOut();
- $("#manual").fadeOut().promise().done(() => {
- var relPath = f.substr(0, f.lastIndexOf('/') + 1),
- absPath = window.dirs.docPath + relPath;
+ $("#mainlist").fadeOut();
+ $("#manual").fadeIn().html('
Loading
')
+ $.get(file, data => {
+ // $("#manual").fadeOut().promise().done(() => {
+ var relPath = f.substr(0, f.lastIndexOf('/') + 1);
+ // a 标签改为相对路径
data = data.replace(/(a.*?)href="(?!http)(.*?)"(.*?)(?!\#)/g, `$1href="${relPath}$2$3"`);
- data = data.replace(/(link.*?)href="(?!http)(.*?)"(.*?)(?!\#)/g, `$1href="${absPath}$2$3"`);
- data = data.replace(/src="(?!http)(.*?)"/g, `src="${absPath}$1"`);
- $("#manual").html(`${data}
`).fadeIn();
+ // devdocs 语法高亮
+ data = data.replace(/([\s\S]*?)<\/pre>/g, '$2
')
+ $("#manual").html(`${data}
`);
Prism.highlightAll();
- location.href = p.length == 2 ? id : '#manualHead';
+ location.href = e ? id : '#manualHead';
})
- } catch(e) {
- console.log(e)
- }
+ // })
}
}
@@ -157,20 +167,21 @@ utools.onPluginEnter( async ({ code, type, payload }) => {
init();
checkUpdate();
if (code == 'options') {
+ window.defaultPage = 0;
showOptions();
} else {
$("#mainlist").fadeIn();
- var allFts = getAllFeatures(),
+ var allFts = /^dd_/.test(code) ? await getDevdocs() : await getManuals(),
baseDir,
css;
switch (allFts[code].type) {
case "default":
- baseDir = getDirname();
+ baseDir = dirname;
css = `${baseDir}/assets/${code}.css`
window.dirs = {
idxFile: `${baseDir}/index/${code}.json`,
docPath: `${baseDir}/docs`,
- }
+ }
break;
case "custom":
baseDir = allFts[code].path;
@@ -180,14 +191,20 @@ utools.onPluginEnter( async ({ code, type, payload }) => {
docPath: `${baseDir}`,
}
break;
+ case "devdocs":
+ window.dirs = {
+ docPath: allFts[code].url.slice(0, -11),
+ }
}
- if (window.exists(css)) {
- $("#manualCSS").attr("href", css)
- }
+ window.exists(css) && $("#manualCSS").attr("href", css);
// 读取目录文件
try {
- var index = await readFile(window.dirs.idxFile);
- index = JSON.parse(index);
+ if (window.dirs.idxFile) {
+ var index = await readFile(window.dirs.idxFile);
+ index = JSON.parse(index);
+ } else {
+ var index = utools.db.get(code).data;
+ }
if (type == 'over') {
showList(payload, index, 500)
} else {
@@ -216,7 +233,7 @@ $("#mainlist").on('mousedown', '.info', function (e) {
// 鼠标滑过列表,高亮
$("#mainlist").on('mousemove', '.info', function () {
- // 设置500ms的鼠标锁
+ // 鼠标锁 500ms
var mouseUnlockTime = new Date().getTime();
if (mouseUnlockTime - window.mouseLockTime > 500) {
$(".select").removeClass('select');
@@ -276,7 +293,6 @@ $(document).keydown(e => {
let pre = $(".select").prev();
// 没有到达边界时移动选择条
if(pre.length != 0){
- // event.preventDefault();
if(pre.offset().top < $(window).scrollTop()){
$("html").animate({ scrollTop: "-=50" }, 0);
}
@@ -292,7 +308,6 @@ $(document).keydown(e => {
let next = $(".select").next();
// 没有到达边界时移动选择条
if(next.length !=0){
- // event.preventDefault();
if(next.offset().top >= $(window).scrollTop() + 550){
$("html").animate({ scrollTop: "+=50" }, 0);
}
diff --git a/assets/options.js b/assets/options.js
index c59045c1..531802d8 100644
--- a/assets/options.js
+++ b/assets/options.js
@@ -1,169 +1,94 @@
+// 选择器转义
+escapeJq = s => {
+ return s.replace( /(:|\.|\[|\]|,|=|@)/g, "\\$1" );
+}
+
// 默认和自定义手册
-getAllFeatures = () => {
- var defaultFts = {
- "linux": {
- features: {
- "code": "linux",
- "explain": "linux命令大全",
- "cmds": ["linux命令"],
- "icon": "logo/linux.png"
- },
- type: "default"
- },
- "php": {
- features: {
- "code": "php",
- "explain": "官方php函数文档",
- "cmds": ["php函数"],
- "icon": "logo/php.png"
- },
- type: "default"
- },
- "python": {
- features: {
- "code": "python",
- "explain": "官方python标准库及常用第三方库文档",
- "cmds": ["python库"],
- "icon": "logo/python.png"
- },
- type: "default"
- },
- "c": {
- features: {
- "code": "c",
- "explain": "C语言函数速查",
- "cmds": ["C函数"],
- "icon": "logo/c.png"
- },
- type: "default"
- },
- "javascript": {
- features: {
- "code": "javascript",
- "explain": "MDN javascript中文文档",
- "cmds": ["js文档"],
- "icon": "logo/javascript.png"
- },
- type: "default"
- },
- "jQuery": {
- features: {
- "code": "jQuery",
- "explain": "jQuery官方中文文档",
- "cmds": ["jQuery文档"],
- "icon": "logo/jQuery.png"
- },
- type: "default"
- },
- "vue": {
- features: {
- "code": "vue",
- "explain": "vue官方中文API文档",
- "cmds": ["vue文档"],
- "icon": "logo/vue.png"
- },
- type: "default"
- },
- "vim": {
- features: {
- "code": "vim",
- "explain": "vim命令大全",
- "cmds": ["vim命令"],
- "icon": "logo/vim.png"
- },
- type: "default"
- },
- "git": {
- features: {
- "code": "git",
- "explain": "git命令概览",
- "cmds": ["git命令"],
- "icon": "logo/git.png"
- },
- type: "default"
- },
- "docker": {
- features: {
- "code": "docker",
- "explain": "docker常用命令",
- "cmds": ["docker命令"],
- "icon": "logo/docker.png"
- },
- type: "default"
- },
- "sql": {
- features: {
- "code": "sql",
- "explain": "sql操作手册",
- "cmds": ["sql手册"],
- "icon": "logo/sql.png"
- },
- type: "default"
- },
- "utools": {
- features: {
- "code": "utools",
- "explain": "uTools的API文档",
- "cmds": ["uToolsAPI"],
- "icon": "logo/utools.png"
- },
- type: "default"
- }
- };
+getManuals = async () => {
+ var defaultFts = await readFile(`${dirname}/features/default.json`);
+ defaultFts = JSON.parse(defaultFts);
var db = utools.db.get("customFts"),
customFts = db ? db.data : {},
allFts = Object.assign(defaultFts, customFts);
return allFts;
}
+// devdocs
+getDevdocs = async () => {
+ var devDocs = await readFile(`${dirname}/features/devdocs.json`);
+ return JSON.parse(devDocs);
+}
// 配置页面
-showOptions = () => {
- $("#options").show();
- var currentFts = utools.getFeatures(),
- allFts = getAllFeatures();
- let featureList = '
| 关键字 | 说明 | 启用 | 主输入框搜索 |
';
+showOptions = async () => {
+ var currentFts = utools.getFeatures();
+ var allFts = window.defaultPage ? await getDevdocs() : await getManuals();
+ let featureList = ``
$("#options").html(featureList);
+ if (window.defaultPage) {
+ $("#devdocs").html('中文手册');
+ $('#add').addClass("disabled");
+ }
+ $('#options').fadeIn();
+ $('html').getNiceScroll().resize();
}
showCustomize = () => {
@@ -185,17 +110,20 @@ showCustomize = () => {
}
// 开关
-$("#options").on('change', 'input[type=checkbox]', function () {
- var allFts = getAllFeatures(),
- id = $(this).attr('id').split('_'),
- code = id[0];
- if (id[1] == '1') {
- if (!utools.removeFeature(code)) {
+$("#options").on('change', 'input[type=checkbox]', async function () {
+ var allFts = window.defaultPage ? await getDevdocs() : await getManuals();
+ var id = $(this).attr('id'),
+ code = id.slice(0, -2),
+ num = id.slice(-1);
+ if (num == '1') {
+ id = escapeJq(code);
+ if ($(this).prop('checked')) {
utools.setFeature(allFts[code].features);
- $(`#${code}_2`).prop('disabled', false);
+ $(`#${id}_2`).prop('disabled', false);
} else {
- $(`#${code}_2`).prop('checked', false);
- $(`#${code}_2`).prop('disabled', true);
+ utools.removeFeature(code);
+ $(`#${id}_2`).prop('checked', false);
+ $(`#${id}_2`).prop('disabled', true);
}
} else {
var featureConf = allFts[code].features;
@@ -213,11 +141,20 @@ $("#options").on('change', 'input[type=checkbox]', function () {
// 底部功能按钮
$("#options").on('click', '.footBtn', function () {
switch ($(this).attr('id')) {
- case 'add': showCustomize();
+ case 'add':
+ $(this).hasClass("disabled") || showCustomize();
break;
- case 'enableAll': $(".checked-switch:not(:checked)[id*='_1']").click();
+ case 'devdocs':
+ window.defaultPage = (window.defaultPage + 1) % 2;
+ $('#options').fadeOut().promise().done(() => {
+ showOptions();
+ })
break;
- case 'disableAll': $(".checked-switch:checked").click();
+ case 'enableAll':
+ $(".checked-switch:not(:checked)[id*='_1']").click();
+ break;
+ case 'disableAll':
+ $(".checked-switch:checked").click();
break;
}
})
@@ -228,26 +165,49 @@ $("#options").on('click', '.cancelBtn', function () {
})
// 编辑
-$("#options").on('click', '.editBtn', function () {
+$("#options").on('click', '.editBtn', async function () {
var code = $(this).attr('code');
- var data = utools.db.get("customFts").data[code];
- showCustomize();
- $("#code").attr('disabled', true);
- $('#code').val(data.features.code);
- $('#kw').val(data.features.cmds.toString());
- $('#desc').val(data.features.explain);
- $('#path').val(data.path);
+ if (window.defaultPage) {
+ var docs = await getDevdocs(),
+ url = docs[code].url;
+ $(this).removeClass('editBtn');
+ $(this).html('Waiting...')
+ $.get(url, content => {
+ utools.db.put({ _id: code, data: content.entries });
+ var id = escapeJq(code)
+ $(`#${id}_1`).prop('disabled', false);
+ $(this).html('✘');
+ $(this).addClass('delBtn');
+ })
+ } else {
+ var data = utools.db.get("customFts").data[code];
+ showCustomize();
+ $("#code").attr('disabled', true);
+ $('#code').val(data.features.code);
+ $('#kw').val(data.features.cmds.toString());
+ $('#desc').val(data.features.explain);
+ $('#path').val(data.path);
+ }
})
// 删除
$("#options").on('click', '.delBtn', function () {
- var code = $(this).attr('code'),
- db = utools.db.get("customFts"),
- data = db.data;
- delete data[code];
- utools.removeFeature(code);
- utools.db.put({ _id: "customFts", data: data, _rev: db._rev });
- showOptions();
+ var code = $(this).attr('code');
+ if (window.defaultPage) {
+ utools.db.remove(code);
+ $(this).html('⇩');
+ $(this).removeClass('delBtn').addClass('editBtn');
+ var id = escapeJq(code);
+ $(`#${id}_1:checked`).click();
+ $(`#${id}_1`).prop('disabled', true);
+ } else {
+ var db = utools.db.get("customFts"),
+ data = db.data;
+ delete data[code];
+ utools.removeFeature(code);
+ utools.db.put({ _id: "customFts", data: data, _rev: db._rev });
+ showOptions();
+ }
})
// 选择文件夹
@@ -258,7 +218,7 @@ $("#options").on('click', '.selectBtn', function () {
// 保存
$("#options").on('click', '.saveBtn', function () {
var code = $('#code').val()
- var allFts = getAllFeatures();
+ var allFts = getManuals();
if (code in allFts && $("#code").prop('disabled') == false) {
$('#code').css({ 'border-bottom-color': '#ec1212' })
window.messageBox({ type: 'error', message: "名称与现有的手册重复!", buttons: ['朕知道了'] })
diff --git a/features/default.json b/features/default.json
new file mode 100644
index 00000000..ac9540aa
--- /dev/null
+++ b/features/default.json
@@ -0,0 +1,110 @@
+{
+ "linux": {
+ "features": {
+ "code": "linux",
+ "explain": "linux命令大全",
+ "cmds": ["linux命令"],
+ "icon": "logo/linux.png"
+ },
+ "type": "default"
+ },
+ "php": {
+ "features": {
+ "code": "php",
+ "explain": "官方php函数文档",
+ "cmds": ["php函数"],
+ "icon": "logo/php.png"
+ },
+ "type": "default"
+ },
+ "python": {
+ "features": {
+ "code": "python",
+ "explain": "官方python标准库及常用第三方库文档",
+ "cmds": ["python库"],
+ "icon": "logo/python.png"
+ },
+ "type": "default"
+ },
+ "c": {
+ "features": {
+ "code": "c",
+ "explain": "C语言函数速查",
+ "cmds": ["C函数"],
+ "icon": "logo/c.png"
+ },
+ "type": "default"
+ },
+ "javascript": {
+ "features": {
+ "code": "javascript",
+ "explain": "MDN javascript中文文档",
+ "cmds": ["js文档"],
+ "icon": "logo/javascript.png"
+ },
+ "type": "default"
+ },
+ "jQuery": {
+ "features": {
+ "code": "jQuery",
+ "explain": "jQuery官方中文文档",
+ "cmds": ["jQuery文档"],
+ "icon": "logo/jQuery.png"
+ },
+ "type": "default"
+ },
+ "vue": {
+ "features": {
+ "code": "vue",
+ "explain": "vue官方中文API文档",
+ "cmds": ["vue文档"],
+ "icon": "logo/vue.png"
+ },
+ "type": "default"
+ },
+ "vim": {
+ "features": {
+ "code": "vim",
+ "explain": "vim命令大全",
+ "cmds": ["vim命令"],
+ "icon": "logo/vim.png"
+ },
+ "type": "default"
+ },
+ "git": {
+ "features": {
+ "code": "git",
+ "explain": "git命令概览",
+ "cmds": ["git命令"],
+ "icon": "logo/git.png"
+ },
+ "type": "default"
+ },
+ "docker": {
+ "features": {
+ "code": "docker",
+ "explain": "docker常用命令",
+ "cmds": ["docker命令"],
+ "icon": "logo/docker.png"
+ },
+ "type": "default"
+ },
+ "sql": {
+ "features": {
+ "code": "sql",
+ "explain": "sql操作手册",
+ "cmds": ["sql手册"],
+ "icon": "logo/sql.png"
+ },
+ "type": "default"
+ },
+ "utools": {
+ "features": {
+ "code": "utools",
+ "explain": "uTools的API文档",
+ "cmds": ["uToolsAPI"],
+ "icon": "logo/utools.png"
+ },
+ "type": "default"
+ }
+}
\ No newline at end of file
diff --git a/features/devdocs.json b/features/devdocs.json
new file mode 100644
index 00000000..36f85998
--- /dev/null
+++ b/features/devdocs.json
@@ -0,0 +1,3182 @@
+ {
+ "dd_Angular": {
+ "features": {
+ "code": "dd_Angular",
+ "explain": "devdocs上的Angular文档",
+ "cmds": ["dd_Angular"],
+ "icon": "logo/Angular.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angular/index.json"
+ },
+ "dd_Angular_5": {
+ "features": {
+ "code": "dd_Angular_5",
+ "explain": "devdocs上的Angular 5文档",
+ "cmds": ["dd_Angular_5"],
+ "icon": "logo/Angular.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angular~5/index.json"
+ },
+ "dd_Angular_4": {
+ "features": {
+ "code": "dd_Angular_4",
+ "explain": "devdocs上的Angular 4文档",
+ "cmds": ["dd_Angular_4"],
+ "icon": "logo/Angular.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angular~4/index.json"
+ },
+ "dd_Angular_2": {
+ "features": {
+ "code": "dd_Angular_2",
+ "explain": "devdocs上的Angular 2文档",
+ "cmds": ["dd_Angular_2"],
+ "icon": "logo/Angular.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angular~2/index.json"
+ },
+ "dd_Angular.js_1.6": {
+ "features": {
+ "code": "dd_Angular.js_1.6",
+ "explain": "devdocs上的Angular.js 1.6文档",
+ "cmds": ["dd_Angular.js_1.6"],
+ "icon": "logo/Angular.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angularjs~1.6/index.json"
+ },
+ "dd_Angular.js_1.5": {
+ "features": {
+ "code": "dd_Angular_1.5",
+ "explain": "devdocs上的Angular.js 1.5文档",
+ "cmds": ["dd_Angular.js_1.5"],
+ "icon": "logo/Angular.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angularjs~1.5/index.json"
+ },
+ "dd_Angular.js_1.4": {
+ "features": {
+ "code": "dd_Angular.js_1.4",
+ "explain": "devdocs上的Angular.js 1.4文档",
+ "cmds": ["dd_Angular.js_1.4"],
+ "icon": "logo/Angular.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angularjs~1.4/index.json"
+ },
+ "dd_Angular.js_1.3": {
+ "features": {
+ "code": "dd_Angular.js_1.3",
+ "explain": "devdocs上的Angular.js 1.3文档",
+ "cmds": ["dd_Angular.js_1.3"],
+ "icon": "logo/Angular.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angularjs~1.3/index.json"
+ },
+ "dd_Angular.js_1.2": {
+ "features": {
+ "code": "dd_Angular.js_1.2",
+ "explain": "devdocs上的Angular.js 1.2文档",
+ "cmds": ["dd_Angular.js_1.2"],
+ "icon": "logo/Angular.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/angularjs~1.2/index.json"
+ },
+ "dd_Ansible_2.7": {
+ "features": {
+ "code": "dd_Ansible_2.7",
+ "explain": "devdocs上的Ansible 2.7文档",
+ "cmds": ["dd_Ansible_2.7"],
+ "icon": "logo/Ansible.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ansible~2.7/index.json"
+ },
+ "dd_Ansible_2.6": {
+ "features": {
+ "code": "dd_Ansible_2.6",
+ "explain": "devdocs上的Ansible 2.6文档",
+ "cmds": ["dd_Ansible_2.6"],
+ "icon": "logo/Ansible.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ansible~2.6/index.json"
+ },
+ "dd_Ansible_2.5": {
+ "features": {
+ "code": "dd_Ansible_2.5",
+ "explain": "devdocs上的Ansible 2.5文档",
+ "cmds": ["dd_Ansible_2.5"],
+ "icon": "logo/Ansible.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ansible~2.5/index.json"
+ },
+ "dd_Ansible_2.4": {
+ "features": {
+ "code": "dd_Ansible_2.4",
+ "explain": "devdocs上的Ansible 2.4文档",
+ "cmds": ["dd_Ansible_2.4"],
+ "icon": "logo/Ansible.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ansible~2.4/index.json"
+ },
+ "dd_Apache_HTTP_Server": {
+ "features": {
+ "code": "dd_Apache_HTTP_Server",
+ "explain": "devdocs上的Apache HTTP Server文档",
+ "cmds": ["dd_Apache_HTTP_Server"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_http_server/index.json"
+ },
+ "dd_Apache_Pig_0.17": {
+ "features": {
+ "code": "dd_Apache_Pig_0.17",
+ "explain": "devdocs上的Apache Pig 0.17文档",
+ "cmds": ["dd_Apache_Pig_0.17"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_pig~0.17/index.json"
+ },
+ "dd_Apache_Pig_0.16": {
+ "features": {
+ "code": "dd_Apache_Pig_0.16",
+ "explain": "devdocs上的Apache Pig 0.16文档",
+ "cmds": ["dd_Apache_Pig_0.16"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_pig~0.16/index.json"
+ },
+ "dd_Apache_Pig_0.15": {
+ "features": {
+ "code": "dd_Apache_Pig_0.15",
+ "explain": "devdocs上的Apache Pig 0.15文档",
+ "cmds": ["dd_Apache_Pig_0.15"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_pig~0.15/index.json"
+ },
+ "dd_Apache_Pig_0.14": {
+ "features": {
+ "code": "dd_Apache_Pig_0.14",
+ "explain": "devdocs上的Apache Pig 0.14文档",
+ "cmds": ["dd_Apache_Pig_0.14"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_pig~0.14/index.json"
+ },
+ "dd_Apache_Pig_0.13": {
+ "features": {
+ "code": "dd_Apache_Pig_0.13",
+ "explain": "devdocs上的Apache Pig 0.13文档",
+ "cmds": ["dd_Apache_Pig_0.13"],
+ "icon": "logo/Apache.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/apache_pig~0.13/index.json"
+ },
+ "dd_Async": {
+ "features": {
+ "code": "dd_Async",
+ "explain": "devdocs上的Async文档",
+ "cmds": ["dd_Async"],
+ "icon": "logo/Async.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/async/index.json"
+ },
+ "dd_Babel": {
+ "features": {
+ "code": "dd_Babel",
+ "explain": "devdocs上的Babel文档",
+ "cmds": ["dd_Babel"],
+ "icon": "logo/Babel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/babel/index.json"
+ },
+ "dd_Backbone.js": {
+ "features": {
+ "code": "dd_Backbone.js",
+ "explain": "devdocs上的Backbone.js文档",
+ "cmds": ["dd_Backbone.js"],
+ "icon": "logo/Backbone.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/backbone/index.json"
+ },
+ "dd_Bash": {
+ "features": {
+ "code": "dd_Bash",
+ "explain": "devdocs上的Bash文档",
+ "cmds": ["dd_Bash"],
+ "icon": "logo/Bash.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bash/index.json"
+ },
+ "dd_Bluebird": {
+ "features": {
+ "code": "dd_Bluebird",
+ "explain": "devdocs上的Bluebird文档",
+ "cmds": ["dd_Bluebird"],
+ "icon": "logo/Bluebird.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bluebird/index.json"
+ },
+ "dd_Bootstrap_4": {
+ "features": {
+ "code": "dd_Bootstrap_4",
+ "explain": "devdocs上的Bootstrap 4文档",
+ "cmds": ["dd_Bootstrap_4"],
+ "icon": "logo/Bootstrap.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bootstrap~4/index.json"
+ },
+ "dd_Bootstrap_3": {
+ "features": {
+ "code": "dd_Bootstrap_3",
+ "explain": "devdocs上的Bootstrap 3文档",
+ "cmds": ["dd_Bootstrap_3"],
+ "icon": "logo/Bootstrap.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bootstrap~3/index.json"
+ },
+ "dd_Bottle_0.12": {
+ "features": {
+ "code": "dd_Bottle_0.12",
+ "explain": "devdocs上的Bottle 0.12文档",
+ "cmds": ["dd_Bottle_0.12"],
+ "icon": "logo/Bottle.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bottle~0.12/index.json"
+ },
+ "dd_Bottle_0.11": {
+ "features": {
+ "code": "dd_Bottle_0.11",
+ "explain": "devdocs上的Bottle 0.11文档",
+ "cmds": ["dd_Bottle_0.11"],
+ "icon": "logo/Bottle.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bottle~0.11/index.json"
+ },
+ "dd_Bower": {
+ "features": {
+ "code": "dd_Bower",
+ "explain": "devdocs上的Bower文档",
+ "cmds": ["dd_Bower"],
+ "icon": "logo/Bower.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/bower/index.json"
+ },
+ "dd_C": {
+ "features": {
+ "code": "dd_C",
+ "explain": "devdocs上的C文档",
+ "cmds": ["dd_C"],
+ "icon": "logo/C.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/c/index.json"
+ },
+ "dd_C++": {
+ "features": {
+ "code": "dd_C++",
+ "explain": "devdocs上的C++文档",
+ "cmds": ["dd_C++"],
+ "icon": "logo/C++.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cpp/index.json"
+ },
+ "dd_CakePHP_3.6": {
+ "features": {
+ "code": "dd_CakePHP_3.6",
+ "explain": "devdocs上的CakePHP 3.6文档",
+ "cmds": ["dd_CakePHP_3.6"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.6/index.json"
+ },
+ "dd_CakePHP_3.5": {
+ "features": {
+ "code": "dd_CakePHP_3.5",
+ "explain": "devdocs上的CakePHP 3.5文档",
+ "cmds": ["dd_CakePHP_3.5"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.5/index.json"
+ },
+ "dd_CakePHP_3.4": {
+ "features": {
+ "code": "dd_CakePHP_3.4",
+ "explain": "devdocs上的CakePHP 3.4文档",
+ "cmds": ["dd_CakePHP_3.4"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.4/index.json"
+ },
+ "dd_CakePHP_3.3": {
+ "features": {
+ "code": "dd_CakePHP_3.3",
+ "explain": "devdocs上的CakePHP 3.3文档",
+ "cmds": ["dd_CakePHP_3.3"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.3/index.json"
+ },
+ "dd_CakePHP_3.2": {
+ "features": {
+ "code": "dd_CakePHP_3.2",
+ "explain": "devdocs上的CakePHP 3.2文档",
+ "cmds": ["dd_CakePHP_3.2"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.2/index.json"
+ },
+ "dd_CakePHP_3.1": {
+ "features": {
+ "code": "dd_CakePHP_3.1",
+ "explain": "devdocs上的CakePHP 3.1文档",
+ "cmds": ["dd_CakePHP_3.1"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~3.1/index.json"
+ },
+ "dd_CakePHP_2.10": {
+ "features": {
+ "code": "dd_CakePHP_2.10",
+ "explain": "devdocs上的CakePHP 2.10文档",
+ "cmds": ["dd_CakePHP_2.10"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~2.10/index.json"
+ },
+ "dd_CakePHP_2.9": {
+ "features": {
+ "code": "dd_CakePHP_2.9",
+ "explain": "devdocs上的CakePHP 2.9文档",
+ "cmds": ["dd_CakePHP_2.9"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~2.9/index.json"
+ },
+ "dd_CakePHP_2.8": {
+ "features": {
+ "code": "dd_CakePHP_2.8",
+ "explain": "devdocs上的CakePHP 2.8文档",
+ "cmds": ["dd_CakePHP_2.8"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~2.8/index.json"
+ },
+ "dd_CakePHP_2.7": {
+ "features": {
+ "code": "dd_CakePHP_2.7",
+ "explain": "devdocs上的CakePHP 2.7文档",
+ "cmds": ["dd_CakePHP_2.7"],
+ "icon": "logo/CakePHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cakephp~2.7/index.json"
+ },
+ "dd_Chai": {
+ "features": {
+ "code": "dd_Chai",
+ "explain": "devdocs上的Chai文档",
+ "cmds": ["dd_Chai"],
+ "icon": "logo/Chai.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/chai/index.json"
+ },
+ "dd_Chef_12": {
+ "features": {
+ "code": "dd_Chef_12",
+ "explain": "devdocs上的Chef 12文档",
+ "cmds": ["dd_Chef_12"],
+ "icon": "logo/Chef.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/chef~12/index.json"
+ },
+ "dd_Chef_11": {
+ "features": {
+ "code": "dd_Chef_11",
+ "explain": "devdocs上的Chef 11文档",
+ "cmds": ["dd_Chef_11"],
+ "icon": "logo/Chef.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/chef~11/index.json"
+ },
+ "dd_Clojure_1.9": {
+ "features": {
+ "code": "dd_Clojure_1.9",
+ "explain": "devdocs上的Clojure 1.9文档",
+ "cmds": ["dd_Clojure_1.9"],
+ "icon": "logo/Clojure.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/clojure~1.9/index.json"
+ },
+ "dd_Clojure_1.8": {
+ "features": {
+ "code": "dd_Clojure_1.8",
+ "explain": "devdocs上的Clojure 1.8文档",
+ "cmds": ["dd_Clojure_1.8"],
+ "icon": "logo/Clojure.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/clojure~1.8/index.json"
+ },
+ "dd_Clojure_1.7": {
+ "features": {
+ "code": "dd_Clojure_1.7",
+ "explain": "devdocs上的Clojure 1.7文档",
+ "cmds": ["dd_Clojure_1.7"],
+ "icon": "logo/Clojure.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/clojure~1.7/index.json"
+ },
+ "dd_CMake_3.12": {
+ "features": {
+ "code": "dd_CMake_3.12",
+ "explain": "devdocs上的CMake 3.12文档",
+ "cmds": ["dd_CMake_3.12"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.12/index.json"
+ },
+ "dd_CMake_3.11": {
+ "features": {
+ "code": "dd_CMake_3.11",
+ "explain": "devdocs上的CMake 3.11文档",
+ "cmds": ["dd_CMake_3.11"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.11/index.json"
+ },
+ "dd_CMake_3.10": {
+ "features": {
+ "code": "dd_CMake_3.10",
+ "explain": "devdocs上的CMake 3.10文档",
+ "cmds": ["dd_CMake_3.10"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.10/index.json"
+ },
+ "dd_CMake_3.9": {
+ "features": {
+ "code": "dd_CMake_3.9",
+ "explain": "devdocs上的CMake 3.9文档",
+ "cmds": ["dd_CMake_3.9"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.9/index.json"
+ },
+ "dd_CMake_3.8": {
+ "features": {
+ "code": "dd_CMake_3.8",
+ "explain": "devdocs上的CMake 3.8文档",
+ "cmds": ["dd_CMake_3.8"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.8/index.json"
+ },
+ "dd_CMake_3.7": {
+ "features": {
+ "code": "dd_CMake_3.7",
+ "explain": "devdocs上的CMake 3.7文档",
+ "cmds": ["dd_CMake_3.7"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.7/index.json"
+ },
+ "dd_CMake_3.6": {
+ "features": {
+ "code": "dd_CMake_3.6",
+ "explain": "devdocs上的CMake 3.6文档",
+ "cmds": ["dd_CMake_3.6"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.6/index.json"
+ },
+ "dd_CMake_3.5": {
+ "features": {
+ "code": "dd_CMake_3.5",
+ "explain": "devdocs上的CMake 3.5文档",
+ "cmds": ["dd_CMake_3.5"],
+ "icon": "logo/CMake.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cmake~3.5/index.json"
+ },
+ "dd_Codeception": {
+ "features": {
+ "code": "dd_Codeception",
+ "explain": "devdocs上的Codeception文档",
+ "cmds": ["dd_Codeception"],
+ "icon": "logo/Codeception.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/codeception/index.json"
+ },
+ "dd_CodeceptJS": {
+ "features": {
+ "code": "dd_CodeceptJS",
+ "explain": "devdocs上的CodeceptJS文档",
+ "cmds": ["dd_CodeceptJS"],
+ "icon": "logo/CodeceptJS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/codeceptjs/index.json"
+ },
+ "dd_CodeIgniter_3": {
+ "features": {
+ "code": "dd_CodeIgniter_3",
+ "explain": "devdocs上的CodeIgniter 3文档",
+ "cmds": ["dd_CodeIgniter_3"],
+ "icon": "logo/CodeIgniter.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/codeigniter~3/index.json"
+ },
+ "dd_CoffeeScript_2": {
+ "features": {
+ "code": "dd_CoffeeScript_2",
+ "explain": "devdocs上的CoffeeScript 2文档",
+ "cmds": ["dd_CoffeeScript_2"],
+ "icon": "logo/CoffeeScript.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/coffeescript~2/index.json"
+ },
+ "dd_CoffeeScript_1": {
+ "features": {
+ "code": "dd_CoffeeScript_1",
+ "explain": "devdocs上的CoffeeScript 1文档",
+ "cmds": ["dd_CoffeeScript_1"],
+ "icon": "logo/CoffeeScript.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/coffeescript~1/index.json"
+ },
+ "dd_Cordova_8": {
+ "features": {
+ "code": "dd_Cordova_8",
+ "explain": "devdocs上的Cordova 8文档",
+ "cmds": ["dd_Cordova_8"],
+ "icon": "logo/Cordova.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cordova~8/index.json"
+ },
+ "dd_Cordova_7": {
+ "features": {
+ "code": "dd_Cordova_7",
+ "explain": "devdocs上的Cordova 7文档",
+ "cmds": ["dd_Cordova_7"],
+ "icon": "logo/Cordova.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cordova~7/index.json"
+ },
+ "dd_Cordova_6": {
+ "features": {
+ "code": "dd_Cordova_6",
+ "explain": "devdocs上的Cordova 6文档",
+ "cmds": ["dd_Cordova_6"],
+ "icon": "logo/Cordova.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/cordova~6/index.json"
+ },
+ "dd_Crystal": {
+ "features": {
+ "code": "dd_Crystal",
+ "explain": "devdocs上的Crystal文档",
+ "cmds": ["dd_Crystal"],
+ "icon": "logo/Crystal.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/crystal/index.json"
+ },
+ "dd_CSS": {
+ "features": {
+ "code": "dd_CSS",
+ "explain": "devdocs上的CSS文档",
+ "cmds": ["dd_CSS"],
+ "icon": "logo/CSS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/css/index.json"
+ },
+ "dd_D": {
+ "features": {
+ "code": "dd_D",
+ "explain": "devdocs上的D文档",
+ "cmds": ["dd_D"],
+ "icon": "logo/D.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/d/index.json"
+ },
+ "dd_D3.js_5": {
+ "features": {
+ "code": "dd_D3.js_5",
+ "explain": "devdocs上的D3.js 5文档",
+ "cmds": ["dd_D3.js_5"],
+ "icon": "logo/D3.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/d3~5/index.json"
+ },
+ "dd_D3.js_4": {
+ "features": {
+ "code": "dd_D3.js_4",
+ "explain": "devdocs上的D3.js 4文档",
+ "cmds": ["dd_D3.js_4"],
+ "icon": "logo/D3.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/d3~4/index.json"
+ },
+ "dd_D3.js_3": {
+ "features": {
+ "code": "dd_D3.js_3",
+ "explain": "devdocs上的D3.js 3文档",
+ "cmds": ["dd_D3.js_3"],
+ "icon": "logo/D3.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/d3~3/index.json"
+ },
+ "dd_Dart_2": {
+ "features": {
+ "code": "dd_Dart_2",
+ "explain": "devdocs上的Dart 2文档",
+ "cmds": ["dd_Dart_2"],
+ "icon": "logo/Dart.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/dart~2/index.json"
+ },
+ "dd_Dart_1": {
+ "features": {
+ "code": "dd_Dart_1",
+ "explain": "devdocs上的Dart 1文档",
+ "cmds": ["dd_Dart_1"],
+ "icon": "logo/Dart.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/dart~1/index.json"
+ },
+ "dd_Django_2.1": {
+ "features": {
+ "code": "dd_Django_2.1",
+ "explain": "devdocs上的Django 2.1文档",
+ "cmds": ["dd_Django_2.1"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~2.1/index.json"
+ },
+ "dd_Django_2.0": {
+ "features": {
+ "code": "dd_Django_2.0",
+ "explain": "devdocs上的Django 2.0文档",
+ "cmds": ["dd_Django_2.0"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~2.0/index.json"
+ },
+ "dd_Django_1.11": {
+ "features": {
+ "code": "dd_Django_1.11",
+ "explain": "devdocs上的Django 1.11文档",
+ "cmds": ["dd_Django_1.11"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~1.11/index.json"
+ },
+ "dd_Django_1.10": {
+ "features": {
+ "code": "dd_Django_1.10",
+ "explain": "devdocs上的Django 1.10文档",
+ "cmds": ["dd_Django_1.10"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~1.10/index.json"
+ },
+ "dd_Django_1.9": {
+ "features": {
+ "code": "dd_Django_1.9",
+ "explain": "devdocs上的Django 1.9文档",
+ "cmds": ["dd_Django_1.9"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~1.9/index.json"
+ },
+ "dd_Django_1.8": {
+ "features": {
+ "code": "dd_Django_1.8",
+ "explain": "devdocs上的Django 1.8文档",
+ "cmds": ["dd_Django_1.8"],
+ "icon": "logo/Django.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/django~1.8/index.json"
+ },
+ "dd_Docker_17": {
+ "features": {
+ "code": "dd_Docker_17",
+ "explain": "devdocs上的Docker 17文档",
+ "cmds": ["dd_Docker_17"],
+ "icon": "logo/Docker.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/docker~17/index.json"
+ },
+ "dd_Docker_1.13": {
+ "features": {
+ "code": "dd_Docker_1.13",
+ "explain": "devdocs上的Docker 1.13文档",
+ "cmds": ["dd_Docker_1.13"],
+ "icon": "logo/Docker.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/docker~1.13/index.json"
+ },
+ "dd_Docker_1.12": {
+ "features": {
+ "code": "dd_Docker_1.12",
+ "explain": "devdocs上的Docker 1.12文档",
+ "cmds": ["dd_Docker_1.12"],
+ "icon": "logo/Docker.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/docker~1.12/index.json"
+ },
+ "dd_Docker_1.11": {
+ "features": {
+ "code": "dd_Docker_1.11",
+ "explain": "devdocs上的Docker 1.11文档",
+ "cmds": ["dd_Docker_1.11"],
+ "icon": "logo/Docker.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/docker~1.11/index.json"
+ },
+ "dd_Docker_1.10": {
+ "features": {
+ "code": "dd_Docker_1.10",
+ "explain": "devdocs上的Docker 1.10文档",
+ "cmds": ["dd_Docker_1.10"],
+ "icon": "logo/Docker.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/docker~1.10/index.json"
+ },
+ "dd_Dojo": {
+ "features": {
+ "code": "dd_Dojo",
+ "explain": "devdocs上的Dojo文档",
+ "cmds": ["dd_Dojo"],
+ "icon": "logo/Dojo.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/dojo/index.json"
+ },
+ "dd_DOM": {
+ "features": {
+ "code": "dd_DOM",
+ "explain": "devdocs上的DOM文档",
+ "cmds": ["dd_DOM"],
+ "icon": "logo/DOM.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/dom/index.json"
+ },
+ "dd_DOM_Events": {
+ "features": {
+ "code": "dd_DOM_Events",
+ "explain": "devdocs上的DOM Events文档",
+ "cmds": ["dd_DOM_Events"],
+ "icon": "logo/DOM.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/dom_events/index.json"
+ },
+ "dd_Drupal_8": {
+ "features": {
+ "code": "dd_Drupal_8",
+ "explain": "devdocs上的Drupal 8文档",
+ "cmds": ["dd_Drupal_8"],
+ "icon": "logo/Drupal.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/drupal~8/index.json"
+ },
+ "dd_Drupal_7": {
+ "features": {
+ "code": "dd_Drupal_7",
+ "explain": "devdocs上的Drupal 7文档",
+ "cmds": ["dd_Drupal_7"],
+ "icon": "logo/Drupal.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/drupal~7/index.json"
+ },
+ "dd_Electron": {
+ "features": {
+ "code": "dd_Electron",
+ "explain": "devdocs上的Electron文档",
+ "cmds": ["dd_Electron"],
+ "icon": "logo/Electron.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/electron/index.json"
+ },
+ "dd_Elixir_1.7": {
+ "features": {
+ "code": "dd_Elixir_1.7",
+ "explain": "devdocs上的Elixir 1.7文档",
+ "cmds": ["dd_Elixir_1.7"],
+ "icon": "logo/Elixir.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/elixir~1.7/index.json"
+ },
+ "dd_Elixir_1.6": {
+ "features": {
+ "code": "dd_Elixir_1.6",
+ "explain": "devdocs上的Elixir 1.6文档",
+ "cmds": ["dd_Elixir_1.6"],
+ "icon": "logo/Elixir.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/elixir~1.6/index.json"
+ },
+ "dd_Elixir_1.5": {
+ "features": {
+ "code": "dd_Elixir_1.5",
+ "explain": "devdocs上的Elixir 1.5文档",
+ "cmds": ["dd_Elixir_1.5"],
+ "icon": "logo/Elixir.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/elixir~1.5/index.json"
+ },
+ "dd_Elixir_1.4": {
+ "features": {
+ "code": "dd_Elixir_1.4",
+ "explain": "devdocs上的Elixir 1.4文档",
+ "cmds": ["dd_Elixir_1.4"],
+ "icon": "logo/Elixir.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/elixir~1.4/index.json"
+ },
+ "dd_Elixir_1.3": {
+ "features": {
+ "code": "dd_Elixir_1.3",
+ "explain": "devdocs上的Elixir 1.3文档",
+ "cmds": ["dd_Elixir_1.3"],
+ "icon": "logo/Elixir.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/elixir~1.3/index.json"
+ },
+ "dd_Ember.js": {
+ "features": {
+ "code": "dd_Ember.js",
+ "explain": "devdocs上的Ember.js文档",
+ "cmds": ["dd_Ember.js"],
+ "icon": "logo/Ember.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ember/index.json"
+ },
+ "dd_Erlang_21": {
+ "features": {
+ "code": "dd_Erlang_21",
+ "explain": "devdocs上的Erlang 21文档",
+ "cmds": ["dd_Erlang_21"],
+ "icon": "logo/Erlang.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/erlang~21/index.json"
+ },
+ "dd_Erlang_20": {
+ "features": {
+ "code": "dd_Erlang_20",
+ "explain": "devdocs上的Erlang 20文档",
+ "cmds": ["dd_Erlang_20"],
+ "icon": "logo/Erlang.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/erlang~20/index.json"
+ },
+ "dd_Erlang_19": {
+ "features": {
+ "code": "dd_Erlang_19",
+ "explain": "devdocs上的Erlang 19文档",
+ "cmds": ["dd_Erlang_19"],
+ "icon": "logo/Erlang.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/erlang~19/index.json"
+ },
+ "dd_Erlang_18": {
+ "features": {
+ "code": "dd_Erlang_18",
+ "explain": "devdocs上的Erlang 18文档",
+ "cmds": ["dd_Erlang_18"],
+ "icon": "logo/Erlang.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/erlang~18/index.json"
+ },
+ "dd_ESLint": {
+ "features": {
+ "code": "dd_ESLint",
+ "explain": "devdocs上的ESLint文档",
+ "cmds": ["dd_ESLint"],
+ "icon": "logo/ESLint.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/eslint/index.json"
+ },
+ "dd_Express": {
+ "features": {
+ "code": "dd_Express",
+ "explain": "devdocs上的Express文档",
+ "cmds": ["dd_Express"],
+ "icon": "logo/Express.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/express/index.json"
+ },
+ "dd_Falcon_1.4": {
+ "features": {
+ "code": "dd_Falcon_1.4",
+ "explain": "devdocs上的Falcon 1.4文档",
+ "cmds": ["dd_Falcon_1.4"],
+ "icon": "logo/Falcon.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/falcon~1.4/index.json"
+ },
+ "dd_Falcon_1.3": {
+ "features": {
+ "code": "dd_Falcon_1.3",
+ "explain": "devdocs上的Falcon 1.3文档",
+ "cmds": ["dd_Falcon_1.3"],
+ "icon": "logo/Falcon.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/falcon~1.3/index.json"
+ },
+ "dd_Falcon_1.2": {
+ "features": {
+ "code": "dd_Falcon_1.2",
+ "explain": "devdocs上的Falcon 1.2文档",
+ "cmds": ["dd_Falcon_1.2"],
+ "icon": "logo/Falcon.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/falcon~1.2/index.json"
+ },
+ "dd_Fish_2.7": {
+ "features": {
+ "code": "dd_Fish_2.7",
+ "explain": "devdocs上的Fish 2.7文档",
+ "cmds": ["dd_Fish_2.7"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.7/index.json"
+ },
+ "dd_Fish_2.6": {
+ "features": {
+ "code": "dd_Fish_2.6",
+ "explain": "devdocs上的Fish 2.6文档",
+ "cmds": ["dd_Fish_2.6"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.6/index.json"
+ },
+ "dd_Fish_2.5": {
+ "features": {
+ "code": "dd_Fish_2.5",
+ "explain": "devdocs上的Fish 2.5文档",
+ "cmds": ["dd_Fish_2.5"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.5/index.json"
+ },
+ "dd_Fish_2.4": {
+ "features": {
+ "code": "dd_Fish_2.4",
+ "explain": "devdocs上的Fish 2.4文档",
+ "cmds": ["dd_Fish_2.4"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.4/index.json"
+ },
+ "dd_Fish_2.3": {
+ "features": {
+ "code": "dd_Fish_2.3",
+ "explain": "devdocs上的Fish 2.3文档",
+ "cmds": ["dd_Fish_2.3"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.3/index.json"
+ },
+ "dd_Fish_2.2": {
+ "features": {
+ "code": "dd_Fish_2.2",
+ "explain": "devdocs上的Fish 2.2文档",
+ "cmds": ["dd_Fish_2.2"],
+ "icon": "logo/Fish.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/fish~2.2/index.json"
+ },
+ "dd_Flow": {
+ "features": {
+ "code": "dd_Flow",
+ "explain": "devdocs上的Flow文档",
+ "cmds": ["dd_Flow"],
+ "icon": "logo/Flow.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/flow/index.json"
+ },
+ "dd_GCC_7": {
+ "features": {
+ "code": "dd_GCC_7",
+ "explain": "devdocs上的GCC 7文档",
+ "cmds": ["dd_GCC_7"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~7/index.json"
+ },
+ "dd_GCC_7_CPP": {
+ "features": {
+ "code": "dd_GCC_7_CPP",
+ "explain": "devdocs上的GCC 7 CPP文档",
+ "cmds": ["dd_GCC_7_CPP"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~7_cpp/index.json"
+ },
+ "dd_GCC_6": {
+ "features": {
+ "code": "dd_GCC_6",
+ "explain": "devdocs上的GCC 6文档",
+ "cmds": ["dd_GCC_6"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~6/index.json"
+ },
+ "dd_GCC_6_CPP": {
+ "features": {
+ "code": "dd_GCC_6_CPP",
+ "explain": "devdocs上的GCC 6 CPP文档",
+ "cmds": ["dd_GCC_6_CPP"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~6_cpp/index.json"
+ },
+ "dd_GCC_5": {
+ "features": {
+ "code": "dd_GCC_5",
+ "explain": "devdocs上的GCC 5文档",
+ "cmds": ["dd_GCC_5"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~5/index.json"
+ },
+ "dd_GCC_5_CPP": {
+ "features": {
+ "code": "dd_GCC_5_CPP",
+ "explain": "devdocs上的GCC 5 CPP文档",
+ "cmds": ["dd_GCC_5_CPP"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~5_cpp/index.json"
+ },
+ "dd_GCC_4": {
+ "features": {
+ "code": "dd_GCC_4",
+ "explain": "devdocs上的GCC 4文档",
+ "cmds": ["dd_GCC_4"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~4/index.json"
+ },
+ "dd_GCC_4_CPP": {
+ "features": {
+ "code": "dd_GCC_4_CPP",
+ "explain": "devdocs上的GCC 4 CPP文档",
+ "cmds": ["dd_GCC_4_CPP"],
+ "icon": "logo/GCC.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gcc~4_cpp/index.json"
+ },
+ "dd_Git": {
+ "features": {
+ "code": "dd_Git",
+ "explain": "devdocs上的Git文档",
+ "cmds": ["dd_Git"],
+ "icon": "logo/Git.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/git/index.json"
+ },
+ "dd_GNU_Fortran_7": {
+ "features": {
+ "code": "dd_GNU_Fortran_7",
+ "explain": "devdocs上的GNU Fortran 7文档",
+ "cmds": ["dd_GNU_Fortran_7"],
+ "icon": "logo/GNU.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gnu_fortran~7/index.json"
+ },
+ "dd_GNU_Fortran_6": {
+ "features": {
+ "code": "dd_GNU_Fortran_6",
+ "explain": "devdocs上的GNU Fortran 6文档",
+ "cmds": ["dd_GNU_Fortran_6"],
+ "icon": "logo/GNU.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gnu_fortran~6/index.json"
+ },
+ "dd_GNU_Fortran_5": {
+ "features": {
+ "code": "dd_GNU_Fortran_5",
+ "explain": "devdocs上的GNU Fortran 5文档",
+ "cmds": ["dd_GNU_Fortran_5"],
+ "icon": "logo/GNU.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gnu_fortran~5/index.json"
+ },
+ "dd_GNU_Fortran_4": {
+ "features": {
+ "code": "dd_GNU_Fortran_4",
+ "explain": "devdocs上的GNU Fortran 4文档",
+ "cmds": ["dd_GNU_Fortran_4"],
+ "icon": "logo/GNU.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/gnu_fortran~4/index.json"
+ },
+ "dd_Go": {
+ "features": {
+ "code": "dd_Go",
+ "explain": "devdocs上的Go文档",
+ "cmds": ["dd_Go"],
+ "icon": "logo/Go.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/go/index.json"
+ },
+ "dd_Godot_3.0": {
+ "features": {
+ "code": "dd_Godot_3.0",
+ "explain": "devdocs上的Godot 3.0文档",
+ "cmds": ["dd_Godot_3.0"],
+ "icon": "logo/Godot.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/godot~3.0/index.json"
+ },
+ "dd_Godot_2.1": {
+ "features": {
+ "code": "dd_Godot_2.1",
+ "explain": "devdocs上的Godot 2.1文档",
+ "cmds": ["dd_Godot_2.1"],
+ "icon": "logo/Godot.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/godot~2.1/index.json"
+ },
+ "dd_Graphite": {
+ "features": {
+ "code": "dd_Graphite",
+ "explain": "devdocs上的Graphite文档",
+ "cmds": ["dd_Graphite"],
+ "icon": "logo/Graphite.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/graphite/index.json"
+ },
+ "dd_Grunt": {
+ "features": {
+ "code": "dd_Grunt",
+ "explain": "devdocs上的Grunt文档",
+ "cmds": ["dd_Grunt"],
+ "icon": "logo/Grunt.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/grunt/index.json"
+ },
+ "dd_Handlebars.js": {
+ "features": {
+ "code": "dd_Handlebars.js",
+ "explain": "devdocs上的Handlebars.js文档",
+ "cmds": ["dd_Handlebars.js"],
+ "icon": "logo/Handlebars.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/handlebars/index.json"
+ },
+ "dd_Haskell_8": {
+ "features": {
+ "code": "dd_Haskell_8",
+ "explain": "devdocs上的Haskell 8文档",
+ "cmds": ["dd_Haskell_8"],
+ "icon": "logo/Haskell.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haskell~8/index.json"
+ },
+ "dd_Haskell_7": {
+ "features": {
+ "code": "dd_Haskell_7",
+ "explain": "devdocs上的Haskell 7文档",
+ "cmds": ["dd_Haskell_7"],
+ "icon": "logo/Haskell.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haskell~7/index.json"
+ },
+ "dd_Haxe": {
+ "features": {
+ "code": "dd_Haxe",
+ "explain": "devdocs上的Haxe文档",
+ "cmds": ["dd_Haxe"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe/index.json"
+ },
+ "dd_Haxe_C++": {
+ "features": {
+ "code": "dd_Haxe_C++",
+ "explain": "devdocs上的Haxe C++文档",
+ "cmds": ["dd_Haxe_C++"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~cpp/index.json"
+ },
+ "dd_Haxe_C#": {
+ "features": {
+ "code": "dd_Haxe_C#",
+ "explain": "devdocs上的Haxe C#文档",
+ "cmds": ["dd_Haxe_C#"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~cs/index.json"
+ },
+ "dd_Haxe_Flash": {
+ "features": {
+ "code": "dd_Haxe_Flash",
+ "explain": "devdocs上的Haxe Flash文档",
+ "cmds": ["dd_Haxe_Flash"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~flash/index.json"
+ },
+ "dd_Haxe_Java": {
+ "features": {
+ "code": "dd_Haxe_Java",
+ "explain": "devdocs上的Haxe Java文档",
+ "cmds": ["dd_Haxe_Java"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~java/index.json"
+ },
+ "dd_Haxe_JavaScript": {
+ "features": {
+ "code": "dd_Haxe_JavaScript",
+ "explain": "devdocs上的Haxe JavaScript文档",
+ "cmds": ["dd_Haxe_JavaScript"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~javascript/index.json"
+ },
+ "dd_Haxe_Neko": {
+ "features": {
+ "code": "dd_Haxe_Neko",
+ "explain": "devdocs上的Haxe Neko文档",
+ "cmds": ["dd_Haxe_Neko"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~neko/index.json"
+ },
+ "dd_Haxe_PHP": {
+ "features": {
+ "code": "dd_Haxe_PHP",
+ "explain": "devdocs上的Haxe PHP文档",
+ "cmds": ["dd_Haxe_PHP"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~php/index.json"
+ },
+ "dd_Haxe_Lua": {
+ "features": {
+ "code": "dd_Haxe_Lua",
+ "explain": "devdocs上的Haxe Lua文档",
+ "cmds": ["dd_Haxe_Lua"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~lua/index.json"
+ },
+ "dd_Haxe_HashLink": {
+ "features": {
+ "code": "dd_Haxe_HashLink",
+ "explain": "devdocs上的Haxe HashLink文档",
+ "cmds": ["dd_Haxe_HashLink"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~hashlink/index.json"
+ },
+ "dd_Haxe_Sys": {
+ "features": {
+ "code": "dd_Haxe_Sys",
+ "explain": "devdocs上的Haxe Sys文档",
+ "cmds": ["dd_Haxe_Sys"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~sys/index.json"
+ },
+ "dd_Haxe_Python": {
+ "features": {
+ "code": "dd_Haxe_Python",
+ "explain": "devdocs上的Haxe Python文档",
+ "cmds": ["dd_Haxe_Python"],
+ "icon": "logo/Haxe.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/haxe~python/index.json"
+ },
+ "dd_Homebrew": {
+ "features": {
+ "code": "dd_Homebrew",
+ "explain": "devdocs上的Homebrew文档",
+ "cmds": ["dd_Homebrew"],
+ "icon": "logo/Homebrew.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/homebrew/index.json"
+ },
+ "dd_HTML": {
+ "features": {
+ "code": "dd_HTML",
+ "explain": "devdocs上的HTML文档",
+ "cmds": ["dd_HTML"],
+ "icon": "logo/HTML.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/html/index.json"
+ },
+ "dd_HTTP": {
+ "features": {
+ "code": "dd_HTTP",
+ "explain": "devdocs上的HTTP文档",
+ "cmds": ["dd_HTTP"],
+ "icon": "logo/HTTP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/http/index.json"
+ },
+ "dd_Immutable.js": {
+ "features": {
+ "code": "dd_Immutable.js",
+ "explain": "devdocs上的Immutable.js文档",
+ "cmds": ["dd_Immutable.js"],
+ "icon": "logo/Immutable.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/immutable/index.json"
+ },
+ "dd_InfluxData": {
+ "features": {
+ "code": "dd_InfluxData",
+ "explain": "devdocs上的InfluxData文档",
+ "cmds": ["dd_InfluxData"],
+ "icon": "logo/InfluxData.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/influxdata/index.json"
+ },
+ "dd_Jasmine": {
+ "features": {
+ "code": "dd_Jasmine",
+ "explain": "devdocs上的Jasmine文档",
+ "cmds": ["dd_Jasmine"],
+ "icon": "logo/Jasmine.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jasmine/index.json"
+ },
+ "dd_JavaScript": {
+ "features": {
+ "code": "dd_JavaScript",
+ "explain": "devdocs上的JavaScript文档",
+ "cmds": ["dd_JavaScript"],
+ "icon": "logo/JavaScript.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/javascript/index.json"
+ },
+ "dd_Jekyll": {
+ "features": {
+ "code": "dd_Jekyll",
+ "explain": "devdocs上的Jekyll文档",
+ "cmds": ["dd_Jekyll"],
+ "icon": "logo/Jekyll.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jekyll/index.json"
+ },
+ "dd_Jest": {
+ "features": {
+ "code": "dd_Jest",
+ "explain": "devdocs上的Jest文档",
+ "cmds": ["dd_Jest"],
+ "icon": "logo/Jest.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jest/index.json"
+ },
+ "dd_jQuery": {
+ "features": {
+ "code": "dd_jQuery",
+ "explain": "devdocs上的jQuery文档",
+ "cmds": ["dd_jQuery"],
+ "icon": "logo/jQuery.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jquery/index.json"
+ },
+ "dd_jQuery_Mobile": {
+ "features": {
+ "code": "dd_jQuery_Mobile",
+ "explain": "devdocs上的jQuery Mobile文档",
+ "cmds": ["dd_jQuery_Mobile"],
+ "icon": "logo/jQuery.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jquerymobile/index.json"
+ },
+ "dd_jQuery_UI": {
+ "features": {
+ "code": "dd_jQuery_UI",
+ "explain": "devdocs上的jQuery UI文档",
+ "cmds": ["dd_jQuery_UI"],
+ "icon": "logo/jQuery.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jqueryui/index.json"
+ },
+ "dd_JSDoc": {
+ "features": {
+ "code": "dd_JSDoc",
+ "explain": "devdocs上的JSDoc文档",
+ "cmds": ["dd_JSDoc"],
+ "icon": "logo/JSDoc.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/jsdoc/index.json"
+ },
+ "dd_Julia_1.0": {
+ "features": {
+ "code": "dd_Julia_1.0",
+ "explain": "devdocs上的Julia 1.0文档",
+ "cmds": ["dd_Julia_1.0"],
+ "icon": "logo/Julia.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/julia~1.0/index.json"
+ },
+ "dd_Julia_0.7": {
+ "features": {
+ "code": "dd_Julia_0.7",
+ "explain": "devdocs上的Julia 0.7文档",
+ "cmds": ["dd_Julia_0.7"],
+ "icon": "logo/Julia.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/julia~0.7/index.json"
+ },
+ "dd_Julia_0.6": {
+ "features": {
+ "code": "dd_Julia_0.6",
+ "explain": "devdocs上的Julia 0.6文档",
+ "cmds": ["dd_Julia_0.6"],
+ "icon": "logo/Julia.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/julia~0.6/index.json"
+ },
+ "dd_Julia_0.5": {
+ "features": {
+ "code": "dd_Julia_0.5",
+ "explain": "devdocs上的Julia 0.5文档",
+ "cmds": ["dd_Julia_0.5"],
+ "icon": "logo/Julia.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/julia~0.5/index.json"
+ },
+ "dd_Knockout.js": {
+ "features": {
+ "code": "dd_Knockout.js",
+ "explain": "devdocs上的Knockout.js文档",
+ "cmds": ["dd_Knockout.js"],
+ "icon": "logo/Knockout.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/knockout/index.json"
+ },
+ "dd_Koa": {
+ "features": {
+ "code": "dd_Koa",
+ "explain": "devdocs上的Koa文档",
+ "cmds": ["dd_Koa"],
+ "icon": "logo/Koa.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/koa/index.json"
+ },
+ "dd_Kotlin": {
+ "features": {
+ "code": "dd_Kotlin",
+ "explain": "devdocs上的Kotlin文档",
+ "cmds": ["dd_Kotlin"],
+ "icon": "logo/Kotlin.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/kotlin/index.json"
+ },
+ "dd_Laravel_5.7": {
+ "features": {
+ "code": "dd_Laravel_5.7",
+ "explain": "devdocs上的Laravel 5.7文档",
+ "cmds": ["dd_Laravel_5.7"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.7/index.json"
+ },
+ "dd_Laravel_5.6": {
+ "features": {
+ "code": "dd_Laravel_5.6",
+ "explain": "devdocs上的Laravel 5.6文档",
+ "cmds": ["dd_Laravel_5.6"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.6/index.json"
+ },
+ "dd_Laravel_5.5": {
+ "features": {
+ "code": "dd_Laravel_5.5",
+ "explain": "devdocs上的Laravel 5.5文档",
+ "cmds": ["dd_Laravel_5.5"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.5/index.json"
+ },
+ "dd_Laravel_5.4": {
+ "features": {
+ "code": "dd_Laravel_5.4",
+ "explain": "devdocs上的Laravel 5.4文档",
+ "cmds": ["dd_Laravel_5.4"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.4/index.json"
+ },
+ "dd_Laravel_5.3": {
+ "features": {
+ "code": "dd_Laravel_5.3",
+ "explain": "devdocs上的Laravel 5.3文档",
+ "cmds": ["dd_Laravel_5.3"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.3/index.json"
+ },
+ "dd_Laravel_5.2": {
+ "features": {
+ "code": "dd_Laravel_5.2",
+ "explain": "devdocs上的Laravel 5.2文档",
+ "cmds": ["dd_Laravel_5.2"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.2/index.json"
+ },
+ "dd_Laravel_5.1": {
+ "features": {
+ "code": "dd_Laravel_5.1",
+ "explain": "devdocs上的Laravel 5.1文档",
+ "cmds": ["dd_Laravel_5.1"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~5.1/index.json"
+ },
+ "dd_Laravel_4.2": {
+ "features": {
+ "code": "dd_Laravel_4.2",
+ "explain": "devdocs上的Laravel 4.2文档",
+ "cmds": ["dd_Laravel_4.2"],
+ "icon": "logo/Laravel.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/laravel~4.2/index.json"
+ },
+ "dd_Leaflet_1.3": {
+ "features": {
+ "code": "dd_Leaflet_1.3",
+ "explain": "devdocs上的Leaflet 1.3文档",
+ "cmds": ["dd_Leaflet_1.3"],
+ "icon": "logo/Leaflet.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/leaflet~1.3/index.json"
+ },
+ "dd_Leaflet_1.2": {
+ "features": {
+ "code": "dd_Leaflet_1.2",
+ "explain": "devdocs上的Leaflet 1.2文档",
+ "cmds": ["dd_Leaflet_1.2"],
+ "icon": "logo/Leaflet.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/leaflet~1.2/index.json"
+ },
+ "dd_Leaflet_1.1": {
+ "features": {
+ "code": "dd_Leaflet_1.1",
+ "explain": "devdocs上的Leaflet 1.1文档",
+ "cmds": ["dd_Leaflet_1.1"],
+ "icon": "logo/Leaflet.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/leaflet~1.1/index.json"
+ },
+ "dd_Leaflet_1.0": {
+ "features": {
+ "code": "dd_Leaflet_1.0",
+ "explain": "devdocs上的Leaflet 1.0文档",
+ "cmds": ["dd_Leaflet_1.0"],
+ "icon": "logo/Leaflet.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/leaflet~1.0/index.json"
+ },
+ "dd_Less": {
+ "features": {
+ "code": "dd_Less",
+ "explain": "devdocs上的Less文档",
+ "cmds": ["dd_Less"],
+ "icon": "logo/Less.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/less/index.json"
+ },
+ "dd_Liquid": {
+ "features": {
+ "code": "dd_Liquid",
+ "explain": "devdocs上的Liquid文档",
+ "cmds": ["dd_Liquid"],
+ "icon": "logo/Liquid.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/liquid/index.json"
+ },
+ "dd_lodash_4": {
+ "features": {
+ "code": "dd_lodash_4",
+ "explain": "devdocs上的lodash 4文档",
+ "cmds": ["dd_lodash_4"],
+ "icon": "logo/lodash.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lodash~4/index.json"
+ },
+ "dd_lodash_3": {
+ "features": {
+ "code": "dd_lodash_3",
+ "explain": "devdocs上的lodash 3文档",
+ "cmds": ["dd_lodash_3"],
+ "icon": "logo/lodash.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lodash~3/index.json"
+ },
+ "dd_lodash_2": {
+ "features": {
+ "code": "dd_lodash_2",
+ "explain": "devdocs上的lodash 2文档",
+ "cmds": ["dd_lodash_2"],
+ "icon": "logo/lodash.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lodash~2/index.json"
+ },
+ "dd_Lua_5.3": {
+ "features": {
+ "code": "dd_Lua_5.3",
+ "explain": "devdocs上的Lua 5.3文档",
+ "cmds": ["dd_Lua_5.3"],
+ "icon": "logo/Lua.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lua~5.3/index.json"
+ },
+ "dd_Lua_5.2": {
+ "features": {
+ "code": "dd_Lua_5.2",
+ "explain": "devdocs上的Lua 5.2文档",
+ "cmds": ["dd_Lua_5.2"],
+ "icon": "logo/Lua.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lua~5.2/index.json"
+ },
+ "dd_Lua_5.1": {
+ "features": {
+ "code": "dd_Lua_5.1",
+ "explain": "devdocs上的Lua 5.1文档",
+ "cmds": ["dd_Lua_5.1"],
+ "icon": "logo/Lua.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/lua~5.1/index.json"
+ },
+ "dd_LÖVE": {
+ "features": {
+ "code": "dd_LÖVE",
+ "explain": "devdocs上的LÖVE文档",
+ "cmds": ["dd_LÖVE"],
+ "icon": "logo/LÖVE.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/love/index.json"
+ },
+ "dd_Marionette.js_4": {
+ "features": {
+ "code": "dd_Marionette.js_4",
+ "explain": "devdocs上的Marionette.js 4文档",
+ "cmds": ["dd_Marionette.js_4"],
+ "icon": "logo/Marionette.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/marionette~4/index.json"
+ },
+ "dd_Marionette.js_3": {
+ "features": {
+ "code": "dd_Marionette.js_3",
+ "explain": "devdocs上的Marionette.js 3文档",
+ "cmds": ["dd_Marionette.js_3"],
+ "icon": "logo/Marionette.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/marionette~3/index.json"
+ },
+ "dd_Marionette.js_2": {
+ "features": {
+ "code": "dd_Marionette.js_2",
+ "explain": "devdocs上的Marionette.js 2文档",
+ "cmds": ["dd_Marionette.js_2"],
+ "icon": "logo/Marionette.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/marionette~2/index.json"
+ },
+ "dd_Markdown": {
+ "features": {
+ "code": "dd_Markdown",
+ "explain": "devdocs上的Markdown文档",
+ "cmds": ["dd_Markdown"],
+ "icon": "logo/Markdown.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/markdown/index.json"
+ },
+ "dd_Matplotlib_3.0": {
+ "features": {
+ "code": "dd_Matplotlib_3.0",
+ "explain": "devdocs上的Matplotlib 3.0文档",
+ "cmds": ["dd_Matplotlib_3.0"],
+ "icon": "logo/Matplotlib.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/matplotlib~3.0/index.json"
+ },
+ "dd_Matplotlib_2.2": {
+ "features": {
+ "code": "dd_Matplotlib_2.2",
+ "explain": "devdocs上的Matplotlib 2.2文档",
+ "cmds": ["dd_Matplotlib_2.2"],
+ "icon": "logo/Matplotlib.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/matplotlib~2.2/index.json"
+ },
+ "dd_Matplotlib_2.1": {
+ "features": {
+ "code": "dd_Matplotlib_2.1",
+ "explain": "devdocs上的Matplotlib 2.1文档",
+ "cmds": ["dd_Matplotlib_2.1"],
+ "icon": "logo/Matplotlib.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/matplotlib~2.1/index.json"
+ },
+ "dd_Matplotlib_2.0": {
+ "features": {
+ "code": "dd_Matplotlib_2.0",
+ "explain": "devdocs上的Matplotlib 2.0文档",
+ "cmds": ["dd_Matplotlib_2.0"],
+ "icon": "logo/Matplotlib.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/matplotlib~2.0/index.json"
+ },
+ "dd_Matplotlib_1.5": {
+ "features": {
+ "code": "dd_Matplotlib_1.5",
+ "explain": "devdocs上的Matplotlib 1.5文档",
+ "cmds": ["dd_Matplotlib_1.5"],
+ "icon": "logo/Matplotlib.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/matplotlib~1.5/index.json"
+ },
+ "dd_Meteor_1.5": {
+ "features": {
+ "code": "dd_Meteor_1.5",
+ "explain": "devdocs上的Meteor 1.5文档",
+ "cmds": ["dd_Meteor_1.5"],
+ "icon": "logo/Meteor.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/meteor~1.5/index.json"
+ },
+ "dd_Meteor_1.4": {
+ "features": {
+ "code": "dd_Meteor_1.4",
+ "explain": "devdocs上的Meteor 1.4文档",
+ "cmds": ["dd_Meteor_1.4"],
+ "icon": "logo/Meteor.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/meteor~1.4/index.json"
+ },
+ "dd_Meteor_1.3": {
+ "features": {
+ "code": "dd_Meteor_1.3",
+ "explain": "devdocs上的Meteor 1.3文档",
+ "cmds": ["dd_Meteor_1.3"],
+ "icon": "logo/Meteor.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/meteor~1.3/index.json"
+ },
+ "dd_Mocha": {
+ "features": {
+ "code": "dd_Mocha",
+ "explain": "devdocs上的Mocha文档",
+ "cmds": ["dd_Mocha"],
+ "icon": "logo/Mocha.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/mocha/index.json"
+ },
+ "dd_Modernizr": {
+ "features": {
+ "code": "dd_Modernizr",
+ "explain": "devdocs上的Modernizr文档",
+ "cmds": ["dd_Modernizr"],
+ "icon": "logo/Modernizr.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/modernizr/index.json"
+ },
+ "dd_Moment.js": {
+ "features": {
+ "code": "dd_Moment.js",
+ "explain": "devdocs上的Moment.js文档",
+ "cmds": ["dd_Moment.js"],
+ "icon": "logo/Moment.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/moment/index.json"
+ },
+ "dd_Mongoose": {
+ "features": {
+ "code": "dd_Mongoose",
+ "explain": "devdocs上的Mongoose文档",
+ "cmds": ["dd_Mongoose"],
+ "icon": "logo/Mongoose.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/mongoose/index.json"
+ },
+ "dd_nginx": {
+ "features": {
+ "code": "dd_nginx",
+ "explain": "devdocs上的nginx文档",
+ "cmds": ["dd_nginx"],
+ "icon": "logo/nginx.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/nginx/index.json"
+ },
+ "dd_nginx_Lua_Module": {
+ "features": {
+ "code": "dd_nginx_Lua_Module",
+ "explain": "devdocs上的nginx_Lua_Module文档",
+ "cmds": ["dd_nginx_Lua_Module"],
+ "icon": "logo/nginx_Lua_Module.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/nginx_lua_module/index.json"
+ },
+ "dd_Nim": {
+ "features": {
+ "code": "dd_Nim",
+ "explain": "devdocs上的Nim文档",
+ "cmds": ["dd_Nim"],
+ "icon": "logo/Nim.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/nim/index.json"
+ },
+ "dd_Node.js": {
+ "features": {
+ "code": "dd_Node.js",
+ "explain": "devdocs上的Node.js文档",
+ "cmds": ["dd_Node.js"],
+ "icon": "logo/Node.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/node/index.json"
+ },
+ "dd_Node.js_10_LTS": {
+ "features": {
+ "code": "dd_Node.js_10_LTS",
+ "explain": "devdocs上的Node.js 10 LTS文档",
+ "cmds": ["dd_Node.js_10_LTS"],
+ "icon": "logo/Node.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/node~10_lts/index.json"
+ },
+ "dd_Node.js_8_LTS": {
+ "features": {
+ "code": "dd_Node.js_8_LTS",
+ "explain": "devdocs上的Node.js 8 LTS文档",
+ "cmds": ["dd_Node.js_8_LTS"],
+ "icon": "logo/Node.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/node~8_lts/index.json"
+ },
+ "dd_Node.js_6_LTS": {
+ "features": {
+ "code": "dd_Node.js_6_LTS",
+ "explain": "devdocs上的Node.js 6 LTS文档",
+ "cmds": ["dd_Node.js_6_LTS"],
+ "icon": "logo/Node.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/node~6_lts/index.json"
+ },
+ "dd_Node.js_4_LTS": {
+ "features": {
+ "code": "dd_Node.js_4_LTS",
+ "explain": "devdocs上的Node.js 4 LTS文档",
+ "cmds": ["dd_Node.js_4_LTS"],
+ "icon": "logo/Node.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/node~4_lts/index.json"
+ },
+ "dd_Nokogiri": {
+ "features": {
+ "code": "dd_Nokogiri",
+ "explain": "devdocs上的Nokogiri文档",
+ "cmds": ["dd_Nokogiri"],
+ "icon": "logo/Nokogiri.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/nokogiri/index.json"
+ },
+ "dd_npm": {
+ "features": {
+ "code": "dd_npm",
+ "explain": "devdocs上的npm文档",
+ "cmds": ["dd_npm"],
+ "icon": "logo/npm.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/npm/index.json"
+ },
+ "dd_NumPy_1.14": {
+ "features": {
+ "code": "dd_NumPy_1.14",
+ "explain": "devdocs上的NumPy 1.14文档",
+ "cmds": ["dd_NumPy_1.14"],
+ "icon": "logo/NumPy.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/numpy~1.14/index.json"
+ },
+ "dd_NumPy_1.13": {
+ "features": {
+ "code": "dd_NumPy_1.13",
+ "explain": "devdocs上的NumPy 1.13文档",
+ "cmds": ["dd_NumPy_1.13"],
+ "icon": "logo/NumPy.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/numpy~1.13/index.json"
+ },
+ "dd_NumPy_1.12": {
+ "features": {
+ "code": "dd_NumPy_1.12",
+ "explain": "devdocs上的NumPy 1.12文档",
+ "cmds": ["dd_NumPy_1.12"],
+ "icon": "logo/NumPy.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/numpy~1.12/index.json"
+ },
+ "dd_NumPy_1.11": {
+ "features": {
+ "code": "dd_NumPy_1.11",
+ "explain": "devdocs上的NumPy 1.11文档",
+ "cmds": ["dd_NumPy_1.11"],
+ "icon": "logo/NumPy.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/numpy~1.11/index.json"
+ },
+ "dd_NumPy_1.10": {
+ "features": {
+ "code": "dd_NumPy_1.10",
+ "explain": "devdocs上的NumPy 1.10文档",
+ "cmds": ["dd_NumPy_1.10"],
+ "icon": "logo/NumPy.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/numpy~1.10/index.json"
+ },
+ "dd_OpenJDK_8": {
+ "features": {
+ "code": "dd_OpenJDK_8",
+ "explain": "devdocs上的OpenJDK 8文档",
+ "cmds": ["dd_OpenJDK_8"],
+ "icon": "logo/OpenJDK.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/openjdk~8/index.json"
+ },
+ "dd_OpenJDK_8_GUI": {
+ "features": {
+ "code": "dd_OpenJDK_8_GUI",
+ "explain": "devdocs上的OpenJDK 8 GUI文档",
+ "cmds": ["dd_OpenJDK_8_GUI"],
+ "icon": "logo/OpenJDK.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/openjdk~8_gui/index.json"
+ },
+ "dd_OpenJDK_8_Web": {
+ "features": {
+ "code": "dd_OpenJDK_8_Web",
+ "explain": "devdocs上的OpenJDK 8 Web文档",
+ "cmds": ["dd_OpenJDK_8_Web"],
+ "icon": "logo/OpenJDK.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/openjdk~8_web/index.json"
+ },
+ "dd_OpenTSDB": {
+ "features": {
+ "code": "dd_OpenTSDB",
+ "explain": "devdocs上的OpenTSDB文档",
+ "cmds": ["dd_OpenTSDB"],
+ "icon": "logo/OpenTSDB.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/opentsdb/index.json"
+ },
+ "dd_Padrino": {
+ "features": {
+ "code": "dd_Padrino",
+ "explain": "devdocs上的Padrino文档",
+ "cmds": ["dd_Padrino"],
+ "icon": "logo/Padrino.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/padrino/index.json"
+ },
+ "dd_pandas_0.23": {
+ "features": {
+ "code": "dd_pandas_0.23",
+ "explain": "devdocs上的pandas 0.23文档",
+ "cmds": ["dd_pandas_0.23"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.23/index.json"
+ },
+ "dd_pandas_0.22": {
+ "features": {
+ "code": "dd_pandas_0.22",
+ "explain": "devdocs上的pandas 0.22文档",
+ "cmds": ["dd_pandas_0.22"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.22/index.json"
+ },
+ "dd_pandas_0.21": {
+ "features": {
+ "code": "dd_pandas_0.21",
+ "explain": "devdocs上的pandas 0.21文档",
+ "cmds": ["dd_pandas_0.21"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.21/index.json"
+ },
+ "dd_pandas_0.20": {
+ "features": {
+ "code": "dd_pandas_0.20",
+ "explain": "devdocs上的pandas 0.20文档",
+ "cmds": ["dd_pandas_0.20"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.20/index.json"
+ },
+ "dd_pandas_0.19": {
+ "features": {
+ "code": "dd_pandas_0.19",
+ "explain": "devdocs上的pandas 0.19文档",
+ "cmds": ["dd_pandas_0.19"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.19/index.json"
+ },
+ "dd_pandas_0.18": {
+ "features": {
+ "code": "dd_pandas_0.18",
+ "explain": "devdocs上的pandas 0.18文档",
+ "cmds": ["dd_pandas_0.18"],
+ "icon": "logo/pandas.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pandas~0.18/index.json"
+ },
+ "dd_Perl_5.26": {
+ "features": {
+ "code": "dd_Perl_5.26",
+ "explain": "devdocs上的Perl 5.26文档",
+ "cmds": ["dd_Perl_5.26"],
+ "icon": "logo/Perl.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/perl~5.26/index.json"
+ },
+ "dd_Perl_5.24": {
+ "features": {
+ "code": "dd_Perl_5.24",
+ "explain": "devdocs上的Perl 5.24文档",
+ "cmds": ["dd_Perl_5.24"],
+ "icon": "logo/Perl.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/perl~5.24/index.json"
+ },
+ "dd_Perl_5.22": {
+ "features": {
+ "code": "dd_Perl_5.22",
+ "explain": "devdocs上的Perl 5.22文档",
+ "cmds": ["dd_Perl_5.22"],
+ "icon": "logo/Perl.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/perl~5.22/index.json"
+ },
+ "dd_Perl_5.20": {
+ "features": {
+ "code": "dd_Perl_5.20",
+ "explain": "devdocs上的Perl 5.20文档",
+ "cmds": ["dd_Perl_5.20"],
+ "icon": "logo/Perl.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/perl~5.20/index.json"
+ },
+ "dd_Phalcon_3": {
+ "features": {
+ "code": "dd_Phalcon_3",
+ "explain": "devdocs上的Phalcon 3文档",
+ "cmds": ["dd_Phalcon_3"],
+ "icon": "logo/Phalcon.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phalcon~3/index.json"
+ },
+ "dd_Phalcon_2": {
+ "features": {
+ "code": "dd_Phalcon_2",
+ "explain": "devdocs上的Phalcon 2文档",
+ "cmds": ["dd_Phalcon_2"],
+ "icon": "logo/Phalcon.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phalcon~2/index.json"
+ },
+ "dd_Phaser": {
+ "features": {
+ "code": "dd_Phaser",
+ "explain": "devdocs上的Phaser文档",
+ "cmds": ["dd_Phaser"],
+ "icon": "logo/Phaser.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phaser/index.json"
+ },
+ "dd_Phoenix": {
+ "features": {
+ "code": "dd_Phoenix",
+ "explain": "devdocs上的Phoenix文档",
+ "cmds": ["dd_Phoenix"],
+ "icon": "logo/Phoenix.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phoenix/index.json"
+ },
+ "dd_PHP": {
+ "features": {
+ "code": "dd_PHP",
+ "explain": "devdocs上的PHP文档",
+ "cmds": ["dd_PHP"],
+ "icon": "logo/PHP.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/php/index.json"
+ },
+ "dd_PHPUnit_6": {
+ "features": {
+ "code": "dd_PHPUnit_6",
+ "explain": "devdocs上的PHPUnit 6文档",
+ "cmds": ["dd_PHPUnit_6"],
+ "icon": "logo/PHPUnit.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phpunit~6/index.json"
+ },
+ "dd_PHPUnit_5": {
+ "features": {
+ "code": "dd_PHPUnit_5",
+ "explain": "devdocs上的PHPUnit 5文档",
+ "cmds": ["dd_PHPUnit_5"],
+ "icon": "logo/PHPUnit.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phpunit~5/index.json"
+ },
+ "dd_PHPUnit_4": {
+ "features": {
+ "code": "dd_PHPUnit_4",
+ "explain": "devdocs上的PHPUnit 4文档",
+ "cmds": ["dd_PHPUnit_4"],
+ "icon": "logo/PHPUnit.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/phpunit~4/index.json"
+ },
+ "dd_PostgreSQL_10": {
+ "features": {
+ "code": "dd_PostgreSQL_10",
+ "explain": "devdocs上的PostgreSQL 10文档",
+ "cmds": ["dd_PostgreSQL_10"],
+ "icon": "logo/PostgreSQL.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/postgresql~10/index.json"
+ },
+ "dd_PostgreSQL_9.6": {
+ "features": {
+ "code": "dd_PostgreSQL_9.6",
+ "explain": "devdocs上的PostgreSQL 9.6文档",
+ "cmds": ["dd_PostgreSQL_9.6"],
+ "icon": "logo/PostgreSQL.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/postgresql~9.6/index.json"
+ },
+ "dd_PostgreSQL_9.5": {
+ "features": {
+ "code": "dd_PostgreSQL_9.5",
+ "explain": "devdocs上的PostgreSQL 9.5文档",
+ "cmds": ["dd_PostgreSQL_9.5"],
+ "icon": "logo/PostgreSQL.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/postgresql~9.5/index.json"
+ },
+ "dd_PostgreSQL_9.4": {
+ "features": {
+ "code": "dd_PostgreSQL_9.4",
+ "explain": "devdocs上的PostgreSQL 9.4文档",
+ "cmds": ["dd_PostgreSQL_9.4"],
+ "icon": "logo/PostgreSQL.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/postgresql~9.4/index.json"
+ },
+ "dd_Pug": {
+ "features": {
+ "code": "dd_Pug",
+ "explain": "devdocs上的Pug文档",
+ "cmds": ["dd_Pug"],
+ "icon": "logo/Pug.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pug/index.json"
+ },
+ "dd_Puppeteer": {
+ "features": {
+ "code": "dd_Puppeteer",
+ "explain": "devdocs上的Puppeteer文档",
+ "cmds": ["dd_Puppeteer"],
+ "icon": "logo/Puppeteer.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/puppeteer/index.json"
+ },
+ "dd_Pygame": {
+ "features": {
+ "code": "dd_Pygame",
+ "explain": "devdocs上的Pygame文档",
+ "cmds": ["dd_Pygame"],
+ "icon": "logo/Pygame.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/pygame/index.json"
+ },
+ "dd_Python_3.7": {
+ "features": {
+ "code": "dd_Python_3.7",
+ "explain": "devdocs上的Python 3.7文档",
+ "cmds": ["dd_Python_3.7"],
+ "icon": "logo/Python.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/python~3.7/index.json"
+ },
+ "dd_Python_3.6": {
+ "features": {
+ "code": "dd_Python_3.6",
+ "explain": "devdocs上的Python 3.6文档",
+ "cmds": ["dd_Python_3.6"],
+ "icon": "logo/Python.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/python~3.6/index.json"
+ },
+ "dd_Python_3.5": {
+ "features": {
+ "code": "dd_Python_3.5",
+ "explain": "devdocs上的Python 3.5文档",
+ "cmds": ["dd_Python_3.5"],
+ "icon": "logo/Python.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/python~3.5/index.json"
+ },
+ "dd_Python_2.7": {
+ "features": {
+ "code": "dd_Python_2.7",
+ "explain": "devdocs上的Python 2.7文档",
+ "cmds": ["dd_Python_2.7"],
+ "icon": "logo/Python.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/python~2.7/index.json"
+ },
+ "dd_Q": {
+ "features": {
+ "code": "dd_Q",
+ "explain": "devdocs上的Q文档",
+ "cmds": ["dd_Q"],
+ "icon": "logo/Q.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/q/index.json"
+ },
+ "dd_Qt_5.11": {
+ "features": {
+ "code": "dd_Qt_5.11",
+ "explain": "devdocs上的Qt 5.11文档",
+ "cmds": ["dd_Qt_5.11"],
+ "icon": "logo/Qt.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/qt~5.11/index.json"
+ },
+ "dd_Qt_5.9": {
+ "features": {
+ "code": "dd_Qt_5.9",
+ "explain": "devdocs上的Qt 5.9文档",
+ "cmds": ["dd_Qt_5.9"],
+ "icon": "logo/Qt.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/qt~5.9/index.json"
+ },
+ "dd_Qt_5.6": {
+ "features": {
+ "code": "dd_Qt_5.6",
+ "explain": "devdocs上的Qt 5.6文档",
+ "cmds": ["dd_Qt_5.6"],
+ "icon": "logo/Qt.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/qt~5.6/index.json"
+ },
+ "dd_Ramda": {
+ "features": {
+ "code": "dd_Ramda",
+ "explain": "devdocs上的Ramda文档",
+ "cmds": ["dd_Ramda"],
+ "icon": "logo/Ramda.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ramda/index.json"
+ },
+ "dd_React": {
+ "features": {
+ "code": "dd_React",
+ "explain": "devdocs上的React文档",
+ "cmds": ["dd_React"],
+ "icon": "logo/React.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/react/index.json"
+ },
+ "dd_ReactNative": {
+ "features": {
+ "code": "dd_ReactNative",
+ "explain": "devdocs上的ReactNative文档",
+ "cmds": ["dd_ReactNative"],
+ "icon": "logo/ReactNative.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/react_native/index.json"
+ },
+ "dd_Redis": {
+ "features": {
+ "code": "dd_Redis",
+ "explain": "devdocs上的Redis文档",
+ "cmds": ["dd_Redis"],
+ "icon": "logo/Redis.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/redis/index.json"
+ },
+ "dd_Redux": {
+ "features": {
+ "code": "dd_Redux",
+ "explain": "devdocs上的Redux文档",
+ "cmds": ["dd_Redux"],
+ "icon": "logo/Redux.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/redux/index.json"
+ },
+ "dd_Relay": {
+ "features": {
+ "code": "dd_Relay",
+ "explain": "devdocs上的Relay文档",
+ "cmds": ["dd_Relay"],
+ "icon": "logo/Relay.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/relay/index.json"
+ },
+ "dd_RequireJS": {
+ "features": {
+ "code": "dd_RequireJS",
+ "explain": "devdocs上的RequireJS文档",
+ "cmds": ["dd_RequireJS"],
+ "icon": "logo/RequireJS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/requirejs/index.json"
+ },
+ "dd_RethinkDB_JavaScript": {
+ "features": {
+ "code": "dd_RethinkDB_JavaScript",
+ "explain": "devdocs上的RethinkDB JavaScript文档",
+ "cmds": ["dd_RethinkDB_JavaScript"],
+ "icon": "logo/RethinkDB.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rethinkdb~javascript/index.json"
+ },
+ "dd_RethinkDB_Ruby": {
+ "features": {
+ "code": "dd_RethinkDB_Ruby",
+ "explain": "devdocs上的RethinkDB Ruby文档",
+ "cmds": ["dd_RethinkDB_Ruby"],
+ "icon": "logo/RethinkDB.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rethinkdb~ruby/index.json"
+ },
+ "dd_RethinkDB_Python": {
+ "features": {
+ "code": "dd_RethinkDB_Python",
+ "explain": "devdocs上的RethinkDB Python文档",
+ "cmds": ["dd_RethinkDB_Python"],
+ "icon": "logo/RethinkDB.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rethinkdb~python/index.json"
+ },
+ "dd_RethinkDB_Java": {
+ "features": {
+ "code": "dd_RethinkDB_Java",
+ "explain": "devdocs上的RethinkDB Java文档",
+ "cmds": ["dd_RethinkDB_Java"],
+ "icon": "logo/RethinkDB.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rethinkdb~java/index.json"
+ },
+ "dd_Ruby_2.5": {
+ "features": {
+ "code": "dd_Ruby_2.5",
+ "explain": "devdocs上的Ruby 2.5文档",
+ "cmds": ["dd_Ruby_2.5"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ruby~2.5/index.json"
+ },
+ "dd_Ruby_2.4": {
+ "features": {
+ "code": "dd_Ruby_2.4",
+ "explain": "devdocs上的Ruby 2.4文档",
+ "cmds": ["dd_Ruby_2.4"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ruby~2.4/index.json"
+ },
+ "dd_Ruby_2.3": {
+ "features": {
+ "code": "dd_Ruby_2.3",
+ "explain": "devdocs上的Ruby 2.3文档",
+ "cmds": ["dd_Ruby_2.3"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ruby~2.3/index.json"
+ },
+ "dd_Ruby_2.2": {
+ "features": {
+ "code": "dd_Ruby_2.2",
+ "explain": "devdocs上的Ruby 2.2文档",
+ "cmds": ["dd_Ruby_2.2"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/ruby~2.2/index.json"
+ },
+ "dd_Ruby_Minitest": {
+ "features": {
+ "code": "dd_Ruby_Minitest",
+ "explain": "devdocs上的Ruby_Minitest文档",
+ "cmds": ["dd_Ruby_Minitest"],
+ "icon": "logo/Ruby_Minitest.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/minitest/index.json"
+ },
+ "dd_Ruby_on_Rails_5.2": {
+ "features": {
+ "code": "dd_Ruby_on_Rails_5.2",
+ "explain": "devdocs上的Ruby on Rails 5.2文档",
+ "cmds": ["dd_Ruby_on_Rails_5.2"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rails~5.2/index.json"
+ },
+ "dd_Ruby_on_Rails_5.1": {
+ "features": {
+ "code": "dd_Ruby_on_Rails_5.1",
+ "explain": "devdocs上的Ruby on Rails 5.1文档",
+ "cmds": ["dd_Ruby_on_Rails_5.1"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rails~5.1/index.json"
+ },
+ "dd_Ruby_on_Rails_5.0": {
+ "features": {
+ "code": "dd_Ruby_on_Rails_5.0",
+ "explain": "devdocs上的Ruby on Rails 5.0文档",
+ "cmds": ["dd_Ruby_on_Rails_5.0"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rails~5.0/index.json"
+ },
+ "dd_Ruby_on_Rails_4.2": {
+ "features": {
+ "code": "dd_Ruby_on_Rails_4.2",
+ "explain": "devdocs上的Ruby on Rails 4.2文档",
+ "cmds": ["dd_Ruby_on_Rails_4.2"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rails~4.2/index.json"
+ },
+ "dd_Ruby_on_Rails_4.1": {
+ "features": {
+ "code": "dd_Ruby_on_Rails_4.1",
+ "explain": "devdocs上的Ruby on Rails 4.1文档",
+ "cmds": ["dd_Ruby_on_Rails_4.1"],
+ "icon": "logo/Ruby.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rails~4.1/index.json"
+ },
+ "dd_Rust": {
+ "features": {
+ "code": "dd_Rust",
+ "explain": "devdocs上的Rust文档",
+ "cmds": ["dd_Rust"],
+ "icon": "logo/Rust.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/rust/index.json"
+ },
+ "dd_Sass": {
+ "features": {
+ "code": "dd_Sass",
+ "explain": "devdocs上的Sass文档",
+ "cmds": ["dd_Sass"],
+ "icon": "logo/Sass.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sass/index.json"
+ },
+ "dd_scikit-image": {
+ "features": {
+ "code": "dd_scikit-image",
+ "explain": "devdocs上的scikit-image文档",
+ "cmds": ["dd_scikit-image"],
+ "icon": "logo/scikit-image.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/scikit_image/index.json"
+ },
+ "dd_scikit-learn": {
+ "features": {
+ "code": "dd_scikit-learn",
+ "explain": "devdocs上的scikit-learn文档",
+ "cmds": ["dd_scikit-learn"],
+ "icon": "logo/scikit-learn.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/scikit_learn/index.json"
+ },
+ "dd_Sinon.JS_7": {
+ "features": {
+ "code": "dd_Sinon.JS_7",
+ "explain": "devdocs上的Sinon.JS 7文档",
+ "cmds": ["dd_Sinon.JS_7"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~7/index.json"
+ },
+ "dd_Sinon.JS_6": {
+ "features": {
+ "code": "dd_Sinon.JS_6",
+ "explain": "devdocs上的Sinon.JS 6文档",
+ "cmds": ["dd_Sinon.JS_6"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~6/index.json"
+ },
+ "dd_Sinon.JS_5": {
+ "features": {
+ "code": "dd_Sinon.JS_5",
+ "explain": "devdocs上的Sinon.JS 5文档",
+ "cmds": ["dd_Sinon.JS_5"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~5/index.json"
+ },
+ "dd_Sinon.JS_4": {
+ "features": {
+ "code": "dd_Sinon.JS_4",
+ "explain": "devdocs上的Sinon.JS 4文档",
+ "cmds": ["dd_Sinon.JS_4"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~4/index.json"
+ },
+ "dd_Sinon.JS_3": {
+ "features": {
+ "code": "dd_Sinon.JS_3",
+ "explain": "devdocs上的Sinon.JS 3文档",
+ "cmds": ["dd_Sinon.JS_3"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~3/index.json"
+ },
+ "dd_Sinon.JS_2": {
+ "features": {
+ "code": "dd_Sinon.JS_2",
+ "explain": "devdocs上的Sinon.JS 2文档",
+ "cmds": ["dd_Sinon.JS_2"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~2/index.json"
+ },
+ "dd_Sinon.JS_1": {
+ "features": {
+ "code": "dd_Sinon.JS_1",
+ "explain": "devdocs上的Sinon.JS 1文档",
+ "cmds": ["dd_Sinon.JS_1"],
+ "icon": "logo/Sinon.JS.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sinon~1/index.json"
+ },
+ "dd_Socket.IO": {
+ "features": {
+ "code": "dd_Socket.IO",
+ "explain": "devdocs上的Socket.IO文档",
+ "cmds": ["dd_Socket.IO"],
+ "icon": "logo/Socket.IO.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/socketio/index.json"
+ },
+ "dd_SQLite": {
+ "features": {
+ "code": "dd_SQLite",
+ "explain": "devdocs上的SQLite文档",
+ "cmds": ["dd_SQLite"],
+ "icon": "logo/SQLite.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/sqlite/index.json"
+ },
+ "dd_Statsmodels": {
+ "features": {
+ "code": "dd_Statsmodels",
+ "explain": "devdocs上的Statsmodels文档",
+ "cmds": ["dd_Statsmodels"],
+ "icon": "logo/Statsmodels.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/statsmodels/index.json"
+ },
+ "dd_Support_Tables": {
+ "features": {
+ "code": "dd_Support_Tables",
+ "explain": "devdocs上的Support Tables文档",
+ "cmds": ["dd_Support_Tables"],
+ "icon": "logo/Support.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/browser_support_tables/index.json"
+ },
+ "dd_SVG": {
+ "features": {
+ "code": "dd_SVG",
+ "explain": "devdocs上的SVG文档",
+ "cmds": ["dd_SVG"],
+ "icon": "logo/SVG.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/svg/index.json"
+ },
+ "dd_Symfony_4.1": {
+ "features": {
+ "code": "dd_Symfony_4.1",
+ "explain": "devdocs上的Symfony 4.1文档",
+ "cmds": ["dd_Symfony_4.1"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~4.1/index.json"
+ },
+ "dd_Symfony_4.0": {
+ "features": {
+ "code": "dd_Symfony_4.0",
+ "explain": "devdocs上的Symfony 4.0文档",
+ "cmds": ["dd_Symfony_4.0"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~4.0/index.json"
+ },
+ "dd_Symfony_3.4": {
+ "features": {
+ "code": "dd_Symfony_3.4",
+ "explain": "devdocs上的Symfony 3.4文档",
+ "cmds": ["dd_Symfony_3.4"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~3.4/index.json"
+ },
+ "dd_Symfony_3.3": {
+ "features": {
+ "code": "dd_Symfony_3.3",
+ "explain": "devdocs上的Symfony 3.3文档",
+ "cmds": ["dd_Symfony_3.3"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~3.3/index.json"
+ },
+ "dd_Symfony_3.2": {
+ "features": {
+ "code": "dd_Symfony_3.2",
+ "explain": "devdocs上的Symfony 3.2文档",
+ "cmds": ["dd_Symfony_3.2"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~3.2/index.json"
+ },
+ "dd_Symfony_3.1": {
+ "features": {
+ "code": "dd_Symfony_3.1",
+ "explain": "devdocs上的Symfony 3.1文档",
+ "cmds": ["dd_Symfony_3.1"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~3.1/index.json"
+ },
+ "dd_Symfony_3.0": {
+ "features": {
+ "code": "dd_Symfony_3.0",
+ "explain": "devdocs上的Symfony 3.0文档",
+ "cmds": ["dd_Symfony_3.0"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~3.0/index.json"
+ },
+ "dd_Symfony_2.8": {
+ "features": {
+ "code": "dd_Symfony_2.8",
+ "explain": "devdocs上的Symfony 2.8文档",
+ "cmds": ["dd_Symfony_2.8"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~2.8/index.json"
+ },
+ "dd_Symfony_2.7": {
+ "features": {
+ "code": "dd_Symfony_2.7",
+ "explain": "devdocs上的Symfony 2.7文档",
+ "cmds": ["dd_Symfony_2.7"],
+ "icon": "logo/Symfony.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/symfony~2.7/index.json"
+ },
+ "dd_Tcl_Tk": {
+ "features": {
+ "code": "dd_Tcl_Tk",
+ "explain": "devdocs上的Tcl_Tk文档",
+ "cmds": ["dd_Tcl_Tk"],
+ "icon": "logo/Tcl_Tk.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/tcl_tk/index.json"
+ },
+ "dd_TensorFlow_Python": {
+ "features": {
+ "code": "dd_TensorFlow_Python",
+ "explain": "devdocs上的TensorFlow Python文档",
+ "cmds": ["dd_TensorFlow_Python"],
+ "icon": "logo/TensorFlow.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/tensorflow~python/index.json"
+ },
+ "dd_TensorFlow_C++": {
+ "features": {
+ "code": "dd_TensorFlow_C++",
+ "explain": "devdocs上的TensorFlow C++文档",
+ "cmds": ["dd_TensorFlow_C++"],
+ "icon": "logo/TensorFlow.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/tensorflow~cpp/index.json"
+ },
+ "dd_TensorFlow_Guide": {
+ "features": {
+ "code": "dd_TensorFlow_Guide",
+ "explain": "devdocs上的TensorFlow Guide文档",
+ "cmds": ["dd_TensorFlow_Guide"],
+ "icon": "logo/TensorFlow.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/tensorflow~guide/index.json"
+ },
+ "dd_Terraform": {
+ "features": {
+ "code": "dd_Terraform",
+ "explain": "devdocs上的Terraform文档",
+ "cmds": ["dd_Terraform"],
+ "icon": "logo/Terraform.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/terraform/index.json"
+ },
+ "dd_Twig_2": {
+ "features": {
+ "code": "dd_Twig_2",
+ "explain": "devdocs上的Twig 2文档",
+ "cmds": ["dd_Twig_2"],
+ "icon": "logo/Twig.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/twig~2/index.json"
+ },
+ "dd_Twig_1": {
+ "features": {
+ "code": "dd_Twig_1",
+ "explain": "devdocs上的Twig 1文档",
+ "cmds": ["dd_Twig_1"],
+ "icon": "logo/Twig.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/twig~1/index.json"
+ },
+ "dd_TypeScript": {
+ "features": {
+ "code": "dd_TypeScript",
+ "explain": "devdocs上的TypeScript文档",
+ "cmds": ["dd_TypeScript"],
+ "icon": "logo/TypeScript.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/typescript/index.json"
+ },
+ "dd_Underscore.js": {
+ "features": {
+ "code": "dd_Underscore.js",
+ "explain": "devdocs上的Underscore.js文档",
+ "cmds": ["dd_Underscore.js"],
+ "icon": "logo/Underscore.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/underscore/index.json"
+ },
+ "dd_Vagrant": {
+ "features": {
+ "code": "dd_Vagrant",
+ "explain": "devdocs上的Vagrant文档",
+ "cmds": ["dd_Vagrant"],
+ "icon": "logo/Vagrant.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/vagrant/index.json"
+ },
+ "dd_Vue.js_2": {
+ "features": {
+ "code": "dd_Vue.js_2",
+ "explain": "devdocs上的Vue.js 2文档",
+ "cmds": ["dd_Vue.js_2"],
+ "icon": "logo/Vue.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/vue~2/index.json"
+ },
+ "dd_Vue.js_1": {
+ "features": {
+ "code": "dd_Vue.js_1",
+ "explain": "devdocs上的Vue.js 1文档",
+ "cmds": ["dd_Vue.js_1"],
+ "icon": "logo/Vue.js.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/vue~1/index.json"
+ },
+ "dd_Vulkan": {
+ "features": {
+ "code": "dd_Vulkan",
+ "explain": "devdocs上的Vulkan文档",
+ "cmds": ["dd_Vulkan"],
+ "icon": "logo/Vulkan.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/vulkan/index.json"
+ },
+ "dd_webpack": {
+ "features": {
+ "code": "dd_webpack",
+ "explain": "devdocs上的webpack文档",
+ "cmds": ["dd_webpack"],
+ "icon": "logo/webpack.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/webpack/index.json"
+ },
+ "dd_webpack_1": {
+ "features": {
+ "code": "dd_webpack_1",
+ "explain": "devdocs上的webpack 1文档",
+ "cmds": ["dd_webpack_1"],
+ "icon": "logo/webpack.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/webpack~1/index.json"
+ },
+ "dd_XSLT&XPath": {
+ "features": {
+ "code": "dd_XSLT&XPath",
+ "explain": "devdocs上的XSLT & XPath文档",
+ "cmds": ["dd_XSLT&XPath"],
+ "icon": "logo/XSLT.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/xslt_xpath/index.json"
+ },
+ "dd_Yarn": {
+ "features": {
+ "code": "dd_Yarn",
+ "explain": "devdocs上的Yarn文档",
+ "cmds": ["dd_Yarn"],
+ "icon": "logo/Yarn.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/yarn/index.json"
+ },
+ "dd_Yii_2.0": {
+ "features": {
+ "code": "dd_Yii_2.0",
+ "explain": "devdocs上的Yii 2.0文档",
+ "cmds": ["dd_Yii_2.0"],
+ "icon": "logo/Yii.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/yii~2.0/index.json"
+ },
+ "dd_Yii_1.1": {
+ "features": {
+ "code": "dd_Yii_1.1",
+ "explain": "devdocs上的Yii 1.1文档",
+ "cmds": ["dd_Yii_1.1"],
+ "icon": "logo/Yii.png"
+ },
+ "type": "devdocs",
+ "url": "https://docs.devdocs.io/yii~1.1/index.json"
+ }
+ }
\ No newline at end of file
diff --git a/plugin.json b/plugin.json
index 00563520..57ab9d58 100644
--- a/plugin.json
+++ b/plugin.json
@@ -15,6 +15,11 @@
"code": "options",
"explain": "调整程序员手册的功能",
"cmds": [ "手册设置", "ManualOptions" ]
+ },
+ {
+ "code": "devdocs",
+ "explain": "查看 devdocs 的英文文档",
+ "cmds": [ "devdocs" ]
}
]
}
\ No newline at end of file
diff --git a/preload.js b/preload.js
index 6fa0b7eb..662e2dc6 100644
--- a/preload.js
+++ b/preload.js
@@ -3,7 +3,7 @@ const { shell } = require('electron');
const { dialog, BrowserWindow, nativeImage } = require('electron').remote
const path = require("path")
-getDirname = () => __dirname;
+dirname = __dirname;
open = url => {
shell.openExternal(url);