Browse Source

SyntaxHighlight: Treat syntaxHighlight inline as enclose=none [#794]

gnosygnu 4 years ago
parent
commit
1eea3682ca

+ 63 - 41
400_xowa/src/gplx/xowa/xtns/syntax_highlights/Synh_xtn_nde.java

@@ -1,6 +1,6 @@
 /*
 XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012-2017 gnosygnu@gmail.com
+Copyright (C) 2012-2020 gnosygnu@gmail.com
 
 XOWA is licensed under the terms of the General Public License (GPL) Version 3,
 or alternatively under the terms of the Apache License Version 2.0.
@@ -13,43 +13,65 @@ The terms of each license can be found in the source code repository:
 GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
 Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
 */
-package gplx.xowa.xtns.syntax_highlights; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
-import gplx.core.primitives.*;
-import gplx.xowa.parsers.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.htmls.*;
-import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.htmls.*;
-public class Synh_xtn_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
-	private byte[] lang = Bry_.Empty; private byte[] style = null; private byte[] enclose = Bry_.Empty;
-	private boolean line_enabled = false; private int start = 1; private Int_rng_mgr highlight_idxs = Int_rng_mgr_null.Instance;
-	public Xop_xnde_tkn Xnde() {throw Err_.new_unimplemented();}
-	public void Xatr__set(Xowe_wiki wiki, byte[] src, Mwh_atr_itm xatr, Object xatr_id_obj) {
-		if (xatr_id_obj == null) return;
-		Byte_obj_val xatr_id = (Byte_obj_val)xatr_id_obj;
-		switch (xatr_id.Val()) {
-			case Xatr_line:			line_enabled	= true; break;
-			case Xatr_enclose:		enclose			= xatr.Val_as_bry(); break;
-			case Xatr_lang:			lang			= xatr.Val_as_bry(); break;
-			case Xatr_style:		style			= xatr.Val_as_bry(); break;
-			case Xatr_start:		start			= xatr.Val_as_int_or(1); break;
-			case Xatr_highlight:	highlight_idxs	= new Int_rng_mgr_base(); highlight_idxs.Parse(xatr.Val_as_bry()); break;
-		}
-	}
-	public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
-		Xop_xnde_tag tag = xnde.Tag();
-		ctx.Para().Process_block__xnde(tag, tag.Block_open());	// deactivate pre; pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-24
-		Xox_xnde_.Xatr__set(wiki, this, xatrs_hash, src, xnde);
-		ctx.Para().Process_block__xnde(tag, tag.Block_close());	// deactivate pre; pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-24
-	}
-	public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xoae_page wpg, Xop_xnde_tkn xnde, byte[] src) {
-		Synh_xtn_nde_.Make(bfr, app, src, xnde.Tag_open_end(), xnde.Tag_close_bgn(), lang, enclose, style, line_enabled, start, highlight_idxs);
-	}
-	private static final byte Xatr_enclose = 1, Xatr_lang = 2, Xatr_style = 3, Xatr_line = 4, Xatr_start = 5, Xatr_highlight = 6;
-	private static final    Hash_adp_bry xatrs_hash = Hash_adp_bry.ci_a7()
-	.Add_str_byte("enclose"		, Xatr_enclose)
-	.Add_str_byte("inline"		, Xatr_enclose)
-	.Add_str_byte("lang"		, Xatr_lang)
-	.Add_str_byte("style"		, Xatr_style)
-	.Add_str_byte("line"		, Xatr_line)
-	.Add_str_byte("start"		, Xatr_start)
-	.Add_str_byte("highlight"	, Xatr_highlight)
-	;
-}
+package gplx.xowa.xtns.syntax_highlights;
+
+import gplx.Bry_;
+import gplx.Bry_bfr;
+import gplx.Err_;
+import gplx.Hash_adp_bry;
+import gplx.core.primitives.Byte_obj_val;
+import gplx.xowa.Xoae_app;
+import gplx.xowa.Xoae_page;
+import gplx.xowa.Xowe_wiki;
+import gplx.xowa.htmls.core.htmls.Xoh_html_wtr;
+import gplx.xowa.htmls.core.htmls.Xoh_wtr_ctx;
+import gplx.xowa.parsers.Xop_ctx;
+import gplx.xowa.parsers.Xop_root_tkn;
+import gplx.xowa.parsers.htmls.Mwh_atr_itm;
+import gplx.xowa.parsers.htmls.Mwh_atr_itm_owner1;
+import gplx.xowa.parsers.xndes.Xop_xnde_tag;
+import gplx.xowa.parsers.xndes.Xop_xnde_tkn;
+import gplx.xowa.xtns.Xox_xnde;
+import gplx.xowa.xtns.Xox_xnde_;
+
+public class Synh_xtn_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
+	private byte[] lang = Bry_.Empty;
+	private byte[] style = null;
+	private byte[] enclose = Bry_.Empty;
+	private boolean line_enabled = false;
+	private int start = 1;
+	private Int_rng_mgr highlight_idxs = Int_rng_mgr_null.Instance;
+	public Xop_xnde_tkn Xnde() {throw Err_.new_unimplemented();}
+	public void Xatr__set(Xowe_wiki wiki, byte[] src, Mwh_atr_itm xatr, Object xatr_id_obj) {
+		if (xatr_id_obj == null) return;
+		Byte_obj_val xatr_id = (Byte_obj_val)xatr_id_obj;
+		switch (xatr_id.Val()) {
+			case Xatr_line:			line_enabled	= true; break;
+			case Xatr_enclose:		enclose			= xatr.Val_as_bry(); break;
+			case Xatr_inline:		enclose			= Bry_.new_a7("none"); break; // 2020-08-27|ISSUE#:794|inline should be enclose=none
+			case Xatr_lang:			lang			= xatr.Val_as_bry(); break;
+			case Xatr_style:		style			= xatr.Val_as_bry(); break;
+			case Xatr_start:		start			= xatr.Val_as_int_or(1); break;
+			case Xatr_highlight:	highlight_idxs	= new Int_rng_mgr_base(); highlight_idxs.Parse(xatr.Val_as_bry()); break;
+		}
+	}
+	public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
+		Xop_xnde_tag tag = xnde.Tag();
+		ctx.Para().Process_block__xnde(tag, tag.Block_open());	// deactivate pre; pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-24
+		Xox_xnde_.Xatr__set(wiki, this, xatrs_hash, src, xnde);
+		ctx.Para().Process_block__xnde(tag, tag.Block_close());	// deactivate pre; pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-24
+	}
+	public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xoae_page wpg, Xop_xnde_tkn xnde, byte[] src) {
+		Synh_xtn_nde_.Make(bfr, app, src, xnde.Tag_open_end(), xnde.Tag_close_bgn(), lang, enclose, style, line_enabled, start, highlight_idxs);
+	}
+	private static final byte Xatr_enclose = 1, Xatr_lang = 2, Xatr_style = 3, Xatr_line = 4, Xatr_start = 5, Xatr_highlight = 6, Xatr_inline = 7;
+	private static final    Hash_adp_bry xatrs_hash = Hash_adp_bry.ci_a7()
+	.Add_str_byte("enclose"		, Xatr_enclose)
+	.Add_str_byte("inline"		, Xatr_inline)
+	.Add_str_byte("lang"		, Xatr_lang)
+	.Add_str_byte("style"		, Xatr_style)
+	.Add_str_byte("line"		, Xatr_line)
+	.Add_str_byte("start"		, Xatr_start)
+	.Add_str_byte("highlight"	, Xatr_highlight)
+	;
+}

