* Remove double encoding in MathML via Unicode MathML spaces
We used to have a complex mechanic for escaping strings, marking them as
`needsEscape = false`, and then not escaping those strings (for
combining strings in `\operatorname`). But this doesn't really work
with `render`ing directly to a node, as `document.createTextNode` can't
be stopped from escaping.
I've thus removed this mechanic, which required the following changes:
* Switch MathML "smart space" encoding to use Unicode instead of
`&LongNames;` (which weren't working with `render` for the same reason).
* Hack our HTML/MathML serializer to not use `String.trim`, which wrecks
havoc with emitted Unicode spaces.
Now `toText()` doesn't escape, so strings concatenate in unescaped form,
and `toHTML()` only does the necessary escaping. Thus fix#1782.
* Fix src/utils.js
Co-Authored-By: edemaine <edemaine@mit.edu>
* Fix src/mathMLTree.js documentation
Co-Authored-By: edemaine <edemaine@mit.edu>
* Remove trim hack thanks to diffable-html@4.0.0
* Switch back to jest-serializer-html
* Update mathMLTree.js
* Fix \\ and \newline after operator
Fix#1790. `\\` and `\newline` render as a span with classes
`mspace` and `newline`. We need to check for `newline` when bringing
spaces into the same `base` group.
* Add tests and comment
* Remove redundant consumeSpaces()
- Spaces after command sequence are ignored in Lexer
- parseExpression consumes spaces in the math mode
* Add catcode to Lexer, move comment parsing back to Lexer
- Fix parsing a comment before a sup/subscript argument
- Fix parsing a comment before an expression
- Fix parsing a comment before or between \hline
- Fix parsing a comment in the macro definition
- Fix parsing a comment including a command sequence
* Update Lexer.js
* Update Parser.js
* catcode -> catcodes
* Add support for `\lparen` and `\rparen` delimiters.
* Add missing math delimiter. Fix alphabetic order.
* Add test.
* Add spaces between parenthesis and square brackets.
* Move unsupported command (undefined control sequence) error to parseSymbol
* Change parseGivenFunction and parseFunction to parse only function
* Move \begin handling to environment.js
* Remove ParsedFunc/Arg, move logics into parseGroup
* Fix flow error
* Remove parseFunction, rename parseGivenFunction to parseFunction
* Minor fixes
* Remove previously resolved TODO
* Minor fixes
* Update flow typing
* Fix tag positioning to live within katex-html parent
`.tag` has `position: absolute`, but this positions it relative to the nearest
parent with a non-static `position` (see
https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block).
This PR makes `.katex-display > .katex > .katex-html` that parent.
* Update screenshots
* Upgrade to Babel 7
* Update dependencies
* Remove `modules` and `useEsModules` as module support is automatically detected
Target browsers supporting ESM in the ESM build.
* Disable corejs aliasing (polyfill)
* Fix package.json and update lockfile
* Bump CircleCI cache version
* Remove `Object.values()` use for Node 6 compatability
* Remove redundant arguments to @babel/register
* Update rollup and rollup-plugin-babel
* Add ignore option to no-transform-runtime-aliasing
Ignore JSON.stringify, parseInt, and ParseFloat
* Upgrade babel-loader to 8.0.1
* Use api.env() in Babel configuration
* Upgrade babel-loader to 8.0.2
* simplify comibining chars
* try combining chars in text operators instead of all ordgroups
* ensure that adjacent chars have the same classes
* fix phantom tests
* extract canCombe from tryCombineChars, check for skew and maxFontSize
* check prev.italic !== next.italic
* use the last character's italic correction.
* screenshotter: replace promisify(fs) and mkdirp with fs-extra
* screenshotter: replace selenium.promise with builtin Promise
* Lint all JavaScript files in the root
* unicodeMake: replace console.log with writeFile(string)
* unicodeMake: check timestamp, do not build if up-to-date
* Replace check-dependencies with yarn check
* Exclude src/unicodeMake.js from coverage
* Add (missing) dependencies
* Skip CircleCI if only unrelated has been changed
* Fix commit range
* Use fs-extra in update-sri
* Update comment for defineFunction handler.
* Rename .value to .text in all token-style ParseNodes.
* Rename symbolNode's .value to .text.
* Rename color-token's .value to .color.
* Fix roots
* Update screenshots
* Added a test in a craven gambit to get a green check mark
* Adjust small radicals
* Fix lint error
* Update screenshots