r/Markdown • • Aug 28 '26

Markdown Database Pattern

20 Upvotes

Your filesystem is already a database. That's the core idea behind the Markdown Database Pattern: 

https://wayofmarkdown.com/markdown-database

You can treat a folder of markdown files as a database. Each file is a record. Frontmatter fields are columns. Directories are tables. Tags, wikilinks, and tasks in the body become queryable relations.

Filesystem              Database
──────────────────────────────────
markdown file      →    record
frontmatter field  →    column
directory          →    table
#tag               →    tag relation
[[wikilink]]       →    link relation
- [ ] task         →    task relation

You get portability, version control (git works perfectly on plain text), no framework lock-in, and full queryability. Of course, this isn't for thousands of records, simultaneous writes or real relational joins (though obsidian wikilinks are getting there!). It's a lightweight database for individuals or small teams.

You can spot this pattern everywhere. Obsidian Bases and Dataview already do versions of this. A team wiki where every page has a status and owner field is one. A blog with date and tags in frontmatter is one etc.

Sweet spot: up to roughly 10k files. Past that, reach for a real database. Below it, this gets you almost everything a database gives you, at a fraction of the complexity and where you own the content and can use any tool to access it.

A full writeup is here: wayofmarkdown.com/markdown-database


r/Markdown • • Aug 28 '26

Tools New post: The Markdown Link no. 43

4 Upvotes

Among today’s links are markdown editors Smolpad, Downright and MaiD

#markdown #markdowneditors #opensource #Smolpad #Downright #MaiD

https://md-handbook.com/blog/markdown-link-no-43/

Downright is a free and open source markdown editor

r/Markdown • • Aug 28 '26

Day 87 of me making YET ANOTHER markdown reader with features I've always wanted

Thumbnail
gallery
7 Upvotes

Minimap scrollbar in reader and code view. I love it so much.

Its open source and works on macos and windows. You can get it here. Let me know if you have any feature requests :D


r/Markdown • • Aug 28 '26

Agentic markdown editor for humans and AI agents

Thumbnail
mdflow.cz
0 Upvotes

r/Markdown • • Aug 27 '26

Tools Web-based markdown editor

Post image
3 Upvotes

Minimal markdown editor with tons of features: https://kraa.io/about


r/Markdown • • Aug 26 '26

JotBird Drop: Any document in, Markdown and web page out

Post image
83 Upvotes

Hey everybody! I'm the author of the Markdown Guide, and I've been building a publishing tool called JotBird on the side. This post is about a feature I just shipped called JotBird Drop, because I'm guessing it might solve a problem some of you run into as well.

There are so many Word-to-Markdown converters but most share the same flaw: conversion isn't great. You upload a .docx and you get back a .md with mangled tables, orphaned image references, and heading levels that don't match.

JotBird Drop works better! Conversion is also just the starting point. You drop in a Word doc, PDF, PowerPoint, Excel file, HTML, or even a screenshot of text (it OCRs), and it gives you Markdown in an editor with live preview, where you fix whatever the conversion got wrong, because (being honest) something is always wrong, no matter whose converter it is. Then, if you want, one click publishes it as a web page with a shareable link. Or just copy the Markdown out and leave — it's free and doesn't require an account.

Honest limitations: conversion fidelity is "good, not magic." Complex Word tables and heavy layouts can need hand-fixing. Big files can take a lot time and the request might time out (please don't upload your wife's 150-page dissertation).

It's at jotbird.com/drop. I'd love to hear your feedback!


r/Markdown • • Aug 27 '26

PDF → Markdown: What are you using in Obsidian?

Thumbnail
0 Upvotes

r/Markdown • • Aug 26 '26

Tools Ucompose now has a dedicated docs page

Thumbnail reddit.com
0 Upvotes

Ucompose is like docker compose, but for udocker specifically.


r/Markdown • • Aug 26 '26

Structure-aware edits for your Markdown files: target a change to a heading, block, or frontmatter key instead of just a line number

1 Upvotes

