如何在obsidian中調(diào)用python腳本
obsidan是一款強大的筆記軟件,很多人使用它來做自己的知識庫,很巧,我就是那很多人之一,但是有些時候在obsidian中的操作具有很強的重復性,很枯燥,所以就想著能不能使用腳本輔助完成這些重復性工作,當然obsidian可以使用js或者ts來編寫插件,可是我不會js,不過我會python,就想著能否在obsidian中調(diào)用python來實現(xiàn)我的目的,功夫不負有心人,找到方法了。分享給想在obsidian中調(diào)用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的第三方插件庫中搜索并安裝。安裝后啟用插件。

創(chuàng)建存放templator模板的文件夾
在obsidian中創(chuàng)建一個空文件夾templates,然后在templates文件夾中新建一個md文件,文件名命名為"muban",文件中填寫?<% tp.user.test1() %>
。填寫的內(nèi)容之后會用到。其中的test1字段可以根據(jù)下一步你在user function定義的函數(shù)名自行修改,我下面定義的是test1,所以這里才寫的test1。

配置Templater?
然后配置插件,這個插件設置的選項比較多,這里我們只設置與調(diào)用啟用python腳本有關(guān)的幾個選項。按照我下圖中的設置。

設置調(diào)用cmd的選項:

這里強調(diào)一下Shell binary location這一項,填寫的路徑中一定得是兩個\,填寫/會出現(xiàn)莫名其妙的錯誤,無法成功運行。windows一般cmd的路徑是C:\Windows\System32\cmd.exe。(上面的截圖路徑?jīng)]顯示全,注意不要把cmd.exe忘了)
按照上述步驟設置完成后,然后按alt+e調(diào)出templater的命令欄,選擇模板“muban”執(zhí)行即可。

你點擊muban執(zhí)行后,就會調(diào)取cmd執(zhí)行python "D:\\ceshi\\fff\\1.py"
這個命令。
1.py的代碼內(nèi)容如下:
假設執(zhí)行報錯,可以使用快捷鍵ctrl+shift+i查看錯誤信息。
執(zhí)行效果:

這里延伸一下,為了通過命令行給python腳本傳參數(shù),需要在python腳本中額外設置,詳見下文:
https://blog.csdn.net/zhuifengxu/article/details/123221537
關(guān)于<% tp.user.test1() %>
函數(shù)是templator插件的內(nèi)置函數(shù),還有很多種強大的內(nèi)置函數(shù),詳細請參考templator的官方文檔:
https://silentvoid13.github.io/Templater/introduction.html
介紹下插件其他選項
看完上一步就可以成功使用obsidian調(diào)用python腳本了,下面只是簡單介紹一下templator的自定義js腳本功能。

這個User Script Functions是調(diào)用js腳本的選項,在scripts文件夾中放一個"my_script.js"的文件(scripts文件夾和my_script.js需要自己在obsidian庫的目錄下創(chuàng)建),假設文件內(nèi)容是:
則在模板文件中寫一句命令:<% tp.user.my_script("Hello World!") %>
即可調(diào)用這個腳本。(alt+e打開選擇模板的命令欄)
最后,雖然本文主要目的是實現(xiàn)obsidian中調(diào)用python腳本,但是其實插件如其名,templator是一個模板插件,更平常的用途是用來創(chuàng)建日記等格式化文檔模板的,而且能在模板中使用各種功能強大的內(nèi)置函數(shù),感興趣的朋友可以自行去官網(wǎng)了解下。
本文完,感謝閱讀。
參考鏈接:
[官方文檔]:?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
本文使用?文章同步助手?同步