mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Cfg: Convert 'CSS - General'
This commit is contained in:
@@ -22,6 +22,7 @@ public class Xoh_html_mgr implements Gfo_invk {
|
||||
public Xoh_html_mgr(Xoae_app app) {}
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
tidy_mgr.Init_by_app(app);
|
||||
page_mgr.Init_by_app(app);
|
||||
}
|
||||
public Xoh_page_mgr Page_mgr() {return page_mgr;} private final Xoh_page_mgr page_mgr = new Xoh_page_mgr();
|
||||
public Xoa_tidy_mgr Tidy_mgr() {return tidy_mgr;} private final Xoa_tidy_mgr tidy_mgr = new Xoa_tidy_mgr();
|
||||
|
||||
@@ -16,45 +16,50 @@ 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.htmls; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.brys.fmtrs.*;
|
||||
import gplx.xowa.htmls.portal.*;
|
||||
public class Xoh_page_mgr implements Gfo_invk {
|
||||
public Xoh_subpages_bldr Subpages_bldr() {return subpages_bldr;} private final Xoh_subpages_bldr subpages_bldr = new Xoh_subpages_bldr();
|
||||
public boolean Font_enabled() {return font_enabled;} private boolean font_enabled = false;
|
||||
public void Font_enabled_(boolean v) {font_enabled = v;}
|
||||
public String Font_name() {return font_name;} private String font_name = "Arial";
|
||||
private boolean font_enabled = false;
|
||||
private String font_name = "Arial";
|
||||
private byte[] font_css_bry = Bry_.Empty, custom_script = Bry_.Empty;
|
||||
private final Bry_fmt font_css_fmt = Bry_fmt.Auto("body {font-family: ~{font_name}; font-size: ~{font_size}px;}");
|
||||
public float Font_size() {return font_size;} private float font_size = Font_size_default;
|
||||
public void Font_size_(float v) {
|
||||
font_size = v;
|
||||
this.Font_css_bry_update();
|
||||
private void Font_css_bry_() {
|
||||
font_css_bry = font_css_fmt.Bld_many_to_bry(Bry_bfr_.New(), font_name, font_size);
|
||||
}
|
||||
public Bry_fmtr Font_css_fmtr() {return font_css_fmtr;} private final Bry_fmtr font_css_fmtr = Bry_fmtr.new_("body {font-family: ~{font_name}; font-size: ~{font_size}px;}", "font_name", "font_size");
|
||||
public Bry_fmtr Content_code_fmtr() {return content_code_fmtr;} private final Bry_fmtr content_code_fmtr = Bry_fmtr.new_("<pre>~{page_text}</pre>", "page_text");
|
||||
private void Font_css_fmtr_(byte[] bry) {
|
||||
font_css_fmtr.Fmt_(bry);
|
||||
Font_css_bry_update();
|
||||
public void Write_css(gplx.xowa.htmls.heads.Xoh_head_wtr wtr) {
|
||||
if (font_enabled)
|
||||
wtr.Write_css_style_itm(font_css_bry);
|
||||
if (Bry_.Len_gt_0(custom_script))
|
||||
wtr.Write_css_style_itm(custom_script);
|
||||
}
|
||||
|
||||
public Bry_fmt Content_code_fmt() {return content_code_fmt;} private final Bry_fmt content_code_fmt = Bry_fmt.Auto("<pre>~{page_text}</pre>");
|
||||
public Xoh_subpages_bldr Subpages_bldr() {return subpages_bldr;} private final Xoh_subpages_bldr subpages_bldr = new Xoh_subpages_bldr();
|
||||
public void Init_by_app(Xoa_app app) {
|
||||
app.Cfg().Bind_many_app(this, Cfg__font_enabled, Cfg__font_name, Cfg__font_size, Cfg__font_format, Cfg__custom_script);
|
||||
}
|
||||
public byte[] Font_css_bry() {return font_css_bry;}
|
||||
public void Font_css_bry_update() {
|
||||
font_css_bry = font_css_fmtr.Bld_bry_many(Bry_bfr_.New(), font_name, font_size);
|
||||
} private byte[] font_css_bry = Bry_.Empty;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_font_name)) return font_name;
|
||||
else if (ctx.Match(k, Invk_font_name_)) {font_name = m.ReadStr("v"); this.Font_css_bry_update();}
|
||||
else if (ctx.Match(k, Invk_font_size)) return font_size;
|
||||
else if (ctx.Match(k, Invk_font_size_)) {font_size = m.ReadFloat("v"); this.Font_css_bry_update();}
|
||||
else if (ctx.Match(k, Invk_font_css_fmt)) return String_.new_u8(font_css_fmtr.Fmt());
|
||||
else if (ctx.Match(k, Invk_font_css_fmt_)) Font_css_fmtr_(m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_font_enabled)) return Yn.To_str(font_enabled);
|
||||
else if (ctx.Match(k, Invk_font_enabled_)) font_enabled = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Invk_content_code_fmt)) return String_.new_u8(content_code_fmtr.Fmt());
|
||||
else if (ctx.Match(k, Invk_content_code_fmt_)) content_code_fmtr.Fmt_(m.ReadBry("v"));
|
||||
if (ctx.Match(k, Invk_content_code_fmt)) return String_.new_u8(content_code_fmt.Fmt());
|
||||
else if (ctx.Match(k, Invk_content_code_fmt_)) content_code_fmt.Fmt_(m.ReadBry("v"));
|
||||
|
||||
else if (ctx.Match(k, Cfg__font_enabled)) font_enabled = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Cfg__font_name)) {font_name = m.ReadStr("v"); Font_css_bry_();}
|
||||
else if (ctx.Match(k, Cfg__font_size)) {font_size = m.ReadFloat("v"); Font_css_bry_();}
|
||||
else if (ctx.Match(k, Cfg__font_format)) {font_css_fmt.Fmt_(m.ReadBry("v")); Font_css_bry_();}
|
||||
else if (ctx.Match(k, Cfg__custom_script)) custom_script = m.ReadBry("v");
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String Invk_font_name = "font_name", Invk_font_name_ = "font_name_", Invk_font_size = "font_size", Invk_font_size_ = "font_size_"
|
||||
, Invk_font_css_fmt = "font_css_fmt", Invk_font_css_fmt_ = "font_css_fmt_", Invk_font_enabled = "font_enabled", Invk_font_enabled_ = "font_enabled_"
|
||||
, Invk_content_code_fmt = "content_code_fmt", Invk_content_code_fmt_ = "content_code_fmt_"
|
||||
private static final String Invk_content_code_fmt = "content_code_fmt", Invk_content_code_fmt_ = "content_code_fmt_";
|
||||
|
||||
public static final String
|
||||
Cfg__font_enabled = "xowa.html.css.font.enabled"
|
||||
, Cfg__font_size = "xowa.html.css.font.size"
|
||||
;
|
||||
private static final String
|
||||
Cfg__font_name = "xowa.html.css.font.name"
|
||||
, Cfg__font_format = "xowa.html.css.font.format"
|
||||
, Cfg__custom_script = "xowa.html.css.custom.script"
|
||||
;
|
||||
public static final float Font_size_default = 16;
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ public class Xoh_page_wtr_wkr {
|
||||
if (hctx.Mode_is_hdump())
|
||||
bfr.Add(data_raw);
|
||||
else
|
||||
app.Html_mgr().Page_mgr().Content_code_fmtr().Bld_bfr_many(bfr, tmp_bfr);
|
||||
app.Html_mgr().Page_mgr().Content_code_fmt().Bld_many(bfr, tmp_bfr);
|
||||
tmp_bfr.Clear();
|
||||
}
|
||||
private void Write_body_edit(Bry_bfr bfr, byte[] data_raw, int ns_id, byte page_tid) {
|
||||
|
||||
@@ -32,9 +32,9 @@ public class Xoh_page_wtr_wkr_tst {
|
||||
fxt.Test_edit("	", "&#9;\n"); // NOTE: cannot by 	 or will show up in edit box as "\t" and save as "\t" instead of 	
|
||||
}
|
||||
@Test public void Css() {
|
||||
fxt.App().Html_mgr().Page_mgr().Content_code_fmtr().Fmt_("<pre style='overflow:auto'>~{page_text}</pre>");
|
||||
fxt.App().Html_mgr().Page_mgr().Content_code_fmt().Fmt_("<pre style='overflow:auto'>~{page_text}</pre>");
|
||||
fxt.Test_read("MediaWiki:Common.css", ".xowa {}", "<pre style='overflow:auto'>.xowa {}</pre>");
|
||||
fxt.App().Html_mgr().Page_mgr().Content_code_fmtr().Fmt_("<pre>~{page_text}</pre>");
|
||||
fxt.App().Html_mgr().Page_mgr().Content_code_fmt().Fmt_("<pre>~{page_text}</pre>");
|
||||
}
|
||||
@Test public void Amp_disable() { // PURPOSE: in js documents; " should be rendered as ", not as "; DATE:2013-11-07
|
||||
fxt.Test_read("MediaWiki:Gadget.js", """, "<pre>&quot;</pre>");
|
||||
|
||||
@@ -39,7 +39,7 @@ public class Xow_html_mgr implements Gfo_invk {
|
||||
public void Init_by_wiki(Xowe_wiki wiki) {
|
||||
html_wtr.Init_by_wiki(wiki);
|
||||
module_mgr.Init_by_wiki(wiki);
|
||||
tidy_mgr.Init_by_app(wiki.Appe());
|
||||
tidy_mgr.Init_by_wiki(wiki.Appe());
|
||||
}
|
||||
public void Init_by_lang(Xol_lang_itm lang) {
|
||||
portal_mgr.Init_by_lang(lang);
|
||||
|
||||
@@ -31,7 +31,7 @@ public class Xow_tidy_mgr implements Gfo_evt_itm, Xow_tidy_mgr_interface {
|
||||
}
|
||||
wkr.Init_by_app(app);
|
||||
}
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
public void Init_by_wiki(Xoae_app app) {
|
||||
this.app = app;
|
||||
this.tidy_mgr = app.Html_mgr().Tidy_mgr();
|
||||
Gfo_evt_mgr_.Sub_same_many(tidy_mgr, this, Xoa_tidy_mgr.Evt__enabled_changed, Xoa_tidy_mgr.Evt__engine_changed);
|
||||
|
||||
@@ -22,10 +22,6 @@ public class Xoh_head_itm__css extends Xoh_head_itm__base {
|
||||
@Override public int Flags() {return Flag__css_text;}
|
||||
@Override public void Write_css_text(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Xoh_head_wtr wtr) {
|
||||
wtr.Write_css_style_itm(app.Ctg_mgr().Missing_ctg_cls_css());
|
||||
if (app.Html_mgr().Page_mgr().Font_enabled())
|
||||
wtr.Write_css_style_itm(app.Html_mgr().Page_mgr().Font_css_bry());
|
||||
byte[] css_xtn = app.Gui_mgr().Html_mgr().Css_xtn();
|
||||
if (Bry_.Len_gt_0(css_xtn))
|
||||
wtr.Write_css_style_itm(css_xtn);
|
||||
app.Html_mgr().Page_mgr().Write_css(wtr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ public class Xoh_subpages_bldr implements gplx.core.brys.Bfr_arg {
|
||||
private byte[][] segs;
|
||||
public byte[] Bld(Xow_ns_mgr ns_mgr, Xoa_ttl ttl) {
|
||||
Xow_ns ns = ttl.Ns();
|
||||
if (! ( ns.Subpages_enabled() // ns has subpages
|
||||
&& ttl.Leaf_bgn() != Bry_find_.Not_found // ttl has leaf text; EX: Help:A/B
|
||||
&& ns.Id() != ns_mgr.Ns_page_id() // ns is not [[Page:]]; PAGE:en.s:Notes_on_Osteology_of_Baptanodon._With_a_Description_of_a_New_Species DATE:2014-09-06
|
||||
if (! ( ns.Subpages_enabled() // ns has subpages
|
||||
&& ttl.Leaf_bgn() != Bry_find_.Not_found // ttl has leaf text; EX: Help:A/B
|
||||
&& ns.Id() != ns_mgr.Ns_page_id() // ns is not [[Page:]]; PAGE:en.s:Notes_on_Osteology_of_Baptanodon._With_a_Description_of_a_New_Species DATE:2014-09-06
|
||||
)
|
||||
) return Bry_.Empty; // doesn't match above; return empty;
|
||||
) return Bry_.Empty; // doesn't match above; return empty;
|
||||
byte[] raw = ttl.Raw();
|
||||
this.segs = Bry_split_.Split(raw, Byte_ascii.Slash);
|
||||
fmtr_grp.Bld_bfr(tmp_bfr, this);
|
||||
|
||||
Reference in New Issue
Block a user