Commit graph

348 commits

Author SHA1 Message Date
Stegmujo 7dfb557b92
Render MathML for harpoons and arrows for mhchem
* macros: longRightleftharpoons, longLeftrightharpoons,
  longleftrightarrows
* added tests for these

Bug: T340024
Change-Id: Ib8487f242766cef63f7cf8564f2033d9f332e0a8
2023-10-04 18:47:14 +02:00
Stegmujo 0c493bbbed Render MathML for tripledash for mhchem
* rendering textemdash for tripledash with unicode +2014

Bug: T340024
Change-Id: I2c68858063d7fe4e1d673522f6a2d58107fa3f7e
2023-10-04 13:04:17 +00:00
Stegmujo 372bf72acd Render MathML for mathchoice for mhchem
* defaults mathchoice to displaystyle
* adds several tests and introduces new Fun4 element for mathchoice in
  grammar

Bug: T340024
Change-Id: I37c8fd35303e3b8a00faad18a3a131a716c7bb47
2023-10-04 11:23:02 +00:00
jenkins-bot a801869ebb Merge "Add mhchem-tex macros to MMLGenerationTexUtilTest" 2023-10-04 11:05:14 +00:00
Stegmujo 759e6166f6
Add mhchem-tex macros to MMLGenerationTexUtilTest
* adds the recently implemented cases for mhchem specific tex to check full macro coverage
* fix a minor issue with tripledash

Change-Id: Id3033fab7b3c3432bed6e11f7b50f7ff8e3906ea
2023-10-04 10:57:12 +02:00
jenkins-bot f15dd203ab Merge "Fix tilde spacing" 2023-09-29 11:48:36 +00:00
Stegmujo 414295cdc5
Fix tilde spacing
* tilde is rendered as non escaped mspace

Bug: T315978
Change-Id: I33a751eb5ae62a45c7bc3941ff49f30fa436b00c
2023-09-29 12:19:28 +02:00
jenkins-bot 5dd7d8cba3 Merge "Fix alignments" 2023-09-28 17:13:32 +00:00
Stegmujo 6c43c7563c Fix escape spacing
* In test "\text{if}~n\ \text{is even} "

Bug: T315978
Change-Id: I839b7e912bc95abff1f589467c848fc8b2fb0fe6
2023-09-28 15:54:19 +00:00
Stegmujo 07f7942ac5 Fix alignments
*  "\ln c, \lg d = \log e, \log_{10} f" : c d etc should have be more extra space
* "\Pr j, \hom l, \lVert z \rVert, \arg z ": same as above, specifically for \hom
* fixes expected result in LocalCheckerTest

Bug: T315978
Change-Id: I842b45b2d20dc267d828dca2040a3500ce06f45d
2023-09-28 15:48:18 +00:00
Stegmujo 093ecf7c0f
Fix bigcap and bigcup scripts not placed correctly
* All recognized macros are in category nullary macros, so this adds a
  rule
* In test "\bigcap_{i=_1}^n E_i"
* In test "\bigcup_{i=_1}^n E_i"

Bug: T315978
Change-Id: I09287879c1448e404473891985457349a62554a7
2023-09-27 14:17:53 +02:00
jenkins-bot 4d3f6adc8f Merge "Move error to merror tags" 2023-09-27 11:24:25 +00:00
Stegmujo cbd830a934
Move error to merror tags
Bug: T315978
Change-Id: I8e0515a168a5983c24dac8a64e7a2f7fd1805a8d
2023-09-27 12:48:26 +02:00
jenkins-bot 21d3cf0f8f Merge "Fix oint size" 2023-09-27 10:47:38 +00:00
Stegmujo 0728ed4bd1 Fix oint size
* In several tests with preceding oint
* Add explicit testcase

Bug: T315978
Change-Id: I87b31490ed18461fec0cf4ebd6a2c207235ee734
2023-09-27 09:39:50 +00:00
Stegmujo b3545c1994
Fix negation (not) for operatorname
* Test example in MathNativeTests: " "\not\operatorname{R}"
* fixed forwarding state in Fun1nb

Bug: T315978
Change-Id: Ia651b14ba16f39cc8cbc6b42e0598d959bf72989
2023-09-27 10:39:27 +02:00
Stegmujo ede31d01ed Fix k=1 should appear under sum in displaystyle
* In test MathNativeTests: "\sum_{k=1}^N k^2"
* also verify that textstyle variant works correctly

Bug: T315978
Change-Id: I8f6cd5ef1e4539616439542184cb7d9dc5cf2363
2023-09-26 16:07:20 +00:00
Stegmujo f85fda42da Fix MMLGenerationParserTest creating HTML file
* also fixes a warning in phan that there is a tainted parameter in args in BaseParsing
* this is to pass CI

Bug: T343636
Bug: T347320
Change-Id: I91328bf26e208bd4e0e939c4628def2f40e2f0b6
2023-09-26 15:26:30 +00:00
jenkins-bot df4404456a Merge "Add mw-invert class to <img> which generates text" 2023-09-23 09:00:19 +00:00
Stegmujo 5536b3f74a Fix underbrace
* In test MathNativeTests: "\underbrace{ a+b+\cdots+z }_{26}"
* Underbrace statement appear to right side

