测试更新流程&&遇到的一些问题
这是一篇测试本博客可用性的文章,顺便列举一些我遇到的问题。
果然我还是太菜了,费了好多时间才搞定博客。以前遇到的好多hexo的问题现在没有了,现在主要就一个:图片的使用。这真是上古难题,从我开始用hexo到现在一直都有,让我严重怀疑是因为我没有正确使用hexo。
图片路径问题
我平时用typora,想要让我的笔记等md文件包括工作目录结构可以不经任何修改就发布到hexo。我的图片一般都保存在当前md文件所在位置的images
目录,也就是当前位置的所有md文件引用的图片都在同一个images
文件夹里面。网上好多图片相关的解决方案都是用的post_asset_folder
,这些都不符合我的要求啊。这一次,我发现只要我md里的图片路径前面多一个slash,也就是从images/xxx.jpg
改成/images/xxx.jpg
就可以让hexo把图片路径都指向网站根目录的images
文件夹,那就好办了!写一个hexo filter插件放在scripts
目录里让它把所有路径都添加一个slash,然后部署脚本里把images
文件夹复制到public/images
。最后的复制过程应该也可以用hexo插件解决,目前没空搞了,又不是不能用~233333
1 | ; |
插件问题
hexo-uglify这个插件的readme文档里的option
不能直接复制到_config.yml
里就不管了,里面的output
和compress
两个不能为空,至少必须设置为{}
,这也是这个插件的默认设置。如果留空,会导致插件出错而不能uglify。花了我好多时间搞这个,最后发现是被readme文档误导了。。。
MathJax
现在mathjax支持公式标号了,很好,但是会引来另一个渲染问题。简单来说,就是使用\begin{equation}...\end{equation}
时,由于有标号,mathjax为了避免渲染出来的公式和标号重叠,就对公式的container设置了一个min-width,这个浏览器开F12就可以发现了。但是这个min-width会导致一些长公式在手机端显示溢出,页面会变得很丑。issue里有折中解决办法,但我不想那样做。既然是标号问题,那就使用\begin{equation*}...\end{equation*}
,这样公式就没有标号了,目前对我来说够用了。需要标号时就只能不使用equation
环境咯。两者对比详见我的test页面。
Github Action脚本问题
这个遇到了好多,主要原因还是对action不熟悉,对Linux也不够熟悉。
用
ad-m/github-push-action
进行push操作的话,actions/checkout
必须使用persist-credentials: false
,不懂,看到前者的issue里说是后者的bug,反正跟着做就对了。不过这样会导致clone下来的项目有些git操作进行不了。我用的ubuntu-lastest,apt install的pandoc版本太低了,使用hexo-renderer-pandoc会出错,需要自己下载最新版的pandoc,貌似2.0以上就可以了。
Linux的mv命令,
mv src dest
默认是mv src/* -T dest
,如果dest是个目录又不存在而src里正好只有一个文件,这时就会导致这个文件被重命名成dest,改成mv src/* -t dest
就可以了。需要使用通配符时,比如
rm -rf !(.|..|xxx)
可能需要shopt -s extglob
,一开始在本地可以正常跑,到GitHub就出问题,后来发现是缺这个。GitHub action可以像下面这样,实现手动执行workflow。
1 | on: |
差不多就以上这些比较重要吧,GitHub action真心爽,有点像配置docker。现在我的流程是博客内容放在私有仓库的master分支,这里只有md文件和它们引用的资源,博客的hexo配置放在另一个分支。博客内容更新后,自动按照hexo配置构建好,再推到公开的仓库。本地只需要一个git环境,其他都不用了,甚至git也不用,只要有一个浏览器可以访问GitHub,在网页上写就可以了!如果整个流程没出错,现在你就可以看到这篇文章了。
就酱~该好好学习了,疫情期间在家懒到不行。