1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

Table_of_contents: Skip whitespace after slash; Add <mark> as valid HTML tag [#542]

This commit is contained in:
gnosygnu
2020-03-09 07:56:21 -04:00
parent bc65e9fa61
commit ed010f76a8
5 changed files with 20 additions and 2 deletions

View File

@@ -81,8 +81,8 @@ public class Gfh_tag_ { // NOTE: not serialized; used by tag_rdr
, Id__rp = 59
, Id__rt = 60
, Id__form = 61
, Id__mark = 62
;
// private static final int Id__ary_max = 60;
public static final byte[]
Bry__a = Bry_.new_a7("a")
, Bry__ul = Bry_.new_a7("ul")
@@ -167,6 +167,7 @@ public class Gfh_tag_ { // NOTE: not serialized; used by tag_rdr
.Add_str_int("rp" , Id__rp)
.Add_str_int("rt" , Id__rt)
.Add_str_int("form" , Id__form)
.Add_str_int("mark" , Id__mark)
;
public static String To_str(int tid) {
switch (tid) {
@@ -235,6 +236,7 @@ public class Gfh_tag_ { // NOTE: not serialized; used by tag_rdr
case Id__rp: return "rp";
case Id__rt: return "rt";
case Id__form: return "form";
case Id__mark: return "mark";
default: throw Err_.new_unhandled(tid);
}
}

View File

@@ -25,6 +25,7 @@ public class Gfh_tag_rdr {
public byte[] Src() {return src;} private byte[] src;
public int Src_end() {return src_end;} private int src_end;
public Bry_err_wkr Err_wkr() {return err_wkr;} private final Bry_err_wkr err_wkr = new Bry_err_wkr();
public Gfh_tag_rdr Skip_ws_after_slash_y_() {skip_ws_after_slash_y = true; return this;} private boolean skip_ws_after_slash_y;
public Gfh_tag_rdr Reg(String tag_name, int tag_id) {name_hash.Add_str_int(tag_name, tag_id); return this;}
public Gfh_tag_rdr Init(byte[] ctx_name, byte[] src, int src_bgn, int src_end) {
this.src = src; this.pos = src_bgn; this.src_end = src_end;
@@ -205,6 +206,9 @@ public class Gfh_tag_rdr {
case Byte_ascii.Slash: // EX: "<a/>"
name_end = name_pos;
tag_end = name_pos + 1; if (tag_end == src_end) return Tag__eos(tag_bgn);// EX: "<a/EOS"
if (skip_ws_after_slash_y) {// skip ws after slash; EX:"<br />"; ISSUE#:542: DATE:2020-03-09
tag_end = Bry_find_.Find_fwd_while_ws(src, tag_end, src_end);
}
if (src[tag_end] == Byte_ascii.Angle_end) {
atrs_end = name_end;
inline = true;
@@ -267,6 +271,9 @@ public class Gfh_tag_rdr {
case Byte_ascii.Slash: // EX: "<a/>"
name_end = name_pos;
tag_end = name_pos + 1; if (tag_end == src_end) return Tag__eos(tag_bgn);// EX: "<a/EOS"
if (skip_ws_after_slash_y) {// skip ws after slash; EX:"<br />"; ISSUE#:542: DATE:2020-03-09
tag_end = Bry_find_.Find_fwd_while_ws(src, tag_end, src_end);
}
if (src[tag_end] == Byte_ascii.Angle_end) {
atrs_end = name_end;
inline = true;