fortissimo-html
Version:
Fortissimo HTML - Flexible, Forgiving, Formatting HTML Parser
109 lines • 3.9 kB
TypeScript
export declare enum ClosureState {
UNCLOSED = 0,
SELF_CLOSED = 1,
VOID_CLOSED = 2,
EXPLICITLY_CLOSED = 3,
IMPLICITLY_CLOSED = 4
}
export declare function OQ(quote: string): string;
export declare function CQ(quote: string): string;
export declare function isCommentLike(obj: any): boolean;
export declare abstract class DomElement {
content: string;
readonly line: number;
readonly column: number;
readonly terminated: boolean;
parent: DomNode;
blockContext: boolean;
constructor(content: string, line: number, column: number, terminated: boolean);
get depth(): number;
get syntheticDepth(): number;
toJSON(): any;
}
export declare class CData extends DomElement {
toString(): string;
}
export declare class CommentElement extends DomElement {
toString(): string;
}
export declare class DeclarationElement extends DomElement {
toString(): string;
}
export declare class DocType extends DeclarationElement {
readonly type: 'html' | 'xhtml';
readonly variety: 'frameset' | 'strict' | 'transitional';
readonly version: string;
constructor(content: string, line: number, column: number, terminated: boolean);
}
export declare class ProcessingElement extends DomElement {
toString(): string;
}
export declare class TextElement extends DomElement {
possibleEntities: boolean;
constructor(content: string, line: number, column: number, possibleEntities: boolean);
toString(): string;
}
export declare class UnmatchedClosingTag extends DomElement {
constructor(content: string, line: number, column: number);
toString(): string;
}
export declare class DomNode extends DomElement {
tag: string;
attributes: string[];
badTerminator: string;
children: DomElement[];
closureState: ClosureState;
endTagLine: number;
endTagColumn: number;
endTagText: string;
equals: string[];
innerWhitespace: string;
quotes: string[];
spacing: string[];
synthetic?: boolean;
tagLc: string;
values: string[];
valuesLookup: Record<string, string>;
static createNode(tag: string): DomNode;
constructor(tag: string, line?: number, column?: number, caseSensitive?: boolean, synthetic?: boolean);
get attributeCount(): number;
getAttribute(nameOrIndex: number | string): string[];
deleteAttribute(nameOrIndex: number | string): boolean;
clearAttributes(): void;
setAttribute(name: string, value?: string, leadingSpace?: string, equals?: string, quote?: string): void;
addAttribute(name: string, value?: string, leadingSpace?: string, equals?: string, quote?: string): void;
addChild(child: DomElement): void;
remove(child?: number | DomElement): void;
setEndTag(text: string, line?: number, column?: number): void;
querySelector(selector: string): DomNode;
querySelectorAll(selector: string): DomNode[];
private querySelectorImpl;
get textContent(): string;
get innerHTML(): string;
countUnclosed(): [number, number];
toJSON(): any;
toString(includeSelf?: boolean): string;
}
export declare class DomModel {
private root;
private currentNode;
private inMathOrSvg;
private openStack;
private xmlMode;
getRoot(): DomNode;
getCurrentNode(): DomNode;
addAttribute(name: string, value: string, leadingSpace?: string, equals?: string, quote?: string): void;
addInnerWhitespace(whitespace: string): void;
canDoXmlMode(): boolean;
getDepth(): number;
setXmlMode(mode: boolean): void;
prePush(node: DomNode): void;
addChild(child: DomElement): void;
private examineTable;
private static insertRowsWhereNeeded;
push(node: DomNode): void;
pop(tagLc: string, endTagText?: string, line?: number, column?: number): boolean;
shouldParseCData(): boolean;
private updateCurrentNode;
}
//# sourceMappingURL=dom.d.ts.map