Bug: T315978
Change-Id: I3b1e1290ac07e7aa70ab5931d513984f011d3075
2023-09-21 14:57:40 +00:00
Ed Sanders 85a20f537d Add mw-invert class to <img> which generates text
Bug: T345281
Change-Id: I56740aec8ccfacf3bf287329f26a88329fb65c09
2023-09-21 14:36:11 +01:00
jenkins-bot 293d0914b1 Merge "Use string as return type of MMLutil::addPreOperator" 2023-09-21 11:52:43 +00:00
Moritz Schubotz (physikerwelt) c0d56f03fb
Use string as return type of MMLutil::addPreOperator
fixes https://sonarcloud.io/project/issues?resolved=false&sinceLeakPeriod=true&types=CODE_SMELL&id=mediawiki-extensions-Math&open=AYqio5RKOF_lKUTFMs1o&tab=code

Change-Id: I1b65e937e6d2ea0029d9157ce6b7f94fdc6bf1d6
2023-09-21 12:59:49 +02:00
Stegmujo 586d15b046 Fix Pilcrow size
* Pilcrow was very big, see test on MatTestNative page:
* " \amalg \P \S \% \dagger \ddagger \ldots \cdots "
* and add specific testcase

Bug : T315978

Change-Id: I3074f3782ef821e7f9813b79a570bbd51ead28db
2023-09-21 10:28:31 +00:00
Stegmujo 83db0738b3 Fix rendering of "<" and ">" in MathML
Bug: T346731

Change-Id: I1f163dad73481664a336f09bc5608aad6d0b5761
2023-09-19 10:32:09 +00:00
jenkins-bot 5ef83ce3b6 Merge "Render MathML for smash command from texified mhchem" 2023-09-19 09:14:00 +00:00
Stegmujo b28d3da95a
Render MathML for smash command from texified mhchem
Bug: T340024
Change-Id: Id9ca073b51656dce2f48cef6c94a2281fe269418
2023-09-19 10:27:28 +02:00
Stegmujo 3c196ba389
Render MathML for tripledash and ..arrows cmds from texfified mhchem
* already these are as mhchem macros in mappings, tbd adapt

Bug: T340024
Change-Id: Ic604720c71de720b6959159cfd78d6b55fdf399d
2023-09-17 21:11:26 +02:00
Stegmujo ead9760e1f Render MathML for cmds: raise,lower,rlap,llap from texified mhchem
Bug: T340024

Change-Id: I9b3981c97b8158685ccc774f8435f7f1b36a42f2
2023-09-17 09:54:32 +00:00
Stegmujo cedca8b14e
Render MathML for mskip and mkern from texified mhchem
Bug: T340024

Change-Id: I2f9e0bbb98f33d6269009248861e4573dc9e6911
2023-09-17 10:16:39 +02:00
Stegmujo 237ef0df8c Create prototype of mhchemParser-PHP TexVC integration
* contains a draft of integrating mhchemParser as a preprocessor for texvc
* this contains also a draft of recognizing some additional statements
coming from mhchemParser

Bug: T340023
Change-Id: Icdfd0bfbfc04b0f1fe89837c2fcd184a77733b0e
2023-09-16 15:33:31 +00:00
Stegmujo 6514c9d24e
Implement mhchemParser in PHP
* mhchemParser v4.2.2 in Typescript was used as blueprint for this:
* https://github.com/mhchem/mhchemParser
* The mhchemParserPHP component tests can be run locally on a machine with PHP without MediaWiki-Environment with the MMLmhchemTestLocal.php
* For the tests it is probably only necessary to review the json files (Mhchemv4mml.json, Mhchemv4tex.json).
* src/TexVC/MHChem/MhchemParser.php contains the basic functionality, Patterns, StateMachines, Texify functions are located in dedicated classes
* added extracted mhchem commands which have intermediately have been introduced to the
  texVC(PHP) grammar

Change-Id: I8cc3d04937b93339e352adc95c85a8a178b8825f
Bug: T329620
2023-09-16 09:40:14 +02:00
Paladox 58bba16d5d Add support for cli only version in MathStatus
Change-Id: I256c7bd1fd38ec3f48c4eaab1e8ff0b6c8aba3d4
2023-08-25 21:55:11 +00:00
jenkins-bot 008759c331 Merge "Remove references to VisualEditorFullRestbaseURL" 2023-08-25 11:21:39 +00:00
gerritbot fd1e7e2a67 Replace some moved Title class uses, now MediaWiki\Title\Title
Bug: T321681
Change-Id: I1c875fcf7456ea03420b316f58fcd18aa748301f
2023-08-19 04:17:34 +00:00
Amir Sarabadani 88a24c402b Fix phpcs error
Change-Id: If047aa9a5cf26def9d1d9935294646f80ef92ffc
2023-08-19 04:51:28 +02:00
Bartosz Dziewoński 8c05a71beb Remove references to VisualEditorFullRestbaseURL
The VisualEditorFullRestbaseURL config variable is no longer used by
VisualEditor and is no longer set in Wikimedia production
configuration.

