跳到主要内容

静态博客搭建方法小结

· 阅读需 3 分钟

好久没写博客了,快要荒废了。也许是之前从Hexo静态博客迁移到typecho博客花了不少精力吧,说实话还是挺折腾的,静态博客其实也挺好的。秉承着对于之前静态博客的怀念,写一篇关于静态博客搭建的文章吧。

Hexo

以Hexo静态博客为例,首先需要安装Node.js,Mac/Linux的话推荐先安装nvm,一个Node.js的版本管理工具,详见:nvm-sh/nvm: Node Version Manager,然后安装Node.js。

之后全局安装hexo-cli:

$ npm install hexo-cli -g

Hexo具体使用方法可以看看官网:Hexo

使用cutycapt将网页转为图片

· 阅读需 2 分钟

有时需要在程序里将网页转为图片。虽然使用Chrome或Firefox的headless模式可以做到(不过有时也未必可以),但是,它们比较占用资源。这时,可以用cutycapt这个命令行小工具,它基于QT,非常小巧。

安装

在Ubuntu上安装比较简单,直接安装即可:

$ sudo apt install cutycapt

在ArchLinux上,它位于AUR上,名字叫cutycapt-qt5-git,安装:

$ yay cutycapt-qt5-git

注意,在ArchLinux上它的启动命令行是CutyCapt

解决markdown-it-prism未能正确加载Languages的BUG

· 阅读需 4 分钟

hexo博客同步至csdn - 木然轩一文中,我提到了prismjs在尝试渲染C++代码块时不能正确加载node_modules/prismjs/components/prism-cpp.js。于是,我在prismjs的GitHub项目上提交了Pull Request:cpp extend clike by jlice · Pull Request #1914 · PrismJS/prism。不过,prismjs的项目维护者却告诉我,这锅prismjs不背,是markdown-it-prism自己的问题。

其实在提交这个Pull Request时我也觉得奇怪,prismjs的用户基数那么大,而C++也是非常常见的语言,要是出现这种问题早就解决了。不过,我的确是在一顿Debug后找到了出错的位置,但这个出错的位置是错误的果,未必是错误的因。

prismjs

prismjs是一个代码块高亮的库,其作用和highlight.js差不多,有点像Python里的Pygments。大致看了下prismjs的源码,感觉主要就是用正则表达式描述了各编程语言的文法,然后做词法分析,对各种类型的token应用相应的样式。下面是prismjs的目录结构:

Hexo博客同步至CSDN

· 阅读需 8 分钟

使用百度搜索,CSDN上的文章经常排在前面,可是,我并不喜欢在CSDN上写博客。而且,如果使用GitHub Pages搭建个人博客,由于GitHub屏蔽了百度的蜘蛛,百度会抓取失败,网站也就没有索引和流量了。虽然Google对于个人博客的收录比较快,也没那么麻烦,但国内使用百度搜索的还是比较多的。除了考虑不用GitHub Pages搭建,还可以考虑把文章同步到CSDN,使用CSDN来进行导流。

上网一查基本都是CSDN文章导出Markdown到Hexo,却没有Hexo博客同步到CSDN的,在GitHub上也没有找到相关的开源程序,无奈之下,只好自己搞一个了。本文就记录一下其中踩到的坑以及解决方案。

Markdown渲染

在CSDN上创建Markdown文章时,会发送一个POST请求,有markdowncontentcontent字段:前者是Markdown内容,在使用CSDN的Markdown编辑器时会使用这个字段;后者是渲染后的内容,在页面上显示博客会使用这个字段。这两个字段是独立的,也就是在页面上显示博客取决于content,和markdowncontent没有关系,反之亦然。

systemd-modules-load.service启动失败问题排查

· 阅读需 4 分钟

我的电脑在启动时总会提示“Failed to start Load Kernel Modules":

虽然不影响使用,可强迫症看了还是会觉得难受。所以,还是着手解决下,顺便总结下Linux下service启动失败时一般的排查方法。

这个问题是systemd-modules-load.service启动失败,因为 Failed to find module 'vfs_monitor',下面给出排查过程和解决方案。