How to Build a Personal Reading-Notes Pipeline: EPUB Highlights → Markdown → Obsidian/Git

A highlighted sentence is not yet a useful note. It becomes useful when you can find it again, understand why you saved it, and connect it to something you are working on. The technical challenge is usually less about capturing more text than preserving enough context as that text moves between tools.

The design I recommend is deliberately boring: read a file, export highlights to Markdown, add interpretation, and keep the resulting notes in an ordinary folder. Obsidian can make that folder pleasant to navigate. Git can record its history. Neither needs to become the only place the notes can exist.

Here is a pipeline you can build without designing an elaborate personal knowledge-management system first.

1. Separate sources from notes

Start with two kinds of material: the book you are reading and your notes about it. Keep them separate. A purchased or otherwise lawfully obtained EPUB belongs in your reading collection; your observations belong in your notes folder.

reading-notes/ sources/ book-title.md ideas/ a-question-worth-revisiting.md README.md 

The sources directory holds one note per book. The ideas directory holds writing that crosses book boundaries. Do not put copyrighted book files in a public repository. Even private repositories deserve a deliberate decision about what you upload.

2. Test the export route first

Before committing to a reader, highlight one paragraph, export it, and inspect the result in a plain-text editor. Can you read it without the original application? Is the source identifiable? Does the export contain enough information to relocate the passage?

Athena Reader's Markdown highlight export is one option for this capture step. It reads EPUB, PDF, Word, and TXT files you own, and its core features are free with no ads. The important property for this workflow is the Markdown output, not an assumption about any particular export schema.

Inspect a real export before writing automation. Do not build a parser around fields you hope the app includes.

3. Add a stable wrapper

Keep the exported material intact until you understand its structure. Around it, add a small amount of metadata you control:

--- title: "Example Book" author: "Author Name" status: reading --- # Example Book ## Why I am reading this A question this book might help me answer. ## Exported highlights Paste the actual export here. ## My interpretation What changed in my understanding? 

These are proposed fields for your own notes, not a claim about what a reader exports. If an export omits locations, add a chapter or section reference manually when practical. Avoid treating an EPUB position as a universally stable identifier: editions and formats can differ.

4. Distinguish quotation from interpretation

Use blockquotes for quoted passages and normal paragraphs for your thinking. A useful annotation might say, “This suggests a different way to structure our onboarding checklist,” rather than merely “Interesting.”

After a session, choose one or two highlights and answer three questions: What is the claim? Why does it matter? Where could I apply or challenge it? This is where the pipeline produces knowledge rather than an increasingly elaborate clipboard.

Keep quotations proportionate, especially if you intend to publish your notes. Owning a file does not automatically grant permission to redistribute its contents.

5. Open the folder in Obsidian

Create or open an Obsidian vault using the notes folder. The underlying Markdown remains readable elsewhere. Add links only when they help navigation: a book note might link to an idea note about decision-making or accessibility.

Resist installing a stack of plugins before you have a repeatable review habit. Search, headings, and ordinary links are sufficient initially. A weekly review can be as simple as opening recently changed notes and turning one useful observation into a standalone idea.

6. Version deliberately with Git

From the folder, initialize a repository and make explicit commits:

git init git add README.md sources/ ideas/ git commit -m "Add initial reading notes" 

Review changes before every commit:

git diff git status 

Git records changes; it does not automatically synchronize devices or provide an independent backup. A remote repository is a separate choice. Before adding one, check for personal details, private annotations, and excessive copied text. Avoid sweeping commands that accidentally stage your entire ebook collection.

7. Make repeated imports safe

Repeated exports can create duplicates. Start manually: compare the new export with the existing note, then merge only new material. Once the format proves stable, consider a small script that stages imports in a temporary directory instead of overwriting edited notes.

Automation must never silently replace your interpretations with a fresh export. Preserve raw exports separately if needed, and test a restore before relying on the workflow.

A successful pipeline is not the one with the most integrations. It is one you can inspect and recover: a source you can reopen, a quotation you can contextualize, a thought in your own words, and a plain-text file that remains yours.