brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
mdx-to-markdownConvert `.mdx` to portable `.md`, cleaning MDX components, anchors, code titles, table-of-contents links, and root-relative docs links.
Independent GitHub snapshot · Automated classification · Original documentation governs
.mdx to portable .md, cleaning MDX components, anchors, code titles, table-of-contents links, and root-relative docs links.
metadata:
internal: trueUse this skill to produce plain Markdown from MDX without requiring the target renderer to understand MDX imports, JSX components, Rspress anchors, or code-block metadata.
Identify the source .mdx and target .md path. If the user gives only a source path, default the output to the same path with .md.
Inspect the MDX for non-Markdown constructs:
import lines.<BlogAuthors /> and <PackageManagerTabs />.### Title \{#title}.<a id="title"></a>.title="env.js".<div><img ... /></div>.Run the helper script when the requested conversion matches the default rules:
node /path/to/skills/mdx-to-markdown/scripts/convert_mdx_to_markdown.mjs input.mdx output.md
Review the result with rg and a short diff. Confirm that no MDX-only syntax remains.
Apply any user-requested follow-up edits, such as removing a generated table of contents or changing link policy.
Drop YAML frontmatter and top-level MDX imports.
Remove <BlogAuthors />.
Expand <PackageManagerTabs command="add pkg -D" /> to a bash code block using pnpm add pkg -D.
Convert centered HTML image blocks into Markdown image syntax.
Remove Rspress heading anchor suffixes while keeping the heading text.
Remove standalone <a id="..."></a> anchor lines.
Remove table-of-contents links that target in-page anchors, preserving the list text.
Convert code-fence titles or standalone bold filename captions into the first line of the code block as a comment, for example:
// hello.js
export function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('world'));
Convert code blocks that contain markers such as // [!code highlight] to diff code blocks, remove the marker, and prefix highlighted lines with +.
Prefix Markdown links whose target starts with / using the current repository's site domain. Infer the product from the input file's Git repository, remote, package name, or path segment:
rspack -> rspack.rsrsbuild -> rsbuild.rsrspress -> rspress.rsrslib -> rslib.rsrsdoctor -> rsdoctor.rsrstest -> rstest.rsAdd /zh to the prefix when the MDX path contains a zh path segment. For example, a Chinese Rspack document converts /guide/optimization/tree-shaking to https://rspack.rs/zh/guide/optimization/tree-shaking.
Use --link-prefix <prefix> only when the inferred domain is wrong or the user explicitly requests a custom prefix.
Run targeted checks after conversion:
rg -n '<BlogAuthors|PackageManagerTabs|title="|\\{#|^<a id="|\\]\(/|!code highlight|^\*\*[^*]+\*\*#x27; output.md
rg -n '^```' output.md | wc -l
The first command should return no matches unless the user intentionally kept that syntax. The fence count should be even.
scripts/convert_mdx_to_markdown.mjs: deterministic converter for the common Rspack/Rstack release-blog MDX pattern.