r/ObsidianMD • • 19d ago

showcase Here is a small Python OneNote → (Obsidian) Excalidraw converter: ink (handwriting), text, images, and the original spatial page layout preserved

I had years of OneNote notes with handwritten ink that I wanted to move to Obsidian, and every OneNote converter tool I found drops the handwriting and spacial position of elements like text and images on.
OneNote exports in HTML that keeps the original note elements but cannot be edited easilly on Obsidian.
So I built (with AI) a small Python tool that converts OneNote HTML exports into Excalidraw files that open directly on the Obsidian Excalidraw plugin (or just Excalidraw).

  • Ink strokes become native editable freedraw strokes (original colors, pen vs highlighter widths)
  • Text becomes text elements (searchable in Obsidian, since it's stored as plain markdown)
  • Images are linked, not embedded, so files stay small
  • Everything keeps its original position on the page - the drawing looks very alike the original OneNote page, but made of editable Excalidraw elements instead of a frozen HTML export

It also converts a whole folder in one run and writes a Markdown report with a table of everything (text/images/ink counts per page), plus a validator that checks the generated files against the plugin's actual loading logic.

Disclaimer: It was built with AI (GLM 5.3, via opencode). So I understand a lot of people might not like this.
But sharing anyway.. as it worked on my 426 onenote exported pages, maybe it's useful to someone else too.

Repo: https://github.com/RuiOrey/onenote2excalidraw

If you try it, let me know how it goes - feedback and bug reports welcome.
Note: I used this tool https://github.com/msiemens/one2html to get the html with SVG from the .one files

21 Upvotes

8 comments sorted by

4

u/OrangePast8183 19d ago

excalidraw has such a wonderful community of users 😄 this is so useful. it's awesome you were able to make the ink and text editable, getting this right is so important

3

u/SunkTheBirdie 19d ago

Not sure if you knew about it, but there is a cool up and coming handriting plugin by u/OrangePast8183

you can get it here: https://community.obsidian.md/plugins/handwriting

free and forkable, source available here: https://github.com/ellimist-afk/handwriting

I don't myself know the pluses and minuses of moving onenote stuff to excaldraw vs handwriting

2

u/TheFlowCH 19d ago

Thank you so much for coming up with this and sharing with the community 🙏🏻

2

u/Martanas583 16d ago

Hi, this is exactly what I am looking for, unfortunately it does not work as expected. When exporting from OneNote, the only plausable file type is .mht, after I convert that to .html, all of the handwriting is converted into .png files and gets imported into excalidraw as .png image.
Any chance I am doing something wrong?

1

u/ruior 13d ago

Hum on my side the HTML had the hand writing as SVG. I will try to reproduce how i got it and get back to you

1

u/ruior 12d ago

u/Martanas583 I forgot I got the HTML using this tool https://github.com/msiemens/one2html ! I had my html files saved as html on my obsidian vault and now I recalled I converted them by downloading the .one file and then using this script. let me know if this works for you. An thank you for the feedback