Extension:移动版前端
MobileFrontend 发行状态: 稳定版 |
|
---|---|
实现 | 用户界面, 函数钩 |
描述 | |
作者 | |
最新版本 | 2.4.1 |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
MediaWiki | 1.33+[1] |
PHP | 5.5.9+ |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下載 | README |
示例 | m.mediawiki.org |
|
|
|
|
季度下載量 | 727 (Ranked 3rd) |
正在使用的公开wiki数 | 9,025 (Ranked 14th) |
前往translatewiki.net翻譯MobileFrontend扩展 | |
問題 | 开启的任务 · 报告错误 |
移动前端(MobileFrontend)的扩展有助于提升MediaWiki实例在移动端的表现。
此扩展由Web团队所维护。 |
功能包括:
- 为您的移动端流量创建一个单独的移动网站,
- 系统管理员可以提供一个不同的皮肤,例如Skin:Minerva Neue
- 提供各种内容转换,使你的内容更友好,
- 部分折叠和内容明顯地重新排列和删除,包括将引言段落置于引导照片或信息框上方,即使引导段落在页面源代码中位于它们下方。
- 简化移动端页尾并添加一个桌面/移动版网站链接。
- 提供beta模式,其包含一个功能管理系统,用于为匿名用户添加实验性功能
本页是为了想要在开发端安装此扩展的用户撰写的。 如果你乐于帮助我们改进,我们欢迎您参与改进。
先决条件
在安装移动前端之前,如果您大量使用了模板和/或行内样式(style属性),您需要检查您的内容是否对移动版友好。 TemplateStyles 扩展可以用于给内容排版,以便让内容在移动版和桌面版都有较好的渲染效果。移动前端并不会自动为您修复这些内容!
尤其请注意,您可能需要检查您的首页。 請參閱移动版首頁格式。
安裝
- 下载文件,并将解压后的
MobileFrontend
文件夹移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'MobileFrontend' );
- 如果必要,在您方便的时候配置
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
使用Vagrant安装:
- 如果使用Vagrant ,请通过
vagrant roles enable mobilefrontend --provision
安装
配置附近(Nearby)功能
移动前端提供了Special:Nearby页面,它帶有一点点配置。你需要做一些事情以使其生效:
- 由于浏览器的安全考慮,您需要在使用SSL的安全站点上运行--絕對无法通过HTTP请求用户的位置。
- 安装GeoData扩展
- 运行update.php
- 在LocalSettings.php中加入$nearby
- 确定條目的坐标点:
- 使用
coordinates
解析器函数来向您的條目中加入位置数据,例如{{#coordinates:37.786971|-122.399677|primary}}
。 关于语法细节,参见GeoData 文档。 - 作为替代,您也可以为Nearby使用一个独立的MediaWiki安装,这需要在您的LocalSettings.php中设置$endpoint。 例如,
$wgMFNearbyEndpoint = 'https://en.m.wikipedia.org/w/api.php';
会使用英文维基百科上條目的坐标。 附近的端点将用于查找与给定位置相关的内容。
- 使用
设置皮肤
移动前端提供给您适合移动版格式的网站,这与已存在的桌面版网站可以共存。您可以任意设置其皮肤。
// 选择其中一个并在LocalSettings.php文件底部加入你选的代码:
wfLoadSkin( 'MinervaNeue' );
$wgDefaultMobileSkin = 'minerva'; // 使用Minerva皮肤 (对于1.37或更旧的版本,你需要单独下载并安装,否则你会得到异常)
wfLoadSkin( 'Vector' );
$wgDefaultMobileSkin = 'vector'; // 使用Vector皮肤
wfLoadSkin( 'Timeless' );
$wgDefaultMobileSkin = 'timeless'; // 使用Timeless皮肤
以下皮肤兼容於移动前端:
- Skin:Minerva Neue(稳定,在维基媒体基金会的各個wiki中是默认值)
- Skin:Vector(默认的桌面版皮肤,对于移动版則是使用了实验性的响应模式)
- Skin:Timeless(实验性的皮肤)
- Skin:MonoBook
- Skin:公民 (responsive skin)
配置设置
All configuration options are detailed in the README.md file.
额外调整
通过添加这些兼容的扩展的選項,最大限度地发挥移动前端的作用:
- Extension:GeoData - 获得Special:Nearby并地理位置標記你的條目。
- Extension:页面图片 - 添加图像到搜索和nearby的结果。
- Extension:VisualEditor - 添加可视化编辑到你的移动版体验。
本地定制
CSS 样式
MediaWiki版本: | ≤ 1.40 |
要为移动主题应用CSS,请编辑MediaWiki:Mobile.css,与MediaWiki:Common.css相对。
要让样式表生效,你需要将mw.loader.using('mobile.site.styles')
添加到你的MediaWiki:Mobile.js。
移动前端不会加载全局MediaWiki:Common.css,也不会加载任何用户样式表。
更多信息
如果您想在桌面浏览器上测试移动扩展,或者想让您的设备不呈现移动版本,您可以将以下键值对附加到URL查询字符串:?useformat=mobile
。例如:https://en.wikipedia.org/wiki/MediaWiki?useformat=mobile
如果您想查看页面的移动版本而不在整个站点上启用扩展,您也可以将字符串附加到该页面上的URL。
移动前端的过时功能
传统上,移动前端是个非常大的扩展。许多功能要么超过其要求,要么在未来某个日期实现。下面列出了这些。
API
移动前端扩展提供了API,但长期来看我们会弃用,以支持页面内容服务。 使用这些API需要承担风险。 这些API可能会消失(尽管那时我们会充分通知您)!
MobileView API
此功能已在版本1.39中完全移除。 |
参见Extension:MobileFrontend/MobileViewAPI 。
扩充 action=parse
action=parse
接受额外参数:
mobileformat=
- 以移动格式返回渲染的页面HTML1.23+。
mainpage
- 应用移动主页转换。
示例:
结果 |
---|
{
"parse": {
"title": "Therion (band)",
"text": {
"*": "<div><table class=\"infobox vcard plainlist\" style=\"width:22em\"><tr><th colspan=\"2\" style=\"text-align:center;font-size:125%;font-weight:bold;background-color: #b0c4de\"><span class=\"fn org\">Therion</span></th>\n</tr><tr><td colspan=\"2\" style=\"text-align:center\"><a href=\"/wiki/File:2130860153_281d30b3bf_b.jpg\" class=\"image\">
...
|
meta=siteinfo
网站移动版的域(可能与普通域相同也可能不同)可在一般sinteinfo信息的 mobileserver
键中获得。
对于开发者/系统管理员
设置
你可能需要运行npm install
并安装php composer以使得预提交的钩子得以运行,这取决于你对扩展的操作。
使用外语wiki上的條目进行测试(实时数据)
参见Extension:MobileFrontendContentProvider 。
使用移动外观
基金会网站
在维基媒体基金会运营的网站,我们使用Varnish缓存服务器来检查您设备的用户代理。
非基金会网站
对于非维基媒体基金会的网站,你可以设置你的配置来模仿维基媒体基金会的工作方式(在代理层进行设备检测并设置特定的X-设备的標头信息),或者你可以简单地使用「?useformat=mobile」来切换條目以使用移动视图。 See Extension:MobileFrontend/Configuring browser auto-detection.
$wgMFMobileHeader = 'X-WAP';
或者修改你的缓存(Varnish)標头的设置,二選一,只要它们匹配即可。Using Apache (.htaccess or httpd.conf)
To set up a mobile domain, add the following rule to .htaccess or http.config
<IfModule mod_headers.c>
<If "req('Host') =~ /^mobile./i">
RequestHeader set X-Subdomain "mobile"
</If>
</IfModule>
In your hosts file (assuming your desktop site is on localhost
):
127.0.0.1 mobile.localhost
In LocalSettings.php
:
wfLoadExtension('MobileFrontend');
$wgMFAutodetectMobileView = true;
$wgMobileUrlCallback = fn( $domain ) => "mobile.$domain";
Now if you navigate to mobile.localhost you should see the mobile site.
常见问题
以下问题经常出现在讨论页。 在您提出新话题前,请检查以下列表或检查已有的话题(如果存在的话),以答疑解惑。
Q:我应该如何自定义Minerva皮肤的主菜单?
A:这在phabricator上有记载,您可以在Topic:Tiggc18fvd3stmsf找到临时的解决方案。
Q:我应该如何在Minerva皮肤中加入HTML,例如添加广告或额外的script标签?
A:您可以通过编辑皮肤的模板文件来达到此目的(目前位于include/skins/minerva.mustache
)。参见此讨论以获取更多细节。
Q:我是用的扩展似乎不对移动前端生效,为什么?
A:有可能扩展太旧了,需要加入对移动前端的兼容。 请联系该扩展的开发者,并将他们指向ResourceLoader/编写一个移动前端友好的ResourceLoader模块。 请不要在讨论页上发帖,因为在这种情况下,最好在Phabricator上提交一个错误(你可以用你在MediaWiki.org的用户名登录),以获得更快的回应。
Q:我升级了移动前端的扩展,然后遇上致命的异常!
A:可能你用的是不兼容的移动扩展和MediaWiki版本。 一般在这种情况,我们爱莫能助。 尝试升级移动前端或者MediaWiki来解决问题。
Q:升级MediaWiki后,遇上异常:wgMFDefaultSkinClass设置不正确。
A:当下移动前端假定你有安装了Minerva Neue 皮肤。 如果没有,你就需要安装這個,或者按照上面的指引来配置你的移动版皮肤。
对于扩展开发者
默认情况下,扩展中的资源模块将不会在移动视图中加载。
如果一个模块需要在移动版页面中载入,这份关于撰写对移动前端友好的模块的指南很有帮助。
参见
- 移动前端支持的移动网络浏览器
- Extension:TextExtracts
- Commons:Category:MediaWiki extension MobileFrontend
- Extension:MobileDetect
- Extension:Progressive web application: turn any wiki into a mobile app
参考资料
- ↑ :Fatal error: Uncaught ExtensionDependencyError: MobileFrontend is not compatible with the current MediaWiki core (version 1.32.2), it requires: >= 1.33.0.
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |
- Stable extensions/zh
- User interface extensions/zh
- Hook extensions/zh
- Pages using deprecated NoteTA template
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- APIGetAllowedParams extensions/zh
- APIQuerySiteInfoGeneralInfo extensions/zh
- AbuseFilter-builder extensions/zh
- AbuseFilter-generateUserVars extensions/zh
- AfterBuildFeedLinks extensions/zh
- ArticleParserOptions extensions/zh
- AuthChangeFormFields extensions/zh
- BeforeDisplayNoArticleText extensions/zh
- BeforePageDisplay extensions/zh
- BeforePageRedirect extensions/zh
- CentralAuthLoginRedirectData extensions/zh
- CentralAuthSilentLoginRedirect extensions/zh
- ChangeTagsListActive extensions/zh
- CustomEditor extensions/zh
- GetCacheVaryCookies extensions/zh
- GetPreferences extensions/zh
- HTMLFileCache::useFileCache extensions/zh
- ListDefinedTags extensions/zh
- LoginFormValidErrorMessages extensions/zh
- MakeGlobalVariablesScript extensions/zh
- ManualLogEntryBeforePublish extensions/zh
- MediaWikiPerformAction extensions/zh
- OutputPageBeforeHTML extensions/zh
- OutputPageBodyAttributes extensions/zh
- OutputPageParserOutput extensions/zh
- PostLoginRedirect extensions/zh
- RecentChange save extensions/zh
- RequestContextCreateSkin extensions/zh
- ResourceLoaderSiteModulePages extensions/zh
- ResourceLoaderSiteStylesModulePages extensions/zh
- SkinAddFooterLinks extensions/zh
- SkinAfterBottomScripts extensions/zh
- SpecialPageBeforeExecute extensions/zh
- SpecialPage initList extensions/zh
- TitleSquidURLs extensions/zh
- UserGetDefaultOptions extensions/zh
- All extensions/zh
- MediaWiki deprecated or obsolete features/zh
- Extensions used on Wikimedia/zh
- Extensions included in Canasta/zh
- Extensions included in Fandom/zh
- Extensions included in Miraheze/zh
- Extensions included in MyWikis/zh
- Extensions included in ShoutWiki/zh
- Extensions included in Telepedia/zh
- Extensions included in WikiForge/zh
- MobileFrontend/zh