发布数字花园
主要参考
https://garden.oldwinter.top/obsidian-%E7%9B%AE%E5%89%8D%E6%9C%80%E5%AE%8C%E7%BE%8E%E7%9A%84%E5%85%8D%E8%B4%B9%E5%8F%91%E5%B8%83%E6%96%B9%E6%A1%88-%E6%B8%90%E8%BF%9B%E5%BC%8F%E6%95%99%E7%A8%8B#%E4%B8%80%E6%AD%A5%E6%AD%A5%E6%9D%A5%E8%AF%B4
不过其中有几个点需要注意
如果使用 submodule 的话,submodule 如果使用的 ssh 的方式(private 只能用 ssh 的方式),需要配置 deploy key
https://answers.netlify.com/t/support-guide-how-do-i-access-private-repositories-in-the-build-environment/723
如果需要 submodule 更新的同时 rebuild 站点
https://mtsknn.fi/blog/netlify-updating-private-git-submodule/#deploy-key-ssh-key
如果需要使用本地图片,build 的命令应该是
mv _notes/Extras/* . && jekyll build --trace
需要有一个 * 号
如果路径中有空格的话
mv '_notes/Extras Files'/* . && jekyll build --trace
星号不能写在引号里面
本地图片的链接需要更换为原生 Markdown 的形式,写了一个简单的 Python script 来批量更换
import os
import re
reg = r"!\[\[(.*?)\]\]"
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
file_path = os.path.join(root, name)
content = ""
flag = False
if file_path.endswith(".md"):
with open(file_path, "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
if "![[" in line:
text = re.findall(reg, line)[0]
path = text.replace(" ", "%20")
new = line.replace(f"!<span title='There is no note that matches this link.' class='invalid-link'> <span class='invalid-link-brackets'>[[</span> {text} <span class='invalid-link-brackets'>]]</span></span>", f"![{text}]({path})")
content += new
flag = True
else:
content += line
if flag:
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
print(file_path)
print("----------")
设置全文搜索
https://knightyun.github.io/2019/03/04/articles-search
对样式进行了修改,同样仿照了 https://garden.oldwinter.top/
域名
在 namecheap 上面买了一个一年的域名,rainver.top,暂时买了一年,先看看情况
评论系统
Waline+Mongodb
Mongodb 的设置需要特别注意,如果使用的时 Altas 的服务,host name 需要用 primary 的 host name。可以在 Altas 登录后从 cluster overview 中查看。MONGO_REPLICASET 可以不用设置,MONGO_AUTHSOURCE 和 MONGO_OPT_SSL 应该需要设置,没有再进行删除验证,折腾变量折腾了好久,让人有些烦恼。
划线批注功能
Hypothes 有比较完整的功能,但是直接用的话网站上的产生的划线和批注都不是自己能够控制的,还是希望这个网站的所有数据都是自己可以控制的。因为他是开源的工具,也是可以自己部署的,感觉这个没办法部署到 Netlify 上面了,可能需要到 AWS 或者 Google 上面去部署了
设置最近更新,如果采用在笔记中添加的最后更新时间的方式,注意 jekyll 中插件的写法,是否能够处理未添加日期的情况