# unified-latex-util-trim ## What is this? Functions to help modify a `unified-latex` Abstract Syntax Tree (AST). ## When should I use this? If you want to remove whitespace from the ends of an array of nodes. Note that whitespace can come from a `Ast.Whitespace` node or from an `Ast.Comment` node that has leading whitespace. These functions take care to deal with both situations. ## Install ```bash npm install @unified-latex/unified-latex-util-trim ``` This package contains both esm and commonjs exports. To explicitly access the esm export, import the `.js` file. To explicitly access the commonjs export, import the `.cjs` file. # Plugins ## `unifiedLatexTrimEnvironmentContents` Unified plugin to trim the whitespace from the start/end of any environments, including math environments. ### Usage `unified().use(unifiedLatexTrimEnvironmentContents)` ### Type `Plugin` ```typescript function unifiedLatexTrimEnvironmentContents(): (tree: Ast.Root) => void; ``` ## `unifiedLatexTrimRoot` Unified plugin to trim the whitespace from the start/end of the root element. ### Usage `unified().use(unifiedLatexTrimRoot)` ### Type `Plugin` ```typescript function unifiedLatexTrimRoot(): (tree: Ast.Root) => void; ``` # Functions ## `hasWhitespaceEquivalent(nodes)` Returns whether the array has whitespace at the start/end. Comments with `leadingWhitespace === true` are counted as whitespace. Other comments are ignored. ```typescript function hasWhitespaceEquivalent(nodes: Ast.Node[]): { start: boolean; end: boolean; }; ``` **Parameters** | Param | Type | | :---- | :----------- | | nodes | `Ast.Node[]` | ## `trim(nodes)` Trims whitespace and parbreaks from the start and end of an array. The number of trimmed nodes is returned. Special care is taken to preserve comments, though any whitespace before the first comment(s) or after the last comment(s) is trimmed. ```typescript function trim(nodes: Ast.Node[]): { trimmedStart: number; trimmedEnd: number }; ``` **Parameters** | Param | Type | | :---- | :----------- | | nodes | `Ast.Node[]` | ## `trimEnd(nodes)` Trim whitespace and parbreaks from the right of an array. ```typescript function trimEnd(nodes: Ast.Node[]): { trimmedEnd: number }; ``` **Parameters** | Param | Type | | :---- | :----------- | | nodes | `Ast.Node[]` | ## `trimStart(nodes)` Trim whitespace and parbreaks from the left of an array. ```typescript function trimStart(nodes: Ast.Node[]): { trimmedStart: number }; ``` **Parameters** | Param | Type | | :---- | :----------- | | nodes | `Ast.Node[]` |