Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Markdown Mirror

No security coverage Maintenance fixes only

Part of the Markdown ecosystem · 7 projects

AI tools, chatbots and crawlers increasingly prefer plain Markdown over full HTML pages — it's smaller, cleaner, and easier for them to read accurately. Markdown Mirror gives every page you choose a second, Markdown-only version at the same address with `.md` added to the end (for example, `/about` becomes `/about.md`), alongside a standard `/llms.txt` index that lists your site's pages for AI tools to discover. You don't need to understand your site's fields, content types or theme to use it — you simply tick which content should get a `.md` version, and the module reads it directly from the database and converts it for you.

Features

- A `.md` version of any page, generated on the fly from the page's own stored content — not a scrape of the rendered HTML, so no navigation, blocks, cookie banners or JavaScript leak into it.
- Opt-in by content type, vocabulary, or page. Choose whole content types and taxonomy vocabularies, enable it site-wide for Drupal Canvas pages, or opt in/exclude individual pages one path per line.
- Works on taxonomy term pages too, including a list of the content tagged with that term.
- `/llms.txt` and `/llms-full.txt`, generated automatically from whichever pages you've enabled, grouped by content type/vocabulary, each linked to its `.md` version — the emerging standard AI tools look for first.
- Configurable frontmatter (title, URL, language, content type, dates, description, tags) at the top of each `.md` page.
- No per-site setup of field names. It was built to be generalizable: it never assumes a specific field, content type machine name, or View exists, so the same install works unmodified across different sites with completely different content models.
- Safe for anonymous, public use — dangerous links and markup are stripped, unpublished/access-restricted content is never exposed through the `.md` version, and the HTML version always gets an SEO-safe `noindex` + canonical link back to itself so the `.md` copy never competes with it in search results.
- Use it when you're building an AI chatbot against your site's content, want your pages to be accurately summarized by LLM-based tools, or just want a plain-text version of your content available for any purpose.

Post-Installation

Nothing is served automatically — this is deliberate, since you should choose what AI tools can read. After installing:

1. Grant the **Administer Markdown Mirror settings** permission to the appropriate role.
2. Go to **Configuration > Content authoring > Markdown Mirror** (`/admin/config/content/markdown-mirror`).
3. Tick the content types, vocabularies and/or Canvas pages you want mirrored, or list specific/excluded pages by path.
4. Choose what appears in the frontmatter and whether `/llms.txt`/`/llms-full.txt` are served.
5. Save, then visit any enabled page with `.md` appended to its URL to see the result.

There's no new content type, text format or field to manage — it's entirely configured from that one settings page.

Additional Requirements

- Drupal 10.3+ or 11, and Drupal core's **Node** module.
- [`league/html-to-markdown`](https://github.com/thephpleague/html-to-markdown) (installed automatically via Composer).

Optional, used automatically if present:

- Core **Taxonomy**, for taxonomy term support.
- [Canvas](https://www.drupal.org/project/canvas), for Canvas page support.
- [Metatag](https://www.drupal.org/project/metatag), to use its description tag in the frontmatter.
- [Paragraphs](https://www.drupal.org/project/paragraphs), so paragraph content is followed and included.

- [Metatag](https://www.drupal.org/project/metatag) — richer `description` frontmatter.
- [Canvas](https://www.drupal.org/project/canvas) — if you want Canvas pages covered as well as nodes.

Similar projects

A few other projects also convert HTML to Markdown or publish `llms.txt`, but typically require per-content-type configuration of which fields to include. Markdown Mirror is built to need none of that: it detects and extracts content generically, so the same configuration works whether your site uses Paragraphs, plain body fields, or a Canvas page with no fixed field structure at all.

Community Documentation

See the module's [README](https://git.drupalcode.org/project/markdown_mirror/-/blob/1.0.x/README.md) for a full walkthrough of configuration, Drush commands, caching behavior and troubleshooting.

Drupal 10–11

Ask your assistant about Markdown Mirror

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

  • node Drupal core

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
Oct 2026
Latest release
2 hours ago
Releases (12 mo)
5 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
1.0.3 Stable 10–11 Oct 28, 2026
1.0.2 Stable 10–11 Oct 28, 2026
1.0.x-dev Dev 10–11 Oct 28, 2026
1.0.1 Stable 10–11 Oct 28, 2026
1.0.0 Stable 10–11 Oct 28, 2026