diff options
author | 2021-04-01 16:34:11 -0400 | |
---|---|---|
committer | 2021-04-01 16:34:11 -0400 | |
commit | 54ba9f5ee17a68f0e5a917011ce696de397220dc (patch) | |
tree | 84f71153562f42c42870058b3d717f52cd338fa3 /src/compiler/markdown/micromark-encode.ts | |
parent | 397b7145cc5d6008165af74a020ff7af3a8cace7 (diff) | |
download | astro-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 '')
-rw-r--r-- | src/compiler/markdown/micromark-encode.ts (renamed from src/micromark-encode.ts) | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/micromark-encode.ts b/src/compiler/markdown/micromark-encode.ts index f9e863fdd..635ab3b54 100644 --- a/src/micromark-encode.ts +++ b/src/compiler/markdown/micromark-encode.ts @@ -1,4 +1,5 @@ -import type { HtmlExtension, Token, Tokenize } from 'micromark/dist/shared-types'; +import type { Token } from 'micromark/dist/shared-types'; +import type { MicromarkExtension, MicromarkExtensionContext } from '../../@types/micromark'; const characterReferences = { '"': 'quot', @@ -19,15 +20,13 @@ function encode(value: string): string { } /** Encode Markdown node */ -function encodeToken(this: Record<string, () => void>) { +function encodeToken(this: MicromarkExtensionContext) { const token: Token = arguments[0]; - const serialize = (this.sliceSerialize as unknown) as (t: Token) => string; - const raw = (this.raw as unknown) as (s: string) => void; - const value = serialize(token); - raw(encode(value)); + const value = this.sliceSerialize(token); + this.raw(encode(value)); } -const plugin: HtmlExtension = { +const plugin: MicromarkExtension = { exit: { codeTextData: encodeToken, codeFlowValue: encodeToken, |