文章目录
前言
这篇文章是为了记录笔者自身的 obsidian 配置,同时也是为了推荐 obsidian 给新用户而写。
通过 少数派 和 V2EX 社区了解到 Markdown,很适合自己。
初次接触 Markdown 语法的笔记软件是 Typora,所见即所得,加上各种快捷键,基本不用记录语法即可编写文档,还可以转换为 Word,PDF 等文档。
使用一段时间后,多了其他需求,第一点是笔记多了需要管理,第二点是一直没找到合适的移动端阅读和编辑的软件,第三点是同步和备份的需求。
这个时候,我发现了 Joplin,可以满足以上的需求,于是大部分文档用之管理。
但是也发现一些使用上的问题。第一点是文档不是按 标题.MD
的文档形式存在。第二点是图片的管理,之前 Typora 是将图片存入 标题.assets
中保存,想分享他人源文件时候,可以方便打包给出。
最近找到 Obsidian 这款软件,经过一番学习和研究后,虽然也存在一些问题,但是应该算目前最适合本人的笔记工具。
工具的选择
遵照以下的特点:
本地化
可迁移
通用
可搜索
分享
本地化
字面意思,所有笔记文件都是保存在本地的,包括图片和附件。至于同步和备份,这就是建立在本地化之后考虑的事情,工具和办法都很多,只要数据在你手上。
可迁移
本人选择工具的一大前提是可迁移,就是以后不用这个工具了,迁移到新的工具是否方便。
这一条要求下,任何国产云笔记都被排除了。
之前接触过很多在线笔记,虽然可以方便的多端同步,但是如果想导出到其他同类工具会很麻烦,甚至不可能。比如某些在线笔记,导出文档是 PDF 格式。再举例,某些云笔记不能选择全部导出,即使导出的是 PDF 文档。基本算是不具备迁移性。
通用
即笔记文件本身是建立在通用的纯文本文件上,其他实现比如图片,超链接,文字的加粗和斜体等都是通过简单标记语法实现。这就是为什么选择 MarkDown 语法做笔记的原因。(虽然 MarkDown 语法本身也在演变,甚至不同软件部分语法不通用。)
这里就解释了为什么不选 RTF 富文本,Word,PPT,甚至 Excel 来做笔记。
可搜索
即文本内文字可被搜索。在笔记文件是纯文本的基础上,实现可搜索性。
分享
这里包含两层意思,一层是可以将笔记分享给他人,一层是可以将笔记转换为其他通用格式比如 Word,RTF,PDF 等。Markdown 文本文件可以通过 Pandoc 工具来实现。这里推荐 Typora 本身的导出功能,虽然也是通过 Pandoc 实现,但是方便快捷,导出 PDF 时候还可以用 Typora 的当前主题。
下载与安装
仓库
新建仓库
即在所选文件夹下创建仓库名同名的文件夹,并在其中生成 .obsidian
配置文件夹,当前仓库的配置和插件都保存在此文件夹下。
打开本地仓库
打开之前创建的仓库文件夹。
推荐设定
主题
Typora-Vue
文件与链接
新建笔记本存放位置:当前文件所在文件夹
内部链接类型:基于当前笔记的相对路径
- 为了让 Typora 编辑器可以正确识别图片。
- 在使用 Typora 编辑 Obsidian 里的文档时候,纯文字直接编辑,涉及图片或者附件,回到 Obisian 中插入。
使用 WiKi 链接,不勾选。
- 为了兼容 Typora 编辑器。
附件默认存放路径:指定附件文件夹,attachments
。
- 为了搭配第三方插件 Attachment Management 使用。
切换配置文件夹
- PC 端默认即可。
- 手机端,建议修改成
.obsidianmobile
,以作区分,因为部分插件可能不是多平台通用。
同步及备份
同步及备份,可以使用微软 Onedrive 网盘。
在手机 Android 端,可以使用 FolderSync 做同步,缺点是略慢。
有版本控制的需求,可以使用 github 或者 gitee 。
在手机可以使用 Mgit 做同步。
当前使用插件
Hide Folders
隐藏特定文件夹,一般用于隐藏附件文件夹。
File Cleaner Redux
清理空文件,清理没被引用的附件。
Attachment Management
管理附件,主要是图片文件。
设定如下:
附件根目录,跟 Obsidian 设定一样。
附件存储路径:${notename}.assets
附件名称:IMG-${notename}-${originalname}
obsidian-plugin-dynamic-toc
Tags · Aidurber/obsidian-plugin-dynamic-toc · GitHub
设置外部渲染,与其他 MarkDown 通用目录语法格式。
Markdown Prettifier
统一 Markdown 格式。
可在 YAML 加入头部信息。
image toolkit
通过鼠标滚轮或点击工具栏缩放图标来放大或缩小图片
通过鼠标拖拽或键盘方向按键(上、下、左、右)来移动图片
支持全屏查看图片
支持左旋、右旋、x 轴翻转、y 轴翻转图片
支持实现图片的颜色反转
支持拷贝图片
弃用或者被替代的插件
Local image plus
可以由 Attachment Management 插件替代。
git
按教程设置 SSH 免密,不能成功 push 。故改为使用 Github Desktop 手动 push。
Copy Image
已被 image toolkit 插件完美替代。
只需右键单击图片,选择“复制图片”即可。这个插件提供了一个方便的方式来处理 Obsidian 中的图片,提升了用户的使用体验。
网页剪藏
Chrome 插件 MaoXian
链接:MaoXian Web Clipper (mika-cn.github.io)
迁移
从 Joplin 到 Obsidian
-
在 Joplin 中,选择 全部导出,MD 格式 + 文章前言。
-
使用 python 脚本将 Joplin 的图片语法改为 Markdown 语法。
- 将 python 脚本保存到 Joplin 导出的文件的根目录下。
- 执行脚本。
Joplin 的图片格式是
<img width="68" height="26" src="../../_resources/wps4-1.jpg" class="jop-noMdConv">
,改为 Markdown 的格式![filename](filepath)
。
import os
import re
## 来源:[如何从Joplin迁移笔记到Obsdian - 疑问解答 - Obsidian 中文论坛](https://forum-zh.obsidian.md/t/topic/30037)
# 正则表达式匹配HTML的img标签,并捕获src属性的值
img_regex = r'<img[^>]+src="([^"]+)"[^>]*>'
#<img width="68" height="26" src="../../_resources/wps4-1.jpg" class="jop-noMdConv">
# 将HTML图片标签转换为Markdown格式
def html_img_to_markdown(match):
src = match.group(1)
# return f'<img src="{src}">'
return f'![]({src})' # 返回正确的格式
# 处理单个Markdown文件
def process_md_file(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则表达式替换HTML图片标签为Markdown格式
new_content = re.sub(img_regex, html_img_to_markdown, content)
with open(file_path, 'w', encoding='utf-8') as f:
f.write(new_content)
# 遍历目录并处理所有Markdown文件
def process_md_files(directory):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.md'):
file_path = os.path.join(root, file)
process_md_file(file_path)
# 主函数
def main():
# 设置相对目录路径(相对于当前脚本所在的目录)
relative_directory_path = './'
# './no' 为相对路径,我这里将md文件全保存到了no文件夹下
# 获取绝对路径,以确保正确处理文件
absolute_directory_path = os.path.abspath(relative_directory_path)
# 处理目录下的所有Markdown文件
process_md_files(absolute_directory_path)
print(f"All Markdown files in '{absolute_directory_path}' have been processed.")
# 如果脚本作为主程序运行,则调用主函数
if __name__ == '__main__':
main()
初次发布时间:2024-07-05 21:38:39
参考资料
Obsidian——Windows 与安卓端双向同步 - 少数派 (sspai.com)