Skip to content
Back to skills

Markdown Mdx Content Pipeline Stinger

ASecurity

Build Markdown and MDX pipelines. Use for compiler choice, remark/rehype plugins, syntax highlighting, diagrams, or sanitization. Read guides/ for the decision path.

  • 85 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
developmenttypescriptreactnextjsnodeexpresstestingapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add legioncodeinc/vibe-coding-tools --skill markdown-mdx-content-pipeline-stinger --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Markdown Mdx Content Pipeline Stinger?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Markdown Mdx Content Pipeline Stinger
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/legioncodeinc-markdown-mdx-content-pipeline-stinger/badge)](https://www.skillsdirectory.com/skills/legioncodeinc-markdown-mdx-content-pipeline-stinger)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "markdown-mdx-content-pipeline-stinger"
description: "Build Markdown and MDX pipelines. Use for compiler choice, remark/rehype plugins, syntax highlighting, diagrams, or sanitization. Read guides/ for the decision path."
license: AGPL-3.0-or-later
---

# markdown-mdx-content-pipeline-stinger

Markdown and MDX processing stack: from raw `.md`/`.mdx` file to final HTML/JSX/React output. This stinger encodes the 2026 state of the unified/remark/rehype ecosystem, the Shiki family (Shiki v4, expressive-code, starry-night), compiler selection, plugin authoring patterns, math/diagram embedding, and sanitization.

---

## When to use this skill

Activate when `markdown-mdx-content-pipeline-wasp-drone` is invoked, or when the user asks about any of these:

- Selecting a Markdown/MDX compiler for a Next.js, Astro, Vite, or Node.js project
- Auditing or designing a remark/rehype plugin chain
- Implementing or upgrading syntax highlighting (Shiki, expressive-code, starry-night, rehype-pretty-code)
- Writing custom remark or rehype plugins (visitor pattern, AST manipulation)
- Embedding math (KaTeX, MathJax) or diagrams (Mermaid, D2)
- Configuring sanitization for user-authored Markdown (rehype-sanitize, DOMPurify)
- Testing a unified processing pipeline (vitest fixtures, snapshot tests)
- Migrating from Contentlayer, next-mdx-remote, or Prism/Highlight.js to 2026-recommended alternatives

Do NOT activate for:
- Platform selection (Docusaurus, Starlight, Mintlify) → `docs-site-wasp-drone`
- React component architecture for MDX (`mdx-components.tsx` internals) → `react-wasp-drone`
- Broader XSS audit beyond sanitization config → `security-wasp-drone`
- SEO/AEO concerns about rendered pages → `seo-aeo-wasp-drone`

---

## Quick reference: canonical 2026 stack

| Layer | Recommended (2026) | Legacy / Avoid |
|---|---|---|
| Compiler (Next.js blog) | Velite + `@next/mdx` | next-mdx-remote (archived), Contentlayer |
| Compiler (route MDX) | `@next/mdx` | none |
| Syntax highlighting | Shiki v4 / rehype-pretty-code | Prism, Highlight.js |
| Highlighting (Starlight) | expressive-code | none |
| GFM | remark-gfm | none |
| Math | remark-math + rehype-katex | MathJax (heavier) |
| Diagrams | Mermaid via `next/script` (CSR) or rehype-mermaid (SSR build) | none |
| Sanitization (server) | rehype-sanitize | none |
| Sanitization (client) | DOMPurify | none |

---

## Guides index

Read each guide before authoring any output in its domain.

- `guides/00-principles.md`: scope boundary, unified AST model (mdast to hast to html/jsx), the four processing layers (parse, transform, compile, render)
- `guides/01-compiler-selection.md`: decision matrix: @next/mdx vs next-mdx-remote v6 vs Velite vs Contentlayer2 vs @mdx-js/mdx direct
- `guides/02-remark-rehype-pipeline.md`: canonical plugin ordering, the `.use()` chain, GFM/frontmatter/directive plugins
- `guides/03-syntax-highlighting.md`: Shiki v3 to v4 migration, expressive-code, starry-night, rehype-pretty-code
- `guides/04-plugin-authoring.md`: unified plugin function signature, unist-util-visit visitor pattern, TypeScript types
- `guides/05-math-diagrams.md`: remark-math + rehype-katex, Mermaid SSR workaround, D2, callout/admonition directive
- `guides/06-sanitization.md`: rehype-sanitize schema design, DOMPurify, allowDangerousHtml safety
- `guides/07-testing.md`: vitest fixtures, snapshot testing MDX output, XSS payload fuzzing

## Examples index

- `examples/next-mdx-blog.md`: full Next.js 15 App Router MDX blog with Velite, remark-gfm, remark-math, rehype-katex, rehype-pretty-code (Shiki v4)
- `examples/ai-chat-renderer.md`: safe rendering of user-authored Markdown in an AI chat UI with DOMPurify + allowlist

## Templates index

- `templates/plugin-boilerplate.ts`: typed TypeScript boilerplate for a unified remark or rehype plugin

---

## Critical directives (always enforce)

1. **Prefer Shiki v4 over Prism or Highlight.js.** Shiki ships TextMate grammars, is the default in Vite/Astro/Next.js in 2026, and supports transformers for line numbers, highlighting, and word highlighting.

2. **Never skip sanitization for user-generated Markdown.** MDX can embed arbitrary JSX; without `rehype-sanitize` or DOMPurify, a malicious `<script>` or event handler in user content executes in the app's origin.

3. **Use Velite for new Next.js content sites.** `next-mdx-remote` is archived (v6.0.0 final release, Feb 2026). Velite is Turbopack-safe, RSC-safe, and outputs inert typed JSON.

4. **rehype-sanitize MUST come after rehype-raw in the chain.** Placing it before `rehypeRaw` produces a false-clean output that raw HTML can still bypass.

5. **Pin plugin versions.** The unified ecosystem releases breaking AST changes without major semver bumps; `"*"` or `"latest"` breaks pipelines silently.

6. **Distinguish MDX compile (server) from MDX render (client/RSC).** Conflating them produces broken CSR/SSR configurations with security implications.

7. **Route platform-selection to docs-site-wasp-drone.** This stinger implements the highlighting and plugin config after the platform is decided; crossing the boundary produces contradictory guidance.

---

## Refresh cadence

- **6 months.** The Shiki ecosystem (including expressive-code) releases breaking API changes roughly every two quarters. Verify `@expressive-code/plugin-shiki` Shiki peer-dep range and rehype-pretty-code Shiki compat table on each refresh.
- Re-run `scripture-historian` at `shallow` depth if: Shiki releases v5, expressive-code releases a major, or Next.js App Router changes its MDX integration.
- The sanitization guides are stable; refresh only if a rehype-sanitize schema default changes.

---

*Part of the Wasp Nest. Paired Drone: `markdown-mdx-content-pipeline-wasp-drone`.*
*Research: 10 external sources (2025-11 to 2026-05), depth tier: normal.*

Files in this skill

  • SKILL.md5.9 KB
  • examples/ai-chat-renderer.md5.1 KB
  • examples/next-mdx-blog.md5.3 KB
  • guides/00-principles.md3.3 KB
  • guides/01-compiler-selection.md5.1 KB
  • guides/02-remark-rehype-pipeline.md5.8 KB
  • guides/03-syntax-highlighting.md5.1 KB
  • guides/04-plugin-authoring.md5.3 KB
  • guides/05-math-diagrams.md4.7 KB
  • guides/06-sanitization.md5.4 KB
  • guides/07-testing.md4.4 KB
  • reports/README.md1.1 KB
  • research/external/2026-05-20-contentlayer2-status.md1.3 KB
  • research/external/2026-05-20-expressive-code-nextjs.md2 KB
  • research/external/2026-05-20-next-mdx-remote-archived-v6.md1.7 KB
  • research/external/2026-05-20-nextjs-15-mdx-official-docs.md1.7 KB
  • research/external/2026-05-20-nextjs-mdx-blog-2026.md1.4 KB
  • research/external/2026-05-20-rehype-pretty-code-docs.md1.9 KB
  • research/external/2026-05-20-shiki-v3-release.md1.8 KB
  • research/external/2026-05-20-shiki-v4-release.md2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…