summaryrefslogtreecommitdiff
path: root/docs/guides/markdown-content.md
diff options
context:
space:
mode:
authorGravatar Pavel Mineev <pavel@mineev.me> 2021-07-01 19:55:22 +0300
committerGravatar GitHub <noreply@github.com> 2021-07-01 11:55:22 -0500
commitd3969436dcbe40a3d41a036ff7c2761aed176109 (patch)
tree5b79d1ce306566bc53a71e2fe2e5b494adf20904 /docs/guides/markdown-content.md
parente773771b917d1d11e8a5647ccdc2d44c903f1f4c (diff)
downloadastro-d3969436dcbe40a3d41a036ff7c2761aed176109.tar.gz
astro-d3969436dcbe40a3d41a036ff7c2761aed176109.tar.zst
astro-d3969436dcbe40a3d41a036ff7c2761aed176109.zip
Remark and rehype plugins (#562)
* remark plugins * remove unused dependency * enable codeblocks * backward compatibility with remark-code-titles * add support for rehype plugins * add proper types for plugins * fixes after review - connect plugins by name - make plugins configurable - connect gfm and footnotes if no plugins provided from config - add more plugins to example * update and rename example * add documentation for markdown plugins * chore: rename with-markdown-plugins example * chore: restructure dependencies * feat: add back smartypants, fix mdx expressions * chore: remove log * test: add markdown plugin tests * chore: add changeset * docs: update markdown doc Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to 'docs/guides/markdown-content.md')
-rw-r--r--docs/guides/markdown-content.md47
1 files changed, 43 insertions, 4 deletions
diff --git a/docs/guides/markdown-content.md b/docs/guides/markdown-content.md
index b00312034..00dbd7f87 100644
--- a/docs/guides/markdown-content.md
+++ b/docs/guides/markdown-content.md
@@ -4,12 +4,51 @@ title: Markdown Content
---
Astro comes with out-of-the-box Markdown support powered by the expansive [remark](https://remark.js.org/) ecosystem.
+## Remark and Rehype Plugins
+
+In addition to [custom components inside the `<Markdown>` component](#markdown-component), Astro comes with [GitHub-flavored Markdown](https://github.github.com/gfm/) support, [Footnotes](https://github.com/remarkjs/remark-footnotes) syntax, [Smartypants](https://github.com/silvenon/remark-smartypants), and syntax highlighting via [Prism](https://prismjs.com/) pre-enabled.
+
+Also, Astro supports third-party plugins for Markdown. You can provide your plugins in `astro.config.mjs`.
+
+> **Note** Enabling custom `remarkPlugins` or `rehypePlugins` removes Astro's built-in support for [GitHub-flavored Markdown](https://github.github.com/gfm/) support, [Footnotes](https://github.com/remarkjs/remark-footnotes) syntax, [Smartypants](https://github.com/silvenon/remark-smartypants). You must explicitly add these plugins to your `astro.config.mjs` file, if desired.
+
+## Add a markdown plugin in Astro
+
+If you want to add a plugin, you need to install the npm package dependency in your project and then update the `markdownOptions.remarkPlugins` or `markdownOptions.rehypePlugins` depends on what plugin you want to have:
+
+```js
+// astro.config.js
+export default {
+ markdownOptions: {
+ remarkPlugins: [
+ // Add a Remark plugin that you want to enable for your project.
+ // If you need to provide options for the plugin, you can use an array and put the options as the second item.
+ // 'remark-slug',
+ // ['remark-autolink-headings', { behavior: 'prepend'}],
+ ]
+ rehypePlugins: [
+ // Add a Rehype plugin that you want to enable for your project.
+ // If you need to provide options for the plugin, you can use an array and put the options as the second item.
+ // 'rehype-slug',
+ // ['rehype-autolink-headings', { behavior: 'prepend'}],
+ ]
+ },
+};
+```
-### Remark Plugins
-
-**This is the first draft of Markdown support!** While we plan to support user-provided `remark` plugins soon, our hope is that you won't need `remark` plugins at all!
+You can provide names of the plugins as well as import them:
-In addition to [custom components inside the `<Markdown>` component](https://github.com/snowpackjs/astro/blob/main/docs/markdown.md#markdown-component), Astro comes with [Github-flavored Markdown](https://github.github.com/gfm/) support, [Footnotes](https://github.com/remarkjs/remark-footnotes) syntax, [Smartypants](https://github.com/silvenon/remark-smartypants), and syntax highlighting via [Prism](https://prismjs.com/) pre-enabled. These features are likely to be configurable in the future.
+```js
+// astro.config.js
+export default {
+ markdownOptions: {
+ remarkPlugins: [
+ import('remark-slug'),
+ [import('remark-autolink-headings'), { behavior: 'prepend' }],
+ ],
+ },
+};
+```
### Markdown Pages
ci] formatGravatar Florian Lefebvre 2-2/+2 2025-03-26fix(astro): dynamically import actions (#13510)Gravatar Florian Lefebvre 12-51/+96 * feat: update test * feat: dynamic import * chore: changeset * Update .changeset/clever-tigers-dig.md 2025-03-26[ci] formatGravatar Matt Kane 2-2/+2 2025-03-26fix: cache raw cookie value and decode when getting (#13485)Gravatar Matt Kane 3-17/+37 * fix: cache raw cookie value and decode when getting * Add test * Add comment 2025-03-25fix: update vite (#13505)Gravatar Emanuele Stoppa 16-104/+123 * fix: update vite * use dedupe 2025-03-24[ci] formatGravatar Emanuele Stoppa 1-1/+1 2025-03-24fix(app): call renderer when routes don't match (#13483)Gravatar Emanuele Stoppa 4-1/+30 * fix(app): call renderer when routes don't match * chore: pick 404 exactly * chore: pick route differently Co-authored-by: ascorbic <213306+ascorbic@users.noreply.github.com> 2025-03-21[ci] release (#13460)astro@5.5.4@astrojs/vercel@8.1.3@astrojs/tailwind@6.0.1@astrojs/svelte@7.0.7@astrojs/preact@4.0.6@astrojs/cloudflare@12.3.0Gravatar Houston (Bot) 45-118/+119 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 2025-03-21fix: better error handling on Stackblitz (#13484)Gravatar Matt Kane 2-0/+12 * fix: better error handling on Stackblitz * Remove unused imports 2025-03-21Repair server islands to work with client router (#13481)Gravatar Martin Trapp 2-6/+11 * rerun server island scripts when used with client router 2025-03-21fix: generate correct external redirects (#13480)Gravatar Matt Kane 3-4/+21 2025-03-21fix(deps): update all non-major dependencies (#13440)Gravatar renovate[bot] 24-435/+436 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-21[ci] formatGravatar Florian Lefebvre 2-2/+2 2025-03-21feat(cloudflare): global env (#13444)Gravatar Florian Lefebvre 6-47/+130 * feat(cloudflare): global env * fix: test 2025-03-21fix(deps): update astro client runtimes (#13474)Gravatar renovate[bot] 7-345/+348 * fix(deps): update astro client runtimes * fix: pin vite-plugin-vue --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> 2025-03-20Small change to linking style (#13472)Gravatar Chris Swithinbank 1-1/+1 Co-authored-by: sarah11918 <5098874+sarah11918@users.noreply.github.com> 2025-03-20Add deprecation notice to Tailwind integration README (#13471)Gravatar Chris Swithinbank 2-6/+11 * Add deprecation notice to Tailwind integration README * Add changeset * Use `[docs]` link style again * update link to more direct content --------- Co-authored-by: Sarah Rainsberger <5098874+sarah11918@users.noreply.github.com> Co-authored-by: anaxite <89195061+anaxite@users.noreply.github.com> Co-authored-by: sarah11918 <5098874+sarah11918@users.noreply.github.com> Co-authored-by: Adammatthiesen <30383579+Adammatthiesen@users.noreply.github.com> Co-authored-by: HiDeoo <494699+HiDeoo@users.noreply.github.com> 2025-03-20[ci] formatGravatar Matt Kane 2-2/+1 2025-03-20fix(preact,svelte): empty target container before rendering `client:only` ↵Gravatar Matt Kane 5-5/+41 island (#13470) * fix(preact,svelte): empty target container before rendering `client:only` island * Remove log 2025-03-20chore(renovate): group updates (#13466)Gravatar Emanuele Stoppa 1-11/+58 2025-03-19[ci] formatGravatar Matt Kane 1-3/+2 2025-03-19fix: don't attempt to move files after build with base (#13463)Gravatar Matt Kane 8-13/+66 * fix: don't attempt to move files after build with base * Remove console * Reword changeset * Remove unused import 2025-03-19[ci] formatGravatar Emanuele Stoppa 2-6/+18 2025-03-19fix(routing): don't add site to static redirects (#13447)Gravatar Emanuele Stoppa 7-10/+49 * fix(routing): don't add site to static redirects * chore: fix canonical tag * chore: fix canonical tag Co-authored-by: ascorbic <213306+ascorbic@users.noreply.github.com> 2025-03-18[ci] formatGravatar Matt Kane 2-2/+1 2025-03-18fix: set correct statusText for custom error pages (#13457)Gravatar Matt Kane 4-2/+19 * fix: set correct statusText for custom error pages * Set conditionally 2025-03-18chore(deps): update github-actions (#13459)Gravatar renovate[bot] 9-13/+13 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-18chore(deps): update github-actions (#13458)Gravatar renovate[bot] 1-5/+5 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 2025-03-18[ci] formatGravatar Emanuele Stoppa 1-1/+3 2025-03-18chore: remove deprecated package (#13455)Gravatar Emanuele Stoppa 3-23/+16 2025-03-18fix(deps): update dependency miniflare to v4 (#13441)Gravatar renovate[bot] 2-31/+31 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>