logseq-github-publisher

使用流程

+

logseq 部分

  • 遍历全部需要发布的文章
  • 导出文档 meta data
    • 属性中字符串引号重复
    • 文章属性如果重复会报错,toc
  • 文章格式转化
    • Nunjucks Error expected variable end
      • 需要处理被双括号包围起来的内容
      • zotero-linked-file 也要处理
    • 将 id 设置成文档的属性(持久化)
      • 等后面 db 版本持久化
    • 文件名中去除斜杠
    • wiki link 变成 http link
      • 原始代码借助模板和 hugo 的功能,实现通过文章去查文章的链接
        • 因为编译原因,关闭模板,这一条路走不同。
      • 一篇文档对应的链接有两种形式?
        • 直接指定 permalink
        • 根据文档名称生成,将 / 提升成 _
      • 解决 alias link
      • [[20250414]] 没有指定 permalink 的需要改写成绝对链接
      • [[20250414]] 导出的链接包含中括号
      • [[20250414]] 内部链接需要 url 编码(解决文档名称中的空格等特殊符号
    • block embedding 用文本替代,链接到对应的 文章的 http link
    • 不同级别标题
    • task 符号改写
    • [[logseq-anki-sync]] 部分符号改写
    • 导出 Link Reference
  • 提取图片
    • 无法上传图片
      • 通义灵码写的代码帮忙解决问题
    • 图片位置
      • hexo 图片需要放到 source/xxx 路径下,文章需要放到 source/_post/xxx 路径下
      • 实现时可以把图片上传到图床,然后修改文章,或者支持把图片和文章上传到不同的路径
    • 不重复上传图片
    • 图片上传失败
  • 生成站点之后,点击首页的文章链接变成下载
    • http://localhost:4000/#:~:text=148%E4%B8%AA%E5%AD%97)-,%E4%BD%95%E5%88%87300/034,-image.png
  • 插件配置

github 部分

  • push 到 github
    • put 接口
      • 文件需要 base64 编码
      • 如果文件已经有了需要提供 sha,如果是新文件不用提供
  • 发布进度

导出优化

  • 可读性差的文档
  • 导出进度提示
    +
  • 增量更新最近有修改的文章
  • 文件名称改变后,旧文件不会被删除。
    • 需要后面 db 版本利用page id 解决,md 版本的 page id 没有持久化
  • 文件上传前对比 sha 值,出现不一样时再修改。

插件发布相关

  • 写 readme
  • 写赞助信息
  • github action 自动编译插件
  • 提交到 logseq 官方仓库

hexo 编译问题

  • TypeError: Invalid URL
  • 修复离线编译遇到的问题
    • 仓库之前是用 git lfs 管理图片,远程添加图片后,再拉取到本地,还是会被处理成 lfs 处理。
    • metadata 中属性缺失
      • 解析 meta 非数组时,直接 copy 了数组这部分代码导致出错。。。
      • 发现脚本出错,不知道怎么中途中止,好像现在只能等他运行完。。。
    • Nunjucks Error: _posts/logseq/2024 读论文目录.md [Line 1, Column 24] parseSignature: expected comma after expression
      • 文章中默认 {{ }} 或 {% %} 是 nunjucks 标签,logseq 直接导出的文章没有对 query 等处理,会报错。
      • 根据 Front-matter | Hexo 可以给文章设置属性:disableNunjucks: false
    • 如果文章属性有 permalink: xxx,生成之后链接无法点击,需要手动修改成 permalink: xxx.html

开发环境问题

  • 问题 ERROR: This version of pnpm requires at least Node.js v18.12
    The current version of Node.js is v16.19.0
    Visit https://r.pnpm.io/comp to see the list of past pnpm versions with respective Node.js version support.
    • [[nvm]] install 18.12
    • nvm use 18.12

参考资料

  • [[Logseq Plugins 开发实战]]
  • [[logseq-schrodinger]]
  • [[logseq-anki-sync]]
  • [[obsidian-enveloppe]]

网络回响

作者

Ryen Xiang

发布于

2026-02-17

更新于

2026-02-17

许可协议


评论