@@ -25,35 +25,38 @@ pub fn braille_mathml(mathml: Element, nav_node_id: &str) -> Result<(String, usi
2525 return BRAILLE_RULES . with ( |rules| {
2626 rules. borrow_mut ( ) . read_files ( ) ?;
2727 let rules = rules. borrow ( ) ;
28- let new_package = Package :: new ( ) ;
29- let mut rules_with_context = SpeechRulesWithContext :: new ( & rules, new_package. as_document ( ) , nav_node_id) ;
30- let braille_string = rules_with_context. match_pattern :: < String > ( mathml)
31- . chain_err ( || "Pattern match/replacement failure!" ) ?;
32- // debug!("braille_mathml: braille string: {}", &braille_string);
33- let braille_string = braille_string. replace ( ' ' , "" ) ;
34- let pref_manager = rules_with_context. get_rules ( ) . pref_manager . borrow ( ) ;
35- let highlight_style = pref_manager. pref_to_string ( "BrailleNavHighlight" ) ;
36- let braille_code = pref_manager. pref_to_string ( "BrailleCode" ) ;
37- let braille = match braille_code. as_str ( ) {
38- "Nemeth" => nemeth_cleanup ( pref_manager, braille_string) ,
39- "UEB" => ueb_cleanup ( pref_manager, braille_string) ,
40- "Vietnam" => vietnam_cleanup ( pref_manager, braille_string) ,
41- "CMU" => cmu_cleanup ( pref_manager, braille_string) ,
42- "Finnish" => finnish_cleanup ( pref_manager, braille_string) ,
43- "Swedish" => swedish_cleanup ( pref_manager, braille_string) ,
44- "LaTeX" => LaTeX_cleanup ( pref_manager, braille_string) ,
45- "ASCIIMath" => ASCIIMath_cleanup ( pref_manager, braille_string) ,
46- _ => braille_string. trim_matches ( '⠀' ) . to_string ( ) , // probably needs cleanup if someone has another code, but this will have to get added by hand
47- } ;
28+ return SPEECH_DEFINITIONS . with_borrow ( |definitions| {
29+ let new_package = Package :: new ( ) ;
30+ let mut rules_with_context =
31+ SpeechRulesWithContext :: new ( & rules, definitions, new_package. as_document ( ) , nav_node_id) ;
32+ let braille_string = rules_with_context. match_pattern :: < String > ( mathml)
33+ . chain_err ( || "Pattern match/replacement failure!" ) ?;
34+ // debug!("braille_mathml: braille string: {}", &braille_string);
35+ let braille_string = braille_string. replace ( ' ' , "" ) ;
36+ let pref_manager = rules_with_context. get_rules ( ) . pref_manager . borrow ( ) ;
37+ let highlight_style = pref_manager. pref_to_string ( "BrailleNavHighlight" ) ;
38+ let braille_code = pref_manager. pref_to_string ( "BrailleCode" ) ;
39+ let braille = match braille_code. as_str ( ) {
40+ "Nemeth" => nemeth_cleanup ( pref_manager, braille_string) ,
41+ "UEB" => ueb_cleanup ( pref_manager, braille_string) ,
42+ "Vietnam" => vietnam_cleanup ( pref_manager, braille_string) ,
43+ "CMU" => cmu_cleanup ( pref_manager, braille_string) ,
44+ "Finnish" => finnish_cleanup ( pref_manager, braille_string) ,
45+ "Swedish" => swedish_cleanup ( pref_manager, braille_string) ,
46+ "LaTeX" => LaTeX_cleanup ( pref_manager, braille_string) ,
47+ "ASCIIMath" => ASCIIMath_cleanup ( pref_manager, braille_string) ,
48+ _ => braille_string. trim_matches ( '⠀' ) . to_string ( ) , // probably needs cleanup if someone has another code, but this will have to get added by hand
49+ } ;
4850
49- return Ok (
50- if highlight_style != "Off" {
51- highlight_braille_chars ( braille, & braille_code, highlight_style == "All" )
52- } else {
53- let end = braille. len ( ) /3 ;
54- ( braille, 0 , end)
55- }
56- ) ;
51+ return Ok (
52+ if highlight_style != "Off" {
53+ highlight_braille_chars ( braille, & braille_code, highlight_style == "All" )
54+ } else {
55+ let end = braille. len ( ) /3 ;
56+ ( braille, 0 , end)
57+ }
58+ ) ;
59+ } ) ;
5760 } ) ;
5861
5962 /// highlight with dots 7 & 8 based on the highlight style
0 commit comments