/
githubmirror
/
marked
Обзор
Документация
Войти
/
githubmirror
/
marked
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Tokens.ts
221 строка
4 KB
Tony Brix
fix: only create tokens inside tokenizers (#3755)
07 ноя 2025, 09:33
Не верифицирован
07 ноя 2025, 09:33
7b19231
Код
Авторство
О чём код?
/* eslint-disable no-use-before-define */ export type MarkedToken = ( Tokens.Blockquote | Tokens.Br | Tokens.Checkbox | Tokens.Code | Tokens.Codespan | Tokens.Def | Tokens.Del | Tokens.Em | Tokens.Escape | Tokens.Heading | Tokens.Hr | Tokens.HTML | Tokens.Image | Tokens.Link | Tokens.List | Tokens.ListItem | Tokens.Paragraph | Tokens.Space | Tokens.Strong | Tokens.Table | Tokens.Tag | Tokens.Text ); export type Token = ( MarkedToken | Tokens.Generic); export namespace Tokens { export interface Blockquote { type: 'blockquote'; raw: string; text: string; tokens: Token[]; } export interface Br { type: 'br'; raw: string; } export interface Checkbox { type: 'checkbox'; raw: string; checked: boolean; } export interface Code { type: 'code'; raw: string; codeBlockStyle?: 'indented'; lang?: string; text: string; escaped?: boolean; } export interface Codespan { type: 'codespan'; raw: string; text: string; } export interface Def { type: 'def'; raw: string; tag: string; href: string; title: string; } export interface Del { type: 'del'; raw: string; text: string; tokens: Token[]; } export interface Em { type: 'em'; raw: string; text: string; tokens: Token[]; } export interface Escape { type: 'escape'; raw: string; text: string; } export interface Generic { // eslint-disable-next-line @typescript-eslint/no-explicit-any [index: string]: any; type: string; raw: string; tokens?: Token[]; } export interface Heading { type: 'heading'; raw: string; depth: number; text: string; tokens: Token[]; } export interface Hr { type: 'hr'; raw: string; } export interface HTML { type: 'html'; raw: string; pre: boolean; text: string; block: boolean; } export interface Image { type: 'image'; raw: string; href: string; title: string | null; text: string; tokens: Token[]; } export interface Link { type: 'link'; raw: string; href: string; title?: string | null; text: string; tokens: Token[]; } export interface List { type: 'list'; raw: string; ordered: boolean; start: number | ''; loose: boolean; items: ListItem[]; } export interface ListItem { type: 'list_item'; raw: string; task: boolean; checked?: boolean; loose: boolean; text: string; tokens: Token[]; } export interface Paragraph { type: 'paragraph'; raw: string; pre?: boolean; text: string; tokens: Token[]; } export interface Space { type: 'space'; raw: string; } export interface Strong { type: 'strong'; raw: string; text: string; tokens: Token[]; } export interface Table { type: 'table'; raw: string; align: Array<'center' | 'left' | 'right' | null>; header: TableCell[]; rows: TableCell[][]; } export interface TableCell { text: string; tokens: Token[]; header: boolean; align: 'center' | 'left' | 'right' | null; } export interface TableRow<P = string> { text: P; } export interface Tag { type: 'html'; raw: string; inLink: boolean; inRawBlock: boolean; text: string; block: boolean; } export interface Text { type: 'text'; raw: string; text: string; tokens?: Token[]; escaped?: boolean; } } export type Links = Record<string, Pick<Tokens.Link | Tokens.Image, 'href' | 'title'>>; export type TokensList = Token[] & { links: Links; };