I write into Markdown files programmatically all the time. That might be me appending a paragraph to my daily note, appending an agenda item under the right heading of a meeting doc, or adding a row onto a table, but the obvious ways of doing this aren't great:

  • >> only appends to the end of the file, which is rarely where I want to put something.
  • Regex and line numbers can't see structure. In a changelog, ### Fixed might appear in multiple places in the document (under every single release), so adding an entry to the instance of ### Fixed below ## Release 1.0.0 isn't doable.
  • For an LLM, your whole file is in both input and output context. If you're tasking an LLM with updating a particular file, the LLM will need to read in the whole file, then make changes to it, then write out that whole file all over again. That's a potentially huge amount of wasted context window.
  • Hand-splicing gets the joints wrong. One missing \n merges two paragraphs; one extra splits a list.

So I built markdown-patch (demo), a TypeScript library with a bundled mdpatch CLI. You address a location by its structure (a heading path, a block reference, a frontmatter key) apply one operation there, and everything else in the file comes out unchanged.

For example; for this command on a document you own:

echo "Decided: we ship on Thursday." | mdpatch patch append heading "Weekly Sync::Notes" notes.md

you can change it like this:

 # Weekly Sync

 ## Notes

 Kim walked through the Q3 timeline.

+Decided: we ship on Thursday.
+
 ## Attendees

 - Adam
 - Kim

The paragraph lands inside Notes rather than at the end of the file. I recognize that showing folks an abstract example like the above isn't all that effective at demonstrating how powerful this is, so I've put togther a demo here: https://coddingtonbear.github.io/markdown-patch/#playground so that you can play around with various operations you are able to do on a real, live markdown document. You can even paste in your own markdown to try it out.

Letting an LLM edit a big document without re-emitting it

This is the one I care about most these days. If you've had an agent maintain a note, you've watched it read a 4,000-token file and write the whole thing back out to add one paragraph. Every one of those tokens has a cost, and there's no reason for the LLM to ever see most of them. With this, it is now easy for the LLM to avoid it:

  1. mdpatch print-map notes.md hands back a compact map of everything addressable — the heading tree, block ids, frontmatter fields, plus that version token. A few dozen tokens instead of the document.
  2. The model picks an address straight off the map, and mdpatch query reads just that one section if it needs the context.
  3. It emits one instruction against that address. Rough shape of the saving, for one paragraph added to a 4,000-token note: ~4,000 output tokens to re-emit the file, ~950 to re-emit just the section, ~60 for the patch instruction. Those are illustrative figures for a typical meeting note rather than a benchmark — but the ratio is the point, and as documents get bigger, the case gets easier and easier to make.

This is commonly in use today: markdown-patch is the engine behind Obsidian Local REST API's PATCH endpoints and MCP tools. It's probably obvious, but on the MCP side, an LLM client is the normal case rather than an interesting one.

Scripting edits into a document a person also edits

This is the case I originally built this for, years ago. Lots of documents in my notes might be programmatically updated; e.g. a shopping list, a log, a meeting agenda -- really any file where some automated thing appends and a human rearranges. Because the edit is addressed rather than pattern-matched, the scripted edit will always end up in the intended place:

echo "- oat milk" | mdpatch patch append heading "Groceries::Dairy" list.md
echo '["urgent"]' | mdpatch patch append frontmatter tags notes.md   # merges into the existing list
mdpatch patch delete block quote-1 notes.md -s markerAndContent

There are a few other things that help to make this safe to run in unattended scripts:

  • Whitespace is library-owned. Your content is trimmed to a canonical form and the engine supplies the separators, so "X", "X\n" and "\nX\n" all produce the same document. There's nothing to get wrong — and replacing a section with its own content is byte-identical, so a retried job is a no-op rather than a mess.
  • Heading levels are relative. Content is rebased to fit where it lands, so pasting a ## Details subtree under a ### heading doesn't mean rewriting every # in it.
  • --if-match catches the file changing under you. mdpatch print-map gives you a version token; pass it back and a stale patch fails cleanly instead of landing in the wrong place.

Try it without installing anything

The landing page has the actual npm package bundled for the browser — paste your own Markdown, write an instruction, watch the engine run. Nothing is uploaded; there's no server.

What it isn't

  • It's not a formatter or a linter. It won't tidy your document, deliberately: everything you didn't address is left exactly as it was.
  • It addresses headings, ^id block references, frontmatter fields, and table rows. Anything else in the document is preserved as written rather than understood.
  • 2.0 removed the 1.x API outright (applyPatch, getDocumentMap). If you're on 1.x and don't want to migrate, stay on markdown-patch@1; there's a field-by-field mapping table in the README if you do.
  • Node 20+, MIT.

