summaryrefslogtreecommitdiff
path: root/src/compiler/markdown/micromark-encode.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/markdown/micromark-encode.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 '')
-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,