Skip to content

Commit 809bb26

Browse files
committed
udpate the summary info and also new features
1 parent 75cc73c commit 809bb26

2 files changed

Lines changed: 129 additions & 54 deletions

File tree

buildVars.py

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,51 @@
1010
# To avoid initializing translations in this module we simply roll our own "fake" `_` function
1111
# which returns whatever is given to it as an argument.
1212
def _(arg):
13-
return arg
13+
return arg
1414

1515

1616
# Add-on information variables
1717
addon_info = {
18-
# add-on Name/identifier, internal for NVDA
19-
"addon_name": "MathCAT",
20-
# Add-on summary, usually the user visible name of the addon.
21-
# Translators: Summary for this add-on
22-
# to be shown on installation and add-on information found in Add-ons Manager.
23-
"addon_summary": _("MathCAT: speech and braille from MathML"),
24-
# Add-on description
25-
"addon_description": _(
26-
# Translators: Long description to be shown for this add-on on add-on information from add-ons manager
27-
"""MathCAT is a replacement for MathPlayer which has been discontinued.
18+
# add-on Name/identifier, internal for NVDA
19+
"addon_name": "MathCAT",
20+
# Add-on summary, usually the user visible name of the addon.
21+
# Translators: Summary for this add-on
22+
# to be shown on installation and add-on information found in Add-ons Manager.
23+
"addon_summary": _("MathCAT: speech and braille from MathML"),
24+
# Add-on description
25+
"addon_description": _(
26+
# Translators: Long description to be shown for this add-on on add-on information from add-ons manager
27+
"""MathCAT is a replacement for MathPlayer which has been discontinued.
2828
It provides speech and braille support, and also supports MathPlayer's three modes of navigation.
29-
The speech quality is not quite as good as MathPlayer's speech yet,
30-
but the braille support is much better and includes support for Nemeth, UEB Technical, CMU (Spanish/Portuguese),
31-
and Vietnamese braille code standards. Translations to Chinese (Traditional), Indonesian, Spanish, and Vietnamese exist
32-
and other translations are in progress.""",
33-
),
34-
# version
35-
"addon_version": "0.7.6-beta.9",
36-
# Author(s)
37-
"addon_author": "Neil Soiffer <soiffer@alum.mit.edu>",
38-
# URL for the add-on documentation support
39-
"addon_url": "https://nsoiffer.github.io/MathCAT/",
40-
# URL for the add-on repository where the source code can be found
41-
"addon_sourceURL": "https://github.com/NSoiffer/MathCATForPython",
42-
# Documentation file name
43-
"addon_docFileName": "readme.html",
44-
# Minimum NVDA version supported (e.g. "2018.3.0", minor version is optional)
45-
"addon_minimumNVDAVersion": "2026.1",
46-
# Last NVDA version supported/tested (e.g. "2018.4.0", ideally more recent than minimum version)
47-
"addon_lastTestedNVDAVersion": "2026.1",
48-
# Add-on update channel (default is None, denoting stable releases,
49-
# and for development releases, use "dev".)
50-
# Do not change unless you know what you are doing!
51-
"addon_updateChannel": "dev",
52-
# Add-on license such as GPL 2
53-
"addon_license": "MIT and GPL 2",
54-
# URL for the license document the ad-on is licensed under
55-
"addon_licenseURL": "https://raw.githubusercontent.com/NSoiffer/MathCAT/main/LICENSE",
29+
The supported languages are: Chinese (Traditional), English, Finnish, French,
30+
German, Greek, Hungarian, Indonesian, Norwegian, Polish, Russian, Spanish, Swedish, and Vietnamese.
31+
The supported braille codes are: Nemeth, UEB Technical, CMU (Spanish/Portuguese),
32+
Russian, Swedish, and Vietnamese braille code standards.
33+
Also supported are the German/Austrian braille code standards for ASCIIMath and LaTeX math markup.
34+
Other language and braille code translations are in progress.""",
35+
),
36+
# version
37+
"addon_version": "0.7.6-beta.9",
38+
# Author(s)
39+
"addon_author": "Neil Soiffer <soiffer@alum.mit.edu>",
40+
# URL for the add-on documentation support
41+
"addon_url": "https://nsoiffer.github.io/MathCAT/",
42+
# URL for the add-on repository where the source code can be found
43+
"addon_sourceURL": "https://github.com/NSoiffer/MathCATForPython",
44+
# Documentation file name
45+
"addon_docFileName": "readme.html",
46+
# Minimum NVDA version supported (e.g. "2018.3.0", minor version is optional)
47+
"addon_minimumNVDAVersion": "2026.1",
48+
# Last NVDA version supported/tested (e.g. "2018.4.0", ideally more recent than minimum version)
49+
"addon_lastTestedNVDAVersion": "2026.1",
50+
# Add-on update channel (default is None, denoting stable releases,
51+
# and for development releases, use "dev".)
52+
# Do not change unless you know what you are doing!
53+
"addon_updateChannel": "dev",
54+
# Add-on license such as GPL 2
55+
"addon_license": "MIT and GPL 2",
56+
# URL for the license document the ad-on is licensed under
57+
"addon_licenseURL": "https://raw.githubusercontent.com/NSoiffer/MathCAT/main/LICENSE",
5658
}
5759

