Skip to content

About

MD-Plugins is a collection of Markdown and Vite plugins that make it easy to build markdown user interfaces in Vue and Quasar applications.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

Markdown Plugins Monorepo (md-plugins)

md-plugins - Markdown-it, Vite, and Quasar documentation tooling
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

@md-plugins/md-plugin-blockquote @md-plugins/md-plugin-codeblocks @md-plugins/md-plugin-containers @md-plugins/md-plugin-frontmatter @md-plugins/md-plugin-headers @md-plugins/md-plugin-image @md-plugins/md-plugin-imports @md-plugins/md-plugin-inlinecode @md-plugins/md-plugin-link @md-plugins/md-plugin-mermaid @md-plugins/md-plugin-steps @md-plugins/md-plugin-table @md-plugins/md-plugin-title @md-plugins/shared

Vite Plugins

@md-plugins/vite-md-plugin @md-plugins/vite-examples-plugin @md-plugins/vite-ssg-plugin @md-plugins/vite-search-plugin

Search UI

@md-plugins/search-ui

Quasar App Extensions

@md-plugins/quasar-app-extension-vite-md-plugin @md-plugins/quasar-app-extension-q-press


GitHub code size in bytes GitHub repo size in bytes Netlify Status

npm @md-plugins/quasar-app-extension-q-press

GitHub Sponsors button PayPal donate button

Discord X

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.

Overview

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.

Table of Contents

Current Release

This repository targets release 2.2.1. Stable releases publish to npm under the latest dist-tag.

The 2.2.x 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. Repository development and CI use Node.js >=22.22.0 and pnpm@12.16.1.

The 2.2.x line uses Markdown-it 15 and its public plugin types. Consumers upgrading from an older major must remove @types/markdown-it and replace any markdown-it/lib/* imports with Markdown-it's public exports.

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-press

Structure

This 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

Plugins

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

Installation

Clone the repository and use pnpm to install dependencies:

git clone https://github.com/md-plugins/md-plugins.git
cd md-plugins
pnpm install

This repository is currently developed with Node.js >=22.22.0, CI runs on Node.js 24, and local tooling uses pnpm@12.16.1.

Development

Building Packages

Build all packages and the SSG documentation output in the monorepo:

pnpm build

Q-Press Template Notes

Q-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-press
  • packages/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.

Running Tests

Each package includes unit tests. To run all tests across the monorepo:

pnpm test

Linting

Ensure code quality across all packages:

pnpm lint

Contributing

We welcome contributions! Please open an issue or submit a pull request with your proposed changes.

Support

If md-plugins is useful in your workflow and you want to support ongoing maintenance:

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

MD-Plugins is a collection of Markdown and Vite plugins that make it easy to build markdown user interfaces in Vue and Quasar applications.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages