{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":389002117,"defaultBranch":"main","name":"MathCAT","ownerLogin":"NSoiffer","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-07-24T04:45:24.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1545836?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715641501.0","currentOid":""},"activityList":{"items":[{"before":"9e17bc3490fd8a9dcdd8e57b80c763dfa34f9148","after":"2fdcf2ad307e4137057e5f6f77303e08d4db81c1","ref":"refs/heads/main","pushedAt":"2024-06-16T21:12:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"bump version number","shortMessageHtmlLink":"bump version number"}},{"before":"8cf6d5d320fd7729e4f6db5c933e1edcfb6a460f","after":"9e17bc3490fd8a9dcdd8e57b80c763dfa34f9148","ref":"refs/heads/main","pushedAt":"2024-06-16T19:35:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"change the path from local debugging","shortMessageHtmlLink":"change the path from local debugging"}},{"before":"92e9df727d311d0275ec6e7b1a5377ee9d9ca6e2","after":"8cf6d5d320fd7729e4f6db5c933e1edcfb6a460f","ref":"refs/heads/main","pushedAt":"2024-06-16T18:47:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"More work to get basic overview descriptions working in navigate.rs.\n\nAdded some simple ReadCurrent/DescribeCurrent tests.","shortMessageHtmlLink":"More work to get basic overview descriptions working in navigate.rs."}},{"before":"8b6fafee16903537efb2d3b6359597e2c1f9a8aa","after":"92e9df727d311d0275ec6e7b1a5377ee9d9ca6e2","ref":"refs/heads/main","pushedAt":"2024-06-16T15:40:57.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Fixed up overview.yaml for all the languages so that it doesn't generate warnings (name/tag overrides).\nAlso, load `SimpleSpeak_Rules.yaml` first so that `overview.yaml` overrides those rules.\n\nAdded a sanity test to `navigate.rs` to make sure that `overview.yaml` doesn't have syntax errors","shortMessageHtmlLink":"Fixed up overview.yaml for all the languages so that it doesn't gener…"}},{"before":"8f981d72ce46be636b9df9cc9051ed299246f77e","after":"8b6fafee16903537efb2d3b6359597e2c1f9a8aa","ref":"refs/heads/main","pushedAt":"2024-06-16T13:56:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"oops -- oversimplified a setting that caused a temp value to be dropped","shortMessageHtmlLink":"oops -- oversimplified a setting that caused a temp value to be dropped"}},{"before":"1bb5354e9b55550502b619155be063b438fd8ab7","after":"8f981d72ce46be636b9df9cc9051ed299246f77e","ref":"refs/heads/main","pushedAt":"2024-06-16T13:54:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Add 'Custom' to comment about possible values","shortMessageHtmlLink":"Add 'Custom' to comment about possible values"}},{"before":"49020dd33c2c480f5b695b37ba456868b5388835","after":"1bb5354e9b55550502b619155be063b438fd8ab7","ref":"refs/heads/main","pushedAt":"2024-06-14T20:05:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"bump version #","shortMessageHtmlLink":"bump version #"}},{"before":"a5a544427df8798e4215bce5aa17612d7128e784","after":"49020dd33c2c480f5b695b37ba456868b5388835","ref":"refs/heads/main","pushedAt":"2024-06-10T06:07:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"bump version #","shortMessageHtmlLink":"bump version #"}},{"before":"58ab172973ad69f961e0c63ec626772b7710e0a9","after":"a5a544427df8798e4215bce5aa17612d7128e784","ref":"refs/heads/main","pushedAt":"2024-06-09T06:17:34.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Two fixes:\n* The calls to `IsInDefinition` in some of braille files neglected to say they were looking for the braille definitions (as opposed to the speech definitions).\n* Fixed up the definitions.yaml files so that they really are the braille definitions. I pulled the braille-only definitions from `Rules/definitions.yaml`.","shortMessageHtmlLink":"Two fixes:"}},{"before":"0db6e7a43f1318c9d08c81cb6b631f93d00fb6a4","after":"58ab172973ad69f961e0c63ec626772b7710e0a9","ref":"refs/heads/main","pushedAt":"2024-06-06T05:01:48.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Add `DecimalSeparator: \"Auto\"`","shortMessageHtmlLink":"Add DecimalSeparator: \"Auto\""}},{"before":"e177be4e4cb7df015ac9e000d371e082d99dc069","after":"0db6e7a43f1318c9d08c81cb6b631f93d00fb6a4","ref":"refs/heads/main","pushedAt":"2024-06-05T04:20:52.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Change feature \"include-zip\" so that it isn't the default. I'm not entirely sure what the default should be, but I plan to distribute the rule file separately in many cases, so I'm leaning towards not building it into the binary by default.","shortMessageHtmlLink":"Change feature \"include-zip\" so that it isn't the default. I'm not en…"}},{"before":"18065432d470099b9bdf08ca7e639b220b520c5a","after":"e177be4e4cb7df015ac9e000d371e082d99dc069","ref":"refs/heads/main","pushedAt":"2024-06-05T00:33:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"bump version #","shortMessageHtmlLink":"bump version #"}},{"before":"d194f24e0246b0a527bf5b170231b2d7393f9842","after":"18065432d470099b9bdf08ca7e639b220b520c5a","ref":"refs/heads/main","pushedAt":"2024-06-05T00:33:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Removed junk/leftover file","shortMessageHtmlLink":"Removed junk/leftover file"}},{"before":"9fdf83ab260fb8747de1c92f2626d2aa0a0bc752","after":"d194f24e0246b0a527bf5b170231b2d7393f9842","ref":"refs/heads/main","pushedAt":"2024-06-05T00:32:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"I think I have the building of the Rules dir correct now...","shortMessageHtmlLink":"I think I have the building of the Rules dir correct now..."}},{"before":"ad6a858493e5ea182a271a76417ee8867929e7dd","after":"9fdf83ab260fb8747de1c92f2626d2aa0a0bc752","ref":"refs/heads/main","pushedAt":"2024-06-03T03:37:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Changed build.rs to write to the build out dir (only place it is supposed to write)\n\nPlayed around with feature setting in Cargo.toml to control whether zipped files are included in the executable","shortMessageHtmlLink":"Changed build.rs to write to the build out dir (only place it is supp…"}},{"before":"2cdf39b7dabd9f57d9fddbd95dbecaa3b8c51c48","after":"ad6a858493e5ea182a271a76417ee8867929e7dd","ref":"refs/heads/main","pushedAt":"2024-05-29T23:26:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Clippy fixes after merge","shortMessageHtmlLink":"Clippy fixes after merge"}},{"before":"9b865b7deba96ee393a1e0959b7210877e73402d","after":"2cdf39b7dabd9f57d9fddbd95dbecaa3b8c51c48","ref":"refs/heads/main","pushedAt":"2024-05-29T23:21:29.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Merge branch 'zip'\n\nUpdated zip to updated dependencies","shortMessageHtmlLink":"Merge branch 'zip'"}},{"before":"89939f114e72d29ceb2a59abeb914910c0177493","after":"f215998308f03b65a50dc6584e1ea11ea395fbce","ref":"refs/heads/zip","pushedAt":"2024-05-29T23:07:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Update dependences (as in main)","shortMessageHtmlLink":"Update dependences (as in main)"}},{"before":"522b3736c6ae2f339bec563d90a021c8dee4e1dc","after":"9b865b7deba96ee393a1e0959b7210877e73402d","ref":"refs/heads/main","pushedAt":"2024-05-29T22:38:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"restore timing example","shortMessageHtmlLink":"restore timing example"}},{"before":"34f4f010fe5dd6b46457642836fda04d30a0b7ae","after":"522b3736c6ae2f339bec563d90a021c8dee4e1dc","ref":"refs/heads/main","pushedAt":"2024-05-29T20:32:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"bump version number","shortMessageHtmlLink":"bump version number"}},{"before":"927b41bc446774d43edb81eefb5d7241a70623ad","after":"34f4f010fe5dd6b46457642836fda04d30a0b7ae","ref":"refs/heads/main","pushedAt":"2024-05-29T04:36:58.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"After changing how prefs work, I forgot to change MathRate and PauseFactor to be numbers, not strings.","shortMessageHtmlLink":"After changing how prefs work, I forgot to change MathRate and PauseF…"}},{"before":"c0feab4689de047e588fbe0b5fb491aef49f7536","after":"927b41bc446774d43edb81eefb5d7241a70623ad","ref":"refs/heads/main","pushedAt":"2024-05-22T20:02:47.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"add test profile to cut down on test time","shortMessageHtmlLink":"add test profile to cut down on test time"}},{"before":"6e7fecd9322bfa8c47c3f3a331bd9f147de61491","after":"c0feab4689de047e588fbe0b5fb491aef49f7536","ref":"refs/heads/main","pushedAt":"2024-05-22T00:09:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Update documentation to add `IfThenElse` to what needs to be translated.\n\nAdded `IFTHENELSE` as translate target and tested by updating sv directory.","shortMessageHtmlLink":"Update documentation to add IfThenElse to what needs to be translated."}},{"before":"f42f5bf91aa8e81a5be26db2e1f1638600902d09","after":"6e7fecd9322bfa8c47c3f3a331bd9f147de61491","ref":"refs/heads/main","pushedAt":"2024-05-21T23:37:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Merge SV files to main (#267)\n\n* Add Swedish rules\r\n\r\n* fixed problem with left/right phrase\r\n\r\n* Swedish translation of speech complete (#266)\r\n\r\n* added commented out rules for new unicode chemistry arrows -- more work needs to be done to verify them.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Changed pronounciation of inverse function.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Move the testing files to a tw subdir.\r\n\r\nModify the tests to reflect the new location/name.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Fixes #217\r\n\r\nThis bug had two issues:\r\n1. The chemistry code threw out ids on elements that were marked as `data-change=\"added\"`. However, if they had an id already, then they had been parsed, so no need to reparse and lose the idea.\r\n\r\n2. Moving into the base of a script that had parens passed in the contents of the parens instead of the parens. This caused the test that determines whether in base or script to failed. This fix has to be made to all languages (but doesn't involve speech).\r\n\r\n* Additional Nemeth tests from other sources, mainly from bugs/issues\r\n\r\n* Added translations for some provisional chemistry equilibrium characters to be added to Unicode\r\n\r\n* fix clippy warnings\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Fixed pronounciation issues concerning logarithms\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update ClearSpeak_Rules.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add clippy to what runs after a push or PR\r\n\r\n* Fix clippy warnings that only show up when run from push (!?)\r\n\r\n* added acknowledgement for Chinese\r\n\r\n* Added \"ReplaceAll\" string function\r\n\r\nFixes #235\r\n\r\n* added speech output for Roman numbers\r\n\r\n* comment out debug\r\n\r\n* Another look at the CSS whitespace collapse rules and adjusted code and tests appropriately.\r\n\r\nWhitespace is:\r\n* collapsed in the middle of text\r\n* if there are embedded elements, the code just grabs their text, so any whitespace around them should be collapsed\r\n* removed at the start/end of tokens\r\n```\r\n\r\nAs an example:\r\n1 a\r\n first x secondthird\r\n last y\r\n```\r\nshould display as `1 a first x secondthird last y`.\r\nNote that the empty `foo` element doesn't add whitespace.\r\nAlso note that ` x second` has a single space before \"x\" (the `y` contents merge into the `mtext`) and the spaces after the \"x\" are collapsed to a single space.\r\n\r\nFixes #242\r\n\r\n* Added `mn` to tags allowed to be marked as MAYBE_CHEMISTRY. It should have the value of 0.\r\n\r\n* bump version number\r\n\r\n* Work on Vietnam braille rules\r\nModulo some feedback, this fixes a number of bugs:\r\n* Fixes #238\r\n* Fixes #237\r\n* Fixes #236\r\n\r\nThere is now just one braille test failure (modulo feedback): test_3a which is a `.`/`,` problem/ambiguity\r\n\r\n* Add data-number to all Roman numerals. This allows speech to speak the number as opposed to the letters if desired.\r\nThis was partially done before for chemistry valances\r\n\r\nFix two bugs in the test for Roman numerals:\r\n* the code should have look at preceeding and following tokens (only looked in one direction)\r\n* changed the list of acceptable operators to includ `=`, `<`, etc. Removed `,` and `.` because otherwise intervals such as `c, d` are accepted.\r\n\r\n* added crate to convert roman numerals to ints\r\n\r\n* added Vietnam tests\r\n\r\n* Fix #240 -- speaking roman numerals inside and outside of chemistry\r\n\r\n* Added proposed unicode characters for chemistry\r\n\r\nAdded \"1\" that was missing from some values.\r\n\r\n* Added a second `definitions.yaml` file to `PreferenceManager` -- this one for braille.\r\n\r\nCurrently this is supported via a hack that does all the work of reading in the *Languages* version of the def file based on what language is associated with a braille code. This system is a hack. #12 has a suggestion of a better way to do it. But that depends upon #11 and possibly some changes to the speech rule implementation.\r\n\r\nFor now, this fixes a bug where the \"Vietnam\" braille code doesn't work if the speech language is not Vietnamese.\r\n\r\n* bump version #\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add another file\r\n\r\n* add some python checking flags\r\n\r\n* Add left/right angle bracket chars with same defs as other left/right angle bracket chars\r\n\r\n* remove old comment\r\n\r\n* Add accented vowels to rules to check for putting together strings of characters into a single `mi`\r\n\r\n* \"㏇\" had an almost certainly bad translation, but I can't figure out what it should really be. It is in the CJK block and will never show up. I've changed it to a descriptive \"cap C, o, period\" reading.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Some Unicode fixes\r\n\r\nSome Unicode fixes, including e.g. arrows, fonts & greek pronounciation\r\n\r\n* Remove duplicate proposed unicode chars.\r\n\r\n* Fix #244: bug with spacing and prefix \"~\"\r\n\r\n* Fix #245\r\n\r\nChange the support for '𝟙' in the unicode files to pull the G1 word indicator to the start of the word in which it resides.\r\n\r\n* Fix #245\r\n\r\nChange the support for '𝟙' in the unicode files to pull the G1 word indicator to the start of the word in which it resides.\r\n\r\n* Left this file out as part of previous commit for fixing #245.\r\n\r\n* Some minor fixes.\r\n\r\n* Add more cases for $Impairment -- added only for English only so far.\r\nDid a little tweaking to the pauses.\r\nFixes #194\r\n\r\nAdded some tests for this and also tweaked the expected results to do the pausing tweaks.\r\n\r\nFrom UEB branch accidental commit.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add a check for prefix `~` to make sure it is in an mrow.\r\nAdd a test for it.\r\n\r\n* Update unicode.yaml\r\n\r\n* Changed some aoperators to the definitive form.\r\n\r\n* Made fixes of pronunciations.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* update timeline and add to acknowledgements\r\n\r\n* timeline tweaks\r\n\r\n* timeline tweaks\r\n\r\n* Added pauses before fractions to reduce ambiguity.\r\n\r\n* Bug fixing after user testing.\r\n\r\n* Update general.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Part one of major changes to preferences and reading files.\r\n\r\nThis brings include files to the definitions.yaml file\r\nThis gets rid of the the max three locations for the file and depends on using includes.\r\n\r\nThis is not working yet. I need to fix the order of calling done.\r\nThe next big step is to move the files used out of preferences (just leaving the head) and moving the timestamps into\r\nthe rules.\r\n\r\n* Finished up redoing prefs, tracking including files, and make sure all files are up to date\r\nIt passes all the tests now.\r\n\r\nThe definitions files were modified to allow hashmaps, along with existing vectors and hashset. Also \"include\" is now allowed. I changed the format of the defs files some.\r\n\r\nAlso, there is a separate defs file for braille -- currently they just point to the corresponding defs file in the language dir, but these can be cleaned up and some definitions moved out of the common file and into a common braille file or specific file.\r\n\r\nFixes: #12\r\nFixes: #13\r\n\r\n* remove extra set_rules_dir calls\r\n\r\n* Tweaked setting up the preferences. This wasn't quite right if initialize() was called twice because the was trying to be too efficient.\r\n\r\n* Adding Swedish braille.\r\n\r\n* Two big speedups:\r\n1. CannonicalizeContext creates several Regexs that are based on preference values. Hence, they get created everytime a context is created. Creating CannonicalizeContext use to be cheap, so it was done to check if an operator had a property such as being a fence. This was the cause of the slowdown identified in #248. The fix is avoid the creation of CannonicalizeContext and make find_operator a static class method.\r\n\r\n2. The newly introduced preference and FileAndTime code had redundencies with the \"update()\" and \"read_files()\" calls. This resulted in a lot of extra system calls to check the time. This was maybe a 20% speed up.\r\n\r\nFixes #248\r\n\r\n* Caching the regex patterns that are created when creating a new CanoncializeContext -- these are pref-based so they can't be static. The speed difference is > 70% in CanoncializeContext::new() and maybe 30% overall for set, speech, and braille(!).\r\n\r\n* Add a preference `CheckRuleFiles ` with values `All`, `Prefs`, and `None` to tell MathCAT whether it should check the Rule files on every call (set_mathml, get speech/braille, or navigate) to see if they have changed.\r\n\r\nFixes #249\r\n\r\n* fix 'up-to-date-test' that I tweaked and broke\r\n\r\n* Update the documentation with CheckRuleFiles and new timings.\r\n\r\n* Changed default for `CheckRuleFiles` from \"All\" to \"Prefs\" as that makes the most sense for a default.\r\n\r\nUpdated documentation to match.\r\n\r\n* &PathBuf -> &Path for defs file\r\n\r\n* better error messages\r\n\r\n* Added Finnish and Swedish support into braille.rs so that work can be done on those codes using the main branch.\r\n\r\nRules/prefs.yaml picks up another option which should be integrated with the UEB option of the same name (need to change Rule files for UEB).\r\n\r\n* Changes agreed upon after user testing.\r\n\r\n* Changed rule for reading out \"bråk/slut bråk\" and \"division/slut division\".\r\n\r\n* tweak some grammar\r\n\r\n* change Swedish/Finnish timeline\r\n\r\n* Add a special case when finding definitions.yaml to not include a base case in the Rules directory. It missings the required defs for ordinal numbers, etc. As I split the definitions.yaml file up, this check may need to change.\r\n\r\nFixes #250\r\nI couldn't find a problem for the other problem found in #250 (`overview.yaml`)\r\n\r\n* Added include statements in definitions.yaml\r\n\r\n* Wrote some code that grabs SRE's \"euro\" 8-dot braille maps and converts it to MathCAT's unicode.yaml format. I don't think SRE's mappings make much sense. I'll need to wait to here from some people to see if this was useful or not.\r\n\r\n* Update to work with main branch\r\n\r\n* Added get_navigation_node_from_braille_position(). Tested for Nemeth, UEB, and CMU.\r\n\r\nFixes #125\r\n\r\n* update version number due to new interfaces\r\n\r\n* The psuedo script code was too agressive for something like `x*y`.\r\nThe fix is not great because it is looking for a `mo` that follows `*` (ignoring `(`, `[`, and `{`). This is a weak hueristic and likely needs more thought.\r\n\r\n* is_defined_in() needs to know if it should check the braille or speech definitions, so an arg was added.\r\n\r\nI made the xpath function accept 2 or 3 args, with 2 args meaning \"use speech defs\" as a temporary compatibility measure rather than changing all the occurences in the rules -- they do need to change eventually.\r\n\r\n* Initial, very incomplete attempt at EuroBraille.\r\n\r\n* More work on EuroBraille\r\n1. There are some problems with spacing\r\n2. I used latex-symbols.htm to scrape LaTeX <=> Unicode symbols, but it has problems. Need to look elsewhere or do a lot of cleanup\r\n\r\n* Added braille-to-ascii functions for EuroBraille\r\n\r\nMore scraping of tables for latex\r\n\r\n* Mostly complete EuroBraille implementation.\r\nThere are some bugs with spacing that I need guidance on.\r\n\r\nPasses 25 of 27, with the 2 fails being spacing issues.\r\n\r\n* Some reference starting data\r\n\r\n* Changed DefinitionValue so that it returns the key if the key is not in the table\r\nThis means that asking for the value of \"km\" returns something sensible if \"km\" is not defined.\r\n\r\n* Missed two places for previous update\r\n\r\n* Fixed the munder and mover rules.\r\n\r\n* Fixed pausing in munder and mover rules.\r\n\r\n* is_defined_in() needs to know if it should check the braille or speech definitions, so an arg was added.\r\n\r\nI made the xpath function accept 2 or 3 args, with 2 args meaning \"use speech defs\" as a temporary compatibility measure rather than changing all the occurences in the rules -- they do need to change eventually.\r\n\r\n* The psuedo script code was too agressive for something like `x*y`.\r\nThe fix is not great because it is looking for a `mo` that follows `*` (ignoring `(`, `[`, and `{`). This is a weak hueristic and likely needs more thought.\r\n\r\n* After merging in a fix to pseudo scripts, testing turned up a bug. Now fixed.\r\n\r\n* Removed the pre-check that the definitions.yaml file entries for ordinals exist. Instead, the \"None\" value gets propogated up to the xpath function that then returns the \"raw\" number. Seems like a better fallback.\r\n\r\n* Added \"LanguageAuto\" to support automatic language switching. Strangely, I didn't modify MathCATForPython and the auto switching is now working(?!). MathCATForPython should really be setting \"LanguageAuto\" preference when the voice changes.\r\n\r\n* bump version\r\n\r\n* Added code to handle unicode.yaml (which I should have used in the first place)\r\n\r\n* Added full set of names based on unicode.xml\r\n\r\nChanged from emitting dots to using text based on feedback\r\n\r\nRenamed \"EuroBraille\" to \"LaTeX\"\r\n\r\nStill need to look through name list some more.\r\n\r\n* Brought in unicode.xml (full list of all names)\r\nAbout 4,000 chars are now defined.\r\nI spot checked a bunch of char names and they all seem to be the ones that will be used.\r\n\r\nStill need to deal with menclose.\r\n\r\nAdded more tests: 33 out of 35 pass. The two fails are due to spacing, and one of them is almost certainly a bad spec example.\r\n\r\n* Brought in unicode.xml (full list of all names)\r\nAbout 4,000 chars are now defined.\r\nI spot checked a bunch of char names and they all seem to be the ones that will be used.\r\n\r\nAdded in short name checks for the chars (LaTeX_UseShortName).\r\n\r\nStill need to deal with menclose.\r\n\r\nAdded more tests: 33 out of 35 pass. The two fails are due to spacing, and one of them is almost certainly a bad spec example.\r\n\r\n* Removed `python.analysis.diagnosticMode\": \"workspace\"` -- too many of my scripts have lint issues and this setting buries the warnings for the files I'm editing.\r\n\r\n* Somewhat hacked/cleaned up version of wikipedia page\r\n\r\n* Added comment about how the unicode files were derived.\r\n\r\n* Changed speech for \"hat\" to use hat only when it is a \"modified-variable\" (basically, mover).\r\nOtherwise, it uses \"caret\" so that `x^2` (those three chars) sounds better.\r\n\r\n* Added menclose rules and tests for them.\r\n\r\nI needed to make up latex for many of them as their don't appear to be standard names for the strikes and arrows (the closed in the cancel package, but that is very limited).\r\n\r\n* Remove a blank line...\r\n\r\n* Updated readme\r\n\r\n* Fix tests based on feedback that \"spec\" has typos\r\n\r\n* Add support for ASCIIMath (treated as braille so no intent)\r\nThere are 40 tests, but more are needed.\r\n\r\nLaTeX: added support for moveable limits\r\n\r\nsrc/xpath_functions.rs: added hashmaps to IsInDefinition and fixed DefinitionValue\r\n\r\n* Add support for ASCIIMath (treated as braille so no intent)\r\nThere are 40 tests, but more are needed.\r\n\r\nLaTeX: added support for moveable limits\r\n\r\nsrc/xpath_functions.rs: added hashmaps to IsInDefinition and fixed DefinitionValue\r\n\r\n* Added CopyAs pref for https://github.com/NSoiffer/MathCATForPython/issues/67\r\n\r\n* Added `get_navigation_braille()` to support CopyAs LaTeX and ASCIIMath\r\n\r\n* In the math alphanumeric block, there are italic chars. Changed to treating these as if they were automatic italics and hence are just regular chars.\r\n\r\nAlso for a few braille codes, the math alphanumerics were part of unicode.yaml instead of unicode-full.yaml. I move them over.\r\n\r\nFixes #258\r\n\r\n* Fix clippy warnings\r\n\r\n* update status\r\n\r\n* Add some more info about testing\r\n\r\n* Unicode fixes\r\n\r\nMore obscure unicode characters translated, plus changed \"punkt\" to \"prick\" for Newtonian derivative notation.\r\n\r\n* Update main page:\r\n* update current speech and braille translations\r\n* update JAWS info\r\n* update award donation\r\n\r\n* fix up problems with dollar signs\r\n\r\n* fix up problems with dollar signs, this time with\r\n\r\n* Make sure translations are lower case\r\n\r\n* update version #\r\n\r\n* testing a failure\r\n\r\n* Update unicode-full.yaml\r\n\r\nLots of obscure unicode characters translated as well as currently possible.\r\n\r\n* Fix crash when setting a langague that doesn't exist\r\n\r\n* Try again for crash fix\r\n\r\n* add spaces around mfrac -- mixed fractions are an example where no space does the wrong thing\r\n\r\n* add mixed fraction test\r\n\r\n* add some speech style changes in non-en dir tests\r\n\r\n* bump version #\r\n\r\n* Checked for alphanumeric digits and converted them to ascii digits (simplifies to ordinal calculation). Fixes #260.\r\n\r\nAlso checks for block separators and removes them.\r\n\r\n* Minor Unicode fixes\r\n\r\n* added ordinal test with non-ascii digits\r\n\r\n* I'm not sure if #261 was a real bug -- the test I made had a bug...\r\nThere is one maybe fix and a new test with non-ascii digits.\r\nFixes #261.\r\n\r\n* remove init_logger() calls\r\n\r\n* Fix #262 -- when resetting the speech style, the old style was being used because the prefs hadn't been updated\r\nThe test for this is too ugly to run in general because the only way I was able to replicate this was to change the prefs.yaml file. In general, I don't want to do this.\r\n\r\nFor testing, I added functionality to some zz rule files.\r\n\r\n* remove cut/paste extra bit\r\n\r\n* remove useless test left over while debugging\r\n\r\n* can't comment out function used in '#[ignore]' test\r\n\r\n* Minor unicode fixes\r\n\r\n* Fix up lint warnings\r\n\r\nAdd hack to deal with broken Nemeth chemistry ascii braille.\r\n\r\n* change println! to debug!\r\n\r\n* Change the way `set_preference` works.\r\n\r\nThe preferences previously were partioned into API and USER ones. `set_preference` would always write to the API prefs, thereby overriding any user preference.\r\n\r\nThis caused a problem for copy/paste which needs to change the braille code. I changed this so that API and USER prefs never override one another. `set_preference` now calls `set_string_pref` instead of `set_api_pref`. This function sets the API pref if the pref name is an API pref and the USER pref if the pref name is a USER pref.\r\n\r\nNote: user prefs, at least in NVDA, are typically changed via modifying prefs.yaml and the default is to reread that if that files changes.\r\n\r\n* improve comment\r\n\r\n* Fix casing of default values. The code use to change everything to lowercase but doesn't anymore. The defaults shouldn't matter, but maybe they do in some cases.\r\n\r\n* Set the user pref time even when the user pref file isn't there. This avoids rereading the prefs, which wipes out existing prefs.\r\n\r\nAdd some more tests of pref setting (didn't catch this problem though)\r\n\r\n* Various fixes after QA by mathematician\r\n\r\nMore coming\r\n\r\n* Fixes after QA\r\n\r\nSome more fixes after QA by mathematician.\r\n\r\n* Chemistry (#264)\r\n\r\n* Adding new Nemeth chemistry tests\r\n\r\n* add chemical element check for no subscripted indicator used\r\n\r\n* replace_children was wrong when the parent had a fixed number of children -- the children were never changed to the replacements.\r\n\r\n* ELEMENTS_WITH_FIXED_NUMBER_OF_CHILDREN had \"mmultiscripts\" and \"mlongdiv\", which do not have a fixed number of elements.\r\n};\r\n\r\n* remove debug statement\r\n\r\n* Rule for bullet \"•\" used wrong dots. See green book p99 or 2.5.1 in revised Nemeth chemistry braille code\r\n\r\n* Deal with chemistry case NH_2, where the N and H need to be split, but then the N needs to move to in front of the script.\r\n\r\nAdded test for this case.\r\n\r\n* Add ⋅∙• to the chars that don't require a superscript indicator.\r\n\r\nI found this with Lewis dot chemistry notation tests.\r\n\r\n* Fix a test -- shouldn't have been msubsup\r\n\r\n* Fix mroot rule when the index is a decimal integer. The case for that was missing.\r\n\r\n* removed init_logger from a test\r\n\r\n* Update (with lots of bug fixes and new chemistry cases) to match the updated BANA guidelines for Nemeth and chemistry\r\n\r\nSurprisingly, there was a bug/missing code for staggered scripts (I think superscript inside a subscript). That applies to non-chemistry also.\r\n\r\nThere are lots of fixes. One of the biggest is that something like HSO_4 wasn't split properly. And if there were prescripts, they weren't handled. If the result wasn't chemistry, I had to significantly improved the code to put it all back together.\r\n\r\nThere were some chemistry notations I hadn't see such as a prescript lewis dot.\r\n\r\nThere are some more chemistry notations to add, but I think I have the more common ones done.\r\n\r\nAdded a \"get_parent\" method to replace some ugly code that shows up a lot.\r\n\r\nAll tests pass, including 30 new Nemeth tests.\r\n\r\n* Added use of get_parent() in place of uglier code\r\n\r\n* removed init_logger\r\n\r\n* Add two more binomial notations to inference rules.\r\n\r\nAdd tests for them.\r\n\r\n* Italian seed (#263)\r\n\r\n* Seeding Italian settings\r\n\r\n* Initial Italian translation\r\n\r\nFixed all files except Unicode and Unicode Full, which will be later handled by scripts\r\n\r\n---------\r\n\r\nCo-authored-by: NSoiffer \r\n\r\n* fix linting problems\r\n\r\n* bump version number\r\n\r\n* Moved ZIPPED files references so they only matter for the webasm build\r\n\r\n* Put back building in the zip files. The python build is failing without them. I need to think of another way to separate the Rules files from the binary (for all but the wasm/mathcatdemo) project.\r\n\r\n* nothing important -- want to make git happy\r\n\r\n* Revert \"Moved ZIPPED files references so they only matter for the webasm build\"\r\n\r\nThis reverts commit 616886662c90d25bb893a4614019391b5225ce05.\r\n\r\n* Fix extra line I accidentally added\r\n\r\n* comment out debug!\r\n\r\n* Spotted a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)\r\n\r\n* Comment out debug!() statements\r\n\r\n* Added turning off braille highlights for testing\r\n\r\n* Spotted a bug (kind of typo) in braille_mathml() where the calculated end was the number of chars/3 instead of bytes/3.\r\n\r\nThis exposed a problem in finding the highlight where the code got stuck on an invisible char that isn't in the braille. I added a case to detect this and then move on to the right.\r\n\r\n* Fixed bug that manifested itself in doc_order() not returning the right order. The problem was that the temporary navigation tree wasn't attached a a \"Root\" node.\r\n\r\nI fixed that, added copy_mathml() to prevent the tree structure in the original from being wrong with a math tag is added around the navigaiton math. There were also another spot that needed to be attached to a root. I cleaned up some existing code dealing with this.\r\n\r\n* bump version #\r\n\r\n* bump version number\r\n\r\n* Change \":structure\" to \":literal\" as per the Math WG's decision on the name.\r\n\r\n* Update definitions.yaml\r\n\r\n* Update definitions.yaml\r\n\r\n* Update definitions.yaml\r\n\r\n* Update languages.rs\r\n\r\n* Changed language code in test files\r\n\r\n* Update shared.rs with some translated tests\r\n\r\n* Tests & intervals\r\n\r\nA few tests translated, also fixed the intervals function in ClearSpeak to better reflect the Swedish way of speaking intervals.\r\n\r\n* More tests translated\r\n\r\n* Update mroot.rs\r\n\r\n* Translated SimpleSpeak:functions.rs\r\n\r\n* Update geometry.rs\r\n\r\n* Translated SimpleSpeak:linear_algebra.rs\r\n\r\n* Translated SimpleSpeak:large_ops.rs\r\n\r\n* Translated SimpleSpeak:mfrac.rs\r\n\r\n* Translated SimpleSpeak:msup.rs\r\n\r\n* Translated SimpleSpeak:multiline.rs\r\n\r\n* Update functions.rs\r\n\r\n* Update unicode.yaml\r\n\r\n* More tests translated\r\n\r\n* Update functions.rs\r\n\r\n* Update functions.rs\r\n\r\n* New test results\r\n\r\n* Translated SimpleSpeak:sets.rs\r\n\r\n* Bug fix functions.rs\r\n\r\n* Bug fix linear_algebra.rs\r\n\r\n* Final translations of shared.rs\r\n\r\n* Translated mtable.rs\r\n\r\n* More tests translated\r\n\r\n* New test results file\r\n\r\n* Bug fix sets.rs\r\n\r\n* Final translations in mtable.rs\r\n\r\n* More tests translated plus new test results file\r\n\r\n* More tests\r\n\r\n* Clean up of ClearSpeak_Rules.yaml\r\n\r\n* Clean up of SimpleSpeak_Rules.yaml\r\n\r\n* More clean up\r\n\r\n* Clean up of Unicode-full.yaml\r\n\r\n* More clean up\r\n\r\n* Last batch of tests translated\r\n\r\n---------\r\n\r\nCo-authored-by: NSoiffer \r\nCo-authored-by: Tim Arborealis \r\nCo-authored-by: Otto Ewald \r\nCo-authored-by: Dang Hoai Phúc \r\nCo-authored-by: NSoiffer \r\nCo-authored-by: Tnonis90 <163522629+Tnonis90@users.noreply.github.com>\r\n\r\n* update to make merge to main happy\r\n\r\n---------\r\n\r\nCo-authored-by: AndersEkl <39799609+AndersEkl@users.noreply.github.com>\r\nCo-authored-by: Tim Arborealis \r\nCo-authored-by: Otto Ewald \r\nCo-authored-by: Dang Hoai Phúc \r\nCo-authored-by: Tnonis90 <163522629+Tnonis90@users.noreply.github.com>","shortMessageHtmlLink":"Merge SV files to main (#267)"}},{"before":"d78bd33fcd603d83e4c2c744cb14ceac9f5f4a00","after":"bb9c5b91e0536408aa3f0efe7f8d7e0546a7e1dc","ref":"refs/heads/sv","pushedAt":"2024-05-21T23:29:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Merge branch 'main' into interface-additions","shortMessageHtmlLink":"Merge branch 'main' into interface-additions"}},{"before":"9f873c3ac42f768f3253db441f36e869c62d40fc","after":"f42f5bf91aa8e81a5be26db2e1f1638600902d09","ref":"refs/heads/main","pushedAt":"2024-05-21T23:23:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"ignore the per/directory zip files","shortMessageHtmlLink":"ignore the per/directory zip files"}},{"before":"a3e8397810db521858f9de4c015e5d4810691532","after":"89939f114e72d29ceb2a59abeb914910c0177493","ref":"refs/heads/zip","pushedAt":"2024-05-21T04:43:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"ignore the per/directory zip files","shortMessageHtmlLink":"ignore the per/directory zip files"}},{"before":"8cc31ede5a0d75fa0c14ac430ca8c92045b77f02","after":"a3e8397810db521858f9de4c015e5d4810691532","ref":"refs/heads/zip","pushedAt":"2024-05-21T04:42:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Zips up each Language and Braille dir individually.\n\nChanged to using bzip2 for compression as it seems to be about 20% better size-wise.","shortMessageHtmlLink":"Zips up each Language and Braille dir individually."}},{"before":"51323aadddc4c6bedada89649d198b12b94a65d7","after":"d78bd33fcd603d83e4c2c744cb14ceac9f5f4a00","ref":"refs/heads/sv","pushedAt":"2024-05-21T04:40:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Swedish translation of speech complete (#266)\n\n* added commented out rules for new unicode chemistry arrows -- more work needs to be done to verify them.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Changed pronounciation of inverse function.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Move the testing files to a tw subdir.\r\n\r\nModify the tests to reflect the new location/name.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Fixes #217\r\n\r\nThis bug had two issues:\r\n1. The chemistry code threw out ids on elements that were marked as `data-change=\"added\"`. However, if they had an id already, then they had been parsed, so no need to reparse and lose the idea.\r\n\r\n2. Moving into the base of a script that had parens passed in the contents of the parens instead of the parens. This caused the test that determines whether in base or script to failed. This fix has to be made to all languages (but doesn't involve speech).\r\n\r\n* Additional Nemeth tests from other sources, mainly from bugs/issues\r\n\r\n* Added translations for some provisional chemistry equilibrium characters to be added to Unicode\r\n\r\n* fix clippy warnings\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Fixed pronounciation issues concerning logarithms\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update ClearSpeak_Rules.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add clippy to what runs after a push or PR\r\n\r\n* Fix clippy warnings that only show up when run from push (!?)\r\n\r\n* added acknowledgement for Chinese\r\n\r\n* Added \"ReplaceAll\" string function\r\n\r\nFixes #235\r\n\r\n* added speech output for Roman numbers\r\n\r\n* comment out debug\r\n\r\n* Another look at the CSS whitespace collapse rules and adjusted code and tests appropriately.\r\n\r\nWhitespace is:\r\n* collapsed in the middle of text\r\n* if there are embedded elements, the code just grabs their text, so any whitespace around them should be collapsed\r\n* removed at the start/end of tokens\r\n```\r\n\r\nAs an example:\r\n1 a\r\n first x secondthird\r\n last y\r\n```\r\nshould display as `1 a first x secondthird last y`.\r\nNote that the empty `foo` element doesn't add whitespace.\r\nAlso note that ` x second` has a single space before \"x\" (the `y` contents merge into the `mtext`) and the spaces after the \"x\" are collapsed to a single space.\r\n\r\nFixes #242\r\n\r\n* Added `mn` to tags allowed to be marked as MAYBE_CHEMISTRY. It should have the value of 0.\r\n\r\n* bump version number\r\n\r\n* Work on Vietnam braille rules\r\nModulo some feedback, this fixes a number of bugs:\r\n* Fixes #238\r\n* Fixes #237\r\n* Fixes #236\r\n\r\nThere is now just one braille test failure (modulo feedback): test_3a which is a `.`/`,` problem/ambiguity\r\n\r\n* Add data-number to all Roman numerals. This allows speech to speak the number as opposed to the letters if desired.\r\nThis was partially done before for chemistry valances\r\n\r\nFix two bugs in the test for Roman numerals:\r\n* the code should have look at preceeding and following tokens (only looked in one direction)\r\n* changed the list of acceptable operators to includ `=`, `<`, etc. Removed `,` and `.` because otherwise intervals such as `c, d` are accepted.\r\n\r\n* added crate to convert roman numerals to ints\r\n\r\n* added Vietnam tests\r\n\r\n* Fix #240 -- speaking roman numerals inside and outside of chemistry\r\n\r\n* Added proposed unicode characters for chemistry\r\n\r\nAdded \"1\" that was missing from some values.\r\n\r\n* Added a second `definitions.yaml` file to `PreferenceManager` -- this one for braille.\r\n\r\nCurrently this is supported via a hack that does all the work of reading in the *Languages* version of the def file based on what language is associated with a braille code. This system is a hack. #12 has a suggestion of a better way to do it. But that depends upon #11 and possibly some changes to the speech rule implementation.\r\n\r\nFor now, this fixes a bug where the \"Vietnam\" braille code doesn't work if the speech language is not Vietnamese.\r\n\r\n* bump version #\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add another file\r\n\r\n* add some python checking flags\r\n\r\n* Add left/right angle bracket chars with same defs as other left/right angle bracket chars\r\n\r\n* remove old comment\r\n\r\n* Add accented vowels to rules to check for putting together strings of characters into a single `mi`\r\n\r\n* \"㏇\" had an almost certainly bad translation, but I can't figure out what it should really be. It is in the CJK block and will never show up. I've changed it to a descriptive \"cap C, o, period\" reading.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Some Unicode fixes\r\n\r\nSome Unicode fixes, including e.g. arrows, fonts & greek pronounciation\r\n\r\n* Remove duplicate proposed unicode chars.\r\n\r\n* Fix #244: bug with spacing and prefix \"~\"\r\n\r\n* Fix #245\r\n\r\nChange the support for '𝟙' in the unicode files to pull the G1 word indicator to the start of the word in which it resides.\r\n\r\n* Fix #245\r\n\r\nChange the support for '𝟙' in the unicode files to pull the G1 word indicator to the start of the word in which it resides.\r\n\r\n* Left this file out as part of previous commit for fixing #245.\r\n\r\n* Some minor fixes.\r\n\r\n* Add more cases for $Impairment -- added only for English only so far.\r\nDid a little tweaking to the pauses.\r\nFixes #194\r\n\r\nAdded some tests for this and also tweaked the expected results to do the pausing tweaks.\r\n\r\nFrom UEB branch accidental commit.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Add a check for prefix `~` to make sure it is in an mrow.\r\nAdd a test for it.\r\n\r\n* Update unicode.yaml\r\n\r\n* Changed some aoperators to the definitive form.\r\n\r\n* Made fixes of pronunciations.\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* update timeline and add to acknowledgements\r\n\r\n* timeline tweaks\r\n\r\n* timeline tweaks\r\n\r\n* Added pauses before fractions to reduce ambiguity.\r\n\r\n* Bug fixing after user testing.\r\n\r\n* Update general.yaml\r\n\r\n* Update unicode-full.yaml\r\n\r\n* Part one of major changes to preferences and reading files.\r\n\r\nThis brings include files to the definitions.yaml file\r\nThis gets rid of the the max three locations for the file and depends on using includes.\r\n\r\nThis is not working yet. I need to fix the order of calling done.\r\nThe next big step is to move the files used out of preferences (just leaving the head) and moving the timestamps into\r\nthe rules.\r\n\r\n* Finished up redoing prefs, tracking including files, and make sure all files are up to date\r\nIt passes all the tests now.\r\n\r\nThe definitions files were modified to allow hashmaps, along with existing vectors and hashset. Also \"include\" is now allowed. I changed the format of the defs files some.\r\n\r\nAlso, there is a separate defs file for braille -- currently they just point to the corresponding defs file in the language dir, but these can be cleaned up and some definitions moved out of the common file and into a common braille file or specific file.\r\n\r\nFixes: #12\r\nFixes: #13\r\n\r\n* remove extra set_rules_dir calls\r\n\r\n* Tweaked setting up the preferences. This wasn't quite right if initialize() was called twice because the was trying to be too efficient.\r\n\r\n* Adding Swedish braille.\r\n\r\n* Two big speedups:\r\n1. CannonicalizeContext creates several Regexs that are based on preference values. Hence, they get created everytime a context is created. Creating CannonicalizeContext use to be cheap, so it was done to check if an operator had a property such as being a fence. This was the cause of the slowdown identified in #248. The fix is avoid the creation of CannonicalizeContext and make find_operator a static class method.\r\n\r\n2. The newly introduced preference and FileAndTime code had redundencies with the \"update()\" and \"read_files()\" calls. This resulted in a lot of extra system calls to check the time. This was maybe a 20% speed up.\r\n\r\nFixes #248\r\n\r\n* Caching the regex patterns that are created when creating a new CanoncializeContext -- these are pref-based so they can't be static. The speed difference is > 70% in CanoncializeContext::new() and maybe 30% overall for set, speech, and braille(!).\r\n\r\n* Add a preference `CheckRuleFiles ` with values `All`, `Prefs`, and `None` to tell MathCAT whether it should check the Rule files on every call (set_mathml, get speech/braille, or navigate) to see if they have changed.\r\n\r\nFixes #249\r\n\r\n* fix 'up-to-date-test' that I tweaked and broke\r\n\r\n* Update the documentation with CheckRuleFiles and new timings.\r\n\r\n* Changed default for `CheckRuleFiles` from \"All\" to \"Prefs\" as that makes the most sense for a default.\r\n\r\nUpdated documentation to match.\r\n\r\n* &PathBuf -> &Path for defs file\r\n\r\n* better error messages\r\n\r\n* Added Finnish and Swedish support into braille.rs so that work can be done on those codes using the main branch.\r\n\r\nRules/prefs.yaml picks up another option which should be integrated with the UEB option of the same name (need to change Rule files for UEB).\r\n\r\n* Changes agreed upon after user testing.\r\n\r\n* Changed rule for reading out \"bråk/slut bråk\" and \"division/slut division\".\r\n\r\n* tweak some grammar\r\n\r\n* change Swedish/Finnish timeline\r\n\r\n* Add a special case when finding definitions.yaml to not include a base case in the Rules directory. It missings the required defs for ordinal numbers, etc. As I split the definitions.yaml file up, this check may need to change.\r\n\r\nFixes #250\r\nI couldn't find a problem for the other problem found in #250 (`overview.yaml`)\r\n\r\n* Added include statements in definitions.yaml\r\n\r\n* Wrote some code that grabs SRE's \"euro\" 8-dot braille maps and converts it to MathCAT's unicode.yaml format. I don't think SRE's mappings make much sense. I'll need to wait to here from some people to see if this was useful or not.\r\n\r\n* Update to work with main branch\r\n\r\n* Added get_navigation_node_from_braille_position(). Tested for Nemeth, UEB, and CMU.\r\n\r\nFixes #125\r\n\r\n* update version number due to new interfaces\r\n\r\n* The psuedo script code was too agressive for something like `x*y`.\r\nThe fix is not great because it is looking for a `mo` that follows `*` (ignoring `(`, `[`, and `{`). This is a weak hueristic and likely needs more thought.\r\n\r\n* is_defined_in() needs to know if it should check the braille or speech definitions, so an arg was added.\r\n\r\nI made the xpath function accept 2 or 3 args, with 2 args meaning \"use speech defs\" as a temporary compatibility measure rather than changing all the occurences in the rules -- they do need to change eventually.\r\n\r\n* Initial, very incomplete attempt at EuroBraille.\r\n\r\n* More work on EuroBraille\r\n1. There are some problems with spacing\r\n2. I used latex-symbols.htm to scrape LaTeX <=> Unicode symbols, but it has problems. Need to look elsewhere or do a lot of cleanup\r\n\r\n* Added braille-to-ascii functions for EuroBraille\r\n\r\nMore scraping of tables for latex\r\n\r\n* Mostly complete EuroBraille implementation.\r\nThere are some bugs with spacing that I need guidance on.\r\n\r\nPasses 25 of 27, with the 2 fails being spacing issues.\r\n\r\n* Some reference starting data\r\n\r\n* Changed DefinitionValue so that it returns the key if the key is not in the table\r\nThis means that asking for the value of \"km\" returns something sensible if \"km\" is not defined.\r\n\r\n* Missed two places for previous update\r\n\r\n* Fixed the munder and mover rules.\r\n\r\n* Fixed pausing in munder and mover rules.\r\n\r\n* is_defined_in() needs to know if it should check the braille or speech definitions, so an arg was added.\r\n\r\nI made the xpath function accept 2 or 3 args, with 2 args meaning \"use speech defs\" as a temporary compatibility measure rather than changing all the occurences in the rules -- they do need to change eventually.\r\n\r\n* The psuedo script code was too agressive for something like `x*y`.\r\nThe fix is not great because it is looking for a `mo` that follows `*` (ignoring `(`, `[`, and `{`). This is a weak hueristic and likely needs more thought.\r\n\r\n* After merging in a fix to pseudo scripts, testing turned up a bug. Now fixed.\r\n\r\n* Removed the pre-check that the definitions.yaml file entries for ordinals exist. Instead, the \"None\" value gets propogated up to the xpath function that then returns the \"raw\" number. Seems like a better fallback.\r\n\r\n* Added \"LanguageAuto\" to support automatic language switching. Strangely, I didn't modify MathCATForPython and the auto switching is now working(?!). MathCATForPython should really be setting \"LanguageAuto\" preference when the voice changes.\r\n\r\n* bump version\r\n\r\n* Added code to handle unicode.yaml (which I should have used in the first place)\r\n\r\n* Added full set of names based on unicode.xml\r\n\r\nChanged from emitting dots to using text based on feedback\r\n\r\nRenamed \"EuroBraille\" to \"LaTeX\"\r\n\r\nStill need to look through name list some more.\r\n\r\n* Brought in unicode.xml (full list of all names)\r\nAbout 4,000 chars are now defined.\r\nI spot checked a bunch of char names and they all seem to be the ones that will be used.\r\n\r\nStill need to deal with menclose.\r\n\r\nAdded more tests: 33 out of 35 pass. The two fails are due to spacing, and one of them is almost certainly a bad spec example.\r\n\r\n* Brought in unicode.xml (full list of all names)\r\nAbout 4,000 chars are now defined.\r\nI spot checked a bunch of char names and they all seem to be the ones that will be used.\r\n\r\nAdded in short name checks for the chars (LaTeX_UseShortName).\r\n\r\nStill need to deal with menclose.\r\n\r\nAdded more tests: 33 out of 35 pass. The two fails are due to spacing, and one of them is almost certainly a bad spec example.\r\n\r\n* Removed `python.analysis.diagnosticMode\": \"workspace\"` -- too many of my scripts have lint issues and this setting buries the warnings for the files I'm editing.\r\n\r\n* Somewhat hacked/cleaned up version of wikipedia page\r\n\r\n* Added comment about how the unicode files were derived.\r\n\r\n* Changed speech for \"hat\" to use hat only when it is a \"modified-variable\" (basically, mover).\r\nOtherwise, it uses \"caret\" so that `x^2` (those three chars) sounds better.\r\n\r\n* Added menclose rules and tests for them.\r\n\r\nI needed to make up latex for many of them as their don't appear to be standard names for the strikes and arrows (the closed in the cancel package, but that is very limited).\r\n\r\n* Remove a blank line...\r\n\r\n* Updated readme\r\n\r\n* Fix tests based on feedback that \"spec\" has typos\r\n\r\n* Add support for ASCIIMath (treated as braille so no intent)\r\nThere are 40 tests, but more are needed.\r\n\r\nLaTeX: added support for moveable limits\r\n\r\nsrc/xpath_functions.rs: added hashmaps to IsInDefinition and fixed DefinitionValue\r\n\r\n* Add support for ASCIIMath (treated as braille so no intent)\r\nThere are 40 tests, but more are needed.\r\n\r\nLaTeX: added support for moveable limits\r\n\r\nsrc/xpath_functions.rs: added hashmaps to IsInDefinition and fixed DefinitionValue\r\n\r\n* Added CopyAs pref for https://github.com/NSoiffer/MathCATForPython/issues/67\r\n\r\n* Added `get_navigation_braille()` to support CopyAs LaTeX and ASCIIMath\r\n\r\n* In the math alphanumeric block, there are italic chars. Changed to treating these as if they were automatic italics and hence are just regular chars.\r\n\r\nAlso for a few braille codes, the math alphanumerics were part of unicode.yaml instead of unicode-full.yaml. I move them over.\r\n\r\nFixes #258\r\n\r\n* Fix clippy warnings\r\n\r\n* update status\r\n\r\n* Add some more info about testing\r\n\r\n* Unicode fixes\r\n\r\nMore obscure unicode characters translated, plus changed \"punkt\" to \"prick\" for Newtonian derivative notation.\r\n\r\n* Update main page:\r\n* update current speech and braille translations\r\n* update JAWS info\r\n* update award donation\r\n\r\n* fix up problems with dollar signs\r\n\r\n* fix up problems with dollar signs, this time with\r\n\r\n* Make sure translations are lower case\r\n\r\n* update version #\r\n\r\n* testing a failure\r\n\r\n* Update unicode-full.yaml\r\n\r\nLots of obscure unicode characters translated as well as currently possible.\r\n\r\n* Fix crash when setting a langague that doesn't exist\r\n\r\n* Try again for crash fix\r\n\r\n* add spaces around mfrac -- mixed fractions are an example where no space does the wrong thing\r\n\r\n* add mixed fraction test\r\n\r\n* add some speech style changes in non-en dir tests\r\n\r\n* bump version #\r\n\r\n* Checked for alphanumeric digits and converted them to ascii digits (simplifies to ordinal calculation). Fixes #260.\r\n\r\nAlso checks for block separators and removes them.\r\n\r\n* Minor Unicode fixes\r\n\r\n* added ordinal test with non-ascii digits\r\n\r\n* I'm not sure if #261 was a real bug -- the test I made had a bug...\r\nThere is one maybe fix and a new test with non-ascii digits.\r\nFixes #261.\r\n\r\n* remove init_logger() calls\r\n\r\n* Fix #262 -- when resetting the speech style, the old style was being used because the prefs hadn't been updated\r\nThe test for this is too ugly to run in general because the only way I was able to replicate this was to change the prefs.yaml file. In general, I don't want to do this.\r\n\r\nFor testing, I added functionality to some zz rule files.\r\n\r\n* remove cut/paste extra bit\r\n\r\n* remove useless test left over while debugging\r\n\r\n* can't comment out function used in '#[ignore]' test\r\n\r\n* Minor unicode fixes\r\n\r\n* Fix up lint warnings\r\n\r\nAdd hack to deal with broken Nemeth chemistry ascii braille.\r\n\r\n* change println! to debug!\r\n\r\n* Change the way `set_preference` works.\r\n\r\nThe preferences previously were partioned into API and USER ones. `set_preference` would always write to the API prefs, thereby overriding any user preference.\r\n\r\nThis caused a problem for copy/paste which needs to change the braille code. I changed this so that API and USER prefs never override one another. `set_preference` now calls `set_string_pref` instead of `set_api_pref`. This function sets the API pref if the pref name is an API pref and the USER pref if the pref name is a USER pref.\r\n\r\nNote: user prefs, at least in NVDA, are typically changed via modifying prefs.yaml and the default is to reread that if that files changes.\r\n\r\n* improve comment\r\n\r\n* Fix casing of default values. The code use to change everything to lowercase but doesn't anymore. The defaults shouldn't matter, but maybe they do in some cases.\r\n\r\n* Set the user pref time even when the user pref file isn't there. This avoids rereading the prefs, which wipes out existing prefs.\r\n\r\nAdd some more tests of pref setting (didn't catch this problem though)\r\n\r\n* Various fixes after QA by mathematician\r\n\r\nMore coming\r\n\r\n* Fixes after QA\r\n\r\nSome more fixes after QA by mathematician.\r\n\r\n* Chemistry (#264)\r\n\r\n* Adding new Nemeth chemistry tests\r\n\r\n* add chemical element check for no subscripted indicator used\r\n\r\n* replace_children was wrong when the parent had a fixed number of children -- the children were never changed to the replacements.\r\n\r\n* ELEMENTS_WITH_FIXED_NUMBER_OF_CHILDREN had \"mmultiscripts\" and \"mlongdiv\", which do not have a fixed number of elements.\r\n};\r\n\r\n* remove debug statement\r\n\r\n* Rule for bullet \"•\" used wrong dots. See green book p99 or 2.5.1 in revised Nemeth chemistry braille code\r\n\r\n* Deal with chemistry case NH_2, where the N and H need to be split, but then the N needs to move to in front of the script.\r\n\r\nAdded test for this case.\r\n\r\n* Add ⋅∙• to the chars that don't require a superscript indicator.\r\n\r\nI found this with Lewis dot chemistry notation tests.\r\n\r\n* Fix a test -- shouldn't have been msubsup\r\n\r\n* Fix mroot rule when the index is a decimal integer. The case for that was missing.\r\n\r\n* removed init_logger from a test\r\n\r\n* Update (with lots of bug fixes and new chemistry cases) to match the updated BANA guidelines for Nemeth and chemistry\r\n\r\nSurprisingly, there was a bug/missing code for staggered scripts (I think superscript inside a subscript). That applies to non-chemistry also.\r\n\r\nThere are lots of fixes. One of the biggest is that something like HSO_4 wasn't split properly. And if there were prescripts, they weren't handled. If the result wasn't chemistry, I had to significantly improved the code to put it all back together.\r\n\r\nThere were some chemistry notations I hadn't see such as a prescript lewis dot.\r\n\r\nThere are some more chemistry notations to add, but I think I have the more common ones done.\r\n\r\nAdded a \"get_parent\" method to replace some ugly code that shows up a lot.\r\n\r\nAll tests pass, including 30 new Nemeth tests.\r\n\r\n* Added use of get_parent() in place of uglier code\r\n\r\n* removed init_logger\r\n\r\n* Add two more binomial notations to inference rules.\r\n\r\nAdd tests for them.\r\n\r\n* Italian seed (#263)\r\n\r\n* Seeding Italian settings\r\n\r\n* Initial Italian translation\r\n\r\nFixed all files except Unicode and Unicode Full, which will be later handled by scripts\r\n\r\n---------\r\n\r\nCo-authored-by: NSoiffer \r\n\r\n* fix linting problems\r\n\r\n* bump version number\r\n\r\n* Moved ZIPPED files references so they only matter for the webasm build\r\n\r\n* Put back building in the zip files. The python build is failing without them. I need to think of another way to separate the Rules files from the binary (for all but the wasm/mathcatdemo) project.\r\n\r\n* nothing important -- want to make git happy\r\n\r\n* Revert \"Moved ZIPPED files references so they only matter for the webasm build\"\r\n\r\nThis reverts commit 616886662c90d25bb893a4614019391b5225ce05.\r\n\r\n* Fix extra line I accidentally added\r\n\r\n* comment out debug!\r\n\r\n* Spotted a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)\r\n\r\n* Comment out debug!() statements\r\n\r\n* Added turning off braille highlights for testing\r\n\r\n* Spotted a bug (kind of typo) in braille_mathml() where the calculated end was the number of chars/3 instead of bytes/3.\r\n\r\nThis exposed a problem in finding the highlight where the code got stuck on an invisible char that isn't in the braille. I added a case to detect this and then move on to the right.\r\n\r\n* Fixed bug that manifested itself in doc_order() not returning the right order. The problem was that the temporary navigation tree wasn't attached a a \"Root\" node.\r\n\r\nI fixed that, added copy_mathml() to prevent the tree structure in the original from being wrong with a math tag is added around the navigaiton math. There were also another spot that needed to be attached to a root. I cleaned up some existing code dealing with this.\r\n\r\n* bump version #\r\n\r\n* bump version number\r\n\r\n* Change \":structure\" to \":literal\" as per the Math WG's decision on the name.\r\n\r\n* Update definitions.yaml\r\n\r\n* Update definitions.yaml\r\n\r\n* Update definitions.yaml\r\n\r\n* Update languages.rs\r\n\r\n* Changed language code in test files\r\n\r\n* Update shared.rs with some translated tests\r\n\r\n* Tests & intervals\r\n\r\nA few tests translated, also fixed the intervals function in ClearSpeak to better reflect the Swedish way of speaking intervals.\r\n\r\n* More tests translated\r\n\r\n* Update mroot.rs\r\n\r\n* Translated SimpleSpeak:functions.rs\r\n\r\n* Update geometry.rs\r\n\r\n* Translated SimpleSpeak:linear_algebra.rs\r\n\r\n* Translated SimpleSpeak:large_ops.rs\r\n\r\n* Translated SimpleSpeak:mfrac.rs\r\n\r\n* Translated SimpleSpeak:msup.rs\r\n\r\n* Translated SimpleSpeak:multiline.rs\r\n\r\n* Update functions.rs\r\n\r\n* Update unicode.yaml\r\n\r\n* More tests translated\r\n\r\n* Update functions.rs\r\n\r\n* Update functions.rs\r\n\r\n* New test results\r\n\r\n* Translated SimpleSpeak:sets.rs\r\n\r\n* Bug fix functions.rs\r\n\r\n* Bug fix linear_algebra.rs\r\n\r\n* Final translations of shared.rs\r\n\r\n* Translated mtable.rs\r\n\r\n* More tests translated\r\n\r\n* New test results file\r\n\r\n* Bug fix sets.rs\r\n\r\n* Final translations in mtable.rs\r\n\r\n* More tests translated plus new test results file\r\n\r\n* More tests\r\n\r\n* Clean up of ClearSpeak_Rules.yaml\r\n\r\n* Clean up of SimpleSpeak_Rules.yaml\r\n\r\n* More clean up\r\n\r\n* Clean up of Unicode-full.yaml\r\n\r\n* More clean up\r\n\r\n* Last batch of tests translated\r\n\r\n---------\r\n\r\nCo-authored-by: NSoiffer \r\nCo-authored-by: Tim Arborealis \r\nCo-authored-by: Otto Ewald \r\nCo-authored-by: Dang Hoai Phúc \r\nCo-authored-by: NSoiffer \r\nCo-authored-by: Tnonis90 <163522629+Tnonis90@users.noreply.github.com>","shortMessageHtmlLink":"Swedish translation of speech complete (#266)"}},{"before":"d1b1655b7bf1dc6e37b0910f683a90d0aebc70d5","after":"8cc31ede5a0d75fa0c14ac430ca8c92045b77f02","ref":"refs/heads/zip","pushedAt":"2024-05-15T06:13:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"NSoiffer","name":null,"path":"/NSoiffer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1545836?s=80&v=4"},"commit":{"message":"Now writes zip files with the correct paths for unzipping into the current dir\n\nCleaned up the code some","shortMessageHtmlLink":"Now writes zip files with the correct paths for unzipping into the cu…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZs_pBgA","startCursor":null,"endCursor":null}},"title":"Activity · NSoiffer/MathCAT"}