90 lines
2.6 KiB
TypeScript
90 lines
2.6 KiB
TypeScript
/**
|
||
* Pass a hast tree through an HTML parser, which will fix nesting, and turn
|
||
* raw nodes into actual nodes.
|
||
*
|
||
* @param {Nodes} tree
|
||
* Original hast tree to transform.
|
||
* @param {Options | null | undefined} [options]
|
||
* Configuration (optional).
|
||
* @returns {Nodes}
|
||
* Parsed again tree.
|
||
*/
|
||
export function raw(tree: Nodes, options?: Options | null | undefined): Nodes;
|
||
export type Comment = import('hast').Comment;
|
||
export type Doctype = import('hast').Doctype;
|
||
export type Element = import('hast').Element;
|
||
export type Nodes = import('hast').Nodes;
|
||
export type Root = import('hast').Root;
|
||
export type RootContent = import('hast').RootContent;
|
||
export type Text = import('hast').Text;
|
||
export type Raw = import('mdast-util-to-hast').Raw;
|
||
export type DefaultTreeAdapterMap = import('parse5').DefaultTreeAdapterMap;
|
||
export type ParserOptions = import('parse5').ParserOptions<DefaultTreeAdapterMap>;
|
||
export type CharacterToken = import('parse5').Token.CharacterToken;
|
||
export type CommentToken = import('parse5').Token.CommentToken;
|
||
export type DoctypeToken = import('parse5').Token.DoctypeToken;
|
||
export type Location = import('parse5').Token.Location;
|
||
export type TagToken = import('parse5').Token.TagToken;
|
||
export type Point = import('unist').Point;
|
||
export type VFile = import('vfile').VFile;
|
||
/**
|
||
* Configuration.
|
||
*/
|
||
export type Options = {
|
||
/**
|
||
* Corresponding virtual file representing the input document (optional).
|
||
*/
|
||
file?: VFile | null | undefined;
|
||
/**
|
||
* List of custom hast node types to pass through (as in, keep) (optional).
|
||
*
|
||
* If the passed through nodes have children, those children are expected to
|
||
* be hast again and will be handled.
|
||
*/
|
||
passThrough?: Array<Nodes['type']> | null | undefined;
|
||
};
|
||
/**
|
||
* Info passed around about the current state.
|
||
*/
|
||
export type State = {
|
||
/**
|
||
* Add a hast node to the parser.
|
||
*/
|
||
handle: (node: Nodes) => undefined;
|
||
/**
|
||
* User configuration.
|
||
*/
|
||
options: Options;
|
||
/**
|
||
* Current parser.
|
||
*/
|
||
parser: Parser<DefaultTreeAdapterMap>;
|
||
/**
|
||
* Whether there are stitches.
|
||
*/
|
||
stitches: boolean;
|
||
};
|
||
/**
|
||
* Custom comment-like value we pass through parse5, which contains a
|
||
* replacement node that we’ll swap back in afterwards.
|
||
*/
|
||
export type Stitch = {
|
||
type: 'comment';
|
||
value: {
|
||
stitch: Nodes;
|
||
};
|
||
};
|
||
import { Parser } from 'parse5';
|
||
/**
|
||
* Transform a stitch.
|
||
*
|
||
* @param {Nodes} node
|
||
* unknown node.
|
||
* @param {State} state
|
||
* Info passed around about the current state.
|
||
* @returns {undefined}
|
||
* Nothing.
|
||
*/
|
||
declare function stitch(node: Nodes, state: State): undefined;
|
||
export {};
|