Skip to main content

markdown-integration

Integrate LiveCodes with documentation sites using remark-livecodes, markdown-it-livecodes, gatsby-remark-livecodes, or marked-livecodes for Docusaurus, Astro, VitePress, Next.js, and Storybook.

Informações da origem

Repositório
live-codes/livecodes
Última atividade na origem
14 de setembro de 2026 às 12:04
Idioma detectado do SKILL.md
inglês
Estrelas
1.522
Forks
271

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
markdown-integration
description
Integrate LiveCodes with documentation sites using remark-livecodes, markdown-it-livecodes, gatsby-remark-livecodes, or marked-livecodes for Docusaurus, Astro, VitePress, Next.js, and Storybook.
metadata
{"type":"composition","library":"livecodes","library_version":"0.13.0"}
requires
["sdk-embedding"]
sources
["live-codes/livecodes:docs/docs/markdown-to-livecodes.mdx"]
This skill requires sdk-embedding. Read it first for foundational concepts. # LiveCodes — Integrate with Documentation Sites Convert Markdown/MDX code blocks to interactive LiveCodes playgrounds using plugins for popular documentation frameworks. ## Setup ### Docusaurus (remark-livecodes) ```bash npm install -D remark-livecodes ``` ```javascript // docusaurus.config.js module.exports = { presets: [ [ 'classic', { docs: { remarkPlugins: [ [ require('remark-livecodes'), { /* options */ }, ], ], }, }, ], ], }; ``` ### Astro (remark-livecodes) ```bash npm install -D remark-livecodes ``` ```javascript // astro.config.mjs import { defineConfig } from 'astro/config'; import mdx from '@astrojs/mdx'; import remarkLivecodes from 'remark-livecodes'; export default defineConfig({ integrations: [mdx()], markdown: { remarkPlugins: [ [ remarkLivecodes, { /* options */ }, ], ], }, }); ``` ### VitePress (markdown-it-livecodes) ```bash npm install -D markdown-it-livecodes ``` ```javascript // .vitepress/config.js import { defineConfig } from 'vitepress'; import markdownItLivecodes from 'markdown-it-livecodes'; export default defineConfig({ markdown: { config: (md) => { md.use(markdownItLivecodes, { /* options */ }); }, }, }); ``` ### Next.js (remark-livecodes) ```bash npm install -D remark-livecodes ``` ```javascript // next.config.js import createMDX from '@next/mdx'; import remarkLivecodes from 'remark-livecodes'; const nextConfig = { pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'], }; const withMDX = createMDX({ options: { remarkPlugins: [ [ remarkLivecodes, { /* options */ }, ], ], }, }); export default withMDX(nextConfig); ``` ### react-markdown ```bash npm install remark-livecodes ``` ````jsx import Markdown from 'react-markdown'; import remarkLivecodes from 'remark-livecodes'; const markdown = '```jsx livecodes\nexport default () => <h1>Hello</h1>\n```'; <Markdown remarkPlugins={[ [ remarkLivecodes, { /* options */ }, ], ]} > {markdown} </Markdown>; ```` ### Storybook (remark-livecodes) ```javascript // storybook/main.js import remarkLivecodes from 'remark-livecodes'; export default { addons: [ { name: '@storybook/addon-docs', options: { mdxPluginOptions: { mdxCompileOptions: { remarkPlugins: [ [ remarkLivecodes, { /* options */ }, ], ], }, }, }, }, ], }; ``` ### Gatsby (gatsby-remark-livecodes) ```bash npm install -D gatsby-remark-livecodes ``` ```javascript // gatsby-config.js module.exports = { plugins: [ { resolve: 'gatsby-transformer-remark', options: { plugins: [ { resolve: 'gatsby-remark-livecodes', options: { /* options */ }, }, ], }, }, ], }; ``` ## Usage ### Basic code block → Playground ````markdown ```jsx livecodes import { useState } from 'react'; function App() { const [count, setCount] = useState(0); return <button onClick={() => setCount((c) => c + 1)}>{count}</button>; } export default App; ``` ```` Add `livecodes` to the code block language to render as an interactive playground. ### Button or Link instead of embed ````markdown ```jsx livecodes render=button console.log('Edit in LiveCodes'); ``` ```` ````markdown ```jsx livecodes render=link console.log('Edit in LiveCodes'); ``` ```` | render | Behavior | | ---------------------- | -------------------------------------------- | | `playground` (default) | Embed playground in page | | `button` | Show code block + "Edit in LiveCodes" button | | `link` | Show code block + "Edit in LiveCodes" link | | `meta` | Add URL to `data-livecodes-url` attribute | ## Options Configure plugin options to apply to all code blocks: ```javascript remarkPlugins: [ [remarkLivecodes, { // Embed options loading: 'lazy', params: { console: 'open' }, // Plugin options render: 'playground', // 'playground' | 'button' | 'link' | 'meta' height: '400px', className: 'my-playground', auto: false, // Auto-enable for all code blocks }], ], ``` ## Meta Parameters Configure individual code blocks with meta parameters: ````markdown ```jsx livecodes height=500px console=open theme=light console.log('Hello World'); ``` ```` | Parameter | Description | | ----------- | ------------------------------------------------------------------- | | `livecodes` | Enable playground rendering | | `render` | Render mode: `playground`, `button`, `link`, `meta` | | `height` | Iframe height | | `className` | CSS class for iframe/button/link | | `lang` | Override language | | `<param>` | Any LiveCodes query parameter (e.g., `console=open`, `theme=light`) | ### Common Meta Parameters ````markdown ```jsx livecodes render=button // Button opens in LiveCodes ``` ```py livecodes lang=py-wasm console=open # Force Python (Wasm) language print("Hello from Python") ``` ```typescript livecodes theme=light editor=monaco // Light theme, Monaco editor const x: number = 1; ``` ```` ## Common Mistakes ### MEDIUM Not installing peer dependencies ```bash # Each plugin requires its host library npm install remark remark-livecodes # remark-livecodes npm install marked marked-livecodes # marked-livecodes npm install markdown-it markdown-it-livecodes # markdown-it-livecodes npm install gatsby-plugin-remark gatsby-remark-livecodes # Gatsby ``` Install the host library alongside the LiveCodes plugin. Each plugin wraps a specific Markdown processor. Source: docs/docs/markdown-to-livecodes.mdx — Installation sections ### LOW Forgetting livecodes parameter in code block ````markdown ```jsx // This is just a static code block (no livecodes parameter) export default () => <h1>Hello</h1>; ``` ```jsx livecodes // This becomes an interactive playground export default () => <h1>Hello</h1>; ``` ```` Without the `livecodes` parameter, the code block renders as static Markdown. Add it to enable the playground. Set `auto: true` in options to convert all code blocks automatically. Source: docs/docs/markdown-to-livecodes.mdx — Meta Parameters section ## Plugin Packages | Package | Use With | Install | | ------------------------- | ----------------------------------------------------- | ---------------------------------------- | | `remark-livecodes` | Docusaurus, Astro, Next.js, Storybook, react-markdown | `npm install -D remark-livecodes` | | `markdown-it-livecodes` | VitePress, Eleventy | `npm install -D markdown-it-livecodes` | | `marked-livecodes` | Marked | `npm install -D marked-livecodes` | | `gatsby-remark-livecodes` | Gatsby | `npm install -D gatsby-remark-livecodes` |
Ver no GitHub