obsidian
概述
hexo+github 的工作流程在blog迁移中已有提及,此处不详述,只谈谈编辑器优化。
之前我写blog用的是notion+typora,每次写新博客就要hexo new post [title]
一下,然后很费劲地手打文章frontmatter里的tags和categories(tab键按烂了不说,每次还得翻回旧博客看看categories的格式怎么打)。正好这几天发现obsidian的白板挺好用,于是开始学习obsidian的用法—-惊为天人。多么人性化的用户界面!多么赏心悦目的主题设置!多么精彩纷呈的插件广场!(多么令人担忧的打开速度) 总体来说,obsidian是一款花费3小时的学习配置成本就能变得非常好用的编辑器。(那我80块买的typora怎么办=w=)
既然obsidian作为编辑器比typora强上不少,那么做一些小改动、让它适配于hexo+github的博客体系就可以了。下面具体介绍这些改动。
插件
事实上,作为知识库的obsidian和作为blog编辑器的obsidian需要的编辑器差不多,因为它们都需要基础的markdown编辑、git同步、图片插入等功能。
核心插件
核心插件中的大多数都很有用,可浏览一遍酌情开启。其中最有用的是【模板】功能,可以指定文件作为模板,在新建文件中插入。我的天哪,这简直就是frontmatter的再生父母!该模板的具体设置如下:
- title
- 留空即可
- date
- 1743143468000 ,须在模板设置中定义时间格式
- tags
- 属性类型设置为标签,就可以滑动选择了!
- 输入
#标签名
以新建标签
- categories
- 留给这位佬开发的插件解决:
npm install hexo-auto-category --save
- 注意,第一次
hexo g
的时候可能不会生成categories,需再运行一次。
- 留给这位佬开发的插件解决:
- comments: true / false,属性类型为复选框
一般来说,用obsidian打开一个带frontmatter的md,它就会直接给你建好【笔记属性】栏。
第三方插件
好用的插件有:
- editing toolbar 编辑栏
- floating toc 悬浮目录
- rescent files 快速打开
- ZH 增强编辑
- excel to markdown 粘贴表格
- 等等……
其中git插件可用于在obsidian内push
,但前提条件是打开的obsidian库本身就是一个repo。像我这种blog repo在obsidian库下一层级的就麻烦了,用这个插件还不如直接git bash
,所以此处请这位讲解(ta后面讲的快捷操作没太大必要,要改_config不如用VSCode)。
重要问题优化
图片插入和尺寸调节
typora的图片插入刚在blog迁移中搞定,obsidian的图片插入问题又来。好在解决方式简单:修改附件存放路径即可。
在【设置-文件与链接-附件文件夹路径】输入blog/source/imgs即可实现粘贴即插入的图片导入。
要调节图片大小,要么安装mousewheel image zoom插件,快捷键+鼠标滚轮调节;要么手动在图片链接后面加|500
之类的缩放倍数。
obsidian暂且无法支持图片居中,默认居左,加|R
居右。
但是怎么在博客上正常显示呢?
像下面这样配置【文件与链接】即可:
图片大小用
里面的[475]
调就可以了。
双向链接
根据hexo-link-obsidian插件的readme走就行了。需要安装hexo和obsidian的插件各一个,我不想改文章的link,就麻烦点,自己加链接了。
加粗和尖括号渲染错误
加粗渲染只能通过在** 后面加空格解决,不得不说这渲染逻辑真是垃圾。
<>
符号会导致后面的markdown语法全部失效,无法渲染。只能说obsidian在针对晶向簇。解决:像上文一样把<>
放进代码块。
使用iSH+GitHub进行iPad+win双端Obsidian同步
***我的需求:windows端和ipad端互相同步。
学习了多种同步方法,发现主流同步方法都依托IBM cloudant、坚果云等等的同步软件,收费且容量小。
最终选择上传GitHub同步。难点在于ipad端的git操作(此处使用ish实现)。
主要软件:appstore的ISH 和 obsidian的Git插件
参考了:
https://forum-zh.obsidian.md/t/topic/10083
https://zhuanlan.zhihu.com/p/565028534
第一步:准备工作
- 在iPad上安装iSH应用(App Store下载)
- 在iPad上安装Obsidian应用
第二步:在iPad上创建Obsidian库
- 打开Obsidian应用,创建一个新的保管库(vault)
- 不要勾选”存储在iCloud”选项
- 点击”创建”
第三步:配置iSH并访问文件系统
- 打开iSH应用
- 首次运行时,需要安装git:
1
2apk update
apk add git - 设置git的用户信息:
1
2git config --global user.name "您的GitHub用户名"
git config --global user.email "您的GitHub邮箱" - 挂载iPad文件系统以访问Obsidian文件夹:在弹出的文件选择器中,找到并选择Obsidian文件夹(主文件夹,无需进入特定vault)
1
2mkdir -p /mnt/obsidian
mount -t ios null /mnt/obsidian - 使用root用户远程管理
1 | vim /etc/ssh/sshd_config |
第四步:克隆GitHub仓库
法一:SSH(推荐)
- 设置ipad端的ssh公钥:
1 | # 生成 |
- 配置公钥到github等托管平台
- 进入文件夹,初始化,克隆/拉取:
1 | cd /mnt/obsidian/xxx |
法二:HTTPS:(不建议)
导航到挂载的Obsidian文件夹:
1
cd /mnt/obsidian
查看当前目录内容,找到您的保管库文件夹:
1
ls
进入您的保管库文件夹:
1
cd 您的保管库名称
克隆您的GitHub仓库(替换为您的仓库URL):
1
git clone https://github.com/您的用户名/您的仓库名.git .
注意末尾的点,表示克隆到当前目录
如需输入GitHub凭据,请提供您的用户名和个人访问令牌,其创建流程如下:
- 登录GitHub网站
- 点击右上角头像→Settings→Developer settings→Personal access tokens→Tokens (classic)
- 点击”Generate new token”
- 给令牌一个名称,如”iPad Obsidian”
- 选择”repo”权限
- 设置适当的有效期
- 点击”Generate token”并复制生成的令牌(重要:令牌只会显示一次)
第五步:同步操作流程
每次使用Obsidian时:
ipad端
开始工作前:打开iSH,挂载文件系统并拉取最新更改
1
2
3
4# 注意:for some reason, git 操作在ish容易hang(卡住)。解决方案:
mount -t ios-unsafe . /mnt/obsidian
cd /mnt/obsidian/Obsidian_notes
git pull在Obsidian中进行正常使用和编辑
完成工作后:返回iSH提交并推送更改
1
2
3
4
5cd /mnt/obsidian/Obsidian_notes
mount -t ios-unsafe . /mnt/obsidian
git add .
git commit -m "iPad笔记更新"
git push --set-upstream origin master22端口问题,则使用老生常谈的.ssh/config方法:
https://zhuanlan.zhihu.com/p/521340971如果集成到了sh内,则运行命令:
1 | obspush |
集成方法:
1 | Vim gitpull.sh |
windows端
事实上我搜到的教程都提到了obsidian的git这一美妙插件。然而令我恼火的是,git插件完全不适配移动端。
它在windows端确实好用:只需配置自动同步时间间隔,然后在需要时手动同步即可。commit也可自动插入日期。
问题总结
- 超大文件传输(如大部头的PDF)
不能上传过大的PDF文档。首先用.gitignore,但.gitignore可能出问题,没用就换成git-filter-repo --path "xxx.pdf" --invert-paths
之类的插件:
1 | pip install git-filter-repo |
建议在.gitignore
文件中添加.obsidian
文件夹,因为每个设备的Obsidian配置最好独立保存。
linux命令行不熟悉
进文件vim
,编辑i
,退出编辑esc
,保存退出:wq
,再多就得问claude了。沟槽的ISH小bug
多数时间都是hang在那里了。我遇到了2次hang,一次在git add .
,用issue的神奇解法解决;一次在git push
,后来发现是经典的22端口被防火墙屏蔽,就改成了443端口。快捷指令陷阱
claude一直让我去弄ipad的快捷指令,搞了半天不得其法,还不如简单粗暴地mv git-pull.sh /usr/bin/obspull
。
总之其他同步方法收费还算有道理,因为github同步的学习成本确实高。不过一个月40块还是太夸张了,负担不起。(不如去买个claude)