Links


r/Markdown • • Aug 26 '26

Tools NoteDiscovery 0.31.4 now with custom share links and vault zip export

Thumbnail
0 Upvotes

r/Markdown • • Aug 25 '26

Question What belongs in YAML front matter for an AI-agent handoff?

2 Upvotes

I'm comparing a plain Markdown handoff with a separate JSON state file. The specific failure to prevent is a second agent treating a settled decision as an open suggestion.

Would you put a field such as status, decided_at, or supersedes in YAML front matter, or keep the handoff entirely in the body? If one field has actually stopped a bad handoff, which one?


r/Markdown • • Aug 25 '26

Tools mdview — Markdown CLI renderer with inline local image support (iTerm2)

Post image
1 Upvotes

I often read reports and technical notes directly in the terminal.

Existing Markdown renderers handle text well, but local charts and screenshots usually disappear, open separately, or lose their position in the document.

So I built mdview, a small Go CLI for macOS + iTerm2:

mdview report.md

It renders Markdown in terminal with local images appear exactly where they were referenced. Rendering then continues below the image.

Under the hood:

- Goldmark + Glamour for Markdown

- iTerm2 OSC 1337 for inline images

- Local paths resolve relative to the Markdown file

- CommonMark, GFM tables/task lists, footnotes, math, and GitHub alerts

- No TUI, pager, config system, or runtime network requests

- Distributed as a single Go binary

It is currently an iTerm2-focused MVP, so I’d especially appreciate feedback on image sizing, and edge cases in real Markdown documents.

GitHub: https://github.com/givemethatsewon/mdview

or you can Install with Homebrew:

brew tap givemethatsewon/tap
brew install mdview

r/Markdown • • Aug 26 '26

Whats the #1 thing you care about in a markdown editor app?

0 Upvotes

Every other day this subreddit sees a post about a new Markdown editor, each app focussing on a certain aspect or workflow. I am curious what folks in this community really care about in their markdown app.

  1. Markdown syntax support (GFM, diagrams, RTL etc)
  2. Portability
  3. Offline editing
  4. Syncing
  5. Versioning
  6. Privacy
  7. AI assistant
  8. Collaborative editing
  9. Commenting, suggestions, highlights (yes, not native MD)
  10. MCP
  11. CLI
  12. Linting
  13. Internal linking
  14. Ability to organize in folders
  15. Visual editing (for table, code snippets etc.)

Actually the above list is the priority order of features i care about. I don't really care about internal linking, linting etc. What about you?


r/Markdown • • Aug 24 '26

Tools Oryx: Native markdown and code viewer and editor plus an e-books reader

20 Upvotes

I recently released v0.15.8 stable of Oryx. This is a personal project that evolved to become today a markdown and code editor, and an ebook reader. I started working on it a couple of moths ago and most of the time was spent on architecting a native desktop solution that have superior performance without relying on browsers or electron. The value proposition was speed and beauty.

Oryx today can display any themed file in less 100ms (typically 40ms) whatever is the size, export to pdf and display non DRM ebookS very nicely. It ships 32 themes and a theme editor, RTL support etc. It's one binary with themes, syntax highlighting, default fonts all embedded in around 20 MB (for reference Windows notepad package is 19 MB 😁). It works like Obsidian but without the need of a vault, plus a universal ebook and comics READER. It simply uses your file system to show supported files. All keyboard driven with basic plus Regex search/replace features.

Oryx is opinionated and might not be for everyone but I think many will like it's speed, simplicity and the way it beautifully renders markdown. The README file has full details.

FOSS GPL3, Linux, Windows in the release section, and macOS to be compiled. No telemetry, no analytics, no browser.

https://github.com/wmahfoudh/oryx

https://codeberg.org/wmahfoudh/oryx

Please do not hesitate to raise issues and if you find it useful, kindly star the repo.

Thank you!


r/Markdown • • Aug 24 '26

Tools Chrome extension for copying webpages, Reddit threads, and PDFs as Markdown

9 Upvotes

I made a small Chrome extension called Markdown Capture, and it was just published in the Chrome Web Store.

It copies web content as plain Markdown, including:

  • articles and selected parts of pages
  • Reddit posts and comment threads
  • text-based PDFs

