Vscode系列-Foam 官方文档翻译
Foam 官方文档翻译
更新
1
220.09.08 初始化
20.09.11 更新部分内容
导语
越发感到单纯 markdown + 文件夹不能满足笔记的需要.同一类型的知识彼此交叉,一个实例往往牵扯到多个知识点,单纯标签已经不够了.
Matrix 圆桌 | 网状结构笔记工具是一阵风吗? - 少数派 从这里打开了一扇新大门,之前对笔记应用的印象还停留在 onenote / Evernote. 双向链接深得我心.
介于一直是 vscode 的重度用户,而且同样支持 markdown 的 Obsidian 并不是很完善(但是开发很活跃),选择了 foam.
foam 是一个 vscode 拓展,实现了绘制双向链接图,自动管理等.网上 foam 如何使用,中文的内容还是很少,这一篇是 foam 的部分文档翻译,内容来源于 Foam | A personal knowledge management and sharing system for VSCode.
这里暂时只翻译了部分内容,有删减,图片引用全部指向源地址.
初始化 Foam 仓库
foam 官方示例仓库 foam-template.
你可以选择把笔记托管到 Github 私库,或者自己的本地服务器.只需要克隆示例仓库即可.
克隆后,在 vscode 建一个新的的工作区,打开示例仓库,此时需要安装推荐的拓展.(直接下载 zip 可能没有 .vscode 隐藏文件夹)
剩下是其他的插件配置了,具体过程可以参考 Foam + vscode 打造个人知识库 - 哔哩哔哩
发现
浏览笔记的链接图可以使用 Cmd + Shift + P (Ctrl + Shift + P for Windows)
,输入 Show graph
.
反向链接(Backlinking): 使用链接时,你可以在 vscode 的资源管理器查看到所有的反向链接(Backlinking)
运行
Cmd + Shift + P
(Ctrl + Shift + P
Windows) 输入backlinks
选择焦点在 Backlinks 视图上
.尽量使
Backlinks
窗格可见,以发现你想法之间的联系.如果你愿意还可以把
Backlinks
更为突出,详情见 Make Backlinks More Prominent其他关于 Backlinking 的计划,详情见路线图.
Simulating Unlinked references (stub)
组织
使用反向链接可以将链接组织成列表.
写作
双向链接
双向链接可以连接文档和 url
,foam 提供了双向链接的自动补全.
- 所谓的链接实际上是
[[文件名]]
,可以让你直接导航到具体的 md 文件.- 链接内的文件名有要求.例如
lower-dash-case.md
,链接中应该是[[lower-dash-case]]
而不是[[Lower Dash Case]]
.其他更多要求参见下一小节.
- 链接内的文件名有要求.例如
cmd + click
(ctrl + click
windows) 可以快速导航到对应文件.(F12 也可以,如果不爽在 文件 -> 首选项 -> 键盘快捷方式搜索editor.action.revealDefinition
重新绑定)- 当文件不存在时,会自动创建对应的
文件名.md
. - foam 文件命名要求:(因此 foam 还在不断更新中)
- 全部小写
- 没有空格、标点符号、特殊字符.
- 使用破折号作为单词分割.
- 以
.md
为文件结尾. - 正确的命名: roadmap.md foam-file-format.md f-f-f-f-falling.md
- 错误的命名: Roadmap.md(大写) foam file format.md (有空格) f-f-f-f-falling!.md(特殊字符)
日报
foam 可以快速创建每日报录,Cmd + Shift + P
(Ctrl + Shift + P
Windows) 输入选择 Foam: Open Daily Note
,foam 会在当前工作区的根目录生成一个 yyyy-mm-dd.md
文件,如果文件已存在,会打开对应文件.
默认快捷键是 alt + d
配置: 可以在 foam 的配置项中自定义文件名称和生成路径等.
- “foam.openDailyNote.directory”: “journal”: 生成文件的目录
- “foam.openDailyNote.filenameFormat”: “‘daily-note’-yyyy-mm-dd”: 生成文件名的格式
- “foam.openDailyNote.fileExtension”: “mdx”: 生成文件的文件类型
- “foam.openDailyNote.titleFormat”: “'Journal Entry, ’ dddd, mmmm d”: 文件的抬头.
- 例子: 如上的配置,生成文件是
journal/note-2020-07-25.mdx
,文件抬头是Journal Entry, Sunday, July 25
.
在未来,foam 将会提供更多日报的新格式,新特性.
如果你想在进入 foam 工作区时直接打开日报(这一特性未来会支持),在 .vscode/settings.json
文件配置
1 | "auto-run-command.rules": [ |
周报/月报,需要安装另外的拓展程序 note-macros
.具体详情见 Custom Note Macros.
图表绘制
官方推荐了两种在 markdown 中绘制图表的方法.
Mermaid
- Mermaid 并不会在 github pages 中已发布的 foam 中呈现,这里需要你使用另外的方式来生成静态网页.
Draw.io
- Draw.io 没有上面的限制.
- 两者使用上相似.
使用 Draw.io
- 安装 Draw.io 拓展
- 创建新的
*.drawio.svg
or*.drawio.png
文件. - 开始绘制你的图表.
- 最后在 md 文件中引用.例子:
url 自动转换
在 markdown 中引用 url 的格式是 [web title](url)
.
这个步骤通常是手动完成,但是有拓展可以代劳.
要求已经安装了 foam 的推荐拓展 markdown-link-expander.
选中已经粘贴到 md 的 url, ctrl + shift + P
,选择 Expand URL to Markdown
.之后自动完成.
效果图
自定义预览样式
这个功能属于 vsc 自带,在 setting.json
-> markdown.styles
.
foam 的示例仓库中有定制的 Style.css
,在设置中启用.
1 | { |
剪贴板粘贴图片
曾经为了这个功能还写了个 python 脚本.
foam 推荐了两个拓展 Paste Image 和 markdown-image,但是后者不支持 MDX(貌似是支持 jsx 与 markdown 混编的一种格式),这里用的是 Paste Image.
Todo 列表
这个特性是 Markdown All-in-One 提供的,具体使用在 foam 例程的 todo.md 中.
版本控制
vscode + git = 无敌,不再表了.
发布
这一节请参考源文档吧,发布我一般都是搬到 Blog.
其他
略…因为 foam 还在迅速发展中,而且 foam 是由社区驱动,一些问题还没有很好的解决.比如块引用等.
结语
foam 还是提供了一个较为不错的基于 vsc 的笔记记录,虽然暂时并非很完善.如果从 0 开始积累的笔记,可以尝试一下.