I also do literate programming (write code as if it's a book written for your future self) with this exact same approach. Just write a two line script that removes everything that's not between ```python ``` and you can code inside Obsidian. (E.g. you can use a markdown parser like `marko` for python) I personally don't need syntax highlighting, but if you do, you can open it in your IDE/Emacs/etc and IDE should highlight most languages in Markdown files. You obviously don't get all the IDE bells and whistles, for those you can have separate files and import them in, or enable Python mode in markdown files (somehow). (Obsidian should support basic syntax highlighting for most common languages anyway)
Since Obsidian is so awesome, this approach has endless possibilities. E.g. you can do project management inside Obsidian via Kanban board, you can use Excalidraw tool in Obsidian to draw architecture diagrams, write music inside Obsidian with its Lilypond plugin, write math with LaTeX plugin etc. It just automatically works out of the box.