Hexo X Obsidian 实现关系图谱页面
前期准备
安装 hexo-filter-titlebased-link 插件:解决文章双向链接渲染
1 | npm install hexo-filter-titlebased-link --save |
准备 obsidian2cosma 脚本:转换 Obsidian 文章为 Cosma 可识别的文章
下载此脚本重命名为obsidian2cosma.py
,存放在根目录my_scripts
文件夹。
uuanqin/obsidian2cosma: Convert Obsidian vaults to collection of notes readable by Cosma and Zettlr (github.com)
因为本站文章的 abbrlink 非 int 类型而是 string 类型,该脚本不支持因而进行了些修改:
1 | // 155 行处 |
安装 Cosma:将文章生成关系图谱网站
Github:graphlab-fr/cosma: Cosma is a document graph visualization tool. It modelizes interlinked Markdown files and renders them as an interactive network in a web interface. (github.com)
Officials Webstie:Cosma | Installing Cosma (arthurperret.fr)
1 | npm install @graphlab-fr/cosma -g |
修改 Cosma 源码:为部署进行适配
修改默认cosma配置文件
修改源码中的core\models\config.js
- 解决需要手动填写
cosma c
命令生成config.yml
中files_origin
的问题 - 调整cosma配置文件修改样式
1 | static base = Object.freeze({ |
替换点击关系图谱中结点为跳转为文章页面
修改源码中的`core\static\bundle.js
1 | - ("data-node",(function(t){return t.id})).append("a").attr("href",(function(t){return"#"+t.id}) |
(废弃)修剪页面只显示画布
该方法已废弃,新实现通过hexo的custom_css完成
修改源码中的 core\static\styles\styles.css
1 | + aside,main,.close-button,#graph-controls { |
操作部署
生成关系图谱页面
- 在根目录创建
\source\DO_NOT_RENDER\cosmoscope\
文件夹存在 - 将
\source\DO_NOT_RENDER
路径添加到_config.yml
的skip_render
参考:Configuration | Hexo1
skip_render: "source/DO_NOT_RENDER/**"
- 在根目录
package.json
中scripts
项里添加以下:
1 | "scripts": { |
- 脚本中
cosma-copy
将生成的html文件移动到了主题内文件夹,可以自定义移动路径 - 使用
npm run gen-cosma
生成关系图谱页面,每次更新改关系图谱页面时需手动执行该命令
配置到网页页面
[[Hexo 自定义Page - 音乐页面]]
参考 自定义cosmoscope页面
配置cosmoscope.pug
:
1 | #cosmoscope-page |
配置source/cosmoscope/index.md
使用custom_css对页面样式进行修改,主要是对除canvas进行裁剪:
1 | /* Cosmoscope 文章星图页面 */ |
(可选)配置到网站导航
在主题配置文件中添加以下配置:
1 | menu: |
(可选)配置到网站侧边栏
参考:自定義側邊欄 | Butterfly
创建`source/_data/widget.yml
1 | - class_name: seamless-card |
记录拓展
存在问题
- 当文章的文件名与其meta.title不一致时,无法生成正确的连接。
- cosmoscope.html中的部分文段在执行命令时会报错(
YAMLException: end of the stream or a document separator is expected (24:26)
),无影响待解决。
后续改进
暂无
参考文章
Butterfly 侧边栏实现 Obsidian 关系图谱 | 半方池水半方田 (uuanqin.top)
Hexo 博客适配 Obsidian 新语法 | 半方池水半方田 (uuanqin.top)