1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-09-28 22:40:50 +00:00

Xtn.SyntaxHighlight: Add 'class=pretty-print lang-{lang_name}' if 'lang' is passed [#498]

This commit is contained in:
gnosygnu 2019-06-22 08:43:13 -04:00
parent cbae5d55bb
commit 334bb0a6d0
3 changed files with 11 additions and 3 deletions

View File

@ -279,6 +279,7 @@ public class Gfh_tag_ { // NOTE: not serialized; used by tag_rdr
; ;
public static final byte[] Rhs_bgn = Bry_.new_a7("</"); public static final byte[] Rhs_bgn = Bry_.new_a7("</");
public static void Bld_lhs_bgn(Bry_bfr bfr, byte[] tag) {bfr.Add_byte(Byte_ascii.Lt).Add(tag);} // <tag public static void Bld_lhs_bgn(Bry_bfr bfr, byte[] tag) {bfr.Add_byte(Byte_ascii.Lt).Add(tag);} // <tag
public static void Bld_lhs_bgn(Bry_bfr bfr, int tag_id) {bfr.Add_byte(Byte_ascii.Lt).Add_str_a7(To_str(tag_id));} // <tag
public static void Bld_lhs_end_nde(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Gt);} // > public static void Bld_lhs_end_nde(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Gt);} // >
public static void Bld_lhs_end_inl(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Slash).Add_byte(Byte_ascii.Gt);} // "/>" public static void Bld_lhs_end_inl(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Slash).Add_byte(Byte_ascii.Gt);} // "/>"
public static void Bld_rhs(Bry_bfr bfr, byte[] name) {bfr.Add(Rhs_bgn).Add(name).Add_byte(Byte_ascii.Angle_end);} // EX:"</tag_name>" public static void Bld_rhs(Bry_bfr bfr, byte[] name) {bfr.Add(Rhs_bgn).Add(name).Add_byte(Byte_ascii.Angle_end);} // EX:"</tag_name>"

View File

@ -27,7 +27,12 @@ class Synh_xtn_nde_ {
bfr.Add(Bry__div_bgn); bfr.Add(Bry__div_bgn);
if (style != null) bfr.Add(Xoh_consts.Style_atr).Add(style).Add_byte(Byte_ascii.Quote); if (style != null) bfr.Add(Xoh_consts.Style_atr).Add(style).Add_byte(Byte_ascii.Quote);
bfr.Add_byte(Byte_ascii.Angle_end); bfr.Add_byte(Byte_ascii.Angle_end);
bfr.Add(Xoh_consts.Pre_bgn_overflow); Gfh_tag_.Bld_lhs_bgn(bfr, Gfh_tag_.Id__pre);
Gfh_atr_.Add(bfr, Gfh_atr_.Bry__style, Bry__style__overflow__auto);
if (Bry_.Len_gt_0(lang)) {
Gfh_atr_.Add(bfr, Gfh_atr_.Bry__class, Bry_.Add(Bry__pretty_print, lang));
}
Gfh_tag_.Bld_lhs_end_nde(bfr);
} }
int text_bgn = src_bgn; int text_bgn = src_bgn;
int text_end = Bry_find_.Find_bwd_while(src, src_end, -1, Byte_ascii.Space) + 1; // trim space from end; PAGE:en.w:Comment_(computer_programming) DATE:2014-06-23 int text_end = Bry_find_.Find_bwd_while(src, src_end, -1, Byte_ascii.Space) + 1; // trim space from end; PAGE:en.w:Comment_(computer_programming) DATE:2014-06-23
@ -70,6 +75,8 @@ class Synh_xtn_nde_ {
private static final byte[] private static final byte[]
Enclose_none = Bry_.new_a7("none") Enclose_none = Bry_.new_a7("none")
, Style_line = Bry_.new_a7("-moz-user-select:none;"), Style_highlight = Bry_.new_a7("background-color: #FFFFCC;") , Style_line = Bry_.new_a7("-moz-user-select:none;"), Style_highlight = Bry_.new_a7("background-color: #FFFFCC;")
, Bry__style__overflow__auto = Bry_.new_a7("overflow:auto")
, Bry__pretty_print = Bry_.new_a7("prettyprint lang-")
, Bry__div_bgn = Bry_.new_a7("<div class=\"mw-highlight\"") , Bry__div_bgn = Bry_.new_a7("<div class=\"mw-highlight\"")
, Bry__code_bgn = Bry_.new_a7("<code class=\"mw-highlight\"") , Bry__code_bgn = Bry_.new_a7("<code class=\"mw-highlight\"")
; ;

View File

@ -21,13 +21,13 @@ public class Synh_xtn_nde_tst {
fxt.Test_parse_page_all_str("<syntaxHighlight>abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>"); fxt.Test_parse_page_all_str("<syntaxHighlight>abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>");
} }
@Test public void Text() { @Test public void Text() {
fxt.Test_parse_page_all_str("<syntaxHighlight lang=\"text\">abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>"); fxt.Test_parse_page_all_str("<syntaxHighlight lang=\"text\">abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>");
} }
@Test public void Style_pre() { @Test public void Style_pre() {
fxt.Test_parse_page_all_str("<syntaxHighlight style=\"color:red;\">abc</syntaxHighlight>", "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\">abc</pre></div>"); fxt.Test_parse_page_all_str("<syntaxHighlight style=\"color:red;\">abc</syntaxHighlight>", "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\">abc</pre></div>");
} }
@Test public void Style_code() { @Test public void Style_code() {
fxt.Test_parse_page_all_str("<syntaxHighlight lang=\"text\" style=\"color:red;\">abc</syntaxHighlight>", "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\">abc</pre></div>"); fxt.Test_parse_page_all_str("<syntaxHighlight lang=\"text\" style=\"color:red;\">abc</syntaxHighlight>", "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>");
} }
@Test public void Trim_ws() { @Test public void Trim_ws() {
fxt.Test_parse_page_all_str(String_.Concat_lines_nl fxt.Test_parse_page_all_str(String_.Concat_lines_nl