adsfolio.pdf.obsidian
Obsidian-friendly Markdown note generation for tracked PDFs.
- class adsfolio.pdf.obsidian.NotePlan(original_filename, note_filename, note_path, pdf_path, action)[source]
Bases:
objectOne planned Obsidian note for a tracked PDF.
- Parameters:
original_filename (str)
note_filename (str)
note_path (pathlib.Path)
pdf_path (pathlib.Path)
action (str)
- note_path: pathlib.Path
- pdf_path: pathlib.Path
- class adsfolio.pdf.obsidian.ObsidianNoteWriter(client=None)[source]
Bases:
objectGenerate Obsidian-friendly Markdown notes from sidecar-tracked PDF metadata.
- Parameters:
client (ADSClient | None)
- MAX_BATCH_TERMS = 2000
- fetch_missing_abstracts(bibcodes)[source]
Batch-fetch abstracts for bibcodes from ADS. Returns bibcode -> abstract.
- generate(directory, state, notes_dir=None, apply=False, force=False)[source]
Plan (and, if apply, write) Obsidian notes for every tracked PDF.
- Parameters:
directory (pathlib.Path)
state (Any)
notes_dir (pathlib.Path | None)
apply (bool)
force (bool)
- Return type:
- render_note(record, pdf_path)[source]
Render one Obsidian Markdown note (YAML frontmatter + body) for record.
- Parameters:
record (collections.abc.Mapping[str, Any])
pdf_path (pathlib.Path)
- Return type: