将Obsidian知识库关系图谱导出为单个HTML文件的方法

大家好!今天我向大家介绍一种免费将Obsidian中的关系图谱导出为HTML文件的方法。项目地址: uuanqin/obsidian2cosma(github.com)

生成的HTML效果图如下:

网页包含以下功能:

  • 生成文章结点关系图,结点样式可以调整
  • 左侧操作面板可以调整关系图参数
  • 点击结点可以预览文章

Cosma

Obsidian官方推出了类似的功能 - Obsidian Publish。用户可以通过付费的方式将知识库传播到网络,并可以生成一个美观优秀的关系图谱。如果你觉得这样更适合你的话可以优先尝试这种方案。

Cosma 是一个开源应用,它可以通过这种方式生成这样一个图形视图:将目录中 Markdown 文本文件之间的关系,生成一个名为 cosmoscope.html 的单个 HTML 文件中。它提供了一种简单的方式来探索、可视化以及与他人共享你的知识图谱。软件来来去去,唯数据永恒。 纯文本是不会过时的,因此不使笔记过于依赖于特定的软件语法和能够轻松迁移它们的是十分重要的。

但是 Cosma 对于双向链接的语法、Front-matter的格式与Obsidian有些不同:

  • Cosma使用与 Zettlr(另一个面向学术工作的优秀编辑器)相同的语法,其[[internal links]]依赖于唯一标识符[[id]]
  • Obsidian则不同,它使用[[filename]]链接笔记文件,但限制了互操作性

将 Markdown 文件从 Obsidian 转换为与 Cosma 兼容至少有两个好处:

  • 确保您的笔记仍然可以由其他软件读取和编辑,如 Zettlr(保证互操作性的同时防止过时)
  • 能够导出和与 Cosma 共享您的全部或部分知识图谱,以单个 HTML 页面的形式,同时显示笔记与关系视图。

我们可以使用 obsidian2cosma 这个开源项目轻松将Obsidian中的文章转换为适合Cosma的文章。

Obsidian2cosma

脚本实际完成了以下事情:

  1. 复制您的 Obsidian 仓库(input folder)到另一个目录(output folder)以避免仓库内容的意外更改或丢失。以_开头的文件夹将被忽略。
  2. (可选) 根据特定类型或标签过滤输出文件夹中的 Markdown 文件。(您也可以编辑 Cosma 的配置文件来实现这一点。请参阅 Cosma的用户手册。)
  3. 为每个 Markdown 文件创建 idtitle 元数据字段(缺失相应字段则创建,否则忽略)
  4. 保存关联对 (id, title) 的关系到 CSV 文件中
  5. (默认)将所有在 Obsidian 中使用的 wiki 链接[[filename]]替换Cosma 双向链接语法(混合 Zettlr语法Obsidian使用别名的样式,即[[id|alias]])。或者增加选项--zettlr=True将其替换为 Zettlr双向链接语法
  6. (可选) 替换 Obsidian Juggl语法 中的 Typed links - prefix [[link]]Cosma 链接语法 中更灵活的语法[[prefix:link]]

此外,obsidian2cosma 还支持:

  • 根据 Front-matter 中 type 字段或 tags 字段过滤Markdown文件
  • 自动为文章生成id字段和title字段
  • 还可以输出可被 Zettlr 兼容的文章
  • 支持Obsidian Juggl syntax中的 typed links (将其转换为 Cosma 中的 semantic links

更多使用信息和例子可看项目的 中文文档


Obsidian2cosma 原作者为 Kévin Polisano,我对脚本部分代码进行重写并增添新功能以适合中文用户、Hexo博客用户使用。起由是因为我想把Obsidian的关系图导出到我的Hexo博客中,最后也实现了。

最后推荐我另外几篇 Hexo 与 Obsidian 协作的文章:

感谢大家的阅读!

5 个赞