py-obsidianmd
A python library for modifying Obsidian notes in batch.
See the full documentation
Presentation video
Quickstart
pip install py-obsidianmd
from pathlib import Path
from pyomd import Notes
from pyomd.metadata import MetadataType
path_dir = Path('/path/to/obsidian/folder')
notes = Notes(path_dir)
move metadata between frontmatter and inline
notes.metadata.move(fr=MetadataType.FRONTMATTER, to=MetadataType.INLINE)
notes.update_content(inline_inplace=False, inline_position="top", inline_tml="standard") #type: ignore
notes.write()
regroup inline metadata inside a callout
notes.update_content(inline_inplace=False, inline_position="top", inline_tml="callout") #type: ignore
notes.write()
add and remove metadata
notes.filter(has_meta=[("tags", "type/book", MetadataType.INLINE)])
notes.metadata.add(k="type", l="[[book]]", meta_type=MetadataType.INLINE)
notes.metadata.remove(k="tags", l="type/book", meta_type=MetadataType.INLINE)
notes.update_content(inline_inplace=False, inline_position="top", inline_tml="callout") #type: ignore
notes.write()
License
Contributing
Contributions are welcome ! Different ways you can contribute:
- Write an issue: report a bug, suggest an enhancement, ...
- Submit a pull request to solve an open issue
For more details, see the contribution guidelines.
Support
If you found this library useful and wish to support it's development, you can do so using the links below (paypal or Ko-fi). Thanks a bunch !