summaryrefslogtreecommitdiff
path: root/src/compiler/index.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-04-01 16:34:11 -0400
committerGravatar GitHub <noreply@github.com> 2021-04-01 16:34:11 -0400
commit54ba9f5ee17a68f0e5a917011ce696de397220dc (patch)
tree84f71153562f42c42870058b3d717f52cd338fa3 /src/compiler/index.ts
parent397b7145cc5d6008165af74a020ff7af3a8cace7 (diff)
downloadastro-54ba9f5ee17a68f0e5a917011ce696de397220dc.tar.gz
astro-54ba9f5ee17a68f0e5a917011ce696de397220dc.tar.zst
astro-54ba9f5ee17a68f0e5a917011ce696de397220dc.zip
Fix complex MDX parsing (#50)
* Fix complex MDX parsing This allows fully MDX support using the micromark MDX extension. One caveat is that if you do something like use the less than sign, you need to escape it because the parser expects these to be tags otherwise. * Move micromark definition
Diffstat (limited to 'src/compiler/index.ts')
-rw-r--r--src/compiler/index.ts10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/index.ts b/src/compiler/index.ts
index 541bae21e..112b7881e 100644
--- a/src/compiler/index.ts
+++ b/src/compiler/index.ts
@@ -8,8 +8,9 @@ import matter from 'gray-matter';
import gfmHtml from 'micromark-extension-gfm/html.js';
import { parse } from '../parser/index.js';
-import { createMarkdownHeadersCollector } from '../micromark-collect-headers.js';
-import { encodeMarkdown } from '../micromark-encode.js';
+import { createMarkdownHeadersCollector } from './markdown/micromark-collect-headers.js';
+import { encodeMarkdown } from './markdown/micromark-encode.js';
+import { encodeAstroMdx } from './markdown/micromark-mdx-astro.js';
import { optimize } from './optimize/index.js';
import { codegen } from './codegen.js';
@@ -56,10 +57,11 @@ async function convertMdToJsx(
): Promise<TransformResult> {
const { data: frontmatterData, content } = matter(contents);
const { headers, headersExtension } = createMarkdownHeadersCollector();
+ const { htmlAstro, mdAstro } = encodeAstroMdx();
const mdHtml = micromark(content, {
allowDangerousHtml: true,
- extensions: [gfmSyntax()],
- htmlExtensions: [gfmHtml, encodeMarkdown, headersExtension],
+ extensions: [gfmSyntax(), ...htmlAstro],
+ htmlExtensions: [gfmHtml, encodeMarkdown, headersExtension, mdAstro],
});
// TODO: Warn if reserved word is used in "frontmatterData"