mirror of
https://github.com/borbann-platform/srs-document.git
synced 2025-12-20 04:54:06 +01:00
117 lines
3.4 KiB
Markdown
117 lines
3.4 KiB
Markdown
<!-- DO NOT MODIFY -->
|
|
<!-- This file was autogenerated by build-docs.ts -->
|
|
<!-- Edit the docstring in index.ts and regenerate -->
|
|
<!-- rather than editing this file directly. -->
|
|
# unified-latex-util-arguments
|
|
|
|
## What is this?
|
|
|
|
Functions to help modify and attach arguments to macros in a `unified-latex` Abstract Syntax Tree (AST).
|
|
|
|
By default, TeX doesn't actually have a concept of macro "arguments". Instead, TeX searches the
|
|
tokens after a macro and processes them according to the macro's rules. However, LaTeX attempts
|
|
to make macros look like functions that accept arguments. To attach the "arguments" to a macro
|
|
node, the `unified-latex` AST needs to be reparsed and manipulated.
|
|
|
|
## When should I use this?
|
|
|
|
If you have custom macros that you want arguments attached to.
|
|
|
|
If you know ahead of time which macros need arguments attached to them, use `unified-latex-util-parse`
|
|
and pass in the appropriate macro info instead.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
npm install @unified-latex/unified-latex-util-arguments
|
|
```
|
|
|
|
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
|
|
|
|
## `unifiedLatexAttachMacroArguments`
|
|
|
|
Unified plugin to attach macro arguments to the macros specified via the `macros`
|
|
option.
|
|
|
|
### Usage
|
|
|
|
`unified().use(unifiedLatexAttachMacroArguments[, options])`
|
|
|
|
#### options
|
|
|
|
```typescript
|
|
{ macros: MacroInfoRecord; }
|
|
```
|
|
|
|
### Type
|
|
|
|
`Plugin<{ macros: MacroInfoRecord; }[], Ast.Root, Ast.Root>`
|
|
|
|
```typescript
|
|
function unifiedLatexAttachMacroArguments(options: {
|
|
macros: MacroInfoRecord;
|
|
}): (tree: Ast.Root) => void;
|
|
```
|
|
|
|
# Functions
|
|
|
|
## `getArgsContent(node)`
|
|
|
|
Returns the content of `args` for a macro or environment as an array. If an argument
|
|
was omitted (e.g., because it was an optional arg that wasn't included), then `null` is returned.
|
|
|
|
```typescript
|
|
function getArgsContent(node: Ast.Macro | Ast.Environment): Ast.Node[][];
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Param | Type |
|
|
| :---- | :----------------------------- |
|
|
| node | `Ast.Macro \| Ast.Environment` |
|
|
|
|
## `getNamedArgsContent(node, namedArgumentsFallback)`
|
|
|
|
Returns the content of `args` for a macro or environment as an object whose keys are the "names"
|
|
of each argument. These names of the arguments must be specified in the `_renderInfo` prop. If `_renderInfo`
|
|
does not contain a `namedArguments` array, then an empty object will be returned.
|
|
|
|
```typescript
|
|
function getNamedArgsContent(
|
|
node: Ast.Macro | Ast.Environment,
|
|
namedArgumentsFallback: readonly string[]
|
|
): Record<string, Ast.Node[]>;
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Param | Type |
|
|
| :--------------------- | :----------------------------- |
|
|
| node | `Ast.Macro \| Ast.Environment` |
|
|
| namedArgumentsFallback | `readonly string[]` |
|
|
|
|
## `gobbleSingleArgument(nodes, argSpec, startPos)`
|
|
|
|
Gobbles an argument of whose type is specified
|
|
by `argSpec` starting at the position `startPos`.
|
|
If an argument couldn't be found, `argument` will be `null`.
|
|
|
|
```typescript
|
|
function gobbleSingleArgument(
|
|
nodes: Ast.Node[],
|
|
argSpec: ArgSpec.Node,
|
|
startPos: Number
|
|
): { argument: Ast.Argument | null; nodesRemoved: number };
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Param | Type |
|
|
| :------- | :------------- |
|
|
| nodes | `Ast.Node[]` |
|
|
| argSpec | `ArgSpec.Node` |
|
|
| startPos | `Number` |
|