Commit graph

236 commits

Author SHA1 Message Date
Moritz Schubotz (physikerwelt) 6efbf4dd00
Add state array to MathML rendering tree
For conditional rendering a state variable is needed.

Change-Id: Iac1a1058fecf89c58a02ca3b643e973b4742f51f
2023-02-15 11:04:20 +01:00
Stegmujo f760f896b2 Fix binom and dbinom in TexUtilTest
*indices: 79, 82

Bug: T327392
Change-Id: Ib1c19a52eea5f6433f52e440007cf6ba4ba4d48c
2023-02-14 11:53:58 +00:00
jenkins-bot e776fc32be Merge "Fix underline overline cases in TexUtilTest" 2023-02-13 20:03:40 +00:00
Stegmujo 448d1bb658 Fix underline overline cases in TexUtilTest
* indices: 48, 59

Bug: T327392
Change-Id: I6962b238485e03a7e2f65fd10d20377dbc2c5892
2023-02-13 18:14:03 +00:00
Stegmujo 0a3a4a4ff2
Fix parsing of 'P' operator
* index 219

Bug: T327392
Change-Id: Ie820c303ef0fcaa86d10022982023cebfc0e8046
2023-02-13 14:25:05 +01:00
Stegmujo 78b7769149
Fix parsing macros in mbox for TexUtilTest
* testindices 638 to 654 and 13

Bug: T327392

Change-Id: I1c83290f50f3fe7ee7e512574150d6be9723b3e7
2023-02-13 13:59:34 +01:00
Stegmujo 39c400a431 Fix Parsing of Mod elements with and without params
* some adaptions to test and comparator
* minor fix in mappings for ncong
* introduce a LaTeXML Fallback for the tex-cases:
** "\ce{\ca}"
** "\mod"

Bug: T327392

Change-Id: Ie2efa392bd517a28fe8b6e8d0cecdba64cd1c415
2023-02-13 12:23:44 +00:00
Stegmujo dbf15a72c6 Fix parsing functions for MMLGenerationTexVCUtilTest
* for "oint","ointctrclockwise", "varointclockwise."
* some ignored attributes added to similarity algorithm

Bug: T327392
Change-Id: Id4cf720bb2d2c8aeb524c2303bdf0d4be3547404
2023-02-08 14:30:46 +00:00
jenkins-bot 347dcbd3fe Merge "Fix significant typo in grammar" 2023-01-03 16:02:27 +00:00
jenkins-bot 6153004078 Merge "Improve security of MathML output" 2023-01-03 15:28:24 +00:00
Moritz Schubotz (physikerwelt) 7b425a5500
Improve security of MathML output
Avoid that user input is passed to the HTML output directly by using
HTML methods for tag generation. This also enables additional phan checks.

Change-Id: Iff584ac829c190e413a36331c53d6835a86bc0d5
2023-01-03 15:47:54 +01:00
Moritz Schubotz (physikerwelt) 81fa5b0c97
Fix significant typo in grammar
* Uq and Dq was mixed
* Simplify regeneration of grammar for node developers
* Speed up npm test by ignoring local test json files

Change-Id: Iec273dcc967be46d3df52260fc56f1969667e497
2022-12-30 16:58:39 +01:00
Moritz Schubotz (physikerwelt) 96c636e243
Refactor LocalChecker
* Do not throw arbitrary exception in constructor
* Remove custom fields

Change-Id: Ibb49f6a5e66649bab8b605e8785a868b74dbd7d0
2022-12-29 22:51:34 +01:00
Moritz Schubotz (physikerwelt) b9e297c4ec Improve test coverage for nodes
* Use merror instead of plain strings for not implemented functions

Change-Id: If20559e05f3b0c8921a28c623102b8f4788a3c94
2022-12-28 19:18:21 +00:00
Moritz Schubotz (physikerwelt) 469c698e47
Improve checking performance
* Report only on used packages if requested

Change-Id: I5b4fc6d7e571206f5b5d41d3bf268251ed1a8677
2022-12-28 13:34:23 +01:00
Moritz Schubotz (physikerwelt) 70acbd7ea4
Fix missing curlies in chem nodes
* the php implementation had fewer curlies compared to the
  js implmenetation

* remove unused function name (could be replace get_class)

* Add testcase for declh

Change-Id: I8132604a659d7ddf98e1f73686b40ff0591229f3
2022-12-28 00:56:47 +01:00
Stegmujo 783797bb9a
Add test for basic MML Methods
Bug: T302628
Change-Id: Ib3d781a516e53392fb09a2c70b322805dcb43fcf
2022-12-23 22:46:59 +01:00
Stegmujo f8e25f5dce
Update visitor functions and add parsing methods (MMLGen)
Bug: T302628

