summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ben Holmes <hey@bholmes.dev> 2023-05-31 10:09:49 -0400
committerGravatar GitHub <noreply@github.com> 2023-05-31 10:09:49 -0400
commit563293c5d67e2bf13b9c735581969a0341861b44 (patch)
treee7bb3df97fd3badb0aac2fdf7218598b26003cc5
parent290e344dee4092ce592490d1f58ef389831e4ad0 (diff)
downloadastro-563293c5d67e2bf13b9c735581969a0341861b44.tar.gz
astro-563293c5d67e2bf13b9c735581969a0341861b44.tar.zst
astro-563293c5d67e2bf13b9c735581969a0341861b44.zip
Markdoc: strip HTML comments from output (#7224)
* feat: strip HTML comments from output * chore: changeset
-rw-r--r--.changeset/many-cats-fry.md5
-rw-r--r--packages/integrations/markdoc/src/index.ts9
2 files changed, 13 insertions, 1 deletions
diff --git a/.changeset/many-cats-fry.md b/.changeset/many-cats-fry.md
new file mode 100644
index 000000000..75ebfe501
--- /dev/null
+++ b/.changeset/many-cats-fry.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/markdoc': patch
+---
+
+Allow HTML comments `<!--like this-->` in Markdoc files.
diff --git a/packages/integrations/markdoc/src/index.ts b/packages/integrations/markdoc/src/index.ts
index 17f012360..f33c3a1be 100644
--- a/packages/integrations/markdoc/src/index.ts
+++ b/packages/integrations/markdoc/src/index.ts
@@ -19,6 +19,12 @@ type SetupHookParams = HookParameters<'astro:config:setup'> & {
addContentEntryType: (contentEntryType: ContentEntryType) => void;
};
+const markdocTokenizer = new Markdoc.Tokenizer({
+ // Strip <!-- comments --> from rendered output
+ // Without this, they're rendered as strings!
+ allowComments: true,
+});
+
export default function markdocIntegration(legacyConfig?: any): AstroIntegration {
if (legacyConfig) {
console.log(
@@ -64,7 +70,8 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration
getEntryInfo,
async getRenderModule({ contents, fileUrl, viteId }) {
const entry = getEntryInfo({ contents, fileUrl });
- const ast = Markdoc.parse(entry.body);
+ const tokens = markdocTokenizer.tokenize(entry.body);
+ const ast = Markdoc.parse(tokens);
const pluginContext = this;
const markdocConfig = await setupConfig(userMarkdocConfig);