@digitalocean/do-markdownit
Version:
Markdown-It plugin for the DigitalOcean Community.
62 lines (61 loc) • 2.66 kB
TypeScript
/**
* Remove all nodes that have no text content recursively, including the given node.
*
* @param {import('domhandler').Node} node Node to remove empty nodes from (including self).
* @private
*/
export function domRemoveEmpty(node: import('domhandler').Node): void;
/**
* Find the correct node for a text offset from an existing node.
* Will explore sibling leaf nodes up the tree as far as the given root.
*
* @param {import('domhandler').Node} node Node to start exploring from.
* @param {number} offset Text offset to find node for.
* @param {import('domhandler').Node} root Node to consider the root of the tree.
* @param {boolean} [nextOnExact=false] Move to the next node if the offset is exactly the length of the current node.
* @returns {{node: import('domhandler').Node, offset: number}} The node the remaining offset is within.
* @private
*/
export function domOffsetNode(node: import('domhandler').Node, offset: number, root: import('domhandler').Node, nextOnExact?: boolean): {
node: import('domhandler').Node;
offset: number;
};
/**
* Split a node at a given offset up to a given root.
*
* @param {import('domhandler').Node} root Node to consider the root of the tree.
* @param {import('domhandler').Node} node Node to split.
* @param {?number} [offset=null] Optional offset to split at.
* @param {boolean} [nodeInRight=true] If the node to split on should be in the right tree of the split.
* @returns {{left: import('domhandler').Node[], right: import('domhandler').Node[]}}
* @private
*/
export function domSplit(root: import('domhandler').Node, node: import('domhandler').Node, offset?: number | null, nodeInRight?: boolean): {
left: import('domhandler').Node[];
right: import('domhandler').Node[];
};
/**
* Find a common ancestor of two nodes.
*
* @param {import('domhandler').Node} node1 First node to consider.
* @param {import('domhandler').Node} node2 Second node to consider.
* @returns {?import('domhandler').Node}
* @private
*/
export function domCommonAncestor(node1: import('domhandler').Node, node2: import('domhandler').Node): import('domhandler').Node | null;
/**
* Check if all direct next siblings of a node have no text content.
*
* @param {import('domhandler').Node} node Node to consider.
* @returns {boolean}
* @private
*/
export function domNextSiblingsEmpty(node: import('domhandler').Node): boolean;
/**
* Check if all direct previous siblings of a node have no text content.
*
* @param {import('domhandler').Node} node Node to consider.
* @returns {boolean}
* @private
*/
export function domPreviousSiblingsEmpty(node: import('domhandler').Node): boolean;