欢迎光临散文网 会员登陆 & 注册

如何在obsidian中调用python脚本

2023-06-30 21:06 作者:1590856  | 我要投稿

obsidan是一款强大的笔记软件,很多人使用它来做自己的知识库,很巧,我就是那很多人之一,但是有些时候在obsidian中的操作具有很强的重复性,很枯燥,所以就想着能不能使用脚本辅助完成这些重复性工作,当然obsidian可以使用js或者ts来编写插件,可是我不会js,不过我会python,就想着能否在obsidian中调用python来实现我的目的,功夫不负有心人,找到方法了。分享给想在obsidian中调用python脚本的各位

因为公众号不支持外链,所以文章中的许多链接无法直接点击。可以去我的博客阅读

  • https://www.lingchenbox.xyz/index.php/2023/06/30/%e5%a6%82%e4%bd%95%e5%9c%a8obsidian%e4%b8%ad%e8%b0%83%e7%94%a8python%e8%84%9a%e6%9c%ac/

首先安装Templater

在obsidian的第三方插件库中搜索并安装。安装后启用插件。

图片

创建存放templator模板的文件夹

在obsidian中创建一个空文件夹templates,然后在templates文件夹中新建一个md文件,文件名命名为"muban",文件中填写 <% tp.user.test1() %>。填写的内容之后会用到。其中的test1字段可以根据下一步你在user function定义的函数名自行修改,我下面定义的是test1,所以这里才写的test1。

图片

配置Templater 

然后配置插件,这个插件设置的选项比较多,这里我们只设置与调用启用python脚本有关的几个选项。按照我下图中的设置。

图片

设置调用cmd的选项:

图片

这里强调一下Shell binary location这一项,填写的路径中一定得是两个\,填写/会出现莫名其妙的错误,无法成功运行。windows一般cmd的路径是C:\Windows\System32\cmd.exe。(上面的截图路径没显示全,注意不要把cmd.exe忘了)

按照上述步骤设置完成后,然后按alt+e调出templater的命令栏,选择模板“muban”执行即可。

图片

你点击muban执行后,就会调取cmd执行python "D:\\ceshi\\fff\\1.py"这个命令。

1.py的代码内容如下:

假设执行报错,可以使用快捷键ctrl+shift+i查看错误信息。

执行效果

图片

这里延伸一下,为了通过命令行给python脚本传参数,需要在python脚本中额外设置,详见下文:

  • https://blog.csdn.net/zhuifengxu/article/details/123221537

关于<% tp.user.test1() %>函数是templator插件的内置函数,还有很多种强大的内置函数,详细请参考templator的官方文档:

  • https://silentvoid13.github.io/Templater/introduction.html

介绍下插件其他选项

看完上一步就可以成功使用obsidian调用python脚本了,下面只是简单介绍一下templator的自定义js脚本功能。

图片

这个User Script Functions是调用js脚本的选项,在scripts文件夹中放一个"my_script.js"的文件(scripts文件夹和my_script.js需要自己在obsidian库的目录下创建),假设文件内容是:

则在模板文件中写一句命令:<% tp.user.my_script("Hello World!") %>即可调用这个脚本。(alt+e打开选择模板的命令栏)

最后,虽然本文主要目的是实现obsidian中调用python脚本,但是其实插件如其名,templator是一个模板插件,更平常的用途是用来创建日记等格式化文档模板的,而且能在模板中使用各种功能强大的内置函数,感兴趣的朋友可以自行去官网了解下。

本文完,感谢阅读。

参考链接:

  • [官方文档]: https://silentvoid13.github.io/Templater/introduction.html

  • [开源项目地址]: https://github.com/SilentVoid13/Templater

  • [obsidian使用python脚本(文章不详细,但是有借鉴之处,比如字符乱码解决方法) ]: https://zhuanlan.zhihu.com/p/391846157

  • [命令行给python脚本传参]: https://blog.csdn.net/zhuifengxu/article/details/123221537


本文使用 文章同步助手 同步



如何在obsidian中调用python脚本的评论 (共 条)

分享到微博请遵守国家法律