Data structures and functions for managing interactive edits. The parse tree, rendered text, and other information needed for this is stored in a value of type
MiniLatex.Edit.DataThat data is initialized using
data =
init version textwhere the version is an integer that distinguishes different edits.
Create Data from a string of MiniLaTeX text and a version number. The version number should be different for each call of init.
Update Data with modified text, re-parsing and re-rerendering changed elements.
Retrieve Html from a Data object and construct the click handlers used to highlight the selected paragraph (if any). Example:
get "p.1.10" datawill retrieve the rendered text and will hightlight the paragraph with ID "p.1.10". The ID decodes as "paragraph 10, version 1". The version number of a paragraph is incremented when it is edited.
Parse the given text and return an AST representing it.
Use this type so that clicks in the rendered text can be detected
Data for differential parsing and rendering