python library for ObsidianMD
Project description
Python utilities for the personal knowledge management tool Obsidian
Motivation
I wanted to modify my notes' metadata in batch and couldn't find an existing plugin to do so. If some of the functionalities you see here are already available in a plugin, please let me know. Open for contributions.
Current features
- Create a Note object from a file path, that has a 'frontmatter', 'metadata', and 'tags' attributes
- Add / remove tags from the note
- Write back the updated note to disk
Warnings
- This code hasn't been much tested yet, use at your own peril
- This code only handles tags present in the frontmatter, not the note body
Basic usage
path = Path('path/to/file')
note = Note(path)
## print frontmatter
print(note.frontmatter)
## get the note's metadata (from frontmatter) as a dict
note.metadata
## get list of tags
print(note.tags)
## add a tag
note.add_tag('tag_name')
## remove a tag
note.remove_tag('tag_name')
## write the note with the updated metadata
note.write()
Original motivation: add a tag to all files in a folder
import os
from pathlib import Path
from source.note import Note
path_dir = Path('path/to/dir')
for r,d,fls in os.walk(path_dir):
for f in fls:
pth = Path(r)/f
note = Note(pth)
note.add_tag('tag_name')
note.write()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py-obsidianmd-0.1.0.tar.gz
(7.0 kB
view hashes)
Built Distribution
Close
Hashes for py_obsidianmd-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8632aeaea5344695cc764f0a0670e4869f631512d1eef84fe8b5fd00e099ef7c |
|
MD5 | 94e268b5819fb70c18e9b58956782287 |
|
BLAKE2b-256 | 9d2f4551064082fe905bfd202a15cad63239616af3334e11be8e7f56665247a1 |