Documentation tooling for Vue, Vite, and Quasar projects: Q-Press sites, Markdown-powered routes, live examples, static search, SSG output, and the Markdown-it plugins that make the pipeline work.
Markdown-it! Plugins
Vite Plugins
Search UI
Quasar App Extensions
md-plugins is the toolkit behind Q-Press documentation sites. It combines Markdown-it plugins, Vite plugins, a static search UI, SSG helpers, and Quasar app extensions so Vue/Vite projects can turn Markdown into routed documentation with live examples, generated API pages, searchable content, and static-host-friendly output.
Use the packages directly when you only need a focused Markdown, Vite, search, or SSG capability. Use Q-Press when you want the opinionated Quasar documentation experience: generated layouts, route manifests, Markdown components, example viewers, API JSON checks, search indexing, and static builds wired together.
Inspired by Quasar Framework documentation and mdit-vue, this project aims to provide a comprehensive set of tools for working with Markdown content.
This monorepo provides:
- Plugins to enhance Markdown rendering with features like blockquotes, inline code, tables, headers, and more.
- A Vite plugin for seamless integration of Markdown into Vue projects.
- A Vite plugin for handling raw SFC content.
- A Vite SSG plugin for route manifests, static HTML shells, and optional prerendered output.
- A Vite search plugin for static JSON, Meilisearch-ready, Algolia-ready, and custom search index output.
- A framework-agnostic
<md-search>Web Component for searchable docs UI. - Q-Press app-extension tooling for Quasar docs sites, including generated docs structure, Markdown layouts, API generation/checking, SSG, and route validation.
- Shared utilities for common processing tasks.
The current stable line in this repository is 1.0.0. Packages in this line publish to npm under the latest dist-tag.
The 1.0.0 line supports direct Markdown-it and Vite plugin usage in Vue/Vite projects, including Markdown transforms, live example source loading, optional SSG route output, static search index generation, and a framework-agnostic search UI. The Quasar app extensions in this repo target Quasar Vite projects using @quasar/app-vite >=3.0.0-rc.6. Repository development and CI use Node.js >=22.13 and pnpm@11.9.0.
The 1.0.0 line uses obuild for package builds and includes Q-Press API generation for documented exported constants, including object-shaped adapter APIs that render nested fields, default values, and JSDoc.
pnpm add @md-plugins/vite-md-plugin
pnpm add @md-plugins/md-plugin-steps
pnpm add @md-plugins/vite-ssg-plugin
pnpm add @md-plugins/search-ui
pnpm add -D @md-plugins/vite-search-plugin
pnpm add @md-plugins/quasar-app-extension-q-press
bun add @md-plugins/vite-md-plugin
bun add @md-plugins/md-plugin-steps
bun add @md-plugins/vite-ssg-plugin
bun add @md-plugins/search-ui
bun add -d @md-plugins/vite-search-plugin
bun add @md-plugins/quasar-app-extension-q-pressThis is a pnpm workspace mono-repo. You cannot use npm for building.
- /md-plugin-* - standalone Markdown-it plugin packages
- /vite-md-plugin - Vite Markdown-to-Vue page plugin used by Q-Press and direct Vue/Vite apps
- /vite-examples-plugin - Vite examples/source loader plugin
- /vite-ssg-plugin - Vite SSG route manifest and prerender plugin
- /vite-search-plugin - Vite Markdown search index plugin with adapter output
- /search-ui - framework-agnostic search UI Web Component
- /q-press - Quasar app extension for Q-Press documentation sites
- /docs - Q-Press documentation site with docs, demos, and examples
- live demo - live Q-Press docs, demos, and examples
| Plugin | Description | Readme |
|---|---|---|
@md-plugins/md-plugin-imports |
Extracts and processes <script import> blocks from Markdown. |
README |
@md-plugins/md-plugin-codeblocks |
Enhances code block rendering with syntax highlighting, tabs, and more. | README |
@md-plugins/md-plugin-blockquote |
Adds customizable CSS classes to blockquotes. | README |
@md-plugins/md-plugin-headers |
Extracts and processes headers for generating ToCs or managing headers. | README |
@md-plugins/md-plugin-inlinecode |
Adds a custom class to inline code blocks for styling. | README |
@md-plugins/md-plugin-link |
Converts Markdown links into Vue components for SPA-friendly routing. | README |
@md-plugins/md-plugin-mermaid |
Renders Mermaid fenced code blocks as diagrams. | README |
@md-plugins/md-plugin-steps |
Renders wizard-like numbered steps for tutorials, migrations, and install flows. | README |
@md-plugins/md-plugin-table |
Adds custom classes and attributes to Markdown tables. | README |
@md-plugins/md-plugin-title |
Extracts the first header in Markdown as the page title. | README |
@md-plugins/md-plugin-frontmatter |
Extracts and processes frontmatter content from Markdown files. | README |
@md-plugins/md-plugin-containers |
Adds custom containers for callouts, warnings, and more. | README |
@md-plugins/shared |
Shared utilities and types for the plugins. | README |
@md-plugins/vite-md-plugin |
Vite plugin for transforming Markdown into Vue page components for Q-Press or direct Vue/Vite use. | README |
@md-plugins/vite-examples-plugin |
Vite plugin for loading and transforming example components and their raw source code for usage in your application. | README |
@md-plugins/vite-ssg-plugin |
Vite plugin for generating route manifests, static HTML shells, and optional prerendered SSG output. | README |
@md-plugins/vite-search-plugin |
Vite plugin for generating static JSON, Meilisearch-ready, Algolia-ready, or custom search index output. | README |
@md-plugins/search-ui |
Framework-agnostic search UI Web Component for static JSON and custom search providers. | README |
@md-plugins/quasar-app-extension-vite-md-plugin |
Lightweight Quasar app extension for compiling Markdown pages without the full Q-Press shell. | README |
@md-plugins/quasar-app-extension-q-press |
Markdown documentation tooling for Quasar and Vite applications. | README |
Clone the repository and use pnpm to install dependencies:
git clone https://github.com/md-plugins/md-plugins.git
cd md-plugins
pnpm installThis repository is currently developed with Node.js >=22.13, CI runs on Node.js 24, and local tooling uses pnpm@11.9.0.
Build all packages and the SSG documentation output in the monorepo:
pnpm buildQ-Press generated files have a source-of-truth flow that is easy to miss. The package build script at packages/qPress/scripts/build.js copies packages/docs/src/.q-press into both Q-Press template folders:
packages/qPress/src/templates/init/src/_q-presspackages/qPress/src/templates/update/src/_q-press
When fixing generated Q-Press components, update packages/docs/src/.q-press first, then run pnpm --filter @md-plugins/quasar-app-extension-q-press build or pnpm build:packages so the init and update templates are regenerated from the same source. If only one template copy is edited, the next Q-Press build can overwrite the change.
Each package includes unit tests. To run all tests across the monorepo:
pnpm testEnsure code quality across all packages:
pnpm lintWe welcome contributions! Please open an issue or submit a pull request with your proposed changes.
If md-plugins is useful in your workflow and you want to support ongoing maintenance:
- GitHub Sponsors: https://github.com/sponsors/hawkeye64
- PayPal: https://paypal.me/hawkeye64
This project is licensed under the MIT License. See the LICENSE file for details.