mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Section_edit: Add initial groundwork for generating html
This commit is contained in:
@@ -18,13 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
|
||||
import gplx.core.log_msgs.*;
|
||||
public class Xop_tmpl_log {
|
||||
private static final Gfo_msg_grp owner = Gfo_msg_grp_.new_(Xoa_app_.Nde, "tmpl");
|
||||
public static final Gfo_msg_itm
|
||||
Escaped_tmpl = Gfo_msg_itm_.new_warn_(owner, "Escaped_tmpl")
|
||||
, Escaped_end = Gfo_msg_itm_.new_warn_(owner, "Escaped_end")
|
||||
, Key_is_empty = Gfo_msg_itm_.new_note_(owner, "Key_is_empty")
|
||||
, Dangling = Gfo_msg_itm_.new_note_(owner, "Dangling_tmpl")
|
||||
, Tmpl_end_autoCloses_something = Gfo_msg_itm_.new_note_(owner, "Tmpl_end_autoCloses_something")
|
||||
, Tmpl_is_empty = Gfo_msg_itm_.new_note_(owner, "Tmpl_is_empty")
|
||||
;
|
||||
private static final Gfo_msg_grp owner = Gfo_msg_grp_.new_(Xoa_app_.Nde, "tmpl");
|
||||
public static final Gfo_msg_itm
|
||||
Escaped_tmpl = Gfo_msg_itm_.new_warn_(owner, "Escaped_tmpl")
|
||||
, Escaped_end = Gfo_msg_itm_.new_warn_(owner, "Escaped_end")
|
||||
, Key_is_empty = Gfo_msg_itm_.new_note_(owner, "Key_is_empty")
|
||||
, Dangling = Gfo_msg_itm_.new_note_(owner, "Dangling_tmpl")
|
||||
, Tmpl_end_autoCloses_something = Gfo_msg_itm_.new_note_(owner, "Tmpl_end_autoCloses_something")
|
||||
, Tmpl_is_empty = Gfo_msg_itm_.new_note_(owner, "Tmpl_is_empty")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
|
||||
public class Xot_compile_data {
|
||||
public boolean OnlyInclude_exists;
|
||||
public boolean Arg_nde_has_key() {return arg_nde_has_key;} public Xot_compile_data Arg_nde_has_key_(boolean v) {arg_nde_has_key = v; return this;} private boolean arg_nde_has_key;
|
||||
public boolean Arg_nde_has_key() {return arg_nde_has_key;} private boolean arg_nde_has_key;
|
||||
public Xot_compile_data Arg_nde_has_key_(boolean v) {arg_nde_has_key = v; return this;}
|
||||
|
||||
public static final Xot_compile_data Noop = new Xot_compile_data();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
|
||||
import gplx.core.brys.*; import gplx.xowa.wikis.nss.*;
|
||||
public class Xot_defn_tmpl implements Xot_defn {
|
||||
private boolean onlyinclude_parsed = false;
|
||||
public byte Defn_tid() {return Xot_defn_.Tid_tmpl;}
|
||||
public boolean Defn_require_colon_arg() {return false;}
|
||||
public int Cache_size() {return data_raw.length;}
|
||||
@@ -60,7 +61,7 @@ public class Xot_defn_tmpl implements Xot_defn {
|
||||
if (root != null) root.Clear();
|
||||
root = null;
|
||||
}
|
||||
public void Parse_tmpl(Xop_ctx ctx) {ctx.Wiki().Parser_mgr().Main().Parse_text_to_defn(this, ctx, ctx.Tkn_mkr(), ns, name, data_raw);} boolean onlyinclude_parsed = false;
|
||||
public void Parse_tmpl(Xop_ctx ctx) {ctx.Wiki().Parser_mgr().Main().Parse_text_to_defn(this, ctx, ctx.Tkn_mkr(), ns, name, data_raw);}
|
||||
public boolean Tmpl_evaluate(Xop_ctx ctx, Xot_invk caller, Bry_bfr bfr) {
|
||||
if (root == null) Parse_tmpl(ctx);
|
||||
Xoae_page page = ctx.Page();
|
||||
|
||||
@@ -20,21 +20,19 @@ import gplx.core.envs.*;
|
||||
import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.miscs.*;
|
||||
public class Xot_tmpl_wtr {
|
||||
public byte[] Write_all(Xop_ctx ctx, Xop_root_tkn root, byte[] src) {
|
||||
// synchronized (this) { // THREAD:added synchronized after "failed to write tkn" DATE:2015-04-29
|
||||
Bry_bfr rslt_bfr = ctx.Wiki().Utl__bfr_mkr().Get_m001();
|
||||
rslt_bfr.Reset_if_gt(Io_mgr.Len_mb);
|
||||
Write_tkn(ctx, src, src.length, rslt_bfr, root);
|
||||
return rslt_bfr.To_bry_and_rls();
|
||||
// }
|
||||
Bry_bfr rslt_bfr = ctx.Wiki().Utl__bfr_mkr().Get_m001();
|
||||
rslt_bfr.Reset_if_gt(Io_mgr.Len_mb);
|
||||
Write_tkn(rslt_bfr, ctx, src, src.length, root);
|
||||
return rslt_bfr.To_bry_and_rls();
|
||||
}
|
||||
private void Write_tkn(Xop_ctx ctx, byte[] src, int src_len, Bry_bfr rslt_bfr, Xop_tkn_itm tkn) {
|
||||
private void Write_tkn(Bry_bfr rslt_bfr, Xop_ctx ctx, byte[] src, int src_len, Xop_tkn_itm tkn) {
|
||||
switch (tkn.Tkn_tid()) {
|
||||
case Xop_tkn_itm_.Tid_root: // write each sub
|
||||
int subs_len = tkn.Subs_len();
|
||||
for (int i = 0; i < subs_len; i++) {
|
||||
Xop_tkn_itm sub_tkn = tkn.Subs_get(i);
|
||||
if (!sub_tkn.Ignore())
|
||||
Write_tkn(ctx, src, src_len, rslt_bfr, sub_tkn);
|
||||
Write_tkn(rslt_bfr, ctx, src, src_len, sub_tkn);
|
||||
}
|
||||
break;
|
||||
case Xop_tkn_itm_.Tid_bry:
|
||||
|
||||
Reference in New Issue
Block a user