Note This repository is automatically generated from the main parser monorepo. Please submit any issues or pull requests there.
Convert ooxast
syntax tree to mdast
syntax tree.
This package is a utility that takes an ooxast (docx) syntax tree as input and turns it into a mdast (Markdown) syntax tree.
This project is useful if you are working with syntax trees and want to convert docx to Markdown.
This package is ESM only. In Node.js (version 12.20+, 14.14+, 16.0+, 18.0+), install as
pnpm add ooxast-util-to-mdast
# or with yarn
# yarn add ooxast-util-to-mdast
# or with npm
# npm install ooxast-util-to-mdast
toMdast(tree: Text | Root | Element, file: VFile, options?: Options): MdastRoot;
| Name | Type |
| :--------- | :------------------------------ | ------ | --------- |
| tree
| Text
| Root
| Element
|
| file
| VFile
|
| options?
| Options
|
MdastRoot
Defined in: lib/ooxast-util-to-mdast.ts:28
toMdast(tree: Text | Root | Element, options?: Options): MdastRoot;
| Name | Type |
| :--------- | :------------------------------ | ------ | --------- |
| tree
| Text
| Root
| Element
|
| options?
| Options
|
MdastRoot
Defined in: lib/ooxast-util-to-mdast.ts:29
Data
[]
Defined in: lib/types.ts:56
"**"
|"__"
Should bold be rendered with *
or _
?
'**'
Defined in: lib/types.ts:46
"endnote"
|"native"
|"mendeley"
|"citavi"
|"zotero"
What type of citation is used?
'zotero'
Defined in: lib/types.ts:51
Function
Signature`
(citation: any, index: string | number): any;
Parameters`
| Name | Type |
| :--------- | :------- | -------- |
| citation
| any
|
| index
| string
| number
|
Returns`
any
Defined in: lib/types.ts:53
boolean
Defined in: lib/types.ts:36
object
Handlers for specific node types
Defined in: lib/types.ts:35
"*"
|"_"
Should italics be rendered with *
or _
?
'*'
Defined in: lib/types.ts:42
boolean
Defined in: lib/types.ts:37
Function
Signature`
(citation: any): any;
Parameters`
Name | Type |
---|---|
citation |
any |
Returns`
any
Defined in: lib/types.ts:52
string
[]
Defined in: lib/types.ts:38
object
Defined in: lib/types.ts:54
string
Defined in: lib/types.ts:55
All
Defined in: lib/state.ts:22
boolean
Defined in: lib/state.ts:51
Data
[]
Defined in: lib/state.ts:83
number
Defined in: lib/state.ts:59
object
A bibliography you can add manually
Needs to be in CSL format, which will be converted to BibTeX, or in BibTeX format
Defined in: lib/state.ts:81
object
Defined in: lib/state.ts:67
Function
Signature`
(citation: any, index: string | number): any;
Parameters`
| Name | Type |
| :--------- | :------- | -------- |
| citation
| any
|
| index
| string
| number
|
Returns`
any
Defined in: lib/state.ts:61
boolean
Whether to delete the next w:r element Mostly used for citations, where sometimes the next w:r element is the citation in plain text again
Defined in: lib/state.ts:66
Map
<string
,Element
>
Defined in: lib/state.ts:45
Record
<string
,MdastNode
[]>
Defined in: lib/state.ts:71
Record
<string
,MdastNode
[]>
Defined in: lib/state.ts:70
undefined
|string
Defined in: lib/state.ts:53
Record
<string
,Handle
>
Defined in: lib/state.ts:47
boolean
Defined in: lib/state.ts:68
boolean
Defined in: lib/state.ts:69
boolean
Defined in: lib/state.ts:55
ListNumbering
Defined in: lib/state.ts:84
One
Defined in: lib/state.ts:20
Defined in: lib/state.ts:43
Function
Signature`
(citation: any): any;
Parameters`
Name | Type |
---|---|
citation |
any |
Returns`
any
Defined in: lib/state.ts:60
string
Defined in: lib/state.ts:62
Patch
Defined in: lib/state.ts:18
number
Defined in: lib/state.ts:57
object
Defined in: lib/state.ts:82
Resolve
Defined in: lib/state.ts:41
boolean
This makes it so that a paragraph is processed with all
instead of more custom.
Useful for e.g. footnotes or tables
Defined in: lib/state.ts:75
ToFlow
Defined in: lib/state.ts:24
Function
Signature`
<ChildType, ParentType>(nodes: Content[], build: Function): ParentType[];
Type parameters`
ChildType
extendsMdastNode
ParentType
extendsObject
Parameters`
Name | Type |
---|---|
nodes |
Content [] |
build |
() => ParentType |
Returns`
ParentType
[]
Defined in: lib/state.ts:33
Function
(state: State, node: any, parent?: Parent): MdastNode | MdastNode[] | void | undefined;
Name | Type |
---|---|
state |
State |
node |
any |
parent? |
Parent |
MdastNode
| MdastNode
[] | void
| undefined
Defined in: lib/types.ts:59
Convert all nodes in tree using j
state.all(: State, parent: Parent<Node<Data>, Data> | Node): MdastNode[];
Name | Type | Description | |
---|---|---|---|
h |
H |
ooxast constructor function | |
parent |
Parent <Node <Data >, Data > |
Node |
Defined in: src/lib/all.ts:10
state.one(: State, node: Node, parent?: Parent<Node<Data>, Data>): MdastNode | MdastNode[] | void;
Name | Type |
---|---|
h |
H |
node |
Node |
parent? |
Parent <Node <Data >, Data > |
MdastNode
| MdastNode
[] | void
Defined in: src/lib/one.ts:8
toMdast(tree: Element | Text | Root, options: Options): Root;
Name | Type | ||
---|---|---|---|
tree |
Element |
Text |
Root |
options |
Options |
Root
Defined in: src/lib/ooxast-util-to-unified-latex.ts:45
Const
Context
["handlers"
]
Defined in: src/lib/handlers/index.ts:20
string
|Data
[]
A bibliography you can add manually
Needs to be in CSL format, which will be converted to BibTeX, or in BibTeX format
Defined in: src/lib/types.ts:147
string
Name of the bibliography file
'bibliography.bib'
Defined in: src/lib/types.ts:48
"endnote"
|"mendeley"
|"word"
|"citavi"
|"zotero"
What type of citation is used?
'zotero'
Defined in: src/lib/types.ts:71
Function
Signature`
(citation: any, index: string | number): any;
Parameters`
Name | Type | |
---|---|---|
citation |
any |
|
index |
string |
number |
Returns`
any
Defined in: src/lib/types.ts:73
boolean
Should a column separator be added to tables?
i.e. should |
be added to the beginning and end of each row?
false
Defined in: src/lib/types.ts:53
string
What column should be used as the default column?
e.g l
for left, r
for right, c
for center
'l'
Defined in: src/lib/types.ts:128
"align"
|"equation"
|"equation*"
|"align*"
|"$$"
|"[]"
What type of display math should be used?
-$$
: $$ ... $$
-[]
: [ ... \]
-equation
| equation*
| align
| align*
: \begin{...} ... \end{...}
'equation'
Defined in: src/lib/types.ts:87
boolean
Defined in: src/lib/types.ts:28
object
{
name: string;
options?: string[];
}
Options for the document class
Member | Type | Description |
---|---|---|
name |
string |
Name of the document class Default 'article' |
options ? |
string [] |
Options for the document class Default undefined |
Defined in: src/lib/types.ts:57
object
Handlers for specific node types
Defined in: src/lib/types.ts:27
"$"
|"()"
What type of inline math should be used? -$
: $ ... $
-()
: \(...\)
'$'
Defined in: src/lib/types.ts:103
"emph"
|"textit"
Should italics be rendered as \textit or \emph?
'emph'
Defined in: src/lib/types.ts:44
boolean
Defined in: src/lib/types.ts:29
(
string
| {name
:string
;options
:string
[]; })[]
A list of packages to add to the preamble
by default, the following packages are added:
xcolor
(ifxcolor
is enabled)hyperref
graphicx
caption
tabularx
(iftabularx
is enabled)
Defined in: src/lib/types.ts:159
Function
Signature`
(citation: any): any;
Parameters`
Name | Type |
---|---|
citation |
any |
Returns`
any
Defined in: src/lib/types.ts:72
string
|MdastNode
[]
A list of commands and other stuff to add to the preamble
You are responsible for making sure that the commands are valid LaTeX and that they can be used in the preamble.
You need to directly use the unified-latex types here, or you can just put it in raw
'\title{}'
import { m, args } from '@unified-latex/unified-latex-types'
const options = {
preamble: [
// \author{Leeroy Jenkins}
m('author', 'Leeroy Jenkins'),
// \title{The Adventures of Leeroy Jenkins}
m('title', 'The Adventures of Leeroy Jenkins'),
// \somemacrowithoptions[optional1][optional2]{firstArg}{secondArg}
m(
'somemacrowithoptions',
args(['optional1', 'optional2', 'firstArg', 'secondArg'], { braces: '[][]{}{}' }),
),
],
}
Defined in: src/lib/types.ts:193
string
[]
Defined in: src/lib/types.ts:30
object
Defined in: src/lib/types.ts:75
"st"
|"sout"
|"s"
Defined in: src/lib/types.ts:104
boolean
| {width
?:string
; }
Should tabularx be used instead of tabular?
false
Defined in: src/lib/types.ts:133
string
The title of the document
If this is not set, the title will be taken from the heading with the "Title" style.
undefined
Defined in: src/lib/types.ts:120
number
What the top section should be -1 = part 0 = chapter 1 = section 2 = subsection 3 = subsubsection 4 = paragraph 5 = subparagraph
Defined in: src/lib/types.ts:40
boolean
Are you using xcolor?
Disabling this will remove the xcolor
package from the preamble
and remove color related commands from the output.
true
Defined in: src/lib/types.ts:112
HWithProps
&HWithoutProps
&Context
Defined in: src/lib/types.ts:292
Function
(state: State, node: any, parent?: Parent): MdastNode | MdastNode[] | void | undefined;
Name | Type |
---|---|
h |
H |
node |
any |
parent? |
Parent |
MdastNode
| MdastNode
[] | void
| undefined
Defined in: src/lib/types.ts:196
Root
|String
|Whitespace
|Parbreak
|Comment
|Macro
|Environment
|VerbatimEnvironment
|InlineMath
|DisplayMath
|Group
|Verb
Defined in: node_modules/.pnpm/@[email protected]/node_modules/@unified-latex/unified-latex-types/libs/ast-types.d.ts:83
- Paragraphs
- Headings
- Blockquotes
- Lists
- Ordered and unordered
- Starting at a number other than 1
- Using a different bullet/number character (would require heavy HTML)
- Math (with [remark-math])
- LaTeX (you need to convert all the math in the Word Document to
linear
for this to work properly) - OMML
- LaTeX (you need to convert all the math in the Word Document to
- Citations (with [remark-cite])
- Tables (with [remark-gfm])
- Images
- Footnotes
- Endnotes
- Links
- External hyperlinks
- Crossreferences
- Formatting
- Strikethrough (with [remark-gfm])
- Emphasis
- Strong
- Superscript
- Subscript
- Underline
- Highlight
- Color
GPL-3.0-or-later © Thomas F. K. Jorna