summaryrefslogtreecommitdiff
path: root/packages/astro-parser/src/parse/state/text.ts
blob: eac810a0a266bb44387aa0335fc8beab39792f58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// @ts-nocheck

import { decode_character_references } from '../utils/html.js';
import { Parser } from '../index.js';

export default function text(parser: Parser) {
  const start = parser.index;

  let data = '';

  while (parser.index < parser.template.length && !parser.match('---') && !parser.match('<') && !parser.match('{') && !parser.match('`')) {
    data += parser.template[parser.index++];
  }

  const node = {
    start,
    end: parser.index,
    type: 'Text',
    raw: data,
    data: decode_character_references(data),
  };

  parser.current().children.push(node);
}