diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java
index 44d476639..ced1906af 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java
@@ -62,24 +62,41 @@ public class Xoh_hdoc_wkr__make implements Xoh_hdoc_wkr {
Gfo_usr_dlg_.Instance.Warn_many("", "", "anchor hook should start with section; add entire src, and enable gallery flage
bfr.Add_mid(src, data.Src_bgn(), data.Src_end());
hpg.Xtn__gallery_exists_y_();
}
public boolean Process_parse(Xoh_data_itm data) {
switch (data.Tid()) {
- case Xoh_hzip_dict_.Tid__img: return wkr__img.Init_by_parse(bfr, hpg, hctx, src, (gplx.xowa.htmls.core.wkrs.imgs.Xoh_img_data)data);
- case Xoh_hzip_dict_.Tid__hdr: return wkr__hdr.Init_by_parse(bfr, hpg, hctx, src, (gplx.xowa.htmls.core.wkrs.hdrs.Xoh_hdr_data)data);
+ case Xoh_hzip_dict_.Tid__hdr:
+ return wkr__hdr.Init_by_parse(bfr, hpg, hctx, src, (Xoh_hdr_data)data);
+ case Xoh_hzip_dict_.Tid__img:
+ return wkr__img.Init_by_parse(bfr, hpg, hctx, src, (Xoh_img_data)data);
+ // TODO: see toc_mode; change make_mgr to stitch together html before and after toc for pgbnr; see Xoh_page_bfr
+ case Xoh_hzip_dict_.Tid__toc:
+ bfr.Add_mid(src, data.Src_bgn(), data.Src_end());
+ // this.toc_mode = toc_lhs.Atrs__has(Xoh_toc_wtr.Atr__data__toc__mode) ? Toc_mode__pgbnr : Toc_mode__basic;
+ break;
+ // hzip_lnke just reconstructs html
case Xoh_hzip_dict_.Tid__lnke:
+ // hzip_img_bare just reconstructs html; note that img_bare is for icons (expand image)
+ case Xoh_hzip_dict_.Tid__img_bare:
default:
bfr.Add_mid(src, data.Src_bgn(), data.Src_end());
break;
+ case Xoh_hzip_dict_.Tid__media:
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "htxt_wkr does not support media; url=~{0}", hpg.Url_bry_safe());
+ return false;
}
return true;
}
diff --git a/h origin master b/h origin master
new file mode 100644
index 000000000..aa482cc86
--- /dev/null
+++ b/h origin master
@@ -0,0 +1,239 @@
+[33mcommit cd56234e281079c95afad775cb4da2ba70c03783[m
+Author: gnosygnu
+Date: Sun Feb 3 23:48:23 2019 -0500
+
+ HTML Databases: Show redlinks for htxt [#320]
+
+[1mdiff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java[m
+[1mindex 1323bc1..44d4766 100644[m
+[1m--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java[m
+[1m+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_wkr__make.java[m
+[36m@@ -14,21 +14,54 @@[m [mGPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt[m
+ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt[m
+ */[m
+ package gplx.xowa.htmls.core.wkrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*;[m
+[31m-import gplx.langs.htmls.docs.*;[m
+[31m-import gplx.xowa.wikis.ttls.*;[m
+[31m-import gplx.xowa.htmls.core.hzips.*;[m
+[31m-import gplx.xowa.htmls.core.wkrs.hdrs.*; import gplx.xowa.htmls.core.wkrs.imgs.*;[m
+[32m+[m[32mimport gplx.langs.htmls.docs.*; import gplx.langs.htmls.encoders.*;[m[41m
[m
+[32m+[m[32mimport gplx.xowa.htmls.core.hzips.*; import gplx.xowa.htmls.core.wkrs.hdrs.*; import gplx.xowa.htmls.core.wkrs.imgs.*; import gplx.xowa.htmls.core.wkrs.lnkis.*; import gplx.xowa.htmls.core.wkrs.lnkis.anchs.*;[m[41m
[m
+[32m+[m[32mimport gplx.xowa.wikis.ttls.*;[m[41m
[m
+ public class Xoh_hdoc_wkr__make implements Xoh_hdoc_wkr {[m
+ private Xoh_hzip_bfr bfr; private Xoh_page hpg; private Xoh_hdoc_ctx hctx; private byte[] src;[m
+ private final Xoh_hdr_wtr wkr__hdr = new Xoh_hdr_wtr();[m
+[31m- private final Xoh_img_wtr wkr__img = new Xoh_img_wtr(); [m
+[32m+[m [32mprivate final Xoh_img_wtr wkr__img = new Xoh_img_wtr();[m[41m
[m
+[32m+[m [32mprivate int html_uid;[m[41m
[m
+ public void On_new_page(Xoh_hzip_bfr bfr, Xoh_page hpg, Xoh_hdoc_ctx hctx, byte[] src, int src_bgn, int src_end) {[m
+ this.bfr = bfr; this.hpg = hpg; this.hctx = hctx; this.src = src;[m
+[32m+[m [32mthis.html_uid = 0;[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m [32mpublic void On_txt(int rng_bgn, int rng_end) {[m[41m
[m
+[32m+[m [32m// text; just add it[m[41m
[m
+[32m+[m [32mbfr.Add_mid(src, rng_bgn, rng_end);[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m [32mpublic void On_escape(gplx.xowa.htmls.core.wkrs.escapes.Xoh_escape_data data) {[m[41m
[m
+[32m+[m [32m// hzip escape byte ((byte)27); should never happen but if it does, add it[m[41m
[m
+[32m+[m [32mbfr.Add(data.Hook());[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m [32mpublic void On_xnde(gplx.xowa.htmls.core.wkrs.xndes.Xoh_xnde_parser data) {[m[41m
[m
+[32m+[m [32m// regular xml node; just add it[m[41m
[m
+[32m+[m [32mbfr.Add_mid(src, data.Src_bgn(), data.Src_end());[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m [32mpublic void On_lnki(gplx.xowa.htmls.core.wkrs.lnkis.Xoh_lnki_data data) {[m[41m
[m
+[32m+[m [32m// node[m[41m
[m
+[32m+[m [32m// handle "#"[m[41m
[m
+[32m+[m [32mif (data.Href_itm().Tid() == Xoh_anch_href_data.Tid__anch) {[m[41m
[m
+[32m+[m [32mbfr.Add_mid(src, data.Src_bgn(), data.Src_end());[m[41m
[m
+[32m+[m [32mreturn;[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m[41m
[m
+[32m+[m [32m// increment html_uid and add "id=xolnki_"[m[41m
[m
+[32m+[m [32mbyte[] ttl_bry = data.Href_itm().Ttl_page_db();[m[41m
[m
+[32m+[m [32mthis.html_uid = Lnki_redlink_reg(hpg, hctx, ttl_bry, html_uid);[m[41m
[m
+[32m+[m [32mint src_bgn_lhs = data.Src_bgn();[m[41m
[m
+[32m+[m [32mint src_bgn_rhs = src_bgn_lhs + 3; // +3 to skip over "a b"[m[41m
[m
+[32m+[m [32m, "a b");[m[41m
[m
+[32m+[m [32mfxt.Test__hpg__redlinks("A", "B");[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m [32m@Test public void Redlink__anchor() {[m[41m
[m
+[32m+[m [32mfxt.Test__decode[m[41m
[m
+[32m+[m [32m( "a"[m[41m
[m
+[32m+[m [32m, "a");[m[41m
[m
+[32m+[m [32mfxt.Test__hpg__redlinks();[m[41m
[m
+[32m+[m [32m}[m[41m
[m
+[32m+[m[32m}[m[41m
[m
+[1mdiff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java[m
+[1mindex 889f2bb..41186df 100644[m
+[1m--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java[m
+[1m+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java[m
+[36m@@ -124,14 +124,7 @@[m [mpublic class Xoh_lnki_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {[m
+ href_bry = tmp_bfr.To_bry_and_clear();[m
+ [m
+ // generate stub for redlink[m
+[31m- if ( !hctx.Mode_is_diff()) { // PERF: don't do redlinks during hzip_diff[m
+[31m- try {[m
+[31m- Xoa_ttl ttl = hpg.Wiki().Ttl_parse(Gfo_url_encoder_.Href.Decode(href_bry));[m
+[31m- Xopg_lnki_itm__hdump lnki_itm = new Xopg_lnki_itm__hdump(ttl);[m
+[31m- hpg.Html_data().Redlink_list().Add(lnki_itm);[m
+[31m- html_uid = lnki_itm.Html_uid();[m
+[31m- } catch (Exception e) {Gfo_log_.Instance.Warn("failed to add lnki to redlinks", "page", hpg.Url_bry_safe(), "href_bry", href_bry, "e", Err_.Message_gplx_log(e));}[m
+[31m- }[m
+[32m+[m [32mhtml_uid = Xoh_hdoc_wkr__make.Lnki_redlink_reg(hpg, hctx, href_bry, html_uid);[m[41m
[m
+ break;[m
+ }[m
+ byte[] capt_bry = Xoh_lnki_hzip_.Bld_capt(tmp_bfr, href_type, text_type, capt_has_ns, capt_cs0_tid, ns_bry, src, text_0_bgn, text_0_end, src, text_1_bgn, text_1_end);[m
+[1mdiff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xopg_lnki_itm__hdump.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xopg_lnki_itm__hdump.java[m
+[1mindex 2af9d2f..dc8fb60 100644[m
+[1m--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xopg_lnki_itm__hdump.java[m
+[1m+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xopg_lnki_itm__hdump.java[m
+[36m@@ -15,7 +15,7 @@[m [mApache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt[m
+ */[m
+ package gplx.xowa.htmls.core.wkrs.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.wkrs.*;[m
+ import gplx.xowa.wikis.pages.lnkis.*;[m
+[31m-class Xopg_lnki_itm__hdump implements Xopg_lnki_itm {[m
+[32m+[m[32mpublic class Xopg_lnki_itm__hdump implements Xopg_lnki_itm {[m[41m
[m
+ public Xopg_lnki_itm__hdump(Xoa_ttl ttl) {this.ttl = ttl;}[m
+ public Xoa_ttl Ttl() {return
\ No newline at end of file