Hexo-abbrlink生成唯一永久文章鏈接

原文 首發(fā) 北宸的小站,歡迎訪問?。?!

前言

在做次優(yōu)化之前,hexo-next文章鏈接默認(rèn)的生成規(guī)則是::year/:month/:day/:title,是按照年、月、日、標(biāo)題來生成的。
比如:https://www.liaofuzhan.com/2019/08/12/hello-world/ 這樣,如果文章標(biāo)題是中文的話,URL鏈接是也會是中文,

image

復(fù)制后的鏈接是一長串,非常不利于閱讀,也不簡潔。。。??

http://localhost:4000/2019/08/13/tech/hexo/Hexo%20Next%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0%E5%93%88%E6%9E%97%E6%91%87%E7%89%B9%E6%95%88/

一種解決方案是:使用hexo-permalink-pinyin插件,將中文轉(zhuǎn)英文,參考我的這篇文章:Hexo NexT中文鏈接轉(zhuǎn)拼音(關(guān)于中文md文件名的問題)

這樣方案也存在一定的缺陷,比如修改了文章標(biāo)題,重新hexo三連后,URL就變了,以前的文章地址變成了404。而且這樣生成的URL層級也很深,不利于SEO。

那能不能生成唯一不變的URl鏈接呢?答案是可以的,已經(jīng)有人給我們實(shí)現(xiàn)了。這就是我們要說的hexo-abbrlink插件,簡單易用,為作者點(diǎn)贊(≧▽≦)/

參考github:hexo-abbrlink

使用

安裝插件

npm install hexo-abbrlink --save

執(zhí)行此命令可能會不成功,提示你缺少相應(yīng)的依賴
比如babel-eslint、mini-css-extract-plugin、webpack-cli...
使用npm命令安裝即可,比如npm install eslint@4.x babel-eslint@8 --save-dev

配置

修改根目錄站點(diǎn)配置文件config.yml,改為:

permalink: posts/:abbrlink.html  # 此處可以自己設(shè)置,也可以直接使用 :/abbrlink
abbrlink:
    alg: crc32   #算法: crc16(default) and crc32
    rep: hex     #進(jìn)制: dec(default) and hex

生成的鏈接將會是這樣的(官方樣例):

crc16 & hex
https://post.zz173.com/posts/66c8.html

crc16 & dec
https://post.zz173.com/posts/65535.html
crc32 & hex
https://post.zz173.com/posts/8ddf18fb.html

crc32 & dec
https://post.zz173.com/posts/1690090958.html

生成完后,原md文件的Front-matter 內(nèi)會增加abbrlink 字段,值為生成的ID 。這個字段確保了在我們修改了Front-matter 內(nèi)的博客標(biāo)題title或創(chuàng)建日期date字段之后而不會改變鏈接地址。

hexo三連試一下效果吧~(__)Y

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容