Skip to content

Embed jupyter notebook code in obsidian by extracting just the source code from .ipynb files.

License

Notifications You must be signed in to change notification settings

mjg-foundation/embed-code-file-ipynb-as-python

 
 

Repository files navigation

Embed Code File with Jupyter Notebook Support (Obsidian Plugin)

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

Settings

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.

How to use

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:

Vault File:

```embed-cpp
PATH: "vault://Code/main.cpp"
LINES: "2,9,30-40,100-122,150"
TITLE: "Some title"
```

Remote File:

```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 use https://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 be PATH 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.

Demo

Embed code file

Gif

Embed lines from code file

Gif

Embed lines from remote file (eg., GitHub)

Gif

Add title to normal code block

Gif

About

Embed jupyter notebook code in obsidian by extracting just the source code from .ipynb files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 86.5%
  • JavaScript 11.1%
  • CSS 2.4%