No description
Find a file
Deniz Terzioglu cf02fa3e5f
Merge pull request #22 from aribaza/docs
Written comprehensive documentation
2025-10-24 11:32:52 +01:00
.github/workflows ci: add version bump workflow 2025-10-16 12:36:32 +01:00
assets docs: place relevant assets in correct directory 2025-10-17 15:17:19 +01:00
docs Modifications to config files 2025-10-22 11:34:12 +01:00
src feat: change isNotebookPaired method to check for .md and .ipynb only 2025-10-16 11:59:00 +01:00
.editorconfig Initial commit 2025-02-22 21:22:46 +00:00
.eslintignore Initial commit 2025-02-22 21:22:46 +00:00
.eslintrc Initial commit 2025-02-22 21:22:46 +00:00
.gitignore chore(docs): add .astro to .gitignore 2025-10-16 11:13:33 +01:00
.npmrc Initial commit 2025-02-22 21:22:46 +00:00
CONTRIBUTING.md docs: add version bump disclaimer to contribution guidelines 2025-10-16 11:20:39 +01:00
esbuild.config.mjs chore(react): update entry point to main.tsx in esbuild config 2025-05-27 22:52:26 +01:00
LICENSE Create LICENSE 2025-02-22 22:41:10 +00:00
manifest.json 1.4.4 2025-10-16 11:14:00 +01:00
package-lock.json Modifications to config files 2025-10-22 11:34:12 +01:00
package.json Modifications to config files 2025-10-22 11:34:12 +01:00
README.md feat: add Create Note from Jupyter Notebook command 2025-07-18 15:30:43 +08:00
styles.css style: update styles to use CSS variables and improve code block appearance 2025-06-09 00:02:34 +01:00
tsconfig.json chore(react): update tsconfig to support react-jsx and synthetic default imports 2025-05-27 22:53:39 +01:00
version-bump.mjs Initial commit 2025-02-22 21:22:46 +00:00
versions.json 1.4.4 2025-10-16 11:14:00 +01:00

jupymd-logo

JupyMD for Obsidian

GitHub Downloads (all assets, all releases) GitHub Release

Enables Jupyter notebook functionality in Obsidian. Make markdown files behave like .ipynb notebooks, with live code execution, rich output rendering, and bidirectional syncing between .md and .ipynb files.

Integrate your programming notes into Obsidian

With JupyMD you can:

  • Run Python code
  • Create plots with matplotlib
  • Conduct data analysis with pandas dataframes
  • Build machine learning models with sklearn and pytorch
  • And much of what you would typically use a Jupyter notebook for

... all in your Obsidian vault!

Use-cases:

Machine learning workflow

ml-workflow

Visualising fractals with matplotlib

mandelbrot-set

Features

  • Notebook Conversion
    • Convert existing notes in Obsidian to .ipynb files via Jupytext
    • Convert existing Jupyter notebooks (.ipynb) to Markdown notes (.md) via Jupytext
  • Bidirectional Updates Changes in Obsidian or Jupyter automatically sync between .md and .ipynb files
  • Execute Code Run code blocks in Obsidian with output captured below each block, regardless of viewing mode
  • Persistent Execution Environment Variables and imports defined in one code block are remembered by the following code blocks
  • True Jupyter Sync Executed code blocks automatically update output metadata in linked .ipynb file
  • Persistent Output Rendering Executed code outputs stay visible after restart and sync to .ipynb file
  • Rich Output Support for matplotlib plots and pandas dataframe outputs

Prerequisites

Getting started

Download the plugin through the Obsidian community plugin browser and enable it. If not yet installed, install Jupyter notebook and Jupytext through pip.

To convert a note to a Jupyter notebook

Execute the following command on a note you want Jupyter notebook capability on:

JupyMD: Create Jupyter notebook from note

This will create an .ipynb file with the same file name as the current note on the file directory, and will transform your Python code blocks into interactive code blocks. Your note will now behave like a Jupyter notebook, and sync its contents automatically to the .ipynb file. You may choose to ignore the created .ipynb file completely, as its functionality will be mirrored in Obsidian.

To convert a Jupyter notebook to a note

Open a .ipynb file in Obsidian and execute:

JupyMD: Create note from Jupyter notebook

This will create a Markdown note (.md) with the same file name as the notebook, and set up bidirectional sync between the notebook and the note.

Contributing

This project was originally built to solve a personal problem, and it's still in an early stage. Feedback, bug reports, and pull requests are all welcome and appreciated!

Note

JupyMD currently supports Python execution only.

Future versions will expand language support, though this feature is not yet in active development. Your help is appreciated, feel free to open an issue or submit a pull request if you would like to contribute!

JupyMD is an independent project and not affiliated with Project Jupyter or Obsidian.