+ 200 - 173
400_xowa/src/gplx/xowa/xtns/syntax_highlights/Synh_xtn_nde_tst.java

@@ -1,6 +1,6 @@
 /*
 XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012-2017 gnosygnu@gmail.com
+Copyright (C) 2012-2020 gnosygnu@gmail.com
 
 XOWA is licensed under the terms of the General Public License (GPL) Version 3,
 or alternatively under the terms of the Apache License Version 2.0.
@@ -13,175 +13,202 @@ The terms of each license can be found in the source code repository:
 GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
 Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
 */
-package gplx.xowa.xtns.syntax_highlights; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
-import org.junit.*;
-public class Synh_xtn_nde_tst {
-	private final    Xop_fxt fxt = new Xop_fxt();
-	@Test   public void Basic() {
-		fxt.Test_parse_page_all_str("<syntaxHighlight>abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>");
-	}
-	@Test   public void Text() {
-		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() {
-		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() {
-		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() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight>"
-		,	"abc"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"abc"
-		,	"</pre></div>"
-		));
-	}
-	@Test   public void Line() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight line>"
-		,	"a"
-		,	"b"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"<span style=\"-moz-user-select:none;\">1 </span><span>a</span>"
-		,	"<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
-		,	"</pre></div>"
-		));
-	}
-	@Test   public void Start() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight line start=3>"
-		,	"a"
-		,	"b"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"<span style=\"-moz-user-select:none;\">3 </span><span>a</span>"
-		,	"<span style=\"-moz-user-select:none;\">4 </span><span>b</span>"
-		,	"</pre></div>"
-		));
-	}
-	@Test   public void Highlight() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight line highlight='1,3'>"
-		,	"a"
-		,	"b"
-		,	"c"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"<span style=\"-moz-user-select:none;\">1 </span><span style=\"background-color: #FFFFCC;\">a</span>"
-		,	"<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
-		,	"<span style=\"-moz-user-select:none;\">3 </span><span style=\"background-color: #FFFFCC;\">c</span>"
-		,	"</pre></div>"
-		));
-	}
-	@Test   public void Highlight_wo_line_arg() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight highlight='1,3'>"
-		,	"a"
-		,	"b"
-		,	"c"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"<span style=\"background-color: #FFFFCC;\">a</span>"
-		,	"<span>b</span>"
-		,	"<span style=\"background-color: #FFFFCC;\">c</span>"
-		,	"</pre></div>"
-		));
-	}
-	@Test   public void Enclose_none() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight enclose=none style='color:red'>"
-		,	"a"
-		,	"b"
-		,	"c"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<code class=\"mw-highlight\" style=\"color:red\">"
-		,	"a"
-		,	"b"
-		,	"c"
-		,	"</code>"
-		));
-	}
-	@Test   public void Line_padded() {
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight line start=9>"
-		,	"a"
-		,	"b"
-		,	"</syntaxHighlight>"
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"<span style=\"-moz-user-select:none;\"> 9 </span><span>a</span>"
-		,	"<span style=\"-moz-user-select:none;\">10 </span><span>b</span>"
-		,	"</pre></div>"
-		));
-	}
-	@Test  public void EndTag_has_ws() {	// PURPOSE: </syntaxhighlight > not being closed correctly; PAGE:en.w:Mergesort; updated; DATE:2014-06-24
-		fxt.Init_para_y_();
-		fxt.Test_parse_page_wiki_str(String_.Concat_lines_nl_skip_last
-		(	"a"
-		,	"<syntaxhighlight>"
-		,	"b"
-		,	"</syntaxhighlight >"
-		,	"c"
-		,	"<syntaxhighlight>"
-		,	"d"
-		,	"</syntaxhighlight>"
-		), String_.Concat_lines_nl_skip_last
-		(	"<p>a"
-		,	"</p>"
-		,	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"b"
-		,	"</pre></div>"
-		,	""
-		,	"<p>c"
-		,	"</p>"
-		,	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"d"
-		,	"</pre></div>"
-		,	""
-		));
-		fxt.Init_para_n_();
-	}
-	@Test   public void Trim_ws_from_end_tab() {// PURPOSE: trim ws between "abc" and "</syntaxhighlight"; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"<syntaxHighlight>"
-		,	"abc"
-		,	"  </syntaxHighlight>"	// trim ws here
-		), String_.Concat_lines_nl
-		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	"abc"
-		,	"</pre></div>"
-		));
-	}
- 		@Test   public void Pre() {// PURPOSE: handle pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
-		fxt.Init_para_y_();
-		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
-		(	"a"
-		,   ""
-		,	" <syntaxHighlight>"
-		,	" b"
-		,	" </syntaxHighlight>"	// trim ws here
-		,   ""
-		,	"c"
-		), String_.Concat_lines_nl
-		(	"<p>a"
-		,	"</p>"
-		,	" <div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
-		,	" b"
-		,	"</pre></div>"
-		,	""
-		,	"<p>c"
-		,	"</p>"
-		));
-		fxt.Init_para_n_();
-	}
-}
+package gplx.xowa.xtns.syntax_highlights;
+
+import gplx.String_;
+import gplx.xowa.Xop_fxt;
+import org.junit.Test;
+
+public class Synh_xtn_nde_tst {
+	private final    Xop_fxt fxt = new Xop_fxt();
+	@Test   public void Basic() {
+		fxt.Test_parse_page_all_str("<syntaxHighlight>abc</syntaxHighlight>", "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>");
+	}
+	@Test   public void Text() {
+		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() {
+		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() {
+		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() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight>"
+		,	"abc"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"abc"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Line() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight line>"
+		,	"a"
+		,	"b"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"<span style=\"-moz-user-select:none;\">1 </span><span>a</span>"
+		,	"<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Start() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight line start=3>"
+		,	"a"
+		,	"b"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"<span style=\"-moz-user-select:none;\">3 </span><span>a</span>"
+		,	"<span style=\"-moz-user-select:none;\">4 </span><span>b</span>"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Highlight() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight line highlight='1,3'>"
+		,	"a"
+		,	"b"
+		,	"c"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"<span style=\"-moz-user-select:none;\">1 </span><span style=\"background-color: #FFFFCC;\">a</span>"
+		,	"<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
+		,	"<span style=\"-moz-user-select:none;\">3 </span><span style=\"background-color: #FFFFCC;\">c</span>"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Highlight_wo_line_arg() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight highlight='1,3'>"
+		,	"a"
+		,	"b"
+		,	"c"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"<span style=\"background-color: #FFFFCC;\">a</span>"
+		,	"<span>b</span>"
+		,	"<span style=\"background-color: #FFFFCC;\">c</span>"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Enclose_none() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight enclose=none style='color:red'>"
+		,	"a"
+		,	"b"
+		,	"c"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<code class=\"mw-highlight\" style=\"color:red\">"
+		,	"a"
+		,	"b"
+		,	"c"
+		,	"</code>"
+		));
+	}
+	@Test   public void Line_padded() {
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight line start=9>"
+		,	"a"
+		,	"b"
+		,	"</syntaxHighlight>"
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"<span style=\"-moz-user-select:none;\"> 9 </span><span>a</span>"
+		,	"<span style=\"-moz-user-select:none;\">10 </span><span>b</span>"
+		,	"</pre></div>"
+		));
+	}
+	@Test  public void EndTag_has_ws() {	// PURPOSE: </syntaxhighlight > not being closed correctly; PAGE:en.w:Mergesort; updated; DATE:2014-06-24
+		fxt.Init_para_y_();
+		fxt.Test_parse_page_wiki_str(String_.Concat_lines_nl_skip_last
+		(	"a"
+		,	"<syntaxhighlight>"
+		,	"b"
+		,	"</syntaxhighlight >"
+		,	"c"
+		,	"<syntaxhighlight>"
+		,	"d"
+		,	"</syntaxhighlight>"
+		), String_.Concat_lines_nl_skip_last
+		(	"<p>a"
+		,	"</p>"
+		,	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"b"
+		,	"</pre></div>"
+		,	""
+		,	"<p>c"
+		,	"</p>"
+		,	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"d"
+		,	"</pre></div>"
+		,	""
+		));
+		fxt.Init_para_n_();
+	}
+	@Test   public void Trim_ws_from_end_tab() {// PURPOSE: trim ws between "abc" and "</syntaxhighlight"; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"<syntaxHighlight>"
+		,	"abc"
+		,	"  </syntaxHighlight>"	// trim ws here
+		), String_.Concat_lines_nl
+		(	"<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	"abc"
+		,	"</pre></div>"
+		));
+	}
+	@Test   public void Pre() {// PURPOSE: handle pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
+		fxt.Init_para_y_();
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"a"
+		,   ""
+		,	" <syntaxHighlight>"
+		,	" b"
+		,	" </syntaxHighlight>"	// trim ws here
+		,   ""
+		,	"c"
+		), String_.Concat_lines_nl
+		(	"<p>a"
+		,	"</p>"
+		,	" <div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
+		,	" b"
+		,	"</pre></div>"
+		,	""
+		,	"<p>c"
+		,	"</p>"
+		));
+		fxt.Init_para_n_();
+	}
+	@Test public void Inline() {
+		// 2020-08-27|ISSUE#:794|inline should be enclose=none
+		fxt.Init_para_y_();
+		fxt.Test_parse_page_all_str(String_.Concat_lines_nl
+		(	"a"
+		,   ""
+		,	" <syntaxHighlight inline>"
+		,	" b"
+		,	" </syntaxHighlight>"	// trim ws here
+		,   ""
+		,	"c"
+		), String_.Concat_lines_nl
+		(	"<p>a"
+		,	"</p>"
+		,	" <code class=\"mw-highlight\">" // fails with <div class="mw-highlight"><pre style="overflow:auto">
+		,	" b"
+		,	"</code>"
+		,	""
+		,	"<p>c"
+		,	"</p>"
+		));
+		fxt.Init_para_n_();
+	}
+}