
从 Craft 到 Obsidian
Craft 使用过程中遇到一些问题,逐渐失去了耐心,虽然很美但是败给了使用体验, 所以我选择迁移到之前体验过的 Obsidian,因为 Obsidian 是 Local First 的😀。
Craft 使用过程中遇到一些问题,逐渐失去了耐心,虽然很美但是败给了使用体验,比如以下问题:
- 操作有顿感,总有不流畅的感觉;
- 拖动选中内容很容易识别为拖动块;
- 快捷键复制内容经常失败,必须右键复制。
于是今天上午花了些时间顺利出走,来到 Obsidian 阵营😂,这篇文章快速记录一下自己的使用过程,供你参考。
其实一直觉得笔记需要选 Local First 的🫣,在用 Craft 之前也是用过很多,最后还是选用之前体验过的 [Obsidian](https://obsidian.md/) 了,回归纯 Markdown 的感觉真好✨。
使用思路
因为我个人几乎没有发布的需求,正常都是自己记录和整理内容,官方提供了同步功能,但是有一些限制,我最终决定使用 iCloud 同步,以保证 macOS - iOS - Windows 三端内容可同步。
Windows 中提前安装好了 iCloud。
安装
先安装 iOS 版本,开启 iCloud 同步,这样做是为了在 iCloud 创建应用文档。
Sync your notes across devices - iCloud Driver
正常会在 iCloud 中创建 Obsidian 应用目录,里面会创建你定义的新的仓库,我这里是 Notes。
然后官网下载 macOS 或 Windows 版的 Obsidian,初次打开有仓库操作窗口,选择打开仓库,然后我们选择👆上面提到的 Notes 目录即可。
迁移笔记
1️⃣ craft 导出所有笔记
选择导出所有笔记,然后选择 Markdown,等待一段时间(笔记比较多的话时间可能比较长),结束进度后就会弹窗选择导出目录。
2️⃣ 转换笔记
使用 https://github.com/coofdy/craft-to-obsidian,需要用到 node,按照 Readme 中操作。(我导出的笔记放到了~/Documents/Obsidian 中)
1node craft-to-obsidian ~/Documents/Obsidian/Notes/
3️⃣ 复制笔记到仓库
转换结束后,把导出的笔记都剪切或拷贝到 Obsidian 的仓库目录中,在 Obsidian 中按需调整文件目录结构。
外观主题
1️⃣ 选择合适的主题
我最终选择了 Things 主题,比较简约。点击其中的 管理 按钮就能查找安装主题,比较方便。
2️⃣ 字体设置
- 调整大小为 14,默认字体 16 对我来讲太大了👀
- 界面字体和正文字体:选择的是 macOS 和 Windows 中都安装了的思源雅黑/微软雅黑。
- 代码字体:选择的是我个人常用的 Hasklug
3️⃣ 高级设置
开启了 半透明效果 和 硬件加速。
核心插件
Obsidian 插件系统包含 核心插件 和 第三方的社区插件。核心插件我开启了斜杠命令,主要是在 Craft 习惯了这种操作方式。
第三方插件
要使用第三方插件,需要关闭 安全模式,然后就可以浏览安装第三方插件了,目前我安装了以下插件。
1️⃣ Templater
这是一款增强模板功能的插件,我目前参考🔗使用 Properties 与 templates 实现一个日记模板制作了日记的模板。
如果你记日记/日志的需求或习惯,推荐看看👆这篇文章,这个模板会自动添加天气、时间、一言等信息。
这里贴一下我微调后的模板内容,替换成自己的 API_KEY 即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54<%* let weatherUrl = 'https://restapi.amap.com/v3/weather/weatherInfo' let key = '高德_API_KEY' let tencentIpUrl = 'https://apis.map.qq.com/ws/location/v1/ip'; let tencentKey = '腾讯_API_KEY' let ipResult = eval("(" + await request({url: tencentIpUrl + `?key=${tencentKey}`, method: "GET"}) + ")").result console.log("ipResult: ", ipResult) let adcode = ipResult.ad_info.adcode console.log("adcode: " + adcode) let 位置 = '' let 天气 = '' let 温度 = '' let 风向 = '' await fetch(weatherUrl + `?key=${key}&city=${adcode}&extensions=all`) .then(res => res.json()) .then((data) => { console.log("data:" + data) let info = data.forecasts[0] console.log("info:" + info) 位置 = info.province + '-' + info.city 天气 = '🌅' + info.casts[0].dayweather + ' / 🌃' + info.casts[0].nightweather 温度 = '🌅' + info.casts[0].daytemp_float + '℃' + '/ 🌃' + info.casts[0].nighttemp_float + '℃' }) -%>🌻 **日期** 🌻 <% tp.file.creation_date("YYYY年MM月DD日 HH:mm:ss") %> 🌙 **星期** 🌙 <% tp.file.creation_date("dddd") %> ⌚️ **时间** ⌚️ <% tp.file.creation_date("HH:mm:ss") %> 🌍 **位置** 🌍 <% 位置 %> ☁️ **天气** ☁️ <% 天气 %> 🌡️ **温度** 🌡️ <% 温度 %> <%* let 一言 = "" let 来源 = "" let 作者 = "" await fetch('https://v1.hitokoto.cn/?c=d&c=h&c=i&c=j') .then(response => response.json()) .then(data => { 一言 = data.hitokoto 来源 = data.from 作者 = data.from_who === null ? '佚名' : data.from_who }) -%> >[!quote] 一言 > <% 一言 %> —— 《<% 来源 %>》 · <% 作者 %> ## 生活 <% tp.file.cursor() %> ## 工作 **← [[<% tp.date.now("YYYY-MM-DD", -1) %>]] • [[<% tp.date.now("YYYY-MM-DD", 1) %>]] →**
⚠️注意:按照上面的文章上面在设置腾讯 IP 获取的应用和 key 的时候需要手动配额。
当然模板不仅可以用于这类笔记,还可以把那些需要统一内容模块的笔记抽象总结为模板,比如读书笔记。
2️⃣ Importer
这个插件可以帮助导入比较流行笔记软件的笔记,比如 Apple Notes 、Bear、Evenote(印象笔记)、Google keep、HTML、OneNote、Notion、Roam Research 和 TextBundle。
3️⃣ Auto Card Link
这个插件主要用来生成链接卡片。
总结
这次文章内容先整理这些,目前我也是 Obsidian 小萌新啦🙃,今天在 Obsidian 中丝滑写了几篇 Zipic 技术预研笔记,目前使用体验极佳。
如果你最近恰好有迁移笔记系统的需求,可以试试 Obsidian,它有很高的自定义灵活性,虽然略显复杂但是真的确实可以打造为更适合自己的笔记系统。🚀
不多说了,我要去研究下 Thino 了💨 → Obsidian+Thino插件 打造免费碎片笔记整理系统。
