This plugin allows to embed code files from Obsidian vault or remote file (eg., GitHub). It works better with live preview feature of Obsidian. This version can parse Jupyter Notebook files and display them as normal Python code.
The original was created by @almariah here: Embed Code File
The plugin include multiple language by default (c,cpp,java,python,go,ruby,javascript,js,typescript,ts,shell,sh,bash
). You can include any needed language to the comma separated list.
First you need to activate the plugin from Community Plugins. Then you can embed the code as follow:
```embed-<some-language>
PATH: "vault://<some-path-to-code-file>" or "http[s]://<some-path-to-remote-file>"
LINES: "<some-line-number>,<other-number>,...,<some-range>"
TITLE: "<some-title>"
ARGS: "<some-args>"
```
Examples:
```embed-cpp
PATH: "vault://Code/main.cpp"
LINES: "2,9,30-40,100-122,150"
TITLE: "Some title"
```
```embed-cpp
PATH: "https://raw.githubusercontent.com/almariah/embed-code-file/main/main.ts"
LINES: "30-40"
TITLE: "Some title"
```
where PATH
, LINES
and TITLE
properties are set as YAML key-value pairs:
-
The
PATH
should be a code file in the vault or remote. If you have used GitHub for example, make sure to usehttps://raw.githubusercontent.com/...
-
The
LINES
will include only the specified lines of the code file. Every set of included lines either range or explicit line will append dots (...
) to included line in a newline. If you want to get rid of dots, minimize the number of sets by using one range as much as you can. -
If
TITLE
is not set, then the title of the code block will bePATH
value.
You can use also TITLE
with normal code block (without embed-
), but make sure that the title value is set with double quotes:
```cpp TITLE: "Some title"
// some code
...
```
The filetypes below accept args that control how their code is embedded.
Filetype | ARGS | Optional? | Example |
---|---|---|---|
.ipynb | List of cell numbers to display | Yes | "1,2,5" |
Using live preview feature will enhance the embedding experience.