mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Pagebanner: Disable toc if pagebanner html exists; also, sync PageBanner css [#610]
This commit is contained in:
parent
8653e665cc
commit
9483b56121
@ -19,8 +19,8 @@ import gplx.xowa.apps.cfgs.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*; import gplx.xowa.langs.msgs.*;
|
||||
import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.htmls.*;
|
||||
import gplx.xowa.parsers.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.hdrs.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.parsers.paras.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.tmpls.*; import gplx.xowa.parsers.miscs.*; import gplx.xowa.parsers.tblws.*; import gplx.xowa.parsers.lnkes.*; import gplx.xowa.parsers.lnkis.*;
|
||||
import gplx.xowa.files.exts.*; import gplx.xowa.files.repos.*;
|
||||
import gplx.xowa.wikis.nss.*;
|
||||
import gplx.xowa.files.exts.*; import gplx.xowa.files.repos.*; import gplx.xowa.htmls.core.wkrs.lnkis.htmls.*;
|
||||
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.domains.*;
|
||||
import gplx.xowa.wikis.tdbs.hives.*;
|
||||
import gplx.xowa.wikis.pages.*;
|
||||
public class Xop_fxt {
|
||||
@ -170,6 +170,16 @@ public class Xop_fxt {
|
||||
rv.Find_tkn_(tkn_arg_itm_(find));
|
||||
return rv;
|
||||
}
|
||||
public void Init__file_find_mgr() {
|
||||
Xowe_wiki commons_wiki = this.app.Wiki_mgr().Get_by_or_make(Xow_domain_itm_.Bry__commons);
|
||||
Xof_repo_itm repo_itm = app.File_mgr().Repo_mgr().Get_at(0);
|
||||
commons_wiki.Html_mgr().Html_wtr().Lnki_wtr().File_wtr().Find_file_mgr_(new Xow_find_file_mgr(repo_itm, commons_wiki.Domain_str()));
|
||||
this.wiki.Html_mgr().Html_wtr().Lnki_wtr().File_wtr().Find_file_mgr_(new Xow_find_file_mgr(repo_itm, this.wiki.Domain_str()));
|
||||
}
|
||||
public void Init__orig(boolean wiki_is_commons, String orig_ttl, int orig_w, int orig_h) {
|
||||
Xowe_wiki orig_wiki = wiki_is_commons ? (Xowe_wiki)this.wiki : (Xowe_wiki)app.Wiki_mgr().Get_by_or_null(gplx.xowa.wikis.domains.Xow_domain_itm_.Bry__commons);
|
||||
orig_wiki.Html_mgr().Html_wtr().Lnki_wtr().File_wtr().Find_file_mgr().Init_file(orig_ttl, orig_w, orig_h);
|
||||
}
|
||||
public void Init__msg(String key, String val) {
|
||||
Xol_msg_itm msg_itm = wiki.Msg_mgr().Get_or_make(Bry_.new_u8(key));
|
||||
msg_itm.Atrs_set(Bry_.new_u8(val), false, false);
|
||||
|
@ -27,6 +27,7 @@ public class Xoh_file_mgr {
|
||||
this.wiki = wiki; this.file_wtr = new Xoh_file_wtr__basic(wiki, html_mgr, html_wtr);
|
||||
}
|
||||
public Xoh_file_wtr__basic File_wtr() {return file_wtr;} private final Xoh_file_wtr__basic file_wtr;
|
||||
public Xow_find_file_mgr Find_file_mgr() {return find_file_mgr;} public void Find_file_mgr_(Xow_find_file_mgr v) {this.find_file_mgr = v;} private Xow_find_file_mgr find_file_mgr;
|
||||
public void Init_by_wiki(Xowe_wiki wiki) {
|
||||
file_wtr.Init_by_wiki(wiki);
|
||||
}
|
||||
@ -76,8 +77,14 @@ public class Xoh_file_mgr {
|
||||
return false;
|
||||
if (source_wiki.File_mgr().Version() == Xow_file_mgr.Version_2)
|
||||
return ctx.App().User().User_db_mgr().File__xfer_itm_finder().Find(source_wiki, xfer.Lnki_exec_tid(), xfer, ctx.Page().Url_bry_safe());
|
||||
else
|
||||
else {
|
||||
if (find_file_mgr != null) {
|
||||
boolean rv = find_file_mgr.Find_file(xfer);
|
||||
if (rv)
|
||||
return rv;
|
||||
}
|
||||
return source_wiki.File_mgr().Find_meta(xfer);
|
||||
}
|
||||
}
|
||||
private static boolean File_queue_add(Xowe_wiki wiki, Xof_xfer_itm xfer, boolean lnki_is_media_ns, boolean found) {
|
||||
if (!wiki.File_mgr().Cfg_download().Enabled()) return false;
|
||||
|
@ -0,0 +1,58 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012-2017 gnosygnu@gmail.com
|
||||
|
||||
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
|
||||
or alternatively under the terms of the Apache License Version 2.0.
|
||||
|
||||
You may use XOWA according to either of these licenses as is most appropriate
|
||||
for your project on a case-by-case basis.
|
||||
|
||||
The terms of each license can be found in the source code repository:
|
||||
|
||||
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
*/
|
||||
package gplx.xowa.htmls.core.wkrs.lnkis.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.wkrs.*; import gplx.xowa.htmls.core.wkrs.lnkis.*;
|
||||
import gplx.xowa.wikis.domains.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
|
||||
import gplx.xowa.htmls.core.wkrs.imgs.atrs.*;
|
||||
public class Xow_find_file_mgr {
|
||||
private final Xof_repo_itm repo_itm;
|
||||
private final Xof_url_bldr url_bldr = new Xof_url_bldr();
|
||||
private final byte[] wiki_domain;
|
||||
private final Hash_adp_bry hash = Hash_adp_bry.cs();
|
||||
public Xow_find_file_mgr(Xof_repo_itm repo_itm, String wiki_domain_str) {
|
||||
this.repo_itm = repo_itm;
|
||||
this.wiki_domain = Bry_.new_u8(wiki_domain_str);
|
||||
}
|
||||
public void Init_file(String orig_ttl_str, int orig_w, int orig_h) {this.Init_file(true, orig_ttl_str, orig_w, orig_h);}
|
||||
public void Init_file(boolean repo_is_remote, String orig_ttl_str, int orig_w, int orig_h) {
|
||||
byte orig_repo_id = repo_is_remote ? Xof_repo_tid_.Tid__remote : Xof_repo_tid_.Tid__local;
|
||||
byte[] orig_repo_name = repo_is_remote ? Xow_domain_itm_.Bry__commons : wiki_domain;
|
||||
byte[] orig_ttl_bry = Bry_.new_u8(orig_ttl_str);
|
||||
Xof_ext orig_ext = Xof_ext_.new_by_ttl_(orig_ttl_bry);
|
||||
byte[] orig_redirect = null;
|
||||
this.Init_file(orig_repo_id, orig_repo_name, orig_ttl_bry, orig_ext, orig_w, orig_h, orig_redirect);
|
||||
}
|
||||
public void Init_file(byte orig_repo_id, byte[] orig_repo_name, byte[] orig_ttl_bry, Xof_ext orig_ext, int orig_w, int orig_h, byte[] orig_redirect) {
|
||||
Xof_xfer_itm orig = new Xof_xfer_itm();
|
||||
orig.Init_at_orig(orig_repo_id, orig_repo_name, orig_ttl_bry, orig_ext, orig_w, orig_h, orig_redirect);
|
||||
hash.Add_bry_obj(orig_ttl_bry, orig);
|
||||
}
|
||||
public boolean Find_file(Xof_xfer_itm xfer) {
|
||||
// find orig
|
||||
Xof_xfer_itm orig = (Xof_xfer_itm)hash.Get_by_bry(xfer.Lnki_ttl());
|
||||
|
||||
// exit if not found
|
||||
if (orig == null)
|
||||
return false;
|
||||
|
||||
// orig found; calc xfer.html based on orig; note, this seems early to generate html, but need to generate a correct html_url as well as other props
|
||||
Xof_img_size img_size = new Xof_img_size();
|
||||
img_size.Html_size_calc(Xof_exec_tid.Tid_wiki_page, xfer.Lnki_w(), xfer.Lnki_h(), xfer.Lnki_type(), Xof_patch_upright_tid_.Tid_all, xfer.Lnki_upright(), orig.Orig_ext().Id(), orig.Orig_w(), orig.Orig_h(), Xof_img_size.Thumb_width_img);
|
||||
xfer.Init_at_orig(orig.Orig_repo_id(), orig.Orig_repo_name(), orig.Orig_ttl(), orig.Orig_ext(), orig.Orig_w(), orig.Orig_h(), orig.Orig_redirect());
|
||||
xfer.Init_at_html(Xof_exec_tid.Tid_wiki_page, img_size, repo_itm, url_bldr);
|
||||
return true;
|
||||
}
|
||||
}
|
@ -18,6 +18,8 @@ import gplx.core.btries.*; import gplx.langs.mustaches.*;
|
||||
import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*; import gplx.xowa.xtns.pfuncs.*; import gplx.xowa.langs.kwds.*; import gplx.xowa.parsers.utils.*; import gplx.xowa.parsers.lnkis.*; import gplx.xowa.parsers.lnkis.files.*;
|
||||
import gplx.xowa.files.*;
|
||||
import gplx.xowa.htmls.core.htmls.*; import gplx.langs.htmls.encoders.*;
|
||||
// REF.MW:https://github.com/wikimedia/mediawiki-extensions-WikidataPageBanner/blob/master/includes/WikidataPageBannerFunctions.php
|
||||
// TODO.DATE:2019-11-11: calculate enableToc and hasPosition;
|
||||
public class Pgbnr_func extends Pf_func_base {
|
||||
@Override public int Id() {return Xol_kwd_grp_.Id_pagebanner;}
|
||||
@Override public Pf_func New(int id, byte[] name) {return new Pgbnr_func().Name_(name);}
|
||||
@ -130,8 +132,10 @@ public class Pgbnr_func extends Pf_func_base {
|
||||
itm.Init_hdump(hctx.Mode_is_hdump());
|
||||
banner_html = Get_banner_html(wiki, ctx, hctx, cfg, banner_ttl, itm);
|
||||
}
|
||||
if (banner_html != null)
|
||||
if (banner_html != null) {
|
||||
bfr.Add(banner_html);
|
||||
wiki.Html_mgr().Html_wtr().Cfg().Toc__show_(false); // disable toc, else it will show twice (once in page banner; once in html); DATE:2019-11-11
|
||||
}
|
||||
}
|
||||
public static byte[] Get_banner_html(Xowe_wiki wiki, Xop_ctx ctx, Xoh_wtr_ctx hctx, Pgbnr_cfg cfg, Xoa_ttl banner_ttl, Pgbnr_itm itm) {
|
||||
byte[][] urls = Get_standard_size_urls(wiki, cfg, banner_ttl); if (urls == null) return null;
|
||||
@ -144,8 +148,11 @@ public class Pgbnr_func extends Pf_func_base {
|
||||
tmp_bfr.Add(urls[i]).Add_byte_space().Add_int_variable(size).Add_byte(Byte_ascii.Ltr_w); // REF.MW: $srcset[] = "$url {$size}w";
|
||||
}
|
||||
byte[] srcset = tmp_bfr.To_bry_and_clear();
|
||||
byte[] banner_url = itm.banner_img_src != null ? itm.banner_img_src : urls.length == 0 ? Bry_.Empty : urls[urls_len - 1]; // gets largest url
|
||||
int max_width = itm.banner_file_itm.Orig_w(); // $file = wfFindFile( banner_file ); $options['max_width'] = $file->getWidth();
|
||||
byte[] banner_url = itm.banner_img_src != null ? itm.banner_img_src : urls.length == 0 ? Bry_.Empty : urls[urls_len - 1]; // gets largest url
|
||||
Xof_file_itm banner_file_itm = itm.banner_file_itm;
|
||||
int max_width = banner_file_itm.Orig_w(); // $file = wfFindFile( banner_file ); $options['max_width'] = $file->getWidth();
|
||||
// Provide information to the logic-less template about whether it is a panorama or not.
|
||||
boolean isPanorama = banner_file_itm.Orig_w() > (banner_file_itm.Orig_h() * 2);
|
||||
byte[] banner_file = null; // $bannerfile->getLocalUrl();
|
||||
|
||||
byte[] toc_html = null;
|
||||
@ -159,7 +166,7 @@ public class Pgbnr_func extends Pf_func_base {
|
||||
ctx.Page().Html_data().Toc_mgr().To_html(tmp_bfr, Xoh_wtr_ctx.Basic, true);
|
||||
toc_html = tmp_bfr.To_bry_and_clear();
|
||||
}
|
||||
itm.Init_from_html(max_width, banner_file, banner_url, srcset, cfg.enable_heading_override, toc_html);
|
||||
itm.Init_from_html(max_width, banner_file, banner_url, srcset, cfg.enable_heading_override, toc_html, isPanorama);
|
||||
|
||||
Mustache_render_ctx mctx = new Mustache_render_ctx().Init(itm);
|
||||
Mustache_bfr mbfr = Mustache_bfr.New_bfr(tmp_bfr);
|
||||
|
@ -18,12 +18,14 @@ import org.junit.*; import gplx.core.brys.*; import gplx.xowa.wikis.pages.skins.
|
||||
import gplx.xowa.htmls.core.htmls.*;
|
||||
public class Pgbnr_func_tst {
|
||||
private final Pgbnr_func_fxt fxt = new Pgbnr_func_fxt();
|
||||
@Test public void Basic() {
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Basic() {
|
||||
fxt.Init__orig(true, "A.png", 500, 200); // 500 > 200 * 2 for pageBanner;
|
||||
fxt.Test__parse(Bool_.N, "{{PAGEBANNER:A.png|icon-star=Star_article}}", String_.Concat_lines_nl_apos_skip_last
|
||||
( "<div class='ext-wpb-pagebanner noprint pre-content'>"
|
||||
, " <div class='wpb-banner-image-panorama wpb-topbanner wpb-positioned-banner'>"
|
||||
( "<div class='ext-wpb-pagebanner pre-content'>"
|
||||
, " <div class='wpb-banner-image-panorama wpb-topbanner'>"
|
||||
, " <h1 class='wpb-name'>Test page</h1>"
|
||||
, " <a href='' class='image' title='Test page' xowa_title='A.png'><img id='xoimg_0' src='file:///mem/wiki/repo/trg/orig/7/0/A.png' width='0' height='0' class='wpb-banner-image ' alt='' srcset='' data-pos-x='0' data-pos-y='0' style='max-width:0px'></a>"
|
||||
, " <a href='' class='image' title='Test page' xowa_title='A.png'><img id='xoimg_0' src='file:///mem/wiki/repo/src/orig/7/0/A.png' width='0' height='0' class='wpb-banner-image ' alt='' srcset='' data-pos-x='0' data-pos-y='0' style='max-width:500px'></a>"
|
||||
, " <div class='wpb-iconbox'>"
|
||||
, " <a href='/wiki/Star_article'><span aria-disabled='false' title='Star article' class='oo-ui-widget oo-ui-widget-enabled oo-ui-iconElement-icon oo-ui-icon-star oo-ui-iconElement oo-ui-iconWidget'></span></a>"
|
||||
, " </div>"
|
||||
@ -39,8 +41,8 @@ public class Pgbnr_func_tst {
|
||||
}
|
||||
@Test public void Hdump__basic() {
|
||||
fxt.Test__parse(Bool_.Y, "{{PAGEBANNER:A.png|icon-star=Star_article}}", String_.Concat_lines_nl_apos_skip_last
|
||||
( "<div class='ext-wpb-pagebanner noprint pre-content'>"
|
||||
, " <div class='wpb-banner-image-panorama wpb-topbanner wpb-positioned-banner'>"
|
||||
( "<div class='ext-wpb-pagebanner pre-content'>"
|
||||
, " <div class='wpb-topbanner'>"
|
||||
, " <h1 class='wpb-name'>Test page</h1>"
|
||||
, " <a href='/wiki/File:A.png' class='image' title='Test page' xowa_title='A.png'><img data-xowa-title=\"A.png\" data-xoimg=\"1|-1|-1|-1|-1|-1\" src='' width='0' height='0' class='wpb-banner-image ' alt='' srcset='' data-pos-x='0' data-pos-y='0' style='max-width:0px'></a>"
|
||||
, " <div class='wpb-iconbox'>"
|
||||
@ -53,8 +55,8 @@ public class Pgbnr_func_tst {
|
||||
}
|
||||
@Test public void Hdump__quote() { // PAGE:en.v:Europe; DATE:2016-07-12
|
||||
fxt.Test__parse(Bool_.Y, "{{PAGEBANNER:A\"b.png|icon-star=Star_article}}", String_.Concat_lines_nl_apos_skip_last
|
||||
( "<div class='ext-wpb-pagebanner noprint pre-content'>"
|
||||
, " <div class='wpb-banner-image-panorama wpb-topbanner wpb-positioned-banner'>"
|
||||
( "<div class='ext-wpb-pagebanner pre-content'>"
|
||||
, " <div class='wpb-topbanner'>"
|
||||
, " <h1 class='wpb-name'>Test page</h1>"
|
||||
, " <a href='/wiki/File:A%22b.png' class='image' title='Test page' xowa_title='A%22b.png'><img data-xowa-title=\"A%22b.png\" data-xoimg=\"1|-1|-1|-1|-1|-1\" src='' width='0' height='0' class='wpb-banner-image ' alt='' srcset='' data-pos-x='0' data-pos-y='0' style='max-width:0px'></a>"
|
||||
, " <div class='wpb-iconbox'>"
|
||||
@ -67,11 +69,15 @@ public class Pgbnr_func_tst {
|
||||
}
|
||||
}
|
||||
class Pgbnr_func_fxt {
|
||||
private final Xop_fxt fxt;
|
||||
public Pgbnr_func_fxt() {
|
||||
private Xop_fxt fxt;
|
||||
public void Clear() {
|
||||
Xoae_app app = Xoa_app_fxt.Make__app__edit();
|
||||
Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app, "en.wikivoyage.org");
|
||||
fxt = new Xop_fxt(app, wiki);
|
||||
fxt.Init__file_find_mgr();
|
||||
}
|
||||
public void Init__orig(boolean wiki_is_commons, String orig_ttl, int orig_w, int orig_h) {
|
||||
fxt.Init__orig(wiki_is_commons, orig_ttl, orig_w, orig_h);
|
||||
}
|
||||
public void Test__parse(boolean hdump, String raw, String expd) {
|
||||
fxt.Exec_parse_page_all_as_str(raw);
|
||||
|
@ -29,6 +29,9 @@ public class Pgbnr_itm implements Mustache_doc_itm {
|
||||
private byte[] file_ttl;
|
||||
private Pgbnr_icon[] icons;
|
||||
private byte[] img_id_atr, img_xottl_atr, img_xoimg_atr;
|
||||
private boolean isPanorama;
|
||||
private boolean enable_toc = true;
|
||||
private boolean hasPosition = false;
|
||||
|
||||
// NOTE: used by hdump
|
||||
public boolean Exists() {return exists;} private boolean exists;
|
||||
@ -65,13 +68,14 @@ public class Pgbnr_itm implements Mustache_doc_itm {
|
||||
this.banner_img_src = banner_file_itm.Html_view_url().To_http_file_bry();
|
||||
this.file_ttl = Gfo_url_encoder_.Href_quotes.Encode(banner_file_itm.Lnki_ttl()); // NOTE: Encode(Lnki_ttl) not Orig_ttl; else "%27s" instead of "'s" PAGE:en.v:'s-Hertogenbosch; DATE:2016-07-12
|
||||
}
|
||||
public void Init_from_html(int max_width, byte[] banner_anch_href, byte[] banner_img_src, byte[] srcset, boolean isHeadingOverrideEnabled, byte[] toc) {
|
||||
public void Init_from_html(int max_width, byte[] banner_anch_href, byte[] banner_img_src, byte[] srcset, boolean isHeadingOverrideEnabled, byte[] toc, boolean isPanorama) {
|
||||
this.max_width = max_width;
|
||||
this.banner_anch_href = banner_anch_href;
|
||||
this.banner_img_src = banner_img_src;
|
||||
this.srcset = srcset;
|
||||
this.isHeadingOverrideEnabled = isHeadingOverrideEnabled;
|
||||
this.toc = toc;
|
||||
this.isPanorama = isPanorama;
|
||||
}
|
||||
public void Init_hdump(boolean mode_is_hdump) {
|
||||
Bry_bfr tmp_bfr = Bry_bfr_.New();
|
||||
@ -109,6 +113,9 @@ public class Pgbnr_itm implements Mustache_doc_itm {
|
||||
else if (String_.Eq(key, "hasIcons")) return Mustache_doc_itm_.Ary__bool(icons.length > 0);
|
||||
else if (String_.Eq(key, "bottomtoc")) return Mustache_doc_itm_.Ary__bool(bottomtoc);
|
||||
else if (String_.Eq(key, "isHeadingOverrideEnabled")) return Mustache_doc_itm_.Ary__bool(isHeadingOverrideEnabled);
|
||||
else if (String_.Eq(key, "isPanorama")) return Mustache_doc_itm_.Ary__bool(isPanorama);
|
||||
else if (String_.Eq(key, "enable-toc")) return Mustache_doc_itm_.Ary__bool(enable_toc);
|
||||
else if (String_.Eq(key, "hasPosition")) return Mustache_doc_itm_.Ary__bool(hasPosition);
|
||||
return Mustache_doc_itm_.Ary__empty;
|
||||
}
|
||||
private static final byte[] Bry__anch_atr_id = Bry_.new_a7(" id=\"xoimg_");
|
||||
|
@ -83,8 +83,8 @@ public class Pgbnr_xtn_mgr extends Xox_mgr_base implements Bfr_arg {
|
||||
|
||||
public static final byte[] Bry__cls__wpb_banner_image = Bry_.new_a7("wpb-banner-image");
|
||||
private static final byte[] Template_dflt = Bry_.New_u8_nl_apos
|
||||
( "<div class='ext-wpb-pagebanner noprint pre-content'>"
|
||||
, " <div class='wpb-banner-image-panorama wpb-topbanner wpb-positioned-banner'>"
|
||||
( "<div class='ext-wpb-pagebanner pre-content'>"
|
||||
, " <div class=\"{{#isPanorama}}wpb-banner-image-panorama {{/isPanorama}}wpb-topbanner{{extraClass}}\">"
|
||||
, " {{#isHeadingOverrideEnabled}}<h1 class='wpb-name'>{{title}}</h1>{{/isHeadingOverrideEnabled}}"
|
||||
, " <a href='{{bannerfile}}' class='image' title='{{tooltip}}' xowa_title='{{file_ttl}}'><img{{{img_id_atr}}}{{{img_xottl}}}{{{img_xoimg}}} src='{{banner}}' width='0' height='0' class='wpb-banner-image {{originx}}' alt='' srcset='{{srcset}}' data-pos-x='{{data-pos-x}}' data-pos-y='{{data-pos-y}}' style='max-width:{{maxWidth}}px'></a>"
|
||||
, " {{#hasIcons}}"
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="ext-wpb-pagebanner pre-content">
|
||||
<div class="wpb-topbanner{{extraClass}}">
|
||||
<div class="{{#isPanorama}}wpb-banner-image-panorama {{/isPanorama}}wpb-topbanner{{extraClass}}">
|
||||
{{#isHeadingOverrideEnabled}}<h1 class="wpb-name">{{title}}</h1>{{/isHeadingOverrideEnabled}}
|
||||
<a href="{{bannerfile}}" class="image" title="{{tooltip}}" xowa_title="{{file_ttl}}"><img{{{img_id_atr}}}{{{img_xottl}}}{{{img_xoimg}}} src="{{banner}}" width="0" height="0" class="wpb-banner-image {{originx}}" alt="" srcset="{{srcset}}" data-pos-x="{{data-pos-x}}" data-pos-y="{{data-pos-y}}" style="max-width:{{maxWidth}}px"></a>
|
||||
<a class="image" dir="ltr" title="{{tooltip}}" href="{{bannerfile}}" xowa_title="{{file_ttl}}"><img{{{img_id_atr}}}{{{img_xottl}}}{{{img_xoimg}}} src="{{banner}}" srcset="{{srcset}}" class="wpb-banner-image"{{#hasPosition}} data-pos-x="{{data-pos-x}}" data-pos-y="{{data-pos-y}}" {{/hasPosition}}style="max-width:{{maxWidth}}px"></a>
|
||||
{{#hasIcons}}
|
||||
<div class="wpb-iconbox">
|
||||
{{#icons}}
|
||||
@ -10,5 +10,5 @@
|
||||
</div>
|
||||
{{/hasIcons}}
|
||||
</div>
|
||||
<div class="wpb-topbanner-toc {{#bottomtoc}}wpb-bottomtoc{{/bottomtoc}}"><div class="wpb-banner-toc">{{{toc}}}</div></div>
|
||||
<div class="wpb-topbanner-toc {{#bottomtoc}}wpb-bottomtoc{{/bottomtoc}}"><div class="wpb-banner-toc">{{#enable-toc}}{{{toc}}}{{/enable-toc}}</div></div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user