{"id":20418,"library":"prettier-plugin-slidev","title":"Prettier Plugin for Slidev","description":"A Prettier plugin that formats Slidev markdown slides (slides.md, pages/*.md). Current stable version is 1.0.5, released as part of the official Slidev ecosystem. It uses a custom 'slidev' parser to handle Slidev-specific frontmatter, slide separators (---), and code block annotations. The plugin is released with the Slidev ecosystem, following minor version bumps as Slidev evolves. Key differentiator: it is the only dedicated formatter for Slidev slide files, ensuring consistent formatting for Slidev's markdown syntax without breaking slide structure.","status":"active","version":"1.0.5","language":"javascript","source_language":"en","source_url":"https://github.com/slidevjs/prettier-plugin","tags":["javascript","slidev","prettier","prettier-plugin","plugin","formatter","format","typescript"],"install":[{"cmd":"npm install prettier-plugin-slidev","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-plugin-slidev","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-plugin-slidev","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency, required as the formatting engine","package":"prettier","optional":false}],"imports":[{"note":"Prettier plugins must be specified in the config file as plugin names (strings), not loaded via require. The plugin is activated only for .md files that use Slidev syntax.","wrong":"// Wrong: using require('prettier-plugin-slidev') in JS config\nmodule.exports = {\n  plugins: [require('prettier-plugin-slidev')]\n}","symbol":"plugin","correct":"// Prettier config overrides\n{\n  \"files\": [\"slides.md\", \"pages/*.md\"],\n  \"options\": {\n    \"parser\": \"slidev\",\n    \"plugins\": [\"prettier-plugin-slidev\"]\n  }\n}"}],"quickstart":{"code":"npm i -D prettier prettier-plugin-slidev\n# .prettierrc.json\n{\n  \"overrides\": [\n    {\n      \"files\": [\"slides.md\", \"pages/*.md\"],\n      \"options\": {\n        \"parser\": \"slidev\",\n        \"plugins\": [\"prettier-plugin-slidev\"]\n      }\n    }\n  ]\n}\n# Then run:\nnpx prettier --write slides.md","lang":"typescript","description":"Install the plugin, configure Prettier to use the slidev parser for Slidev markdown files, and format a slides.md file."},"warnings":[{"fix":"Upgrade Prettier to ^3.2.4","message":"The plugin only works with Prettier v3.2.4 or later.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Adjust the 'files' glob in the override if you use different file names.","message":"Only files named 'slides.md' or in 'pages/*.md' are recognized as Slidev files by default.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always include 'parser: \"slidev\"' in the override options.","message":"Simply adding the plugin to 'plugins' without specifying 'parser: \"slidev\"' will not work because .md files default to the markdown parser.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Remove other markdown-related Prettier plugins when using this one.","message":"Do not use this plugin with other Prettier markdown plugins (e.g., prettier-plugin-md) as they may conflict.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install as a dev dependency: npm i -D prettier prettier-plugin-slidev","cause":"The plugin is not installed or not in the same node_modules as Prettier (global vs local).","error":"Cannot find module 'prettier-plugin-slidev'"},{"fix":"Add the override with parser: 'slidev' as shown in the configuration.","cause":"Prettier is using the 'markdown' parser instead of 'slidev' parser, causing it to choke on Slidev-specific syntax like frontmatter '---' or slide separators.","error":"Unexpected token '-' in file slides.md"},{"fix":"Set plugins to [\"prettier-plugin-slidev\"] in the config (JSON or YAML).","cause":"Using require() to load the plugin in the config file, but Prettier expects plugin names as strings.","error":"Invalid configuration file: plugins must be a string or an array of strings"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}