Change-Id: I5374a831cf74a6eb3bf3165abe3ad0661ec07f5f
2022-12-23 20:02:00 +01:00
Stegmujo a692599224 Add mappings for MMLGen
Bug: T302628

Change-Id: I839b77d805820262bb96fea801f1f2c3f52b53d5
2022-12-23 15:29:33 +00:00
jenkins-bot 5db9b573f3 Merge "Update namespace references in MMLNodes" 2022-12-23 15:16:25 +00:00
Stegmujo bdcd599e97 Update namespace references in MMLNodes
* this is necessary for phan to have corresponding namespaces to project structure

Bug: T302628

Change-Id: Ic485136990698828c04739db48f69658264bfd25
2022-12-23 14:54:00 +00:00
Stegmujo c124f1ec26 Add utility classes for generating MathML
Bug: T302628

Change-Id: I90f0470a14f0adeaef94b90833b4bbc32a758a32
2022-12-23 14:42:18 +00:00
Stegmujo d3da9f2ce1
Add updated TexConstants and Lengths
* mostly this solves dependency references

Bug: T302628
Change-Id: Idee807304e283def14ea0eb00762793a8e52ae7e
2022-12-23 11:06:34 +01:00
Stegmujo 34b98c5a0d
Add MML nodes and basic constants for MML generation
Bug: T302628

Change-Id: If18a5650b6c92b5da7496dd891987ecc8bd0efab
2022-12-21 12:05:26 +01:00
Umherirrender 6e424c2e4a Replace comment about deprecated Http::post
Bug: T305813
Change-Id: I1975fd473c8d57ab7e43a47ea4da3d4f33fac68c
2022-12-11 15:04:59 +01:00
AndreG-P 95c5757ee5 Enable popups for annotated math formulae
Enable popup extension for annotated math expressions. The popup shows a short summary of the formula and is generated via the Popup API introduced with I65fcbf25ac5818f6c649daf494c719921247e8f5. It is a follow up of Iefe98c1f0422dbf034e385b1a41a859d030a2cf4.

Bug: T208758
Change-Id: I8c45b7e441083c240bbf2e0217ec219df7dcc351
2022-12-06 06:07:22 +00:00
jenkins-bot 7c58d11125 Merge "Fix broken/incomplete regex patterns in TexNode::texContainsFunc" 2022-12-01 20:53:02 +00:00
thiemowmde 566944c42d Fix broken/incomplete regex patterns in TexNode::texContainsFunc
I compared with
6c6988c4f6/lib/astutil.js
and found two mistakes:
* Missing space at the end of the color regex.
* Not enough backslash escaping in the last regex.

Note how the code in lines #116 and #130 is now identical.

Change-Id: I13b75ad4a1e4da0766c0d73b8786b21865945697
2022-12-01 17:05:30 +01:00
thiemowmde 89941febb4 Minor preformance improvement in TexNode::texContainsFunc
This apparently doesn't make that much of a difference, but should
still be worth it. Strings that don't start with a backslash can not
match anything. We can stop much earlier in this case.

Change-Id: I1efb8dc6807931a075f450c56f9bbd64980c879a
2022-12-01 16:15:22 +01:00
thiemowmde f4ed725712 Fix and add test for "0" special case in TexNode
We fixed this in I47b6d5b but broke it again in Ie8d8106. Let's
finally add a test for this edge-case.

Change-Id: I9a43518f9edf0fab05e76bbb02a30fefd039b77d
2022-11-29 12:11:15 +01:00
jenkins-bot a58d9c39d3 Merge "Various code cleanups, more compact syntax and such" 2022-11-29 10:21:02 +00:00
jenkins-bot 4d3cb0dc69 Merge "Simplify VE data modules using 'packageFiles'" 2022-11-29 01:14:00 +00:00
jenkins-bot 3288979f2e Merge "Remove unnecessary uses of <span class="mw-headline">" 2022-11-28 18:45:29 +00:00
thiemowmde be25b18d8c Rewrite hot TexNode methods for performance
It appears like these methods are called hundreds of thousands of
times. This is mostly because they are recursive. According to my
benchmarks the changes proposed in this patch make a big difference.

Some notes:
* I try to avoid stepping deeper into the recursion whenever possible,
  i.e. do the recursion only when the current element is an array.
  This is relevant because the function call overhead is surpsiringly
  expensive in PHP.
