Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Macros during parse #2721

Merged
merged 17 commits into from
Nov 28, 2023
Merged

Macros during parse #2721

merged 17 commits into from
Nov 28, 2023

Conversation

tabatkins
Copy link
Collaborator

Handles macros entirely within the new html parser, rather than just recognizing and marking them in the parser but still actually doing the substitution via a whole-doc regex.

Also a number of miscellaneous small fixes in newline handling and line counting uncovered while fixing this stuff.

…still have a period where I can adjust the metadata.
* Added a 'context' argument to the parser so error messages can more meaningful line numbers.
* Made Result use a type variable so I don't propagate Any unnecessarily.
* Removed replaceMacros() entirely, in favor of doing all macro replacement directly in the parser.
* Aligned replaceMacrosTextly() to use the same macro-detection regex
* Split nodesFromHtml() into a new nodesFromStream helper that does all the actual work; nodesFromHtml() just initializes the Stream for you, same as the other parsing entry points.
* Better ignored biblio links getting seen by the parser, so they won't be seen as macros.
* Defined Stream.subStream(), for when you're parsing while you're parsing.
* Made char escapes in attributes correctly stay char escapes.
* Fixed escaping in attributes so I only escape double-quotes.
* Massively improved the macro tests.
…on of the markdown code span to avoid any potential markdown-parser issues.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant