cristianvasquez6k downloadsExecute simple scripts/snippets. This plugin is experimental.
📌 Note: Looking for a more up-to-date and actively maintained plugin with similar functionality? Check out obsidian-execute-code.
This plugin allows you to run Python, Javascript etc, snippets from inside obsidian.md
It's intended for simple uses, like starting a service, running a program, etc. I've tested this only in Linux, and is experimental.
The plugin reads your 'snippet plugin settings' that contain the configuration for each language.
The plugin shows a 'run' button for a recognized (shell) snippet.

If you click, firefox opens.

Ctrl/Cmd+Shift+Enter, or select the Snippets: Run command from the paletteThe code will (hopefully) run, and any outputs will be appended after the snippet.

You can also invoke some python!

The following placeholders are recognized:
| {{vault_path}} | path of the vault |
| {{folder}} | name of the folder |
| {{file_name}} | Name of the file |
| {{file_path}} | absolute path of the file |
echo {{vault_path}}
echo {{folder}}
echo {{file_name}}
echo {{file_path}}
/home/cvasquez/obsidian
snippets-plugin
readme.md
/home/cvasquez/obsidian/snippets-plugin/readme.md
This is the config by default. It contains one entry for each language.
{
"python": {
"template": "python3 -c \"{{src}}\"",
"showModal": true,
"appendOutputContents": true,
"showRunButtonInPreview": true
},
"javascript": {
"template": "node -e \"{{src}}\"",
"showModal": true,
"appendOutputContents": true,
"showRunButtonInPreview": true
},
"sh": {
"template": "{{src}}",
"showModal": true,
"appendOutputContents": true,
"showRunButtonInPreview": true
}
}
| Template | {{src}} will be replaced |
| showModal | shows the output in a modal |
| appendOutputContents | writes the output after the code fence |
| showRunButtonInPreview | shows the button in the preview mode |
| options | additional options such as shell or encoding |
The default shell is '/bin/sh' on Unix and process.env.ComSpec on Windows. Other shells can be configured using the 'options' attribute.
Example that uses powershell:
"sh": {
"template": "{{src}}",
"options": {"shell":"powershell.exe"},
"showModal": true,
"appendOutputContents": true,
"showRunButtonInPreview": true
}
Install dependencies
npm install
Generate main.js bundle
npm run build
Copy main.js, manifest.json and styles.css to your vault's plugins folder, under [YourVaultFolder]/.obsidian/plugins/review-obsidian/.
This prototype is super experimental; I've written it because I wanted to use python inside obsidian.
Pull requests are both welcome and appreciated. :)
Thanks to: