mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.11.1.1
This commit is contained in:
@@ -26,7 +26,7 @@ public class Xop_nl_lxr implements Xop_lxr {
|
||||
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
|
||||
if (bgn_pos == Xop_parser_.Doc_bgn_bos) return ctx.Lxr_make_txt_(cur_pos); // simulated nl at beginning of every parse
|
||||
int trim_category_pos = Scan_fwd_for_ctg(ctx, src, cur_pos, src_len);
|
||||
if (trim_category_pos != Bry_.NotFound) { // [[Category]] found after ws
|
||||
if (trim_category_pos != Bry_find_.Not_found) { // [[Category]] found after ws
|
||||
int root_subs_len = root.Subs_len();
|
||||
if (root_subs_len > 0) {
|
||||
Xop_tkn_itm tkn = root.Subs_get(root_subs_len - 1);
|
||||
@@ -104,14 +104,14 @@ public class Xop_nl_lxr implements Xop_lxr {
|
||||
&& Bry_.Has_at(src, src_len, ctg_trie.Match_pos(), Byte_ascii.Colon)) { // check that next char is :
|
||||
return i;// return pos of 1st [
|
||||
}
|
||||
return Bry_.NotFound;
|
||||
return Bry_find_.Not_found;
|
||||
}
|
||||
break;
|
||||
default: // non-ws; return not found
|
||||
return Bry_.NotFound;
|
||||
return Bry_find_.Not_found;
|
||||
}
|
||||
}
|
||||
return Bry_.NotFound;
|
||||
return Bry_find_.Not_found;
|
||||
}
|
||||
public static final Xop_nl_lxr Instance = new Xop_nl_lxr(); Xop_nl_lxr() {}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.parsers.paras; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
|
||||
import gplx.langs.htmls.*; import gplx.xowa.htmls.core.htmls.*;
|
||||
public class Xop_para_tkn extends Xop_tkn_itm_base {
|
||||
public Xop_para_tkn(int pos) {this.Tkn_ini_pos(false, pos, pos);}
|
||||
@Override public byte Tkn_tid() {return Xop_tkn_itm_.Tid_para;}
|
||||
@@ -28,4 +29,26 @@ public class Xop_para_tkn extends Xop_tkn_itm_base {
|
||||
, Tid_para = 1 // </p>
|
||||
, Tid_pre = 2 // </pre>
|
||||
;
|
||||
@Override public void Html__write(Bry_bfr bfr, Xoh_html_wtr wtr, Xowe_wiki wiki, Xoae_page page, Xop_ctx ctx, Xoh_wtr_ctx hctx, Xoh_html_wtr_cfg cfg, Xop_tkn_grp grp, int sub_idx, byte[] src) {
|
||||
if (nl_bgn && bfr.Len() > 0) {
|
||||
if (hctx.Mode_is_alt()) // write called during alt=''
|
||||
bfr.Add_byte_space(); // write '\s', not '\n'
|
||||
else
|
||||
bfr.Add_byte_if_not_last(Byte_ascii.Nl); // write '\n'
|
||||
}
|
||||
switch (para_end) {
|
||||
case Xop_para_tkn.Tid_none: break;
|
||||
case Xop_para_tkn.Tid_para: bfr.Add(Html_tag_.P_rhs).Add_byte_nl(); break; // '<p>'
|
||||
case Xop_para_tkn.Tid_pre: bfr.Add(Html_tag_.Pre_rhs).Add_byte_nl(); break; // '<pre>'
|
||||
default: throw Err_.new_unhandled(para_end);
|
||||
}
|
||||
switch (para_bgn) {
|
||||
case Xop_para_tkn.Tid_none: break;
|
||||
case Xop_para_tkn.Tid_para: Xoh_html_wtr_.Para__assert_tag_starts_on_nl(bfr, this.Src_bgn()); bfr.Add(Html_tag_.P_lhs); break; // '</p>'
|
||||
case Xop_para_tkn.Tid_pre: Xoh_html_wtr_.Para__assert_tag_starts_on_nl(bfr, this.Src_bgn()); bfr.Add(Html_tag_.Pre_lhs); break; // '</pre>'
|
||||
default: throw Err_.new_unhandled(para_bgn);
|
||||
}
|
||||
if (space_bgn > 0)
|
||||
bfr.Add_byte_repeat(Byte_ascii.Space, space_bgn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.parsers.paras; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
|
||||
import gplx.langs.htmls.*; import gplx.xowa.htmls.core.htmls.*;
|
||||
public class Xop_pre_tkn extends Xop_tkn_itm_base {
|
||||
public Xop_pre_tkn(int bgn, int end, byte pre_tid, Xop_tkn_itm pre_bgn_tkn) {
|
||||
this.Tkn_ini_pos(false, bgn, end);
|
||||
@@ -23,5 +24,12 @@ public class Xop_pre_tkn extends Xop_tkn_itm_base {
|
||||
}
|
||||
@Override public byte Tkn_tid() {return Xop_tkn_itm_.Tid_pre;}
|
||||
public byte Pre_tid() {return pre_tid;} private byte pre_tid = Pre_tid_null;
|
||||
@Override public void Html__write(Bry_bfr bfr, Xoh_html_wtr wtr, Xowe_wiki wiki, Xoae_page page, Xop_ctx ctx, Xoh_wtr_ctx hctx, Xoh_html_wtr_cfg cfg, Xop_tkn_grp grp, int sub_idx, byte[] src) {
|
||||
switch (pre_tid) {
|
||||
case Xop_pre_tkn.Pre_tid_bgn: bfr.Add(Html_tag_.Pre_lhs); break; // '<pre>'
|
||||
case Xop_pre_tkn.Pre_tid_end: bfr.Add(Bry__pre__rhs); break; // '\n</pre>\n\n'
|
||||
}
|
||||
}
|
||||
public static final byte Pre_tid_null = 0, Pre_tid_bgn = 1, Pre_tid_end = 2;
|
||||
private static final byte[] Bry__pre__rhs = Bry_.new_a7("\n</pre>\n\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user