* I tried to arrange the if-elseif-else branches in a way so that the
  most minimal code is executed while the code is still readable.

Change-Id: Ie8d8106390cac441cb93adcd48a937ba312a2d91
2022-11-28 12:13:41 +00:00
jenkins-bot c7bfd4a695 Merge "Replace some confusing array_walk with more trivial foreach" 2022-11-27 14:59:43 +00:00
Bartosz Dziewoński 94a48c1f1b Remove unnecessary uses of <span class="mw-headline">
Bug: T323773
Change-Id: Ia9528a30174daaca3d557081ec5191e626056a9d
2022-11-24 17:04:29 +01:00
jenkins-bot 21ee1d43aa Merge "Make code using the Math.CheckerFactory service discoverable" 2022-11-23 14:57:00 +00:00
Thiemo Kreuz 7dbc300a5f Various code cleanups, more compact syntax and such
Some notes:
* Note that array_column() strips array keys. I checked and this is
  fine here.
* Html::element() will skip attributes that are set to null or false.
  Perfect fit here.
* I routinely remove comments that do notjing but repeat what the
  code already says.

Change-Id: Ie7797b78f1af5d8404c9e97b333fac8c6b3ac85e
2022-11-23 15:36:22 +01:00
Moritz Schubotz (physikerwelt) b3e57cbfc2 Make code using the Math.CheckerFactory service discoverable
Otherwise IDEs and other tools don't know what's going on.
...->getService() returns mixed.

Change-Id: If0429485941c19eb0e88896cb1ada66a5320bafe
2022-11-23 12:10:32 +00:00
thiemowmde 9b32ed8eb6 Replace manual array merge in ParserUtil with native function
Note: I'm not sure if this code is copied from somewhere else. If it
is this change is better done in the source.

Change-Id: Ic84be9b8b52a190eb5a41f2c7ff8fd6c04724318
2022-11-23 10:56:33 +00:00
thiemowmde 14647fa3b1 Fix Phan warning in TexVC class
Required-For: If0429485941c19eb0e88896cb1ada66a5320bafe
Change-Id: I77f4d552b63b7ed935502e2d45cfa97e5310927c
2022-11-23 11:04:10 +01:00
thiemowmde a5668bd0a7 Replace some confusing array_walk with more trivial foreach
Personally I find them confusing because there is apparently no way
to "stop" an array_walk(), and that's why it constantly needs to
check if it even needs to run. Why not use a syntax we can actually
stop? I find this more readable and it makes the code actually run
faster. On average 50% of the iterations get skipped now.

Change-Id: I47b6d5b8f4ad5c9d0f47b389c638196e734809bb
2022-11-23 09:16:52 +00:00
jenkins-bot e0f6e21ac7 Merge "Remove PNG rendering mode" 2022-11-22 19:07:20 +00:00
Bartosz Dziewoński 9207931f53 Simplify VE data modules using 'packageFiles'
We can now serve the JSON data almost directly (although, curiously,
we need a main file in the module that is JavaScript, not JSON),
and without using global state in the JS code.

Change-Id: I203b3e396b28f4b4ef49c3c0918a4025082308c4
2022-11-22 18:43:04 +01:00
jenkins-bot e3d54827cf Merge "Make use of ?: and ?? shortcut syntax where it makes sense" 2022-11-22 12:19:30 +00:00
thiemowmde 67906845ff Make use of ?: and ?? shortcut syntax where it makes sense
I hope this makes the code more readable.

Change-Id: Ie458551d26cd8c8cd6e1cc18789d93176230f0d4
2022-11-22 12:29:44 +01:00
Stegmujo 1b241d4aeb Change validate in MathValidator to php-based checking
Bug: T323554
Change-Id: I8e900e03794bf4eda0ff27381c2c8078234a0b2d
2022-11-22 11:17:20 +00:00
Moritz Schubotz (physikerwelt) 110656335f Remove PNG rendering mode
Removes functionality to
* select PNG rendering mode
* automated fallback to PNG images for SVG rendering
* PNG mode related class and tests

However, PNG images received from mathoid / restbase are still stored.

Bug: T311620
Change-Id: I595926027433182cc0396570bc3f1ce0cd2cafb3
2022-11-21 18:57:27 +00:00
Stegmujo db40ad2ac3 Add Service Initialization in Render
Bug: T312528

Change-Id: I88db7691cf7ac0a66d130b5472b41355a6c4abc2
2022-11-21 11:40:43 +00:00
jenkins-bot 4b6137bed4 Merge "Avoid try…catch where if…else will do when using LanguageFactory" 2022-11-21 08:57:13 +00:00