1
0
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:
gnosygnu
2016-12-17 01:12:09 -05:00
parent 66e1c3ecc2
commit 7f97487721
14 changed files with 77 additions and 78 deletions

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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) {

View File

@@ -32,9 +32,9 @@ public class Xoh_page_wtr_wkr_tst {
fxt.Test_edit("&#9;", "&amp;#9;\n"); // NOTE: cannot by &#9; or will show up in edit box as "\t" and save as "\t" instead of &#9;
}
@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; &quot; should be rendered as &quot;, not as "; DATE:2013-11-07
fxt.Test_read("MediaWiki:Gadget.js", "&quot;", "<pre>&amp;quot;</pre>");

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -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);