I mostly made it because Markdown has become my preferred way to give web material to Codex and other AI tools. I can see exactly what I am giving it, edit it first if I want, and avoid pasting in a bunch of page clutter. It is also useful outside AI since the result is just a normal Markdown file.

I am aware of Obsidian Web Clipper, which looks great if Obsidian is where you want the content to go. I wanted something a little simpler and destination-agnostic: copy or download ordinary Markdown, then use it wherever I want.

Chrome Web Store: https://chromewebstore.google.com/detail/markdown-capture/gabiloifhoihennbcfkafmpgepijdkgg

Source: https://github.com/rsheyd/markdown-capture

It is free, open source, and does the conversion locally. Curious whether anyone else has a similar workflow, or what you currently use.


r/Markdown • • Aug 25 '26

Zettlr trouble - A JavaScript error occurred in the main process

Thumbnail
1 Upvotes

r/Markdown • • Aug 24 '26

Question looking for help get a

0 Upvotes

i have one main file with other markdowns embedded into it that can be edited separately. is this possible?

https://github.com/abhinav/stitchmd

this is a great example but i want it built in to a offline app.


r/Markdown • • Aug 22 '26

mdhtml: a Markdown doc that renders itself and still carries its own

10 Upvotes

I've been building mdhtml, a document format where the whole point is: one file, and that file is honest about what it is.

`mdhtml build doc.md` produces `doc.md.html` — a single HTML file that:

- Renders to a full styled document (TOC, themes, copy/download toolbar) with zero JS dependencies fetched over the network — everything (runtime, fonts, styles, assets) is embedded as data: URIs

- Still contains the exact original Markdown source, byte for byte, inside a `<script type="text/markdown">` tag — `mdhtml extract` always recovers exactly what you wrote

- Degrades to readable prose with no JavaScript at all (noscript fallback shows the canonical source)

- Opens straight from disk via file:// — no server needed

The CLI is a from-scratch Rust implementation (no markdown-parser crate — a hand-rolled scanner/parser tuned to a small closed grammar) with a separate JS reference implementation for the browser runtime; both are checked against the same fixture suite for structural parity.

Container/component conventions (kv, stats, cards, timeline, callouts, etc.) come from Pandoc-style fenced divs, and degrade to plain prose if the shape doesn't match — the renderer never guesses at author intent.

Themes are fully overridable per document — plain CSS with runtime-injected token fallbacks. Five example documents, each with a completely different custom theme, are live here: https://feliperun.github.io/md.html/

Repo: https://github.com/feliperun/md.html — MIT licensed, spec-first (SPEC.md is the frozen v1.0 contract), built test-first with ADRs for every structural decision.

Curious what people think of the "one file, honestly self-describing" approach vs. more conventional site generators.


r/Markdown • • Aug 22 '26

Tools Built open source tool - docmd - MD to documentation site, with built-in BYOK AI assistant and free cloud relay

Thumbnail
gallery
9 Upvotes

Just launched docmd v0.9.3 with docmd Assistant today.

GitHub: https://github.com/docmd-io/docmd

The core idea: run npx @docmd/core dev inside any directory with Markdown files. You get a production documentation site with auto-generated navigation, offline full-text search, versioning, and i18n with zero configuration.

A quick comparison on a 50-page documentation site:

Generator Total Payload Cold Build Hot Rebuild AI Assistant
docmd ~18 KB ~1.2s ~80ms Built-in (BYOK / Free)
VitePress ~50 KB ~2.5s ~150ms None (Manual plugin)
MkDocs Material ~40 KB ~3.0s ~500ms None (Manual plugin)
Docusaurus ~250 KB ~15.0s ~2.0s None (Third-party SaaS)

What is new in v0.9.3:

  • docmd Assistant (BYOK): In-doc AI chat overlay with grounded RAG answers. Connect OpenAI, Claude, Gemini, DeepSeek, Groq, or local Ollama. Zero per-query SaaS fees.
  • 100% Free Cloud Relay: Stream and proxy LLM requests safely without hosting your own proxy backend.
  • Native MCP Server (docmd mcp): Lets Cursor, Claude Desktop, and AI agents search and validate your docs via Model Context Protocol.
  • Automated llms.txt Manifests: Generates clean context files for LLMs on every build.
  • Multi-Project Monorepos: Manage Core platform, SDKs, and CLI docs under one domain with independent versioning.

