说实话又一年没写博客了,不过终于毕业了,也许以后可以有更多的时间写写博客(tao。
趁着还没入职的间隙,做了一些博客改造的开发工作,其中运维:JavaScript:Python:Java 工作量占比大概 5 : 3 : 2 : 1 5:3:2:1 5:3:2:1,总共间断的开发了两周多。
🤹 Motivations
想必各位 NLPer 看苏神博客的时候一定被其丰富的知识量和阅读体验极佳的公式震撼过。
出于这点考虑,本期的学术化改造的一个目的就是提供良好的公式编译能力,增强对 LaTeX \LaTeX LATEX 的支持。
其二,作为学术类博客,需要提升评论及引用能力,提供相应的 B i b TeX Bib\TeX BibTEX。
其三,更清晰的 Tag 维护策略,Tag 之间存在层级关系。
除此之外,放开静态文件爬取限制,收紧 API 接口权限,实现动态管理,(其实这个一直想做的,只是没想到做起来那么花时间。
🕹 Developing
前三条,都是 JavaScript 的工作。
由于历史原因,本博客用的还是 Vuepress@0.16,看了一下 v1 版本 lib 代码改动不大,等 v2 发 beta 版了有空再改吧(能用就将就用着。
MathJax
有别于苏神使用 php 开发的博客,Vuepress 是一个基于 markdown-it 的框架。
而 Markdown 天生就和$\LaTeX$不搭,比如说_在 Markdown 中表示 $x_i + y_i$ 会被编译为x<em>i + y</em>i。
而我们的目标是支持 MathJax 而不是 katex 这种阉割版本。
参考 Yihui Xie 在The Best Way to Support LaTeX Math in Markdown with MathJax提供的思路,
利用<code>标签提供一个不会被 markdown-it 侵入的环境,再对 markdown-it 编译好的 body 做 code 标签解除,以便 MathJax 的 JavaScript 代码能够渲染相应公式区域。
replaceLatexCode(){
var i, text, code, codes = document.getElementsByTagName('code');
for

博主对个人博客进行了学术化改造,包括引入MathJax支持LaTeX公式,实现多级标签系统,升级评论功能至Utterence,并通过ELK(Elasticsearch、Logstash、Kibana)进行接口权限管理。改造旨在提升阅读体验和内容组织,同时加强了安全性。

291

被折叠的 条评论
为什么被折叠?



