A1"
, "
"
, ""
diff --git a/400_xowa/src/gplx/xowa/html/hdumps/bldrs/Xob_redlink_mkr_cmd.java b/400_xowa/src/gplx/xowa/html/hdumps/bldrs/Xob_redlink_mkr_cmd.java
index 4e7901c52..2ade84a9e 100644
--- a/400_xowa/src/gplx/xowa/html/hdumps/bldrs/Xob_redlink_mkr_cmd.java
+++ b/400_xowa/src/gplx/xowa/html/hdumps/bldrs/Xob_redlink_mkr_cmd.java
@@ -19,40 +19,65 @@ package gplx.xowa.html.hdumps.bldrs; import gplx.*; import gplx.xowa.*; import g
import gplx.dbs.*; import gplx.xowa.bldrs.*; import gplx.xowa.html.hdumps.data.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_redlink_mkr_cmd extends Xob_itm_basic_base implements Xob_cmd {
- private Xob_link_dump_tbl link_dump_tbl; private Xowd_html_tbl html_dump_tbl;
private int commit_interval = 10000, commit_count = 0;
public Xob_redlink_mkr_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Cmd_key() {return Xob_cmd_keys.Key_html_redlinks;}
- public void Cmd_init(Xob_bldr bldr) {}
- public void Cmd_bgn(Xob_bldr bldr) {
- this.link_dump_tbl = Xob_link_dump_tbl.Get_or_new(wiki);
- this.html_dump_tbl = wiki.Data_mgr__core_mgr().Db__core().Tbl__html(); // FIXME: need to get by html_db_id
- }
- public void Cmd_run() {
- Db_rdr rdr = link_dump_tbl.Select_missing();
- int cur_page_id = -1; Bry_bfr bfr = Bry_bfr.reset_(255);
- html_dump_tbl.Conn().Txn_bgn();
- while (rdr.Move_next()) {
- int src_page_id = rdr.Read_int(Xob_link_dump_tbl.Fld_src_page_id);
- if (cur_page_id != src_page_id) {
- if (cur_page_id != -1) Commit(cur_page_id, bfr);
- cur_page_id = src_page_id;
+ public void Cmd_run() {Read_data();}
+ private void Read_data() {
+ Bry_bfr bfr = Bry_bfr.reset_(255);
+ wiki.Init_assert();
+ Xowd_db_file core_db = wiki.Data_mgr__core_mgr().Db__core();
+ Xob_db_file link_dump_db = Xob_db_file.new__redlink(wiki.Fsys_mgr().Root_dir());
+ Db_attach_rdr attach_rdr = new Db_attach_rdr(link_dump_db.Conn(), "page_db", core_db.Url());
+ attach_rdr.Attach();
+ Xowd_page_tbl page_tbl = core_db.Tbl__page();
+ int cur_html_db_id = -1, cur_page_id = -1; Xowd_html_tbl html_dump_tbl = null;
+ Db_rdr rdr = attach_rdr.Exec_as_rdr(Sql_select);
+ try {
+ while (rdr.Move_next()) {
+ // switch html_db if needed
+ int html_db_id = rdr.Read_int(page_tbl.Fld_html_db_id().Name());
+ if (html_db_id != cur_html_db_id) {
+ if (html_dump_tbl != null) html_dump_tbl.Conn().Txn_end();
+ html_dump_tbl = wiki.Data_mgr__core_mgr().Dbs__get_at(html_db_id).Tbl__html();
+ html_dump_tbl.Conn().Txn_bgn();
+ cur_html_db_id = html_db_id;
+ }
+ // commit page_id if needed
+ int page_id = rdr.Read_int(page_tbl.Fld_page_id());
+ if (cur_page_id != page_id) {
+ if (cur_page_id != -1) Commit(html_dump_tbl, cur_page_id, bfr);
+ cur_page_id = page_id;
+ }
+ // add html_uid to cur_page's bfr
+ int html_uid = rdr.Read_int(Xob_link_dump_tbl.Fld_src_html_uid);
+ bfr.Add_int_variable(html_uid).Add_byte_pipe();
}
- bfr.Add_int_variable(rdr.Read_int(Xob_link_dump_tbl.Fld_src_html_uid)).Add_byte_pipe();
}
- Commit(cur_page_id, bfr);
- html_dump_tbl.Conn().Txn_end();
+ finally {rdr.Rls();}
+ Commit(html_dump_tbl, cur_page_id, bfr); // commit cur page
+ html_dump_tbl.Conn().Txn_end(); // close cur tbl
+ attach_rdr.Detach();
}
- private void Commit(int cur_page_id, Bry_bfr bfr) {
+ private void Commit(Xowd_html_tbl html_dump_tbl, int cur_page_id, Bry_bfr bfr) {
html_dump_tbl.Insert(cur_page_id, Xowd_html_row.Tid_redlink, bfr.Xto_bry_and_clear());
++commit_count;
if ((commit_count % commit_interval ) == 0)
html_dump_tbl.Conn().Txn_sav();
}
- public void Cmd_end() {
- html_dump_tbl.Conn().Rls_conn();
- link_dump_tbl.Conn().Rls_conn();
- }
+ private static final String Sql_select = String_.Concat_lines_nl_skip_last
+ ( "SELECT p.page_html_db_id"
+ , ", p.page_id"
+ , ", ld.src_html_uid"
+ , "FROM link_dump ld"
+ , " JOIN
page p ON p.page_id = ld.src_page_id "
+ , "WHERE ld.trg_page_id = -1"
+ , "ORDER BY p.page_html_db_id, p.page_id"
+ , ";"
+ );
+ public void Cmd_init(Xob_bldr bldr) {}
+ public void Cmd_bgn(Xob_bldr bldr) {}
+ public void Cmd_end() {}
public void Cmd_term() {}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_commit_interval_)) commit_interval = m.ReadInt("v");
diff --git a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__base.java b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__base.java
index aaf2d2d3d..3aac27e99 100644
--- a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__base.java
+++ b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__base.java
@@ -38,7 +38,7 @@ public abstract class Xohd_data_itm__base implements Xohd_data_itm {
// public byte[] Orig_ttl() {return orig_ttl;} private byte[] orig_ttl;
// public int Orig_ext() {return orig_ext;} private int orig_ext;
// public byte[] Orig_redirect() {return orig_redirect;} private byte[] orig_redirect = Bry_.Empty;
-// public byte Html_elem_tid() {return html_elem_tid;} public void Html_elem_tid_(byte v) {html_elem_tid = v;} private byte html_elem_tid;
+ public abstract byte Html_elem_tid();
// public Io_url Html_orig_url() {return html_orig_url;} public void Html_orig_url_(Io_url v) {html_orig_url = v;} private Io_url html_orig_url = Io_url_.Null;
// public int Gallery_mgr_h() {return gallery_mgr_h;} public void Gallery_mgr_h_(int v) {gallery_mgr_h = v;} private int gallery_mgr_h = Int_.Neg1;
public Xohd_data_itm__base Data_init_base
diff --git a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__gallery_itm.java b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__gallery_itm.java
index 165f88033..35387a1f2 100644
--- a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__gallery_itm.java
+++ b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__gallery_itm.java
@@ -16,9 +16,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.html.hdumps.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*; import gplx.xowa.html.hdumps.*;
-import gplx.core.brys.*;
+import gplx.core.brys.*; import gplx.xowa.files.*;
public class Xohd_data_itm__gallery_itm extends Xohd_data_itm__base {
@Override public int Img_tid() {return Xohd_data_itm__base.Tid_gallery;}
+ @Override public byte Html_elem_tid() {return Xof_html_elem.Tid_img;}
public int Box_w() {return box_w;} private int box_w;
public int Img_w() {return img_w;} private int img_w;
public int Img_pad() {return img_pad;} private int img_pad;
diff --git a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__img.java b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__img.java
index 95b587f9d..d6c9d4e19 100644
--- a/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__img.java
+++ b/400_xowa/src/gplx/xowa/html/hdumps/core/Xohd_data_itm__img.java
@@ -16,6 +16,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.html.hdumps.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*; import gplx.xowa.html.hdumps.*;
+import gplx.xowa.files.*;
public class Xohd_data_itm__img extends Xohd_data_itm__base {
@Override public int Img_tid() {return Xohd_data_itm__base.Tid_basic;}
+ @Override public byte Html_elem_tid() {return Xof_html_elem.Tid_img;}
}
diff --git a/400_xowa/src/gplx/xowa/html/hdumps/data/Xohd_page_html_mgr__load.java b/400_xowa/src/gplx/xowa/html/hdumps/data/Xohd_page_html_mgr__load.java
index 726aef0dd..125432f00 100644
--- a/400_xowa/src/gplx/xowa/html/hdumps/data/Xohd_page_html_mgr__load.java
+++ b/400_xowa/src/gplx/xowa/html/hdumps/data/Xohd_page_html_mgr__load.java
@@ -24,12 +24,12 @@ public class Xohd_page_html_mgr__load {
private final Bry_rdr rdr = new Bry_rdr(); private final ListAdp rows = ListAdp_.new_(), imgs = ListAdp_.new_();
private static final int redlink_list_max = 1024;
private final int[] redlink_list = new int[redlink_list_max];
- public void Load_page(Xog_page hpg, Xowd_html_tbl tbl, int page_id, Xoa_ttl page_ttl) {
+ public void Load_page(Xow_wiki wiki, Xog_page hpg, Xowd_html_tbl tbl, int page_id, Xoa_ttl page_ttl) {
tbl.Select_by_page(rows, page_id);
- Parse_rows(hpg, page_id, Xoa_url.blank_(), page_ttl, rows);
+ Parse_rows(wiki, hpg, page_id, Xoa_url.blank_(), page_ttl, rows);
}
- public void Parse_rows(Xog_page hpg, int page_id, Xoa_url page_url, Xoa_ttl page_ttl, ListAdp rows) { // TEST:
- hpg.Init(page_id, page_url, page_ttl);
+ public void Parse_rows(Xow_wiki wiki, Xog_page hpg, int page_id, Xoa_url page_url, Xoa_ttl page_ttl, ListAdp rows) { // TEST:
+ hpg.Init(wiki, page_id, page_url, page_ttl);
imgs.Clear();
int len = rows.Count();
for (int i = 0; i < len; ++i) {
@@ -38,7 +38,7 @@ public class Xohd_page_html_mgr__load {
case Xowd_html_row.Tid_html: srl_mgr.Load(hpg, row.Data()); break;
case Xowd_html_row.Tid_img:
case Xowd_html_row.Tid_redlink:
- Parse_data(hpg, row); break;
+ Parse_data(hpg, row); break;
}
}
rows.Clear();
@@ -61,13 +61,16 @@ public class Xohd_page_html_mgr__load {
switch (tid) {
case Xohd_data_itm__base.Tid_basic : img_itm = new Xohd_data_itm__img(); break;
case Xohd_data_itm__base.Tid_gallery : img_itm = new Xohd_data_itm__gallery_itm(); break;
+ default: return null; // TODO: remove; needed for redlink
}
img_itm.Data_parse(rdr);
rdr.Pos_add_one();
return img_itm;
}
private void Load_data_img() {
- imgs.Add(Load_img(rdr));
+ Xohd_data_itm__base img = Load_img(rdr);
+ if (img == null) return;
+ imgs.Add(img);
}
private void Load_data_redlink(Xog_page hpg) {
int len = 0;
diff --git a/400_xowa/src/gplx/xowa/html/hzips/Xodump_stats_tbl.java b/400_xowa/src/gplx/xowa/html/hzips/Xodump_stats_tbl.java
index 1493c40f8..c1084f0d1 100644
--- a/400_xowa/src/gplx/xowa/html/hzips/Xodump_stats_tbl.java
+++ b/400_xowa/src/gplx/xowa/html/hzips/Xodump_stats_tbl.java
@@ -32,7 +32,8 @@ public class Xodump_stats_tbl implements RlsAble {
private final Db_conn conn; private Db_stmt stmt_insert;
public Xodump_stats_tbl(Db_conn conn) {
this.conn = conn;
- this.Create_tbl(); // always zap table
+ this.Create_tbl();
+ conn.Stmt_delete(tbl_name); // always zap table
conn.Rls_reg(this);
}
public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_tbl(tbl_name, "pkey", fld_page_id)));}
diff --git a/400_xowa/src/gplx/xowa/html/hzips/Xow_hzip_itm__anchor.java b/400_xowa/src/gplx/xowa/html/hzips/Xow_hzip_itm__anchor.java
index 0f2f74cf0..851d10f25 100644
--- a/400_xowa/src/gplx/xowa/html/hzips/Xow_hzip_itm__anchor.java
+++ b/400_xowa/src/gplx/xowa/html/hzips/Xow_hzip_itm__anchor.java
@@ -73,6 +73,10 @@ public class Xow_hzip_itm__anchor {
ttl_bgn += Href_bry_len;
int ttl_end = Bry_finder.Find_fwd(src, Byte_ascii.Quote, ttl_bgn , src_len); if (ttl_end == Bry_finder.Not_found) return hzip_mgr.Warn_by_pos_add_dflt("a.ttl_end_missing", bgn, ttl_bgn);
Xoa_ttl ttl = ttl_parser.Ttl_parse(Bry_.Mid(src, ttl_bgn, ttl_end)); if (ttl == null) return hzip_mgr.Warn_by_pos("a.ttl_invalid", ttl_bgn, ttl_end);
+// int id_bgn = Bry_finder.Find_fwd(src, Find_id_bry, ttl_end, src_len); if (id_bgn == Bry_finder.Not_found) return Xow_hzip_mgr.Unhandled;
+// id_bgn += Find_id_bry.length;
+// int id_end = Bry_finder.Find_fwd(src, Byte_ascii.Quote, id_bgn, src_len); if (id_end == Bry_finder.Not_found) return Xow_hzip_mgr.Unhandled;
+// int id = Bry_.Xto_int_or(src, id_bgn, id_end, -1); if (id == Bry_finder.Not_found) return Xow_hzip_mgr.Unhandled;
int a_lhs_end = Bry_finder.Find_fwd(src, Byte_ascii.Gt, ttl_end, src_len); if (a_lhs_end == Bry_finder.Not_found) return hzip_mgr.Warn_by_pos_add_dflt("a.a_lhs_end_missing", bgn, ttl_end);
++a_lhs_end; // skip >
int a_rhs_bgn = Bry_finder.Find_fwd(src, Find_a_rhs_bgn_bry, a_lhs_end, src_len); if (a_rhs_bgn == Bry_finder.Not_found) return hzip_mgr.Warn_by_pos_add_dflt("a.a_rhs_bgn_missing", bgn, ttl_end);
@@ -196,7 +200,8 @@ public class Xow_hzip_itm__anchor {
);
}
private static final byte[]
- Find_href_bry = Bry_.new_ascii_("href=\"")
+ Find_href_bry = Bry_.new_ascii_(" href=\"")
+// , Find_id_bry = Bry_.new_ascii_(" id=\"")
, Find_a_rhs_bgn_bry = Bry_.new_ascii_("")
, Find_img_xatrs = Bry_.new_ascii_("xatrs='")
;
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm_.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm_.java
new file mode 100644
index 000000000..87d62df29
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm_.java
@@ -0,0 +1,35 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
+public class Xoh_module_itm_ {
+ public static final byte[] // SRL: navframe, toc, title_rewrite are in wiki.cfg
+ Key_collapsible = Bry_.new_ascii_("collapsible")
+ , Key_css = Bry_.new_ascii_("css")
+ , Key_gallery = Bry_.new_ascii_("gallery")
+ , Key_globals = Bry_.new_ascii_("globals")
+ , Key_hiero = Bry_.new_ascii_("hiero")
+ , Key_mathjax = Bry_.new_ascii_("mathjax")
+ , Key_navframe = Bry_.new_ascii_("navframe")
+ , Key_popups = Bry_.new_ascii_("popups")
+ , Key_search_suggest = Bry_.new_ascii_("xowa.search_suggest")
+ , Key_timeline = Bry_.new_ascii_("xowa.timeline")
+ , Key_title_rewrite = Bry_.new_ascii_("title_rewrite")
+ , Key_toc = Bry_.new_ascii_("toc")
+ , Key_top_icon = Bry_.new_ascii_("top_icon")
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__collapsible.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__collapsible.java
index 9e3a1e397..827a0ba65 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__collapsible.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__collapsible.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
public class Xoh_module_itm__collapsible implements Xoh_module_itm {
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("collapsible");
+ public byte[] Key() {return Xoh_module_itm_.Key_collapsible;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__css.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__css.java
index ac2e4fd8e..562fb03a2 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__css.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__css.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__css implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_css;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("css");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__gallery.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__gallery.java
index 47a3dfc83..3039307d9 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__gallery.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__gallery.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__gallery implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_gallery;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("gallery");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_js_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__globals.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__globals.java
index 0da189ca1..730d1a93c 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__globals.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__globals.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.langs.numbers.*;
public class Xoh_module_itm__globals implements Xoh_module_itm {
- private Xoh_module_wtr tmp_wtr = new Xoh_module_wtr();
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("globals");
+ private final Xoh_module_wtr tmp_wtr = new Xoh_module_wtr();
+ public byte[] Key() {return Xoh_module_itm_.Key_globals;}
public boolean Enabled() {return enabled;} public void Enabled_n_() {enabled = false;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
@@ -46,8 +46,8 @@ public class Xoh_module_itm__globals implements Xoh_module_itm {
public void Write_js_tail_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_js_head_global(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
- wtr.Write_js_global_ini_atr_val(Key_mode_is_gui , app.Mode() == Xoa_app_.Mode_gui);
- wtr.Write_js_global_ini_atr_val(Key_mode_is_http , app.Mode() == Xoa_app_.Mode_http);
+ wtr.Write_js_global_ini_atr_val(Key_mode_is_gui , app.App_type().Uid_is_gui());
+ wtr.Write_js_global_ini_atr_val(Key_mode_is_http , app.App_type().Uid_is_http());
wtr.Write_js_global_ini_atr_val(Key_http_port , app.Http_server().Port());
wtr.Write_js_global_ini_atr_msg(wiki, Key_sort_ascending);
wtr.Write_js_global_ini_atr_msg(wiki, Key_sort_descending);
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__hiero.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__hiero.java
index 0b6c4e792..9c9860f6d 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__hiero.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__hiero.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__hiero implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_hiero;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("hiero");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
if (Url_css == null) Url_css = app.Fsys_mgr().Bin_any_dir().GenSubFil_nest("xowa", "xtns", "Wikihiero", "modules", "ext.wikihiero.css").To_http_file_bry();
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__mathjax.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__mathjax.java
index e7ad8435a..1841bf27b 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__mathjax.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__mathjax.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__mathjax implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_mathjax;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("mathjax");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_js_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__navframe.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__navframe.java
index 2094d92a1..9fe6dc28d 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__navframe.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__navframe.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
public class Xoh_module_itm__navframe implements Xoh_module_itm {
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("navframe");
+ public byte[] Key() {return Xoh_module_itm_.Key_navframe;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
@@ -28,7 +28,7 @@ public class Xoh_module_itm__navframe implements Xoh_module_itm {
public void Write_js_head_global(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
wtr.Write_js_global_ini_atr_val(Key_enabled , true);
- wtr.Write_js_global_ini_atr_val(Key_collapsed , app.Api_root().Html().Modules().Navframe().Collapsed() || wiki.Html_mgr().Module_mgr().Itm_navframe().Enabled_n());
+ wtr.Write_js_global_ini_atr_val(Key_collapsed , app.Api_root().Html().Modules().Navframe().Collapsed() || wiki.Html_mgr().Module_mgr().Itm__navframe().Enabled_n());
wtr.Write_js_global_ini_atr_msg(wiki , Key_show);
wtr.Write_js_global_ini_atr_msg(wiki , Key_hide);
}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__popups.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__popups.java
index 8c939d051..10a0f609a 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__popups.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__popups.java
@@ -19,10 +19,10 @@ package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.x
import gplx.xowa.gui.*;
import gplx.xowa.apis.xowa.html.modules.*;
public class Xoh_module_itm__popups implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_popups;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public boolean Bind_hover_area() {return bind_hover_area;} public void Bind_hover_area_(boolean v) {bind_hover_area = v;} private boolean bind_hover_area;
public void Clear() {enabled = false; bind_hover_area = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("popups");
public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_js_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__search_suggest.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__search_suggest.java
index f6c0ce5b3..991c73baf 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__search_suggest.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__search_suggest.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__search_suggest implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_search_suggest;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled = false;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("xowa.search_suggest");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
if (Url_css == null) Url_css = app.Fsys_mgr().Bin_any_dir().GenSubFil_nest("xowa", "html", "res", "src", "xowa", "search-suggest", "search-suggest.css").To_http_file_bry();
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__timeline.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__timeline.java
index d64fab4e5..95e544e17 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__timeline.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__timeline.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__timeline implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_timeline;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled = false;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("xowa.timeline");
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
if (!enabled) return;
if (Url_js == null) Url_js = app.Fsys_mgr().Bin_any_dir().GenSubFil_nest("xowa", "html", "res", "src", "xowa", "timeline", "timeline.js").To_http_file_bry();
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__title_rewrite.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__title_rewrite.java
new file mode 100644
index 000000000..6d59b662c
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__title_rewrite.java
@@ -0,0 +1,34 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
+import gplx.xowa.gui.*;
+import gplx.xowa.apis.xowa.html.modules.*;
+public class Xoh_module_itm__title_rewrite implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_title_rewrite;}
+ public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
+ public void Clear() {enabled = false;}
+ public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
+ public void Write_js_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
+ public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
+ public void Write_js_head_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
+ public void Write_js_tail_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
+ if (!enabled) return;
+ wtr.Write_js_tail_load_lib(app.Fsys_mgr().Bin_any_dir().GenSubFil_nest("xowa", "html", "res", "src", "gadgets", "titleRewrite", "titleRewrite.js"));
+ }
+ public void Write_js_head_global(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
+}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__toc.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__toc.java
index 163b479b8..422bf1eb4 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__toc.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__toc.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*;
import gplx.xowa.gui.*;
public class Xoh_module_itm__toc implements Xoh_module_itm {
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("toc");
+ public byte[] Key() {return Xoh_module_itm_.Key_toc;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__top_icon.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__top_icon.java
index e313f068a..486ad13fd 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__top_icon.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_itm__top_icon.java
@@ -19,9 +19,9 @@ package gplx.xowa.html.modules; import gplx.*; import gplx.xowa.*; import gplx.x
import gplx.xowa.gui.*;
import gplx.xowa.apis.xowa.html.modules.*;
public class Xoh_module_itm__top_icon implements Xoh_module_itm {
+ public byte[] Key() {return Xoh_module_itm_.Key_top_icon;}
public boolean Enabled() {return enabled;} public void Enabled_y_() {enabled = true;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled;
public void Clear() {enabled = false;}
- public byte[] Key() {return Key_const;} private static final byte[] Key_const = Bry_.new_ascii_("top_icon");
public void Write_css_script(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_js_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {}
public void Write_css_include(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_module_wtr wtr) {
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr.java
index 0eb55680d..08f9a455a 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr.java
@@ -20,33 +20,35 @@ public class Xoh_module_mgr implements Bry_fmtr_arg {
private Xoae_app app; private Xowe_wiki wiki; private Xoae_page page; private Xoh_module_itm[] itms; private int itms_len;
private Xoh_module_wtr wtr = new Xoh_module_wtr();
public Xoh_module_mgr() {
- Itms_add(itm_css, itm_globals, itm_popups, itm_toc, itm_collapsible, itm_navframe, itm_gallery, itm_mathjax, itm_hiero, itm_top_icon, itm_search_suggest, itm_timeline);
+ Itms_add(itm__css, itm__globals, itm__popups, itm__toc, itm__collapsible, itm__navframe, itm__gallery, itm__mathjax, itm__hiero, itm__top_icon, itm__title_rewrite, itm__search_suggest, itm__timeline);
}
- public Xoh_module_itm__css Itm_css() {return itm_css;} private Xoh_module_itm__css itm_css = new Xoh_module_itm__css();
- public Xoh_module_itm__globals Itm_globals() {return itm_globals;} private Xoh_module_itm__globals itm_globals = new Xoh_module_itm__globals();
- public Xoh_module_itm__popups Itm_popups() {return itm_popups;} private Xoh_module_itm__popups itm_popups = new Xoh_module_itm__popups();
- public Xoh_module_itm__toc Itm_toc() {return itm_toc;} private Xoh_module_itm__toc itm_toc = new Xoh_module_itm__toc();
- public Xoh_module_itm__collapsible Itm_collapsible() {return itm_collapsible;} private Xoh_module_itm__collapsible itm_collapsible = new Xoh_module_itm__collapsible();
- public Xoh_module_itm__navframe Itm_navframe() {return itm_navframe;} private Xoh_module_itm__navframe itm_navframe = new Xoh_module_itm__navframe();
- public Xoh_module_itm__gallery Itm_gallery() {return itm_gallery;} private Xoh_module_itm__gallery itm_gallery = new Xoh_module_itm__gallery();
- public Xoh_module_itm__mathjax Itm_mathjax() {return itm_mathjax;} private Xoh_module_itm__mathjax itm_mathjax = new Xoh_module_itm__mathjax();
- public Xoh_module_itm__hiero Itm_hiero() {return itm_hiero;} private Xoh_module_itm__hiero itm_hiero = new Xoh_module_itm__hiero();
- public Xoh_module_itm__top_icon Itm_top_icon() {return itm_top_icon;} private Xoh_module_itm__top_icon itm_top_icon = new Xoh_module_itm__top_icon();
- public Xoh_module_itm__search_suggest Itm_search_suggest() {return itm_search_suggest;} private Xoh_module_itm__search_suggest itm_search_suggest = new Xoh_module_itm__search_suggest();
- public Xoh_module_itm__timeline Itm_timeline() {return itm_timeline;} private Xoh_module_itm__timeline itm_timeline = new Xoh_module_itm__timeline();
+ public Xoh_module_itm__css Itm__css() {return itm__css;} private Xoh_module_itm__css itm__css = new Xoh_module_itm__css();
+ public Xoh_module_itm__globals Itm__globals() {return itm__globals;} private Xoh_module_itm__globals itm__globals = new Xoh_module_itm__globals();
+ public Xoh_module_itm__popups Itm__popups() {return itm__popups;} private Xoh_module_itm__popups itm__popups = new Xoh_module_itm__popups();
+ public Xoh_module_itm__toc Itm__toc() {return itm__toc;} private Xoh_module_itm__toc itm__toc = new Xoh_module_itm__toc();
+ public Xoh_module_itm__collapsible Itm__collapsible() {return itm__collapsible;} private Xoh_module_itm__collapsible itm__collapsible = new Xoh_module_itm__collapsible();
+ public Xoh_module_itm__navframe Itm__navframe() {return itm__navframe;} private Xoh_module_itm__navframe itm__navframe = new Xoh_module_itm__navframe();
+ public Xoh_module_itm__gallery Itm__gallery() {return itm__gallery;} private Xoh_module_itm__gallery itm__gallery = new Xoh_module_itm__gallery();
+ public Xoh_module_itm__mathjax Itm__mathjax() {return itm__mathjax;} private Xoh_module_itm__mathjax itm__mathjax = new Xoh_module_itm__mathjax();
+ public Xoh_module_itm__hiero Itm__hiero() {return itm__hiero;} private Xoh_module_itm__hiero itm__hiero = new Xoh_module_itm__hiero();
+ public Xoh_module_itm__top_icon Itm__top_icon() {return itm__top_icon;} private Xoh_module_itm__top_icon itm__top_icon = new Xoh_module_itm__top_icon();
+ public Xoh_module_itm__search_suggest Itm__search_suggest() {return itm__search_suggest;} private Xoh_module_itm__search_suggest itm__search_suggest = new Xoh_module_itm__search_suggest();
+ public Xoh_module_itm__timeline Itm__timeline() {return itm__timeline;} private Xoh_module_itm__timeline itm__timeline = new Xoh_module_itm__timeline();
+ public Xoh_module_itm__title_rewrite Itm__title_rewrite() {return itm__title_rewrite;} private Xoh_module_itm__title_rewrite itm__title_rewrite = new Xoh_module_itm__title_rewrite();
public Xoh_module_mgr Init(Xoae_app app, Xowe_wiki wiki, Xoae_page page) {
this.app = app; this.wiki = wiki; this.page = page;
return this;
}
public Xoh_module_mgr Init_dflts() {
- if (page.Hdr_mgr().Toc_enabled()) itm_toc.Enabled_y_();
- if (wiki.Html_mgr().Module_mgr().Itm_top_icon().Enabled_y()) itm_top_icon.Enabled_y_();
- if (app.Gui_mgr().Search_suggest_mgr().Enabled()) itm_search_suggest.Enabled_y_();
- itm_css.Enabled_y_();
- itm_globals.Enabled_y_(); // for now, always mark this and rest as exists; DATE:2014-06-09
- itm_collapsible.Enabled_y_();
- itm_navframe.Enabled_y_();
- itm_popups.Enabled_(app.Api_root().Html().Modules().Popups().Enabled());
+ if (page.Hdr_mgr().Toc_enabled()) itm__toc.Enabled_y_();
+ if (wiki.Html_mgr().Module_mgr().Itm__top_icon().Enabled_y()) itm__top_icon.Enabled_y_();
+ if (wiki.Html_mgr().Module_mgr().Itm__title_rewrite().Enabled_y()) itm__title_rewrite.Enabled_y_();
+ if (app.Gui_mgr().Search_suggest_mgr().Enabled()) itm__search_suggest.Enabled_y_();
+ itm__css.Enabled_y_();
+ itm__globals.Enabled_y_(); // for now, always mark this and rest as exists; DATE:2014-06-09
+ itm__collapsible.Enabled_y_();
+ itm__navframe.Enabled_y_();
+ itm__popups.Enabled_(app.Api_root().Html().Modules().Popups().Enabled());
return this;
}
public void Clear() {
diff --git a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr_tst.java b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr_tst.java
index ab57daacf..82e4586fd 100644
--- a/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/html/modules/Xoh_module_mgr_tst.java
@@ -21,7 +21,7 @@ import gplx.xowa.gui.*;
public class Xoh_module_mgr_tst {
@Before public void init() {fxt.Clear();} private Xoh_module_mgr_fxt fxt = new Xoh_module_mgr_fxt();
@Test public void Css() {
- fxt.Mgr().Itm_css().Enabled_y_();
+ fxt.Mgr().Itm__css().Enabled_y_();
fxt.Test_write(String_.Concat_lines_nl_skip_last
( ""
, "