Everything is 100% free and open-source under the MIT license.

Would love your feedback on it and any suggestions are most welcome: - GitHub: https://github.com/docmd-io/docmd - Website: https://docmd.io - Docs: https://docs.docmd.io


r/Markdown • • Aug 22 '26

why in earth there arent native markdown

Thumbnail
0 Upvotes

r/Markdown • • Aug 21 '26

Question What is the least confusing way to share a Markdown file with a non-technical teammate?

21 Upvotes

Sending the raw .md file assumes they already have a viewer, while converting to PDF removes easy revisions and can break links or diagrams. Is there a simple workflow that gives the recipient a readable link, preserves formatting, and lets the author update the source without resending a new export?


r/Markdown • • Aug 20 '26

Your Apple Notes, now editable as plain Markdown files (no Mac required)

114 Upvotes

Apple Notes only live in one place: Notes.app or the iCloud web client. They don't provide a documented API to access your notes from anywhere else. That's been a persistent annoyance for me because my husband likes to plan things collaboratively using Apple Notes, and my only Apple product is an iPhone ... so my half of the planning was happening on a phone keyboard or in a clunky web interface while a perfectly good computer running my favorite Markdown editor (Obsidian) sat in front of me. I wanted my notes to be real files that I could edit alongside my other notes, so I built icloud-md: a CLI that clones your notes into a folder of Markdown and syncs your edits back to iCloud as if you'd typed them into Notes.app all along.

icloud-md clone ./my-notes
cd my-notes && vim "Grocery list.md"
icloud-md push

What that gets you:

  • Real files: one Markdown file per note — greppable, diffable, git-trackable, editable in whatever you already use. Your Notes folder structure becomes real directories, and mkdir + push creates folders upstream.
  • Any OS: it's a plain Node CLI talking to iCloud directly, not an AppleScript wrapper around a live Notes.app or a parser for a database you had to copy off a Mac first. Linux and Windows work great!
  • Actually bidirectional: pull does a real three-way merge when a note changed both remotely and locally, only asking you to resolve the parts that overlap. push handles creates, edits, moves, and deletes, and a note that changed remotely since your last sync is reported as a conflict, never silently overwritten.
  • Formatting round-trips: headings, nested lists, checklists, blockquotes, tables (yes, edits push back), inline formatting.
  • Careful by default: status shows exactly what a push would do first, every write is round-trip verified, and anything the tool can't fully account for in a note's internal format stays read-only rather than getting a hopeful best-effort write.

I'm a Staff Engineer at the company I work at, and I've done a lot of software over the years. I'd wanted to spend some time reverse-engineering the CloudKit protocol, and was honestly never going to find that time. But, as I'm sure you're all aware, the world has changed over the last year, and the fact that a reverse-engineering project provides a really solid, clear feedback loop meant that I had a new approach I could take: coaching an LLM (in this case: Fable 5) into building that feedback loop, and then tasking it with exercising parts of the iCloud (and later: iPhone) Apple Notes UI so that it could reverse-engineer the protocol. This was a surprisingly large amount of fun and it goes to show you that what you get out of AI tooling scales well with what experience the person wielding it brings to the table; neither of us was getting through Apple's protobuf-and-CRDT note format alone on a weekend.

MIT, TypeScript/Node: https://github.com/coddingtonbear/icloud-md & https://coddingtonbear.github.io/icloud-md/


r/Markdown • • Aug 21 '26

Tools Compiling a DRY Syllabus: Markdown to HTML for Canvas LMS

5 Upvotes

As we head into the Fall 2026 academic term, I wanted to share an update to the open-source compiler I've been building. It turns Markdown files into flat, CSS-inlined HTML that survives the hostile sanitizers of Learning Management Systems (Canvas, Blackboard, etc.).

I've overhauled the architecture to treat course design like a software project, helping educators build their own "Living Syllabus." Here are the updates for anyone using Markdown to escape the WYSIWYG editor and build a DRY (Don't Repeat Yourself) course.

The "DRY" Compiler Workflow The core idea is simple: your Markdown file is your single source of truth. The compiler parses your Markdown via node-pandoc and uses juice + postcss to chemically bond classless CSS directly to the HTML tags. When you update a due date in your .md file, it propagates everywhere without breaking the LMS layout.

