UNPKG

@types/markdown-it

Version:
125 lines (102 loc) 2.84 kB
import MarkdownIt from "../index.mjs"; import Token, { Nesting } from "../token.mjs"; export type ParentType = "blockquote" | "list" | "root" | "paragraph" | "reference"; export default class StateBlock { constructor(src: string, md: MarkdownIt, env: any, tokens: Token[]); src: string; /** * link to parser instance */ md: MarkdownIt; env: any; // // Internal state vartiables // tokens: Token[]; /** * line begin offsets for fast jumps */ bMarks: number[]; /** * line end offsets for fast jumps */ eMarks: number[]; /** * offsets of the first non-space characters (tabs not expanded) */ tShift: number[]; /** * indents for each line (tabs expanded) */ sCount: number[]; /** * An amount of virtual spaces (tabs expanded) between beginning * of each line (bMarks) and real beginning of that line. * * It exists only as a hack because blockquotes override bMarks * losing information in the process. * * It's used only when expanding tabs, you can think about it as * an initial tab length, e.g. bsCount=21 applied to string `\t123` * means first tab should be expanded to 4-21%4 === 3 spaces. */ bsCount: number[]; // block parser variables /** * required block content indent (for example, if we are * inside a list, it would be positioned after list marker) */ blkIndent: number; /** * line index in src */ line: number; /** * lines count */ lineMax: number; /** * loose/tight mode for lists */ tight: boolean; /** * indent of the current dd block (-1 if there isn't any) */ ddIndent: number; /** * indent of the current list block (-1 if there isn't any) */ listIndent: number; /** * used in lists to determine if they interrupt a paragraph */ parentType: ParentType; level: number; /** * Push new token to "stream". */ push(type: string, tag: string, nesting: Nesting): Token; isEmpty(line: number): boolean; skipEmptyLines(from: number): number; /** * Skip spaces from given position. */ skipSpaces(pos: number): number; /** * Skip spaces from given position in reverse. */ skipSpacesBack(pos: number, min: number): number; /** * Skip char codes from given position */ skipChars(pos: number, code: number): number; /** * Skip char codes reverse from given position - 1 */ skipCharsBack(pos: number, code: number, min: number): number; /** * cut lines range from source. */ getLines(begin: number, end: number, indent: number, keepLastLF: boolean): string; Token: typeof Token; }