做啥都得讲点技术流

Hello World Again

2022.02.21

科学生活系列文章旨在把每一件事情都尽可能做到科学合理、尽可能自动化。自动化是我毕生追求,虽然我读的不是自动化专业,但对于自动化有着难以名状的执念,能减少一个手动步骤都是好的。不过这样一来也一定程度上把我兴趣领域局限在电脑方面,后面应该进一步拓展到生活的方方面面,这样才算是越活越明白。在科学系列文章开始前,首先把这个博客先弄弄好。

关于博客的折腾,从来没有停过,早年折腾过的博客不下20个,但写过的博文未必有20篇。在本次搭博客之前,是用一个github-action方案跑的博客,完全自动,已经很科学了,但觉得编辑环节还不够可视化,于是计划改为在本地用Typora编辑,并把本地文同步到服务器上去用hexo生成静态网页。

首先要解决的是同步问题,用的是resiliosync。因为官方没有arm版docker,用了一个三年前更新的第三方版本,也能用。

resiliosyc

然后把这句命令挂后台1,就可以实现实时更新了,很方便。

nohup hexo generate --watch &

后台运行持久化

不过,hexo的图片markdown语法和typora的不兼容(路径问题),搞了半天才让两者都能正常显示。需要装一个插件,改一行hexo的配置,并在typora里的相应设置图片保存路径。

npm install hexo-asset-image-for-hexo5 --save
post_asset_folder: true

至此就完成了,本地随意编辑markdown文件都会让网站自动更新,十分舒适。有点像我当年用bitcron2时的感觉(dropbox同步模式)。

博客主题选了Fluid,配置多样,文档详细3,样式也很好看。

npm install hexo-theme-fluid --save

评论系统选了Cusdis4,不要求强制留邮箱我很喜欢,轻量化还支持自部署,暂且用官方的。

hexo


update 考虑到resilio的同步有时反应迟缓,改为跑webdav(ugeek/webdav:arm),直接编辑服务器上文件,只是在没网情况下就没法写了。两种方案各有优劣。

由于oracle主机缓慢的连接速度,图片就不放在上面了,改为走图床,所以也不用再去处理复杂的图片路径问题了。同时得益于typora非常方便的picgo插件,可以实现在typora中粘贴图片,自动上传至github仓库并返回套了jsdelivr cdn的链接。这样我的post文件夹就变得很干净,只有几个markdown文件,通用性也更广。

给老婆也跑了一个博客,内容放在notion里,然后部署在vercel上,非常无脑,效果也不错。


update 瞎逛看到有一个叫hugo的静态博客程序,特点是编译速度快,而且生成博客不需要额外命令。这可太适合我了,赶紧用docker跑了一个,随便选了个主题,很快就把博客搭起来了。把markdown文件全部丢进去,博客迁移就完成了。主题配置微调了一下,非常简洁,访问速度也很快。博客的撰写或修改都只要编辑md文件就行,不需要别的任何操作,比hexo简单多了,十分满意。hexo的博客刚跑了没多久就下线有点可惜,还是在vercel上留了一份,留个念想。

hugo


update 主题换成zozo,这个主题真是一眼就喜欢,极致性冷淡,没有多余的色彩,布局也十分美观。

zozo

不过默认主题下图片不居中比较难受,于是参照网上的一篇文章,通过 Markdown Render Hooks 的方式覆盖 Hugo 的 Markdown 渲染方式,进行了两处改动。

一是新增 layouts/_default/_markup/render-image.html 文件,内容如下:

<div class="post-img-view">
<a data-fancybox="gallery" href="{{ .Destination | safeURL }}">
<div align="center"><img src="{{ .Destination | safeURL }}" alt="{{ .Text }}"></div>
</a>
</div>

二是在 layouts/partials/header.html 中添加如下代码:

<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>

另外,把评论系统换成Valine,部署比Cudis麻烦些,但不需要审核直接显示更适合我这种博客(本来就没人来评论)。这一波折腾好之后,我想暂时不会去改动了。



  1. 在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用。 ↩︎

  2. 一个已经声明关闭的服务,但网站还在 https://us.bitcron.com/ ↩︎

  3. 国人开发的hexo主题 https://fluid-dev.github.io/hexo-fluid-docs/ ↩︎

  4. 国人开发的轻量化评论系统 https://cusdis.com/ ↩︎

发表评论