textlint-plugin-latex2e
textlint-plugin-latex2e copied to clipboard
Improve parsing \item in itemize, enumerate environment
Abstract
ListItem represents an item in the List environment. However, itemize and enumerate environments are parsed as ListItem nodes in Paragraph, now.
Sample source
Sample of itemize environment: itemize.tex
\begin{itemize}
\item item1
\item item2
\end{itemize}
Sample of enumerate environment: enumerate.tex
\begin{enumerate}
\item item1
\item item2
\end{enumerate}
Current behavior
npx tex2tast -r itemize.tex
{
"type": "Document",
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"children": [
{
"raw": "item1\n \\item item2",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
},
{
"raw": "\n \\item ",
"type": "Html",
"value": "\n \\item "
},
{
"raw": "item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
}
]
}
npx tex2tast -r enumerate.tex
{
"type": "Document",
"raw": "\\begin{enumerate}\n \\item item1\n \\item item2\n\\end{enumerate}",
"children": [
{
"raw": "item1\n \\item item2",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
},
{
"raw": "\n \\item ",
"type": "Html",
"value": "\n \\item "
},
{
"raw": "item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
}
]
}
Expected behavior
ListItemmust be inList.\itemis a part ofLIstItem.ListItem's children must be parsed normally.
{
"type": "Document",
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"children": [
{
"raw": "\\begin{itemize}\n \\item item1\n \\item item2\n\\end{itemize}",
"type": "List",
"children": [
{
"raw": "\n ",
"type": "Html",
"value": "\n "
},
{
"raw": "\\item item1",
"type": "ListItem",
"children": [
{
"raw": "item1",
"type": "Paragraph",
"children": [
{
"raw": "item1",
"type": "Str",
"value": "item1"
}
]
}
]
},
{
"raw": "\n ",
"type": "Html",
"value": "\n "
},
{
"raw": "\\item item2",
"type": "ListItem",
"children": [
{
"raw": "item2",
"type": "Paragraph",
"children": [
{
"raw": "item2",
"type": "Str",
"value": "item2"
}
]
}
]
},
{
"raw": "\n",
"type": "Html",
"value": "\n"
},
]
}
]
}