把Obsidian笔记分享到博客
前阵子我开始共享我在博客上的工作笔记。这增加了我写作的时间。因此,我养成了一个习惯日记并且记录我所做的事情,以至于现在我花大约一个小时写作。
我一直喜欢阅读人民的 注释.这些笔记虽然不如博客文章那么精致,但能让你从不同的角度看到对方的内心世界。
从上周开始,我把所有东西都搬到了Obsidian里,只保留了我的博客,用来构建Markdown文件并上传到互联网。这让我方便多了,因为现在我可以查阅所有笔记,所有写作都集中在一个地方。
我的目标是通过从 Obsidian 导出网站,在网站上分享更多内容。直到我把所有笔记都搬过去 Obsidian 之前,我从未养成习惯。我没有复杂的工作流程,我会把内容写进文件并链接起来。
我不再需要手动同步博客和笔记了。这就是我分享旅行还有我的花园在线。
目前我分享的vault页面不会出现在RSS订阅源中。但如果博客文章提到我分享的vault页面,它会有链接指向该页面。
我很喜欢这个新配置,觉得它让写作变得更有趣、更轻松。我会和你分享。你可以复制并使用它。不要被这里的具体工具束缚。任何编辑器或博客引擎都可以。
我恰好用Hugo,但我解释的技巧可以移植到任何系统。
为什么要搬到Obsidian?
我现在没有进入Neovim缓冲区的主要原因有两个
- 同步:我可以在手机上快速写点东西,免得忘记,而且我把它放在电脑上继续。
- 附件:为博客文章添加和管理文件及图片总是很难。用Obsidian,我甚至可以用手机拍一张照片,并附加到笔记上。
我很喜欢 Neovim 作为编辑器。但并不是每个音符都必须在。我喜欢 Obsidian 的外观和感觉。有时候我会怀念那些 vim 上没有的命令。
但这是我愿意接受的妥协。
我拖了这么久才做这个,是因为它的可扩展性。你可以在 Obsidian 里安装插件。但我需要像在 Neovim 里一样,为自己定制插件的行为。
然后我做了一个个人插件我开始自定义任何我想要的东西。你可以在里面加任何自定义命令。我最喜欢的一个指令是我做的一个命令,用来记录我正在做的事情,记录在当前的每周笔记里。
这个插件可以把我喜欢的所有自定义功能都集成在一个里,而且我甚至不需要发布到任何地方。我可以在本地的保险库目录里安装并使用它。
这一步让我更常用Obsidian。
设置
我的Obsidian和vault是分开的。我的博客在GitHub上。我在Obsidian里写笔记,然后同步到GitHub。
我为自己创建了一个自定义命令,可以把我想发布的笔记复制到同一台电脑上的博客文件夹。
我在Obsidian里创建一个笔记。它可以是博客文章,也可以只是一个页面。我在Obsidian中触发“插入模板”的操作,然后插入我的“分享模板”。
这就是模板:
---
share: true
title: ""
dest: ""
---我可以顶替dest: blog/hello-world以及title: Hello World.现在,这个笔记会自动被复制到......内容目录我的博客。
于是我在博客上写了一篇新文章,内容如下:
blog/
content/
Hello World/
index.md我选择了页面捆绑包因为这让依恋管理变得容易得多。我会在下面的一个部分详细讲述。
就这样!我提交并推送,然后博客更新。我可以用Obsidian编辑,然后重复。
这里有一些注意事项。你们是如何处理指向其他页面的链接的?
独立页面
我会制作类似博客文章的独立页面。我设置dest到synced/hello-world.在《雨果》中,只有content/blog目录是特殊的,其余页面可以位于content文件夹。
我会保存到content/synced/这样可以让内容有条理。这样就很容易区分博客和其他笔记。
如果我想让页面有不同的URL,我可以通过添加来自定义url到前言。雨果也用前言。
样式页面
对于某些页面,比如我的书架我想要自定义样式。这个页面主要是存储在博客里的HTML,笔记里有一点Markdown。
这个方法的做法是,我在这条笔记的前页设置布局layout: reading-list.在《雨果》中,我可以创建一个布局在layouts/reading-list.html:
{{ define "main" }}
{{ .Title }}
{{ .Content }}
Books
{{ $syncPages := where .Site.RegularPages "Section" "synced" }} {{ if
$syncPages }}
{{ range $syncPages }}
-
{{ .File.BaseFileName }}
{{ end }}
{{ else }}
No sync pages found matching the criteria.
{{ end }}
{{ end }}然后Hugo用这个HTML来渲染那个页面。Markdown内容会显示在顶部,HTML会跟在后面。模板可以更精致一些,比如我的阅读清单侍从。
这是一个很好的区分。我不需要HTML模板放在我的Obsidian保险库里。所以它们留在博客里,笔记则在Obsidian里。
链接
这是我花最多时间把它弄对的部分。我也希望我的笔记链接能在我的博客上使用。
Obsidian 使用维基风格的链接。例如,[[Some Note]]在 Obsidian 中需要转换为[Some Note](Some link).
以下是我目前正在应用的规则:
对于[[Some Note]]先找到那张纸条。
如果该音符有share: true意思是它发布在博客上,可以链接到博客本身。查一下dest值以确定笔记的发布地点,并将链接转换为:[Some Note]($dest_value).如果笔记有类似的别名[[Some Note|this note]]然后用别名作为标题:[this note]($dest_value).
这些音符也可以携带source前置部分,即一个URL。如果Note 1已发布且有指向Note 2的链接,但Note 2未发布,则Note 2的链接指向source用URL。
这样如果我有关于某个概念的笔记,我可以指出source它会被链接到维基百科,当我在博客中提到它时,它就会变成一个链接到维基百科。
其他链接保持原样,所以任何[title](link)保持现状。
链接如[[other-note#heading]]最终将[other-note](/path/to/note).标题信息被省略了,因为我从不以那种方式链接我的帖子。
附属品
附件会和发布的笔记一起导出。如果笔记提到文件,文件会被复制到bundle目录。bundle只是包含帖子及其附件的目录。
因此,如果一个音符包含![[my-image.png]]它会与旁边的备注一起复制index.md就是这个意思。
对于照片,我需要在发布到博客前剔除照片的位置等数据。在复制图片之前,我会用EXIF 工具去除这些后再复制图片。
因为笔记及其附件都放在目录里,如果笔记或附件有任何变化,它们都会被更新,不会有过时的文件。
未发表笔记
如果我想删掉之前发布过的内容,我可以切换share到false在前言部分。这之所以有效,是因为在发布过程中程序会创建一个名为.dots-synced里面包含了所有从Obsidian同步的文件夹。
另外,如果某个文件被重命名,会创建一个新文件,而旧文件会被删除。
缺失的部分
有些事情我还没弄明白。
该怎么办数据视图查询?这些查询会在我的Obsidian Vault里转换成列表。但在博客上,我生成带有布局的列表。我目前没有发布这些。
如何处理短代码?这是Hugo的一个功能,你可以在博客中间插入一些JavaScript。我用过它本帖用来可视化Hue的载荷格式。目前我把短代码放在博客里,笔记里只参考它。
它能用,我不确定是否想过度设计它以显示在Obsidian里。也许用iframe可以在Obsidian里运行。
目前我在博客上写的内容就这些。我仍然不会把它作为插件发布到 Obsidian,因为它非常符合我自己的设置,我还在尝试。关于用自己的插件自定义保险库有一些额外的建议,但这些要等专门的帖子再说。
同时,你可以先看看我的帖子点文件.