在《使用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, 自动化

已有 25 条评论

  1. franz franz

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

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

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

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

      1. franz franz

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

  2. shu shu

    厉害了,点赞

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

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

  5. 太能折腾了,哈哈。

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

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

    1. 哈哈,我就瞎折腾。

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

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

  8. 我就觉得开 terminal 挺方便的,hexo 的文章都是 terminal 里面用 lazygit 处理的。不过这个 python script runner 还是一个很方便的发现!

    1. 是已经比较流畅了,但Obsidian内完成更方便。尤其是一些小更新、改个错别字啥的,去一次终端会觉得有点重。

  9. 我是拿ghost写文章,然后再用ghost的api通过静态生成器生成静态网页

  10. 我目前是博客写在ghost中,再去手动通过API触发Workflow仲的Action

    1. 是这个不 https://ghost.org/

    2. 是不是 ghost 这类的静态博客,写完日志都要重新生成页面呀?

      1. ghost是动态博客,目前我的用法让ghost单纯提供数据而已,可以把它理解成hugo的markdown文件集合。

        写完日志需要重新build,我写了个api可以自动触发,还算方便。

      2. ghost也是动态博客程序。
        1900的流程,感觉是再包了一层静态。这个方式感觉:
        1、Ghost在线管理文章比较方便,随时写随时更新。
        2、文章两处备份,Ghost一份,静态一份。

        1. 哦哦,了解,用ghost来写文章,在线生成静态页面,会玩

添加新评论