昨天寫了一篇文章吼鱼,介紹了如何進(jìn)行模塊化文檔編寫與自動(dòng)化打包成單個(gè)HTML文件的方法蓬豁。但是還有一點(diǎn)遺憾绰咽,就是不支持中文標(biāo)題,這個(gè)是由于我使用的兩個(gè)插件本身的問(wèn)題地粪,今天花了點(diǎn)時(shí)間取募,把這個(gè)問(wèn)題解決了一下,記錄如下蟆技。
我的計(jì)劃是把這兩個(gè)插件合并為一個(gè)玩敏,并新起一個(gè)名字,上傳到npmjs上去质礼,這樣就可以把原來(lái)的工程中的引用直接替換為這個(gè)新的插件旺聚,方便隨時(shí)調(diào)用。
思路確定了眶蕉,下面介紹一下工作步驟砰粹。
新建了一個(gè)工程 gitdown-cn
伸眶,將原先的gitdown
和markdown-contents
代碼都復(fù)制過(guò)來(lái)刽宪,目錄結(jié)構(gòu)如下所示。
把原來(lái)gitdown中引用markdown-contents插件的地方都修改為引用當(dāng)前目錄下的mardown-contents.js文件
const MarkdownContents = require('./markdown-contents.js');
修改package.json
文件嘴秸,精簡(jiǎn)一下岳掐,變成我自己的打包文件
{
"bundleDependencies": false,
"dependencies": {
"bluebird": "^3.5.3",
"contents": "^5.0.0",
"deadlink": "^1.1.3",
"diacritics-map": "^0.1.0",
"eslint": "^5.13.0",
"filesize": "^4.0.0",
"gitinfo": "^2.2.0",
"glob": "^7.1.3",
"jsonfile": "^5.0.0",
"lodash": "^4.17.11",
"marked": "^0.6.0",
"moment": "^2.24.0",
"stack-trace": "^0.0.10",
"url-extractor": "^2.0.2",
"yargs": "^12.0.5"
},
"keywords": [
"github",
"markdown",
"table of contents",
"toc",
"chinese",
"include",
"variable",
"transclusion"
],
"license": "BSD-3-Clause",
"main": "./dist/index.js",
"name": "gitdown-cn",
"repository": {
"type": "git",
"url": "git+https://github.com/SagittariusZhu/gitdown-cn.git"
},
"version": "2.5.7"
}
然后到原來(lái)的項(xiàng)目目錄下執(zhí)行以下命令串述,從本地添加這個(gè)插件
npm install ../gitdown-cn
修改gulpfile.js
中的引用纲酗,從gitdown
修改為gitdonw-cn
const Gitdown = require('gitdown-cn');
這時(shí)候就可以嘗試執(zhí)行以下gulp
命令新蟆,看看是否能夠正常工作。
OK吮螺,接下了就是修改gitdown-cn
中相關(guān)代碼鸠补,使其能夠支持中文標(biāo)題自動(dòng)生成對(duì)應(yīng)的ID。
這里用了 querystring
插件來(lái)對(duì)中文標(biāo)題進(jìn)行編碼闹丐,用生成的編碼值來(lái)作為標(biāo)題的ID
var querystring = require('querystring');
... ...
MarkdownContents.slugify = function(str) {
str = str.toLowerCase();
str = str.split(' ').join('-');
str = str.split(/\t/).join('--');
str = str.split(/[|$&`~=\\\/@+*!?({[\]})<>=.,;:'"^]/).join('');
str = str.split(/[卿拴。梨与?!缘挽,呻粹、;:“”【】()〔〕[]﹃﹄“ ”‘’﹁﹂—…-~《》〈〉「」]/).join('');
str = replaceDiacritics(str);
str = querystring.escape(str);
return str;
};
其它還有一些修改腮郊,這里就不一一列舉了筹燕,修改完畢后,回到原來(lái)的項(xiàng)目目錄下过咬,把標(biāo)題修改為中文制妄,然后再執(zhí)行gulp
,就可以看到如下的頁(yè)面衔掸,是不是很爽霸壹埂!
一切都OK了,就可以把插件發(fā)布到npmjs上诗芜,這樣大家都可以用啦埃疫,好東西要共享嘛栓霜!
npm publish
這是插件gitdown-cn胳蛮,歡迎使用丛晌!