summaryrefslogtreecommitdiff
path: root/packages/markdown/remark/src
diff options
context:
space:
mode:
authorGravatar Ben Holmes <hey@bholmes.dev> 2022-08-25 17:21:56 -0400
committerGravatar GitHub <noreply@github.com> 2022-08-25 17:21:56 -0400
commitac03218247763e4782824e220a384fd20ae6d769 (patch)
tree5ad7dcb402c8e7dc67b3a2f6b6695c5ed5465154 /packages/markdown/remark/src
parentd4cd7a59fd38d411c442a818cfaab40f74106628 (diff)
downloadastro-ac03218247763e4782824e220a384fd20ae6d769.tar.gz
astro-ac03218247763e4782824e220a384fd20ae6d769.tar.zst
astro-ac03218247763e4782824e220a384fd20ae6d769.zip
[MD] `extendDefaultPlugins` to preserve default remark plugins (#4474)
* feat: add { extends } to markdown config * test: remark plugins with extends * deps: pnpm lock * chore: changeset * fix: remarkPlugins -> rehypePlugins * docs: update markdown config reference * Revert "feat: add { extends } to markdown config" This reverts commit 5d050bbcf9a2c0d470cae79c4d0a954d489f4e8c. * feat: new "extendDefaultPlugins" flag * docs: update config * nit: We -> Astro applies * fix: backticks on `false` * nit: Note -> REAL note Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * docs: note -> caution Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Diffstat (limited to 'packages/markdown/remark/src')
-rw-r--r--packages/markdown/remark/src/index.ts7
-rw-r--r--packages/markdown/remark/src/types.ts1
2 files changed, 5 insertions, 3 deletions
diff --git a/packages/markdown/remark/src/index.ts b/packages/markdown/remark/src/index.ts
index da64a5459..c64bdac0e 100644
--- a/packages/markdown/remark/src/index.ts
+++ b/packages/markdown/remark/src/index.ts
@@ -39,6 +39,7 @@ export async function renderMarkdown(
remarkPlugins = [],
rehypePlugins = [],
remarkRehype = {},
+ extendDefaultPlugins = false,
isAstroFlavoredMd = false,
} = opts;
const input = new VFile({ value: content, path: fileURL });
@@ -50,9 +51,9 @@ export async function renderMarkdown(
.use(remarkInitializeAstroData)
.use(isAstroFlavoredMd ? [remarkMdxish, remarkMarkAndUnravel, remarkUnwrap, remarkEscape] : []);
- if (remarkPlugins.length === 0 && rehypePlugins.length === 0) {
- remarkPlugins = [...DEFAULT_REMARK_PLUGINS];
- rehypePlugins = [...DEFAULT_REHYPE_PLUGINS];
+ if (extendDefaultPlugins || (remarkPlugins.length === 0 && rehypePlugins.length === 0)) {
+ remarkPlugins = [...DEFAULT_REMARK_PLUGINS, ...remarkPlugins];
+ rehypePlugins = [...DEFAULT_REHYPE_PLUGINS, ...rehypePlugins];
}
const loadedRemarkPlugins = await Promise.all(loadPlugins(remarkPlugins));
diff --git a/packages/markdown/remark/src/types.ts b/packages/markdown/remark/src/types.ts
index 9df11d414..5b40c9f9d 100644
--- a/packages/markdown/remark/src/types.ts
+++ b/packages/markdown/remark/src/types.ts
@@ -43,6 +43,7 @@ export interface AstroMarkdownOptions {
remarkPlugins?: RemarkPlugins;
rehypePlugins?: RehypePlugins;
remarkRehype?: RemarkRehype;
+ extendDefaultPlugins?: boolean;
}
export interface MarkdownRenderingOptions extends AstroMarkdownOptions {