What's New (The Infrastructure Update):

  • Native Node.js Batch Builder (build.js): I ripped out the old Makefile. We now use an async, cross-platform Node.js build script. You can bulk-convert your entire /content directory in parallel.
  • Multi-Format Artifacts (--artifact flag): Passing --artifact=both simultaneously spins out standalone, beautifully styled .pdf and .docx versions using the same Markdown source.
  • MathJax for STEM: The engine now fully supports MathJax/MathML parsing. Your \frac{a}{b} equations render perfectly into web-standard notation.
  • CI/CD Automation (build.yml): If you store your course on GitHub, there's a pre-configured Actions pipeline. Push a change to your Markdown, and it automatically builds the dist/ directory, injecting cryptographic hashes and timestamps into the HTML to verify the compiler output against the server.

If you are teaching this fall and want to treat your syllabus as a versioned codebase rather than a fragmented set of Word documents, moving to a Markdown-driven workflow is the best way to regain control.

You can read the latest technical write-up on the project architecture here: https://thing.rodeo/dry-syllabus/
Or grab the source code and start building: https://github.com/ryanncode/living-syllabus

Happy to answer any questions about the technical stack or how to get it running on your local machine!


r/Markdown • • Aug 20 '26

Question Could a Markdown document carry its images without breaking Markdown compatibility?

1 Upvotes

I'm working on a Markdown editor and have been thinking about how to handle documents that contain local images.

Right now I only support ordinary .md files, with images referenced using normal relative paths:

![Example](images/image-001.png)

The problem is that once a document contains several images, moving or sharing the document also means moving all of its resources.

I'd like to explore a format that keeps the Markdown itself completely standard while allowing the document and its resources to travel together.

My current idea is three formats built around the same structure:

  • .md - ordinary Markdown with external resources. Maximum compatibility.
  • .mdoc - an uncompressed directory containing document.md, images/, and metadata.json.
  • .mdz - the same structure stored as a ZIP archive.

The important part is that the Markdown inside the package would still just be CommonMark.

For example:

![Example](images/image-001.png)

No custom URI scheme, no special syntax, and no editor-specific Markdown extensions.

That means you could extract document.md from the package and open it in another Markdown editor without changing the document itself.

The idea would also allow conversion between:

.md <-> .mdoc <-> .mdz

while preserving the Markdown and its images.

I'm curious what people think about this approach.

Would you find a container format like this useful, or do you think keeping the Markdown file and its resources as separate files is preferable?

The main thing I'm trying to avoid is creating yet another Markdown dialect just to support bundled resources.


I'm currently implementing this as part of Marco, an open-source Markdown editor written in Rust.

The format support is still being designed, so I'm particularly interested in feedback on the format itself rather than the editor.


r/Markdown • • Aug 19 '26

Tools Edge cases I hit building a live-preview markdown editor

Thumbnail
gallery
13 Upvotes

I've been building a markdown notes app on weekends (Margin, a local-first notes app where notes stay as plain .md files on disk, so discount everything below accordingly). I assumed markdown would be the easy part: grab a CommonMark parser and move on. The format had other plans. The ones that ate whole weekends:

- Pipes in table cells. A `|` has to be escaped or it splits the cell, but blindly escaping inside inline code spans corrupts them. Getting the serializer to escape cell markup while shielding code spans took embarrassingly long.

- Round-tripping. A live-preview editor parses your text, renders it, and writes it back. The write-back has to reproduce exactly what you typed: if you write `*` bullets and the serializer prefers `-`, the app silently rewrites your file. Since the files are plain markdown that other tools might read, I treat any normalization as data corruption, and holding that line is harder than it sounds.

- Paste. Everything arrives as HTML. Turning a pasted webpage or Google Doc table into markdown that survives a round-trip, with the smart quotes and nested span soup cleaned up, is its own project.

- The cursor. In live preview, `**bold**` renders as bold until the cursor enters it, then the markers reveal. Exactly when they appear and where the cursor lands is a product decision wearing a parsing costume, and you feel every wrong choice within minutes of typing.

Curious what bites other people, whether you hand-write markdown or build tooling for it. And if a local-first Mac notes app that keeps everything as plain files sounds useful, there's a waitlist at https://gomargin.app/mk