135 lines
6.2 KiB
TypeScript
135 lines
6.2 KiB
TypeScript
|
/**
|
||
|
* Turn serialized HTML into a hast tree.
|
||
|
*
|
||
|
* @param {VFile | Value} value
|
||
|
* Serialized HTML to parse.
|
||
|
* @param {Readonly<Options> | null | undefined} [options]
|
||
|
* Configuration (optional).
|
||
|
* @returns {Root}
|
||
|
* Tree.
|
||
|
*/
|
||
|
export function fromHtml(value: VFile | Value, options?: Readonly<Options> | null | undefined): Root;
|
||
|
export type Root = import('hast').Root;
|
||
|
export type ParserError = import('parse5').ParserError;
|
||
|
export type Value = import('vfile').Value;
|
||
|
/**
|
||
|
* Known names of parse errors.
|
||
|
*/
|
||
|
export type ErrorCode = keyof {
|
||
|
abandonedHeadElementChild: import("./errors.js").ErrorInfo;
|
||
|
abruptClosingOfEmptyComment: import("./errors.js").ErrorInfo;
|
||
|
abruptDoctypePublicIdentifier: import("./errors.js").ErrorInfo;
|
||
|
abruptDoctypeSystemIdentifier: import("./errors.js").ErrorInfo;
|
||
|
absenceOfDigitsInNumericCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
cdataInHtmlContent: import("./errors.js").ErrorInfo;
|
||
|
characterReferenceOutsideUnicodeRange: import("./errors.js").ErrorInfo;
|
||
|
closingOfElementWithOpenChildElements: import("./errors.js").ErrorInfo;
|
||
|
controlCharacterInInputStream: import("./errors.js").ErrorInfo;
|
||
|
controlCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
disallowedContentInNoscriptInHead: import("./errors.js").ErrorInfo;
|
||
|
duplicateAttribute: import("./errors.js").ErrorInfo;
|
||
|
endTagWithAttributes: import("./errors.js").ErrorInfo;
|
||
|
endTagWithTrailingSolidus: import("./errors.js").ErrorInfo;
|
||
|
endTagWithoutMatchingOpenElement: import("./errors.js").ErrorInfo;
|
||
|
eofBeforeTagName: import("./errors.js").ErrorInfo;
|
||
|
eofInCdata: import("./errors.js").ErrorInfo;
|
||
|
eofInComment: import("./errors.js").ErrorInfo;
|
||
|
eofInDoctype: import("./errors.js").ErrorInfo;
|
||
|
eofInElementThatCanContainOnlyText: import("./errors.js").ErrorInfo;
|
||
|
eofInScriptHtmlCommentLikeText: import("./errors.js").ErrorInfo;
|
||
|
eofInTag: import("./errors.js").ErrorInfo;
|
||
|
incorrectlyClosedComment: import("./errors.js").ErrorInfo;
|
||
|
incorrectlyOpenedComment: import("./errors.js").ErrorInfo;
|
||
|
invalidCharacterSequenceAfterDoctypeName: import("./errors.js").ErrorInfo;
|
||
|
invalidFirstCharacterOfTagName: import("./errors.js").ErrorInfo;
|
||
|
misplacedDoctype: import("./errors.js").ErrorInfo;
|
||
|
misplacedStartTagForHeadElement: import("./errors.js").ErrorInfo;
|
||
|
missingAttributeValue: import("./errors.js").ErrorInfo;
|
||
|
missingDoctype: import("./errors.js").ErrorInfo;
|
||
|
missingDoctypeName: import("./errors.js").ErrorInfo;
|
||
|
missingDoctypePublicIdentifier: import("./errors.js").ErrorInfo;
|
||
|
missingDoctypeSystemIdentifier: import("./errors.js").ErrorInfo;
|
||
|
missingEndTagName: import("./errors.js").ErrorInfo;
|
||
|
missingQuoteBeforeDoctypePublicIdentifier: import("./errors.js").ErrorInfo;
|
||
|
missingQuoteBeforeDoctypeSystemIdentifier: import("./errors.js").ErrorInfo;
|
||
|
missingSemicolonAfterCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
missingWhitespaceAfterDoctypePublicKeyword: import("./errors.js").ErrorInfo;
|
||
|
missingWhitespaceAfterDoctypeSystemKeyword: import("./errors.js").ErrorInfo;
|
||
|
missingWhitespaceBeforeDoctypeName: import("./errors.js").ErrorInfo;
|
||
|
missingWhitespaceBetweenAttributes: import("./errors.js").ErrorInfo;
|
||
|
missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers: import("./errors.js").ErrorInfo;
|
||
|
nestedComment: import("./errors.js").ErrorInfo;
|
||
|
nestedNoscriptInHead: import("./errors.js").ErrorInfo;
|
||
|
nonConformingDoctype: import("./errors.js").ErrorInfo;
|
||
|
nonVoidHtmlElementStartTagWithTrailingSolidus: import("./errors.js").ErrorInfo;
|
||
|
noncharacterCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
noncharacterInInputStream: import("./errors.js").ErrorInfo;
|
||
|
nullCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
openElementsLeftAfterEof: import("./errors.js").ErrorInfo;
|
||
|
surrogateCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
surrogateInInputStream: import("./errors.js").ErrorInfo;
|
||
|
unexpectedCharacterAfterDoctypeSystemIdentifier: import("./errors.js").ErrorInfo;
|
||
|
unexpectedCharacterInAttributeName: import("./errors.js").ErrorInfo;
|
||
|
unexpectedCharacterInUnquotedAttributeValue: import("./errors.js").ErrorInfo;
|
||
|
unexpectedEqualsSignBeforeAttributeName: import("./errors.js").ErrorInfo;
|
||
|
unexpectedNullCharacter: import("./errors.js").ErrorInfo;
|
||
|
unexpectedQuestionMarkInsteadOfTagName: import("./errors.js").ErrorInfo;
|
||
|
unexpectedSolidusInTag: import("./errors.js").ErrorInfo;
|
||
|
unknownNamedCharacterReference: import("./errors.js").ErrorInfo;
|
||
|
};
|
||
|
/**
|
||
|
* Options that define the severity of errors.
|
||
|
*/
|
||
|
export type ErrorOptions = Partial<Record<ErrorCode, ErrorSeverity | null | undefined>>;
|
||
|
/**
|
||
|
* Error severity:
|
||
|
*
|
||
|
* * `0` or `false`
|
||
|
* — turn the parse error off
|
||
|
* * `1` or `true`
|
||
|
* — turn the parse error into a warning
|
||
|
* * `2`
|
||
|
* — turn the parse error into an actual error: processing stops.
|
||
|
*/
|
||
|
export type ErrorSeverity = boolean | 0 | 1 | 2;
|
||
|
/**
|
||
|
* Options that define how to parse HTML.
|
||
|
*/
|
||
|
export type ExtraOptions = {
|
||
|
/**
|
||
|
* Specify whether to parse a fragment, instead of a complete document
|
||
|
* (default: `false`).
|
||
|
*
|
||
|
* In document mode, unopened `html`, `head`, and `body` elements are opened
|
||
|
* in just the right places.
|
||
|
*/
|
||
|
fragment?: boolean | null | undefined;
|
||
|
/**
|
||
|
* Call `onerror` with parse errors while parsing (optional).
|
||
|
*
|
||
|
* > 👉 **Note**: parse errors are currently being added to HTML.
|
||
|
* > Not all errors emitted by parse5 (or us) are specced yet.
|
||
|
* > Some documentation may still be missing.
|
||
|
*
|
||
|
* Specific rules can be turned off by setting them to `false` (or `0`).
|
||
|
* The default, when `emitParseErrors: true`, is `true` (or `1`), and means
|
||
|
* that rules emit as warnings.
|
||
|
* Rules can also be configured with `2`, to turn them into fatal errors.
|
||
|
*/
|
||
|
onerror?: OnError | null | undefined;
|
||
|
};
|
||
|
/**
|
||
|
* Options that can be passed through to `hast-util-from-parse5`.
|
||
|
*/
|
||
|
export type FromParse5Options = Omit<import('hast-util-from-parse5').Options, 'file'>;
|
||
|
/**
|
||
|
* Handle parse errors.
|
||
|
*/
|
||
|
export type OnError = (error: VFileMessage) => undefined | void;
|
||
|
/**
|
||
|
* Configuration.
|
||
|
*/
|
||
|
export type Options = FromParse5Options & ErrorOptions & ExtraOptions;
|
||
|
import { VFile } from 'vfile';
|
||
|
import { VFileMessage } from 'vfile-message';
|