Commit Graph

580 Commits

Author SHA1 Message Date
Ron Kok
753c82f360 fix: Support Armenian characters (#2618)
* Support Armenian characters

* Update docs

Co-authored-by: ylemkimon <y@ylem.kim>
2020-11-15 05:44:31 +09:00
Ron Kok
60aecbdfe2 feat: Support \vcenter and \hbox (#2452)
* Support \vcenter, \raise, \lower, and \hbox

* Update screenshots

* Edit docs for strict and hbox to

* Fix typo for \hbox to

* Update Safari screenshot

* Augment docs for \vcentcolon

* Edit vcenter MathML comment.

* Remove pointless class from vcenter MathML

* Withdraw \raise and \lower

* Updatae Chrome and Firefox screenshots

* Update Safari screenshot

* Delete allowedInArgument setting

Co-authored-by: ylemkimon <y@ylem.kim>

* Update Chrome and Firefox screenshots

* Update Chrome and Firefox screenshots take 2

* Update screenshot

Co-authored-by: ylemkimon <y@ylem.kim>
2020-11-14 18:45:14 +09:00
Ron Kok
c8042ccb55 fix: MathML \lim\limits in Safari (#2556)
Co-authored-by: ylemkimon <y@ylem.kim>
2020-10-03 21:11:24 +09:00
renovate[bot]
16a34c3b35 chore(deps): update dependency flow-bin to v0.134.0 [skip netlify] (#2533)
* chore(deps): update dependency flow-bin to v0.134.0 [skip netlify]

* Fix flow errors

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Young Min Kin <mail@ylem.kim>
2020-09-26 12:19:42 +09:00
renovate[bot]
c1dfdd8556 chore(deps): lock file maintenance (#2507)
* chore(deps): lock file maintenance

[skip netlify]

* chore(deps): lock file maintenance

* style: fix stylelint errors

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: ylemkimon <mail@ylem.kim>
2020-09-12 12:40:56 +09:00
ylemkimon
5a90558116 feat(function): add allowedInArgument instead of greediness property (#2134)
* Remove `greediness` property

Use boolean `grouped` property instead, which is more consistent with 
LaTeX.

BREAKING CHANGE: \cfrac, \color, \textcolor, \colorbox, \fcolorbox are 
no longer grouped.

* Rename grouped to allowedInArgument

* Reenable tests

* Update documentation

* Fix typo

Co-authored-by: Kevin Barabash <kevinb@khanacademy.org>
2020-09-07 13:38:17 +09:00
Ron Kok
37990cc5b3 feat: Support matrix*, pmatrix*, bmatrix*, Bmatrix*, vmatrix*, and Vmatrix*. (#2488)
* Support matrix*, pmatrix*, bmatrix*, Bmatrix*, vmatrix*, and Vmatrix*

* Add tests and docs

* Delete screeshotter tests

* Fix column alignment and add bogus screenshot files

* Update real Chrome and Firefox screenshots.

* Update Safari screenshot

* Dedupe code in array.js

* Edit payload in array.js

* Edit again, correctly this time.
2020-09-06 09:56:09 -07:00
ylemkimon
dc5f97aaa2 feat(macro): improve argument parsing (#2085)
* Improve macro argument parsing

* Make \above a primitive command

* Fix screenshotter data

* Normalize argument where necessary

* Improve argument location info

* Update comments

* Minor refactor

* Modularize group parsers

* Allow braced and blank size argument

for non-strict mode and \genfrac, respectively.

* Minor refactor & update comments

* Remove raw option in parseStringGroup

* Update tests

* Fix { delimited parameter

* Update tests

* Update tests

* Normalize argument in \genfrac

* Update tests

* Consume space before scanning an optional argument

* Fix \\, \newline, and \cr behavior

* Fix flow error

* Update comments

* Remove unnecessary mode switching

Parser mode affects neither fetch nor consume.

* Allow single (active) character macro

* Add function property `primitive`

* Set \mathchoice and \*style primitive

* Separate size-related improvements out to #2139

* Fix flow error

* Update screenshots

* Update demo example

* Add a migration guide

* Fix capitalization

* Make a primitive function unexpandable

* Update screenshots

* Update screenshots

* Revert "Document \def doesn't support delimiters (#2288) (#2289)"

This reverts commit f96fba6f7f.

* Update comments, errors, and tests

* Update screenshots
2020-09-06 12:56:13 +09:00
dependabot[bot]
730732fddb build(deps-dev): bump flow-bin from 0.131.0 to 0.132.0 (#2453) 2020-08-31 18:53:45 +09:00
Ron Kok
010b267dd6 fix: Support MathML \oiint and \oiiint (#2461)
* fix: Support MathML \oiint and \oiiint

* Update direct input section of docs
2020-08-30 15:44:34 -07:00
Ron Kok
ae90dbb78e refactor: Delete obsolete comment re: mn elements (#2472) 2020-08-30 15:33:39 -04:00
Ron Kok
8f26a65847 refactor: Delete obsolete comment re: limsup (#2464) 2020-08-27 11:43:01 -04:00
Ron Kok
b22b69c3a8 fix: \injlim typo (#2459)
* Fix typo in \injlim

* Just to satisfy Semantic Pull Request
2020-08-26 09:14:18 -07:00
Ron Kok
794dc7a213 feat: support AMS log-like symbols (#2429)
* Support AMS log-like symbols

* Update documentation

* Update \limits info in documentation
2020-08-18 05:28:42 +09:00
Ron Kok
b59ca67530 feat: support Unicode ◯, U+25EF (#2430)
* Support Unicode U+25EF \bigcirc

* Update documentation
2020-08-17 20:35:24 +09:00
Ron Kok
42cc5e507e feat: Support \phase (#2406)
* Support \phase

* Update screenshots

* Update documentation

* Add a11y test

* Edit MathML notation to phasorangle

* Move code to enclose.js

Co-authored-by: Kevin Barabash <kevinb@khanacademy.org>
2020-08-13 00:08:36 -04:00
Ron Kok
26e0a05221 feat: Support \mathstrut (#2416)
* feat: Support \mathstrut

* Update screenshots
2020-08-12 23:45:33 -04:00
Ron Kok
ab5936a6e7 feat: support {equation}, {equation*}, and {split} (#2369)
* Support {equation}, {equation*}, and {split}

* Update screenshots

* Allow {split} at top level

* Move equation column number check to to ParseArray

* Add token to ParseError

* Sharpen parameters passed to parseArray

* Add token information

* Update an {array} spec in screenshotter

* Adjust {array} screenshotter spec

* Make a non-strict error call when {array} argument specifies too few columns.

* Move context checks to a helper function.
2020-08-04 01:35:41 +09:00
ylemkimon
591bc7b4be feat(css): use postcss-preset-env (#2313)
* Use postcss-preset-env

Closes #1946.

* Remove CSS prefixes

They are added by autoprefixer, if necessary.
2020-08-03 13:19:09 +09:00
Ron Kok
2f37dc9104 feat: support {align}, {align*}, {alignat}, and {alignat*} (#2341)
* Support {align}, {align*}, {alignat}, and {alignat*}

* Specify display mode for screenshots

* Add bogus screenshots

* Some screenshotter progress

* Update screenshots
2020-07-29 00:02:08 +09:00
Ron Kok
80b0e3dc20 Support {gather} and {gather*} (#2183)
* Support `gather` and `gather*`

* Add bogus screenshots

* Add correct screenshots

* Fix typo

* Update screenshots

* Improve error handling

* Scope styles inside .katex{}

* Revert console.log to console.error
2020-07-27 06:56:39 -07:00
Ron Kok
05d1e7caf1 feat: support MathML \big, \bigg, \Big, and \Bigg (#2332)
* Support MathML \big, \bigg, etc

* Add stretchy attribute

* Update mathml-spec.js.snap

Co-authored-by: ylemkimon <y@ylem.kim>
2020-07-26 04:26:00 +09:00
ylemkimon
8a24907518 build(deps): update dependencies (#2301)
* 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
2020-07-25 11:38:29 -07:00
Ron Kok
e76857ec03 feat: support \angl and \angln (#2334)
* Support \angl and \angln

* Update screenshots

* Update documentation
2020-07-25 22:53:11 +09:00
Ron Kok
611fe6b698 Support \origof and \imageof (#2283)
* Support \origof and \imageof

* Fix documentation table

Co-authored-by: ylemkimon <mail@ylem.kim>
2020-07-17 17:20:23 +09:00
Ron Kok
2c5a3b8fdc Set MathML of \boldsymbol{textord} to bold, not bold-italic (#2299)
* Set \boldsymbol{textord} to bold, not bold-italic

* Finish adding files.
2020-07-11 21:10:11 -04:00
ylemkimon
d1c0468ef8 Reorganize some glyphs, simplify font selection, break \mathcal{123} (#2156)
* Reorganize some glyphs

* Remove mathdefault

Numerals are textord and it was never reachable.

* Use PUA for \imath and \jmath

* Update katex-fonts

* Update tests

* Update src/buildCommon.js

* Update screenshots

* Add comment regarding usage of PUA in \imath and \jmath

* Update fonts

Co-authored-by: Erik Demaine <edemaine@mit.edu>
2020-07-11 14:54:28 -04:00
Erik Demaine
1512de5b35 Reset to leftmost spacing mode after newline (#1841)
* Reset to leftmost spacing mode after newline

Newlines have class "mspace newline" but shouldn't be fully ignored:
they should reset the spacing mode back to "leftmost" so as to not
accidentally create trailing spaces at end of lines.  Fix #1828.

* Update snapshots

* Add root detection, and treat newline specially only then

Co-authored-by: ylemkimon <mail@ylem.kim>
2020-07-11 12:36:51 -04:00
Ron Kok
48dff183b5 Protect fraction bars from CSS border-color (#2292) 2020-07-10 13:16:39 -04:00
Erik Demaine
7523e9714a \boldsymbol not italic for textords such as Greek (#2290)
* \boldsymbol not italic for textords such as Greek

Fix #2225: `\boldsymbol{\Omega}` will now produce a bold upright Omega
instead of a bold italic Omega.  This only affects `textord` symbols within
`\boldsymbol`, mimicking the no-font case in `makeOrd` which distinguishes
`textord` from `mathord` in a similar way.

* Update screenshots

Co-authored-by: Ron Kok <ronkok@comcast.net>
2020-07-09 09:22:33 -07:00
Ron Kok
1764d25048 Support \minuso (#2213)
* Support \minuso

* Update screenshots

* Add MathML version

* Add BIN spacing

* Update screenshots

* Add Unicode character

* Delete duplicate macro

Co-authored-by: Erik Demaine <edemaine@mit.edu>
2020-07-08 19:28:43 -04:00
Ron Kok
d6e8575942 Fix jagged parentheses (#2234)
* Fix jagged parentheses

* Update screenshots

* Coordinate overlap with repeat element length.

* Fix lint error.

Co-authored-by: Erik Demaine <edemaine@mit.edu>
2020-07-08 18:20:42 -04:00
ylemkimon
3272472ffe Use babel-plugin-preval instead of own unicodeMake for unicodeSymbols (#2153)
* 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>
2020-07-08 17:58:11 -04:00
Ron Kok
467052ce21 Enable an empty \substack (#2278) 2020-07-08 15:50:50 -04:00
Ron Kok
4d99b4c8ac Enable empty environment (#2258) 2020-05-17 09:33:11 -04:00
Ron Kok
d49da10d79 Fix under accent depth (#2252)
* Fix under accent depth

* Update screenshots
2020-05-02 18:16:36 +09:00
Ron Kok
69a22d3cfb Support MathML display mode (#2220) 2020-03-24 02:28:43 +09:00
ylemkimon
9917d1ce84 Add support for \expandafter, \noexpand, \edef, \let, and \long (#2122)
* Add support for \expandafter

* Add support for \noexpand

* Add support for \edef

* Update comments

* Allow \long before macro definition

* Update documentation

* Update comments

* Fix defPrefix

* Add support for \let

* Update documentation

* Print error token

* Update documentation

* Check whether command is expandable

* Add tests

* Fix token order

* Make noexpand a Token property

* Throw error if control sequence is undefined when expanding

* Rename expandableOnly to expandOnly

* Make unexpandable macro property

* Move \expandafter to macros.js

* Add TODO

* Fix merge conflict

* Update a test case

* Remove unused functions in MacroContextInterface

* Update comments

* Refactor code

* Move \noexpand to macros

* Update MacroExpander.js

* Add a test case

* Separate control sequence check to a function

* Add support for \futurelet

* Separate RHS getter to a function

* Update documentation

* Move expandOnly logic to expandOnce

* Refactor code and update comments

Co-authored-by: Kevin Barabash <kevinb@khanacademy.org>
2020-03-11 12:14:34 +09:00
Erik Demaine
3cb9bd78bb Fix delimiter error message (#2186)
* Fix delimiter error message

Avoid "circular structure" error message by avoiding JSON.stringify on a
parse structure when getting an invalid delimiter type (e.g. ordgroup).
Instead, report type of delimiter when it's invalid.  Fixes #2184.

* Fix and add tests
2020-01-04 18:10:11 +09:00
Rui Okada
4b905064ab Add bra-ket notation (#2162)
* Add bra-ket notation

* Fix typo

* Remove ketbra

* Remove ketbra, add Bra and Ket

* Add Bra/Ket and fix a typo in bra's source

* Fix bra-ket typo in docs

* Fix bra-ket escape typo in docs

* Replace bra-ket pipe with \vert in docs
2019-12-11 22:02:19 -05:00
ylemkimon
c8c7c3954c Minor symbols.js formatting changes (#2151)
* Set acceptUnicodeChar for quote symbols

* Remove \oiint and \oiiint which have no glyphs

* Make symbols.js ASCII-safe

* Remove duplicate entries

* Use acceptUnicodeChar where applicable
2019-12-04 20:13:06 -05:00
ylemkimon
b1eeeecf91 Move \global and \def to functions (#2138)
* Add parseNode type `internal`

* Move \def and \newcommand to functions

* Fix Flow error

* Separate \global

Move \newcommand back to macros for now

* Rename assignment.js to def.js

* Update test cases

* Add comments

* Update a test case
2019-12-04 20:07:19 -05:00
ylemkimon
0d8830af30 Add \message, \errmessage, and \show for debugging (#2135)
* Add \message, \errmessage, and \show for debugging

* Remove unnecessary parentheses

* add tests for \message and \errmessage
2019-12-01 18:24:47 -05:00
ylemkimon
e5333ad04d Add HTML extension (#2082)
* Add html extension

* Fix flow error

* Update documentation

* Add tests

* Call buildA11yStrings for "html" node

* Throw ParseError when parsing \htmlData fails

* Improve documentation

* Add a screenshotter test

* Add dummy screenshot

* Update screenshots
2019-12-01 17:49:28 -05:00
ylemkimon
fa8fbc0c18 Remove checkNodeType and assert/checkAtomFamily (#2137)
We used functions with $FlowFixMe as Flow couldn't refine ParseNode 
using its type. It seems the issue has been fixed and complicated 
function calls can be removed.
2019-11-29 15:08:22 -05:00
Ron Kok
d1cee3cf3d Support {rcases} and {drcases} (#2149)
* Support {rcases} and {drcases}

* Fix lint error

* Update screenshots
2019-11-10 18:36:02 +09:00
ylemkimon
4ec2806b3e Drop IE 9/10 support (#2136)
* Drop IE 9/10 support

* Remove IE-related comments

They no longer apply.

* Update browserslist

* Exclude old Safari (5.1)
2019-11-01 18:43:47 -04:00
Ron Kok
194b0064bc Improve MathML for corners (#1922) 2019-11-01 12:19:06 -04:00
Ron Kok
a92e39d810 Fix laps
* Fix lap with flex

* Fix lint error

* Fix more lint errors

* Fix indentation in test spec

* Update screenshots

* remove .glue class
2019-11-01 02:23:28 +09:00
Ron Kok
d10f375eed Fix \boxed inherited color (#2130) 2019-10-19 14:22:42 +09:00