@unified-latex/unified-latex-util-split v1.8.0
unified-latex-util-split
What is this?
Functions to manipulate unified-latex Abstract Syntax Tree (AST).
When should I use this?
If you want break apart or join an array of nodes based on a condition. For example,
this is used to split on & characters in the align environment.
Install
npm install @unified-latex/unified-latex-util-splitThis 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.
Functions
arrayJoin(array, sep)
Joins an array of arrays with the item sep
function arrayJoin<T>(array: T[][], sep: T | T[]): T[];Parameters
| Param | Type |
|---|---|
| array | T[][] |
| sep | T \| T[] |
splitOnCondition(nodes, splitFunc, options)
Split a list of nodes based on whether splitFunc returns true.
If onlySplitOnFirstOccurrence is set to true in the options object, then
there will be at most two segments returned.
function splitOnCondition(
nodes: Ast.Node[],
splitFunc: (node: Ast.Node) => boolean,
options: { onlySplitOnFirstOccurrence?: boolean }
): { segments: Ast.Node[][]; separators: Ast.Node[] };Parameters
| Param | Type |
|---|---|
| nodes | Ast.Node[] |
| splitFunc | (node: Ast.Node) => boolean |
| options | Omitted |
splitOnMacro(ast, macroName)
Split an array of AST nodes based on a macro. An object {segments: [], macros: []}
is returned. The original array is reconstructed as
segments[0] + macros[0] + segments[1] + ....
function splitOnMacro(
ast: Ast.Node[],
macroName: string | string[]
): { segments: Ast.Node[][]; macros: Ast.Macro[] };Parameters
| Param | Type |
|---|---|
| ast | Ast.Node[] |
| macroName | string \| string[] |
`unsplitOnMacro({ segments, macros,
})`
Does the reverse of splitOnMacro
function unsplitOnMacro({
segments,
macros,
}: {
segments: Ast.Node[][];
macros: Ast.Node[] | Ast.Node[][];
}): Ast.Node[];Parameters
| Param | Type |
|---|---|
| { segments, macros, } | Omitted |
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago