在《使用Python和MetaWeblog API发博客》一文中,我介绍了我的博客工作流:使用Obsidian写作,然后切换到命令行执行Python脚本发布。

这个工作流用了近4年,运行的非常好。唯一不足就是每次都需要打开命令行运行脚本。

最近发现Obsidian有个Python Scripter插件,能直接在Obsidian内运行Python脚本。

于是我把之前的脚本稍加修改,实现了在Obsidian内一键发布笔记到Typecho的功能。我把脚本放在Github上,有需要的朋友可以自取。

我现在写完文章,只需要CMD + P打开Obsidian的命令面板,执行一个命令就能发布文章,如下图。若文章已经发布过,自动执行更新操作。

命令面板调用脚本发布文章
命令面板调用脚本发布文章

我会点Python,有了这个插件,感觉能做非常多的事情。比如自动备份Memos。

最后,简单介绍脚本的具体配置:

1、在Obsidian插件市场搜索「Python Scripter」插件并安装

2、启用并设置Python Scripter插件。其中有两个文件路径的参数,这两个参数可以在Python脚本中引用。

Python Scripter插件设置
Python Scripter插件设置

3、在Obsidian的.obsidian目录下创建scripts/python目录,把Github脚本保存在这个目录,需要配置好博客登录名、密码等信息。

保存脚本到目录
保存脚本到目录

4、在Obsidian的命令面板中置顶该脚本,今后就能通过CMD + P唤起命令面板后,快速发布文章。

分类: 折腾 标签: Python, MetaWeblog API, Typecho, Obsidian, 自动化

已有 30 条评论

  1. hasakiikii hasakiikii

    非常喜欢博主的内容,也希望博主继续更新折腾系列
    发现一个新发布的手段,博主可以试试
    Obsidian端插件:https://github.com/Chen2226/obsidian-typecho
    typecho插件:https://github.com/Chen2226/typecho-plugin-Restful

    1. 有趣,不错。
      我暂时不会换,因为我的发布脚本中,对「文章正文」进行了很多逻辑处理,比如上传图床,去除一些内部引用等等。这些通用插件一般支持不了。

  2. hasakiikii hasakiikii

    博主现在是用OB写笔记然后上传吗?

    1. 对,还在用这个脚本,算算时间,最近一年多的博客文章,全是用OB写,然后在OB内用这个脚本发布的。

  3. hasakiikii hasakiikii

    真牛,就是来找这个的,大爱ob和typecho这种简约的站

  4. franz franz

    图片是如何处理的,如果上传图床的话,obsidian笔记就索引不到本地图片,导致本地图片被插件删除。

    1. 我是在发布时,把图片上传到图床,并用图床链接替换发布内容中的链接。但不修改本地文件。

      如此一来,本地笔记引用的还是本地图片;博客文章引用的则是图床链接。

      同时,在上传的时候,我会把本地文件名和图床的url映射关系,保存在obsidian的一条笔记中。

      1. franz franz

        我在考虑另一个方案,不用图床,直接把obsidian的图片上传到typecho的服务器上,这样步骤是不是会简化一些

  5. shu shu

    厉害了,点赞

  6. 我现在也在使用 Obsidian,确实很不错

  7. 前几天看到一个大佬使用joplin一件发布到typecho

  8. 太能折腾了,哈哈。

    1. 折腾一时爽,折腾完用起来更爽。哈哈

  9. 虽然不用,但不能不会,学习。

    1. 哈哈,我就瞎折腾。

  10. 这个功能还真不错,我现在就是想折腾obsidian能一键写到memos里。

    1. 那逻辑上和我现在一键发Typecho类似,Python能搞定,可以借助ChatGPT研究下。

添加新评论