You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.8 KiB
159 lines
4.8 KiB
import Tokenizer from "./Tokenizer"; |
|
export interface ParserOptions { |
|
/** |
|
* Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment |
|
* and if "empty" tags (eg. `<br>`) can have children. If `false`, the content of special tags |
|
* will be text only. For feeds and other XML content (documents that don't consist of HTML), |
|
* set this to `true`. |
|
* |
|
* @default false |
|
*/ |
|
xmlMode?: boolean; |
|
/** |
|
* Decode entities within the document. |
|
* |
|
* @default true |
|
*/ |
|
decodeEntities?: boolean; |
|
/** |
|
* If set to true, all tags will be lowercased. |
|
* |
|
* @default !xmlMode |
|
*/ |
|
lowerCaseTags?: boolean; |
|
/** |
|
* If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed. |
|
* |
|
* @default !xmlMode |
|
*/ |
|
lowerCaseAttributeNames?: boolean; |
|
/** |
|
* If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled. |
|
* NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text. |
|
* |
|
* @default xmlMode |
|
*/ |
|
recognizeCDATA?: boolean; |
|
/** |
|
* If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`. |
|
* NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized. |
|
* |
|
* @default xmlMode |
|
*/ |
|
recognizeSelfClosing?: boolean; |
|
/** |
|
* Allows the default tokenizer to be overwritten. |
|
*/ |
|
Tokenizer?: typeof Tokenizer; |
|
} |
|
export interface Handler { |
|
onparserinit(parser: Parser): void; |
|
/** |
|
* Resets the handler back to starting state |
|
*/ |
|
onreset(): void; |
|
/** |
|
* Signals the handler that parsing is done |
|
*/ |
|
onend(): void; |
|
onerror(error: Error): void; |
|
onclosetag(name: string): void; |
|
onopentagname(name: string): void; |
|
/** |
|
* |
|
* @param name Name of the attribute |
|
* @param value Value of the attribute. |
|
* @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value. |
|
*/ |
|
onattribute(name: string, value: string, quote?: string | undefined | null): void; |
|
onopentag(name: string, attribs: { |
|
[s: string]: string; |
|
}): void; |
|
ontext(data: string): void; |
|
oncomment(data: string): void; |
|
oncdatastart(): void; |
|
oncdataend(): void; |
|
oncommentend(): void; |
|
onprocessinginstruction(name: string, data: string): void; |
|
} |
|
export declare class Parser { |
|
/** The start index of the last event. */ |
|
startIndex: number; |
|
/** The end index of the last event. */ |
|
endIndex: number | null; |
|
private tagname; |
|
private attribname; |
|
private attribvalue; |
|
private attribs; |
|
private stack; |
|
private readonly foreignContext; |
|
private readonly cbs; |
|
private readonly options; |
|
private readonly lowerCaseTagNames; |
|
private readonly lowerCaseAttributeNames; |
|
private readonly tokenizer; |
|
constructor(cbs: Partial<Handler> | null, options?: ParserOptions); |
|
private updatePosition; |
|
ontext(data: string): void; |
|
onopentagname(name: string): void; |
|
onopentagend(): void; |
|
onclosetag(name: string): void; |
|
onselfclosingtag(): void; |
|
private closeCurrentTag; |
|
onattribname(name: string): void; |
|
onattribdata(value: string): void; |
|
onattribend(quote: string | undefined | null): void; |
|
private getInstructionName; |
|
ondeclaration(value: string): void; |
|
onprocessinginstruction(value: string): void; |
|
oncomment(value: string): void; |
|
oncdata(value: string): void; |
|
onerror(err: Error): void; |
|
onend(): void; |
|
/** |
|
* Resets the parser to a blank state, ready to parse a new HTML document |
|
*/ |
|
reset(): void; |
|
/** |
|
* Resets the parser, then parses a complete document and |
|
* pushes it to the handler. |
|
* |
|
* @param data Document to parse. |
|
*/ |
|
parseComplete(data: string): void; |
|
/** |
|
* Parses a chunk of data and calls the corresponding callbacks. |
|
* |
|
* @param chunk Chunk to parse. |
|
*/ |
|
write(chunk: string): void; |
|
/** |
|
* Parses the end of the buffer and clears the stack, calls onend. |
|
* |
|
* @param chunk Optional final chunk to parse. |
|
*/ |
|
end(chunk?: string): void; |
|
/** |
|
* Pauses parsing. The parser won't emit events until `resume` is called. |
|
*/ |
|
pause(): void; |
|
/** |
|
* Resumes parsing after `pause` was called. |
|
*/ |
|
resume(): void; |
|
/** |
|
* Alias of `write`, for backwards compatibility. |
|
* |
|
* @param chunk Chunk to parse. |
|
* @deprecated |
|
*/ |
|
parseChunk(chunk: string): void; |
|
/** |
|
* Alias of `end`, for backwards compatibility. |
|
* |
|
* @param chunk Optional final chunk to parse. |
|
* @deprecated |
|
*/ |
|
done(chunk?: string): void; |
|
} |
|
//# sourceMappingURL=Parser.d.ts.map
|