joplin-blog

场景

将 Joplin 笔记发布为静态网站的 CLI 工具,目前支持 blog/wiki 两种形式,框架支持 hexo/vuepress/jeykll/docsify。

blog demowiki demo

要求

  • 安装 nodejs 和 npm(默认随附安装)
  • 了解命令行
  • 了解 VSCode

使用

非开发者安装指南

  1. 在命令行导航到相关目录
  2. 添加依赖 npm i -D joplin-blog
  3. 添加配置文件 .joplin-blog.json(具体配置参考 配置
  4. 添加一个 npm script 脚本文件 "gen": "joplin-blog blog"(如果是要生成 wiki 则 "gen": "joplin-blog wiki"
  5. 运行命令 npm run gen
  6. 然后可以看到相关目录已经包含了笔记和附件资源

请将 .joplin-blog.json.joplin-cache.json 两个文件添加到 .gitignore 忽略文件中,前者包含敏感信息 token,后者是自动生成。

示例

支持的框架在 examples 目录中均有示例,你可以将之 clone 到本地查看。

配置

公共

配置类型必填说明
typehexo/vuepress/docsify集成博客的类型
rootPathstringhexo/vuepress 目录,默认是 .
tokenstringjoplin web clipper 的 token
baseUrlstringjoplin web clipper 的基础路径,默认是 http://localhost:41184
tagstringjoplin 的博客标签

hexo

配置类型说明
stickyTopIdListstring[]置顶的笔记 id(仅在 fluid 主题open in new window 下生效)

我用这个工具分享了 190 多篇笔记,博客地址(中文)open in new window

常见问题

token/port 指的是什么,在哪儿可以找到?

一般可以在 工具 > 选项 > 网页剪辑器 中看到

joplin web clipper

为什么导出的 blog、wiki 的笔记 id 变了?

一些可能的原因是

如何导出全部的笔记

设置 "tag": "" 以不做任何过滤导出所有标签的笔记。

笔记中 img 标签的图片资源没有被转换

参考:https://github.com/rxliuli/joplin-utils/issues/31open in new window

目前,cli 仅处理笔记中的 markdown 部分,html 标签应该会原样保留,如果希望被正确转换,则应该使用 markdown 而非 html 标签。