【2】emlog&obsidan同步
因为我一开始是使用的hexo来做博客,但是编写文章一直都是使用obsidian来进行编写的,然后通过obsidian的git推送到云端,触发云端git仓库的钩子,将obsidian的文档同步到对应的文件夹,并重新进行编译。详情可以查看我的博客文章:obsidian和hexo设置
本次将博客迁移到emlog,主要是emlog比较轻量,另外一个是有一个我比较喜欢的主题。因此参考原有的obsidian和hexo的同步,参考emlog的开发文档,重新开发了一个简单的python同步程序。
1 云端部署
1.1 git部署
首先你要有一台云端的服务器,新建git,并且和你的博客最好是同一个服务器,新建用户。
1 | # 添加一个git用户并生成目录 |
上面创建的git用户可以通过ssh连接,进行任何操作。为了安全性,我们需要将git用户的活动限制在与Git相关的范围,也就是把git用户的shell改成 git-shell
1 | sudo chsh git -s $(which git-shell) |
创建blog 对应的git仓库,可以在 /var/repo下,创建一个空的blog.git仓库,地址请灵活替换。
1 | mkdir /var/repo |
配置git-hooks,这是git的钩子函数,当git push同步以后,会执行对应的脚本
1 | vim /var/repo/blog.git/hooks/post-receive |
添加如下代码,意思是将blog.git仓库里代码/文档复制到/var/www/emlog/data下
1 | #!/bin/bash |
然后将post_receive设置成可执行。
1 | chmod +x /var/repo/blog.git/hooks/post-receive |
此时,当有代码进行git push提交的时候,会将代码仓所有的文本都复制到/var/www/emlog。
如果有目录权限问题,请注意修改权限,不懂就问deepseek。
1.2 emlog_sync
复制我的github代码在服务器上,执行以下程序:
1 | # 进入对应的文件夹 |
根据github的内容执行如下程序:
1 | # 本程序安装python,如未安装请安装python3 |
编辑 config.yaml,填写你的 Emlog 配置
1 | emlog: |
执行2次,第一次建立缓存,第二次进行同步,注意work_tree要配置正确,是1.1代码复制出来的地址
1 | python3 sync.py |
1.3 git自动提交
如需要git自动提交,修改1.1的hooks/post-receive,增加对应的执行:
1 |
|
2 obsidian文档
2.1 templater插件
每个obsidian可以使用templater插件,设置对应的模板,模板的front matter:
1 | --- |
字段说明:
| 字段 | 说明 | 默认值 |
|---|---|---|
title |
文章标题 | 必填 |
date |
发布时间 | 当前时间 |
tags |
标签(列表) | 无 |
categories |
分类(取最后一个) | 默认分类 |
cover |
封面图 | 无 |
published |
是否发布(true/false) | true |
sticky |
是否置顶(0/1) | 0 |
comments |
是否允许评论 | true |
alias |
文章别名,url固定 | 无 |
2.2 git插件
下载git插件,在右下角可以提交、push
3 代码修改
因为文章同步的插件原理是git同步->服务端执行对应同步程序,程序是基于emlog的API文档调用的API接口,但是在过程中发现有几个问题,所以对源代码进行了修复。
详情可见:emlog代码和主题修复





