Hugo & Obsidian 联动
使用最好的笔记管理软件 Obsidian 进行笔记整理和论文阅读记录,使用 Hugo 将这些内容进行渲染,使用 Git 作为多机器版本控制工具,最终发布到自己的网站,便于查看。
本文将介绍其中的配置和整体联动的思路。
配置自动更新
在 Gitee 的仓库设置中增加 WebHook,当 obsidian 管理的文件发生变动时向服务器发送一个post
请求,通知服务器进行重新渲染
在服务器上,通过一个Python程序监听1024端口,完成拉取最新 Obsidian文件 和 静态页面的渲染两步:
from flask import Flask
import os
app = Flask(__name__)
@app.route('/api/update/blog', methods=['POST'])
def updateBlog():
status = os.system('cd /home/trswnca/projects/obsidian-files && git pull && cd /home/trswnca/projects/hugo-site && hugo')
return str(status)
if __name__ == '__main__':
app.run(port=1024, threaded=True)
修改/etc/nginx/nginx.conf
使其将 /api
开头的请求转发到1024端口,也就是上面的Python程序进行处理:
server {
listen 80;
server_name trswnca.cc;
location / {
root /home/trswnca/projects/hugo-site/public;
index index.html;
}
location /api {
proxy_pass http://localhost:1024;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Last modified on 2024-08-05