5860
# Define the python files that are the sources of your add-on.

readme.md

Lines changed: 89 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
# MathCAT
22

33
* Author: Neil Soiffer
4-
* NVDA compatibility: 2025.1 or later (switching to a more modern Python makes it incompatible with earlier versions of NVDA)
4+
* NVDA compatibility: 2025.1 or later (switching to a more modern Python makes it incompatible with earlier versions of NVDA) for 32 bit NVDA versions; 2026.1 for 64 bit NVDA versions.
55
* Download [stable version][1]
66

7-
MathCAT is designed to eventually replace MathPlayer because MathPlayer is no longer supported. MathCAT generates speech and braille from MathML. The speech for math produced by MathCAT is enhanced with prosody so that it sounds more natural. The speech can be navigated in three modes using the same commands as MathPlayer. In addition, the navigation node is indicated on a braille display.
7+
MathCAT replaces MathPlayer because MathPlayer is no longer supported. MathCAT generates speech and braille from MathML. The speech for math produced by MathCAT is enhanced with prosody so that it sounds more natural. The speech can be navigated in three modes using the same commands as MathPlayer. In addition, the navigation node is indicated on a braille display.
88

9-
MathCAT supports speech for the following languages: English, German, Spanish, Finnish, Indonesian, Norwegian, Swedish, Vietnamese, and Chinese (Traditional)
9+
The supported languages are: Chinese (Traditional), English, Finnish, French,
10+
German, Greek, Hungarian, Indonesian, Norwegian, Polish, Russian, Spanish, Swedish, and Vietnamese.
1011

11-
MathCAT supports the following braille codes: Nemeth, UEB Technical, CMU (Spanish, Portuguese), Finish, Swedish, Vietnamese, LaTeX (German rules), ASCIIMath (German rules, Finnish rules)
12+
The supported braille codes are: Nemeth, UEB Technical, CMU (Spanish/Portuguese),
13+
Russian, Swedish, and Vietnamese braille code standards.
14+
Also supported are the German/Austrian braille code standards for ASCIIMath and LaTeX math markup.
15+
16+
Other language and braille code translations are in progress.
1217

1318
MathCAT has a number of configuration options that control speech, navigation, and braille.
1419
Many of these can be set in the MathCAT settings dialog (found NVDA Preferences menu).
@@ -26,11 +31,70 @@ Who should use MathCAT:
2631

2732
Who should NOT use MathCAT:
2833

29-
* Anyone who uses MathPlayer with a language that is not yet supported by MathCAT and are not comfortable with speech in one of the supported languages.
30-
* Anyone who prefers Access8Math to MathPlayer (for speech or other features)
34+
* Anyone who prefers Access8Math (for speech or other features)
3135

