Skip to content

md-plugins/md-plugins

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

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-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.13, CI runs on Node.js 24, and local tooling uses pnpm@11.9.0.

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

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors