# HG changeset patch # User wenzelm # Date 1309353816 -7200 # Node ID e67d104c0c5085c87655c9cb90cc550564c585f7 # Parent d4cbd6feffdf25affca29e241cf499d351f69063 HTML: render control symbols more like Isabelle/Scala/jEdit; diff -r d4cbd6feffdf -r e67d104c0c50 etc/isabelle.css --- a/etc/isabelle.css Tue Jun 28 10:52:15 2011 +0200 +++ b/etc/isabelle.css Wed Jun 29 15:23:36 2011 +0200 @@ -17,7 +17,7 @@ /* basic syntax markup */ -.hidden { font-size: 0.1pt; visibility: hidden; } +.hidden { font-size: 1px; visibility: hidden; } .binding { color: #336655; } .entity_class { color: red; } diff -r d4cbd6feffdf -r e67d104c0c50 src/Pure/Thy/html.ML --- a/src/Pure/Thy/html.ML Tue Jun 28 10:52:15 2011 +0200 +++ b/src/Pure/Thy/html.ML Wed Jun 29 15:23:36 2011 +0200 @@ -59,8 +59,9 @@ (* symbol output *) local - val hidden = XML.text #> (span Markup.hiddenN |-> enclose); + val hidden = span Markup.hiddenN |-> enclose; + (* FIXME proper unicode -- produced on Scala side *) val html_syms = Symtab.make [("", (0, "")), ("\n", (0, "
")), @@ -205,10 +206,10 @@ ("\\", (3, "<->")), ("\\", (3, "-->")), ("\\", (2, "->")), - ("\\<^bsub>", (0, hidden "\\<^bsub>" ^ "")), - ("\\<^esub>", (0, hidden "\\<^esub>" ^ "")), - ("\\<^bsup>", (0, hidden "\\<^bsup>" ^ "")), - ("\\<^esup>", (0, hidden "\\<^esup>" ^ ""))]; + ("\\<^bsub>", (0, hidden "⇘" ^ "")), + ("\\<^esub>", (0, hidden "⇙" ^ "")), + ("\\<^bsup>", (0, hidden "⇗" ^ "")), + ("\\<^esup>", (0, hidden "⇖" ^ ""))]; fun output_sym s = if Symbol.is_raw s then (1, Symbol.decode_raw s) @@ -224,16 +225,17 @@ val output_sub = output_markup ("", ""); val output_sup = output_markup ("", ""); val output_bold = output_markup (span "bold"); - val output_loc = output_markup (span "loc"); fun output_syms [] (result, width) = (implode (rev result), width) | output_syms (s1 :: rest) (result, width) = let val (s2, ss) = (case rest of [] => ("", []) | s2 :: ss => (s2, ss)); val ((w, s), r) = - if s1 = "\\<^sub>" orelse s1 = "\\<^isub>" then (output_sub s1 s2, ss) - else if s1 = "\\<^sup>" orelse s1 = "\\<^isup>" then (output_sup s1 s2, ss) - else if s1 = "\\<^bold>" then (output_bold s1 s2, ss) + if s1 = "\\<^sub>" then (output_sub "⇩" s2, ss) + else if s1 = "\\<^isub>" then (output_sub "⇣" s2, ss) + else if s1 = "\\<^sup>" then (output_sup "⇧" s2, ss) + else if s1 = "\\<^isup>" then (output_sup "⇡" s2, ss) + else if s1 = "\\<^bold>" then (output_bold "❙" s2, ss) else (output_sym s1, rest); in output_syms r (s :: result, width + w) end; in