3236
## MathCAT Update Log
3337

38+
### Version v0.7.6-beta.8
39+
40+
## User-facing highlights
41+
42+
| Area | Since 0.7.5 |
43+
| ---- | ----------- |
44+
| Languages | New: Greek, French, Hungarian, Polish, Russian; Improvements German, Norwegian, Traditional Chinease |
45+
| Braille | New: Russian; Nemeth 2022-ish fixes; unicode ranges; BrailleCode refactor |
46+
| Content | Augmented matrices; chemistry; currency/mtext cleanup; SSML fix |
47+
| Quality | Fuzzing; better errors; dual `no-unsafe` CI track |
48+
49+
## Details
50+
51+
### Languages & speech
52+
53+
* **Polish (`pl`)** — new
54+
* **French (`fr`)** — new
55+
* **Greek (`el`)** — new
56+
* **Hungarian (`hu`)** — new
57+
* **Russian (`ru`)** — new
58+
* **Norwegian (`nb`)** — speech + navigation enhancements
59+
* **German (`de`)** — digit rules, units, other speech fixes
60+
* **Traditional Chinese (`zn-tw`)** — navigation / related rule updates
61+
* **English** — core concept names (#381); principal Log vs log; identity / **augmented matrices**; black circled Latin letters; circled-number support; unit-definition cleanups
62+
* **Intent** — inference tweaks
63+
64+
### Braille
65+
66+
* **Russian** — new
67+
* **Nemeth** — 2022-oriented updates (ellipses, multipurpose between scripts, currency, typeform prefs cleanup, bugfixes)
68+
* Unicode tables — **collapse to ranges** + range fixups
69+
* Refactor — **`BrailleCode` trait + registry**
70+
* Table-related braille/rules work
71+
* Remove incomplete **ASCIIMath-fi** packaging that broke builds
72+
73+
### Canonicalization, chemistry, robustness
74+
75+
* Chemistry — mmultiscripts/scripts merge, atomic-number scoring, chem-element intent/heuristics, chem test fixes
76+
* Bad mmultiscripts / empty bases / `data-split` cleanup
77+
* Currency symbols split out of `mtext` / `mi` / `mn`; less aggressive `?` fill-in
78+
* Empty `<mi>` / degree edge cases; mtext-as-number → `mn` where appropriate
79+
* Stronger panic/error reporting (tests + containers)
80+
* **SSML** — stopped incorrectly escaping SSML (#585)
81+
82+
### Internals
83+
84+
* Rust **edition 2024**; `lazy_static`**`LazyLock`**; API cleanups (`AsRef<str>`, etc.)
85+
* **anyhow** instead of error-chain
86+
* Optional **`no-unsafe`** via `sxd-document-no-unsafe` / `sxd-xpath-no-unsafe` (default = classic mode)
87+
* CI — build/test/clippy for default **and** `no-unsafe`; fuzz both configs; CI on all branches; Python tooling CI; coverage; pre-release fixes
88+
* **cargo-fuzz** harness, dictionary, corpus cache, regression helpers
89+
* **audit-translations** and related Python/uv tooling
90+
* AGENTS.md, CODEOWNERS, CLI / `mathml2text` path
91+
* Dependency bumps; BrailleDocs publish exclude
92+
93+
### Docs
94+
95+
* README / product-page copy; AT notes (JAWS, Orca, Kurzweil, etc.)
96+
* User guides / translators’ guide work; example HTML for translator testing
97+
3498
### Version 0.7.5
3599

36100
#### Bug Fixes and Enhancements
@@ -63,7 +127,7 @@ Who should NOT use MathCAT:
63127
* Corrected the rule for what is allowed for "intent"
64128
* Improved the inference rules for units (supports "mi" if it is marked as "normal")
65129
* Fixed a navigation bug with log, ln, and lg
66-
* Improved error messages -- these should aid in reporting problems in speech and navigation
130+
* Improved error messages -* these should aid in reporting problems in speech and navigation
67131
* Improved speech for fractions that involve units ("meters *per* second")
68132
* Many improvements to the recognition of Chemistry
69133
* Fixed a Nemeth bug where a script end and baseline indicator were emitted when neither should have been present.
@@ -110,7 +174,7 @@ Lots of changes because it has been a while since the last official release.
110174
* Be more restrictive when inferring a table
111175
* Changed speech for the general cases of `mover` and `munder` from "modified x with y above it" to "quantity x with y above it"
112176
* Improved rule for {} so that it isn't always spoken as "set of ...". It could just be bracketing chars.
113-
* Tweaked the speech for ∈ inside of a set so that the word "is" is dropped when part of a set -- "the set of all x is an element of ..." sounds poor.
177+
* Tweaked the speech for ∈ inside of a set so that the word "is" is dropped when part of a set -* "the set of all x is an element of ..." sounds poor.
114178
* Improved rule for chemistry recognition for atomic numbers.
115179
* Update to speech hint property names in the proposed MathML Core property list
116180
* Add speech for coordinates ("the point at 1 comma 2")
@@ -119,7 +183,7 @@ Lots of changes because it has been a while since the last official release.
119183
* Added an 'xlong' pause
120184
* Increased the meaning of short/medium/long pauses from 150ms/300ms/600ms to 200ms/400ms/800ms. As always, these are scaled to the speech rate.
121185
* In MathML 4, `mlabedtr` is deprecated. A workaround is to use the intent property `:equation-label` on an `mtd` and this is now supported
122-
* Added speech for units (e.g., "km", "in") -- won't work for single letter units such as "m" and "s" unless marked as a unit
186+
* Added speech for units (e.g., "km", "in") -* won't work for single letter units such as "m" and "s" unless marked as a unit
123187
* Terse mode now says "of" for functions except for trig/log functions. It was a little too terse before.
124188

125189
#### Navigation
@@ -152,7 +216,7 @@ Lots of changes because it has been a while since the last official release.
152216
#### Fixes
153217

154218
* Fixed bug with espeak where it would slow down
155-
* Forgot to implement relative slowdown when navigating -- fixed
219+
* Forgot to implement relative slowdown when navigating -* fixed
156220
* Fixed sans-serif indicator for Nemeth braille.
157221
* Fixed a bug where empty cells in a table that is piecewise, m:system-of-equations or lines were spoken.
158222
* Fixed bug where open/closed intervals were inferred when brackets/parens were nested (can't be an interval).
@@ -168,7 +232,7 @@ Lots of changes because it has been a while since the last official release.
168232
* Cleaned up use of definitions.yaml.
169233
* Fixed some bugs in the MathML cleanup for "," decimal separators.
170234
* Found a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)
171-
* Fixed "Describe" mode so that it works -- it is still very minimal and probably not useful yet
235+
* Fixed "Describe" mode so that it works -* it is still very minimal and probably not useful yet
172236
* Add space after math speech to work around a MS Word bug that concatinates the next character in the text onto the math.
173237

174238
### Version 0.5.6
@@ -184,44 +248,49 @@ Lots of changes because it has been a while since the last official release.
184248
* Some other smaller bug fixes that weren't reported by users
185249

186250
### Version 0.5.0
251+
187252
* Added German LaTeX braille code. Unlike other braille codes, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
188253
* Added (expermental) ASCIIMath braille code. Like the LaTeX braille code, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
189254
* Added "CopyAs" preference that supports copying as MathML, LaTeX, or ASCIIMath using cntl+C when focused on MathML (as before). The currently focused node is copied. Note: this is only listed in the prefs.yaml file and is not exposed (yet) in the MathCAT Preferences dialog.
190255

191256
### Version 0.4.2
257+
192258
* Fixed language switching when voice changes and MathCAT language is "Auto"
193259
* Added more checks for $Impairments to improve reading when it is not set for those who are blind
194260
* Nemeth: fix for "~" when it isn't part of an mrow
195261
* UEB: character additions, "~" spacing fix if prefix, xor fix,
196262
* MathML cleanup for accented vowels (mainly for Vietnamese)
197-
* Major rewrite of preference reading/updating code with big speedup -- added `CheckRuleFiles` pref to control which files are checked for updates
198-
* Added two new interface calls -- enables setting the navigaton location from the braille cursor (not part of MathCAT addon yet)
263+
* Major rewrite of preference reading/updating code with big speedup -* added `CheckRuleFiles` pref to control which files are checked for updates
264+
* Added two new interface calls -* enables setting the navigaton location from the braille cursor (not part of MathCAT addon yet)
199265

200266
### Version 0.3.11
267+
201268
* Upgraded to python 3.11 and verified working with NVDA 2024.1
202269
* Fix bugs in Vietnamese braille and also in Speech, mostly for chemistry.
203270
* Fix broken braille when braille code and dependent language don't match (specifically Vietnam braille and Vietnamese speech)
204271
* Fix whitespace bug in HTML inside of tokens
205272
* Improve roman numeral detection
206273

207-
208274
### Version 0.3.9
275+
209276
* Added Traditional Chinese translation (thanks to Hon-Jang Yang)
210277
* Fixed bug with navigating into the base of a scripted expression that has parenthesis
211278
* Significantly changed the way whitespace is handled. This mainly affects braille output (spaces and "omission" detection).
212279
* Improved recognition of chemistry
213280
* UEB braille fixes that came up from adding chemistry examples
214281
* UEB fixes for adding auxillary parenthesis in some cases
215282

216-
217283
### Version 0.3.8
284+
218285
Braille:
286+
219287
* Dialog has been internationalized for several languages (many thanks to the translators!)
220-
* Initial implementation of CMU -- the braille code used in Spanish and Portuguese speaking countries
288+
* Initial implementation of CMU -* the braille code used in Spanish and Portuguese speaking countries
221289
* Fix some UEB bugs and added some characters for UEB
222290
* Significant improvements to Vietnamese braille
223291

224292
Other fixes:
293+
225294
* Change relative rate dialog slider to have a maximum value of 100% (now only allows setting slower rates). Also, added step sizes so it is easier to raise/lower the rate significantly.
226295
* Fix eSpeak bug that sometimes cut off speech when the relative rate was changed
227296
* Improvements to Vietnamese speech
@@ -232,7 +301,9 @@ Other fixes:
232301
* Several improvements for cleaning up poor MathML code
233302

234303
### Version 0.3.3
304+
235305
This release has a number of bug fixes in it. The major new features and bug fixes are:
306+
236307
* Added Spanish Translation (thanks to Noelia Ruiz and María Allo Roldán)
237308
* Modified navigation so that it starts zoomed in one level
238309
* Added cntrl+alt+arrow as a way to navigate tabular structures. These keys should be more memorable because they are used for table navigation in NVDA.
@@ -244,6 +315,7 @@ There are lots of small tweaks to the speech and some bug fixes for both Nemeth
244315
Note: there is now an option to get Vietnam's braille standard as braille output. This is still a work in progress and is too buggy to be used other than for testing. I expect the next MathCAT release will contain a reliable implementation.
245316

246317
### Version 0.2.5
318+
247319
* More improvements chemistry
248320
* Fixes for Nemeth:
249321
* * Added "omission" rules
@@ -252,6 +324,7 @@ Note: there is now an option to get Vietnam's braille standard as braille output
252324
* * Fixes related to Nemeth and punctuation
253325

254326
### Version 0.2
327+
255328
* Lots of bug fixes
256329
* Improvements to speech
257330
* A preference setting to control the duration of pausing (works with changes to relative speech rate for math)

0 commit comments

Comments
 (0)