diff options
Diffstat (limited to 'packages/astro-parser/src/parse/state/codefence.ts')
-rw-r--r-- | packages/astro-parser/src/parse/state/codefence.ts | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/packages/astro-parser/src/parse/state/codefence.ts b/packages/astro-parser/src/parse/state/codefence.ts index 72867867c..b8e96b262 100644 --- a/packages/astro-parser/src/parse/state/codefence.ts +++ b/packages/astro-parser/src/parse/state/codefence.ts @@ -2,37 +2,37 @@ import { Parser } from '../index.js'; export default function codefence(parser: Parser) { - const start = parser.index; - const open = parser.match_regex(/[`~]{3,}/); - parser.index += open!.length; + const start = parser.index; + const open = parser.match_regex(/[`~]{3,}/); + parser.index += open!.length; - let raw = open + ''; + let raw = open + ''; - while (parser.index < parser.template.length && !parser.match(open)) { - raw += parser.template[parser.index++]; - } + while (parser.index < parser.template.length && !parser.match(open)) { + raw += parser.template[parser.index++]; + } - parser.eat(open, true); - raw += open; - const trailingWhitespace = parser.read_until(/\S/); - const { metadata, data } = extractCodeFence(raw); + parser.eat(open, true); + raw += open; + const trailingWhitespace = parser.read_until(/\S/); + const { metadata, data } = extractCodeFence(raw); - const node = { - start, - end: parser.index, - type: 'CodeFence', - raw: `${raw}` + trailingWhitespace, - metadata, - data, - }; + const node = { + start, + end: parser.index, + type: 'CodeFence', + raw: `${raw}` + trailingWhitespace, + metadata, + data, + }; - parser.current().children.push(node); + parser.current().children.push(node); } /** Extract attributes on first line */ function extractCodeFence(str: string) { - const [_, leadingLine] = str.match(/(^[^\n]*\r?\n)/m) ?? ['', '']; - const metadata = leadingLine.trim(); - const data = str.slice(leadingLine.length); - return { metadata, data }; + const [_, leadingLine] = str.match(/(^[^\n]*\r?\n)/m) ?? ['', '']; + const metadata = leadingLine.trim(); + const data = str.slice(leadingLine.length); + return { metadata, data }; } |