* Lint all js files
Closes#2414
* Lint inline scripts in workflow
* Upgrade eslint-plugin-actions to 1.0.1
Test plan:
1. Add `console` statement to the script in `.github/workflows/ci.yml`
2. Check `no-console` error is shown in `eslint`
* Remove CircleCI and codecov
* Add GitHub Actions workflow
* Add Browserstack credentials
* Skip tests if ci skip or skip ci is in commit messages
* Update and rename test.yml to ci.yml
* Postfix artifacts name with browser
* Disable proxy on chrome
* Update dockers/screenshotter/screenshotter.js
* Add status badge
* Set directory option in codecov action
* Run Browserstack on forked repo via label
* Print Docker logs
* Disable GPU on ChromeDriver
* Add comments
* Add comments
* Support Browserstack in screenshotter
* Support Browserstack in CircleCI
* Test screenshots on Safari 13.1
* Don't run Safari screenshotter on forked PRs
* Update a screenshot
* Ignore *.log in .gitignore
* Bump flow version
* Bump jest version
* Bump eslint version
* Bump rollup version
* Bump webpack version
* Bump misc dependencies and update lockfile
* Update lockfile
* Bump commander version
* Bump misc dependencies
* Bump istanbul version
* Bump docusaurus version
* Update lockfile
* Explicitly declare dependencies
* Bump caniuse-lite version
* Update lockfile
* Bump commander version
* Bump webpack and css-loader version
* Bump flow version
* Use babel-plugin-preval instead of own unicodeMake for unicodeSymbols
* Fix circular dependency transpiling issue
* Flow type unicodeSymbols.js
Co-authored-by: Erik Demaine <edemaine@mit.edu>
* copy katex-a11y.js from webapp to contrib/to-a11y-string.js
* first pass of updating to-a11y-string to use flow
* Set up test harness and write some tests
- add flow types for jest
- create wallaby config file
- add prettier as a dep and set up .prettierrc so that we use .toMatchInlineSnapshot() and have jest insert the snapshot for us
- add lots of TODOs (I'll create tickets for these later)
* Add some to get the tests passing for now
* remove commented out parts of wallaby.js config file
* remove some stale strings, fix flow issue, add more coverage
* add , add few more tests, handle middle
* fix minor nits in tests
* rename to-a11y-string to render-a11y-string, updatte webpack config to build extension
* add test for \boxed
* remove commented out code
* 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
* Add optional pre-process callback to the auto-renderer.
* Rewrite `preProcess` callback signature.
* Add test.
* Make test future-proof.
* Add root folder to the node module paths.
* Include only necessary fonts for target environment specified by Browserslist
Allow WOFF and WOFF2 to be controlled using environment variables
* Fix links
* Fix merge error
* Update dependencies
* Replace uglifyjs-webpack-plugin with terser-webpack-plugin
* Do not set `targets` if !isESMBuild
* Create separate entry point of copy-tex for webpack
* Update katex.webpack.js comment
* Generate ECMAScript for contrib
* Update dependencies
* Comment out documentations