Bug: T344458
Change-Id: Ifd0b9f919f7a9bdceb8761125588fe72e8d1e50c
2023-08-18 20:17:48 +02:00
Umherirrender fb29f08e74 Use HookHandlers for core hooks
The use of "HookHandlers" attribute in extension.json makes it possible
to inject services into hook handler classes in a future patch.

Bug: T263364
Change-Id: Id8d9d0dcc6bb6ab60c5df3074803d132393415e9
2023-08-16 01:12:17 +00:00
Daimona Eaytoy ffa687bc64 Avoid DB access in non-Database tests
Bug: T155147
Change-Id: I25b627b85179fe0e72386351e53de322c7a9c850
2023-08-05 15:07:40 +00:00
Moritz Schubotz (physikerwelt) ef145e7b50
Add remaining mhchemtexified macros:
\mkern -> \mkern #1 (fun_ar1)
    \mskip -> \mskip #1 (fun_ar1)
    \smash -> \smash[#1]{#2} (fun_ar1opt)
    \mathchoice -> \\mathchoice #1 #2 #3 #4 (fun_ar4)
    \rlap -> \rlap #1 (fun_ar1)
    \llap -> \llap #1 (fun_ar1)
    \raise -> \raise #2 #2 (fun_ar2)
    \lower -> \lower #1 #2 (fun_ar2)

Bug: T340023
Change-Id: I61f0bdae53a53d5d301645dc9aa099d3377bff1c
2023-07-18 21:08:36 +02:00
Moritz Schubotz (physikerwelt) 26cfc111f9 Add usemhchemtexified option for mhchem texified output
Add a config option to enable passing special macros needed to
handle the output from the mhchem texify process.

Bug: T340023
Change-Id: I3553931c252184b54e7a13938e030825e5d45e59
2023-07-18 09:34:35 +00:00
jenkins-bot f6832d0235 Merge "Eliminate duplicate file" 2023-07-18 09:17:03 +00:00
Moritz Schubotz (physikerwelt) 2d76cc24ac
Eliminate duplicate file
texutil.json exists twice with identical contents in
test and main sections.

Delete the redundant copy in the test section and access
the main file in tests.

Change-Id: Ie1eba9ed599d6826f1efe2d37bf8370f8e9dd036
2023-07-16 10:04:51 +02:00
Moritz Schubotz (physikerwelt) 5677e7992c
Add tex node with 4 arguments
For the mathchoice command we need a syntax tree element that can
store 4 arguments.

Bug: T340023
Change-Id: Ieddd10e54240a4def6bed30cd299d804e8a121f9
2023-07-14 17:31:04 +02:00
Moritz Schubotz (physikerwelt) 16d1fdacf4
Add WAN Cache for native MathML rendering
* Cache results for checked tex and MathML string in one cache.
* Remove access to parsetree
* Introduce run method to speed up service wiring

Note that the indirection table used in previous versions was
abandoned here. texvc does only little unification's of the
input string so that it is not expected that the overall savings
in space and compute time warrant the additional table.

Change-Id: Ib9ce3d2ab02bd9a2a0f9926db6b937435b7e5458
2023-06-19 23:04:08 +02:00
Moritz Schubotz (physikerwelt) fc425b977c
Add MathML interface to LocalChecker
In preparation for caching we store the MathML fragment returned by
local checker. The rational is that the string serialization of the
parse tree is better chachable as the parsetree.

Change-Id: Ice2ef1f4f7b83ed187507d4d067f446603d0d6a5
2023-06-19 17:39:49 +02:00
Daimona Eaytoy ce1078f7cf Catch more specific exception in MathRestbaseInterface
Follows-up: Ic44463e910911afe6395c38fd2f59b9bfa02a4f0
Change-Id: I95846304e2a81119df5a3785a3f30ae8349cc720
2023-06-09 13:01:53 +02:00
Daimona Eaytoy d06bd18532 Replace deprecated MWException
Introduce new classes for checked exceptions, and use SPL exceptions
for the unchecked ones.

Bug: T328220
Change-Id: Ic44463e910911afe6395c38fd2f59b9bfa02a4f0
2023-06-09 13:00:46 +02:00
Moritz Schubotz (physikerwelt) 7c7b3324be Remove additional v1 suffix when computing internalRestbaseURL
Remove additional /v1 when computing internalRestbaseURL from
virtualRestConfig as this will be added in getUrl in MathRestbaseInterface.

internalRestbaseURL was introduced in I2fbc441955a1fe417f264f31f3729ce0715f7f16.

Bug: T334842
Bug: T338381
Change-Id: If2719fb9106e1414ce8814a2fbafa5dcedb84e39
2023-06-08 01:10:30 +00:00
jenkins-bot 03b185078b Merge "Create HookRunner class and the hook handler interfaces" 2023-06-07 09:39:56 +00:00