Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

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

Warning

  • WARNING 1: This code hasn't been much tested yet, use at your own peril :)
  • WARNING 2: This code only ahndles 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()

About

Python utilities for the personal knowledge management tool "Obsidian"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages