Extension:移动前端

This page is a translated version of the page Extension:MobileFrontend and the translation is 95% complete.
MediaWiki扩展手冊
OOjs UI icon advanced-invert.svg
MobileFrontend
發布狀態: 穩定版本
MediaWiki-Vagrant MobileFrontend Extension.png
实现 用户界面, 钩子
描述 提供对移动端友好的视图
作者
最新版本 2.4.0
兼容性政策 快照跟随MediaWiki发布。 master分支不向後兼容。
MediaWiki 1.33+[1]
PHP 5.5.9+
许可协议 GNU通用公眾授權條款2.0或更新版本
下載
README
示例 m.mediawiki.org
  • $wgMFSearchGenerator
  • $wgMFStopRedirectCookieHost
  • $wgMFShowMobileViewToTablets
  • $wgMFStripResponsiveImages
  • $wgMFLazyLoadImages
  • $wgMFRSSFeedLink
  • $wgMFNamespacesWithLeadParagraphs
  • $wgMFAmcOutreachMinEditCount
  • $wgMFEnableMobilePreferences
  • $wgMFMobileFormatterOptions
  • $wgMFRemovableClasses
  • $wgMFNoindexPages
  • $wgMFShowFirstParagraphBeforeInfobox
  • $wgMFMinCachedPageSize
  • $wgMFVaryOnUA
  • $wgMFLogWrappedInfoboxes
  • $wgMFDisplayWikibaseDescriptions
  • $wgMFEnableJSConsoleRecruitment
  • $wgMobileFrontendFormatCookieExpiry
  • $wgMFResponsiveImageWhitelist
  • $wgMFLazyLoadSkipSmallImages
  • $wgMFSearchAPIParams
  • $wgMFMobileHeader
  • $wgMFEnableXAnalyticsLogging
  • $wgMFUseDesktopSpecialHistoryPage
  • $wgMFSiteStylesRenderBlocking
  • $wgDefaultMobileSkin
  • $wgMobileUrlTemplate
  • $wgMFCollapseSectionsByDefault
  • $wgMFStopMobileRedirectCookieSecureValue
  • $wgMFEnableFontChanger
  • $wgwgMFScriptPath
  • $wgMFEnableBeta
  • $wgMFSchemaEditAttemptStepOversample
  • $wgMFAmcOutreach
  • $wgMFNearby
  • $wgMFAdvancedMobileContributions
  • $wgMFWatchlistEditCountThreshold
  • $wgMFSpecialPageTaglines
  • $wgMFNearbyRange
  • $wgMFManifestBackgroundColor
  • $wgMFBetaFeedbackLink
  • $wgMFDefaultEditor
  • $wgMFManifestThemeColor
  • $wgMFEnableManifest
  • $wgMFUseDesktopSpecialWatchlistPage
  • $wgMFEnableWikidataDescriptions
  • $wgMFUseWikibase
  • $wgMFNamespacesWithoutCollapsibleSections
  • $wgMFTrackBlockNotices
  • $wgMFAutodetectMobileView
  • $wgMFQueryPropModules
翻譯MobileFrontend扩展,若在translatewiki.net可用

检查使用和版本矩阵。

問題 尚未完成的工作 · 报告錯誤

移动前端(MobileFrontend)扩展:

  • 为您的移动端流量创建一个单独的移动网站。
  • 为使你的内容更友好,提供各种内容转换
    • 值得注意,部分折叠和内容重新排列和删除,包括将引言段落置于引导照片或信息框上方,即使引导段落在页面源代码中位于它们下方。
  • 简化移动端页尾并添加一个桌面/移动版网站链接。
  • 针对对移动端不友好的特殊页面,提供替代的页面: Special:History, Special:Contributions, Special:Watchlist, Special:Preferences, Special:MobileDiff
  • 提供特殊页面 Special:Nearby、Special:MobileOptions(用于移动端皮肤偏好设置)、Special:MobileLanguages(用于语言选择)。
  • 提供beta模式,其包含一个功能管理系统,用于为匿名用户添加实验性功能

本页是为了想要在开发端安装此扩展的用户撰写的。如果你乐于帮助我们改进,我们欢迎您参与改进

先决条件

在安装移动前端之前,如果您大量使用了模板和/或行内样式(style属性),您需要检查您的内容是否对移动版友好。 TemplateStyles 扩展可以用于给内容排版,以便让内容在移动版和桌面版都有较好的渲染效果。移动前端并不会自动为您修复这些内容!

尤其请注意,您可能需要检查您的首页。 請參閱移动版首頁格式

安装

  • 如果使用Vagrant ,请通过vagrant roles enable mobilefrontend --provision安装
手动安装

配置附近

移动前端提供了“Special:Nearby”页面,这需要一点配置。你需要做一些事情以使其生效:

  1. 由于浏览器的安全配置,您需要在使用SSL的安全站点上运行:无法通过HTTP请求用户位置。
  2. 安装GeoData扩展
  3. 运行update.php
  4. 在LocalSettings.php中加入$wgMFNearby = true;
  5. 确定文章的坐标点:
    1. 使用coordinates解析器函数来向您的文章中加入位置数据,例如{{#coordinates:37.786971|-122.399677|primary}}。 关于语法细节,参见GeoData 文档。
    2. 作为替代,您也可以为Nearby使用一个独立的MediaWiki安装,这需要在您的LocalSettings.php中设置$wgMFNearbyEndpoint。 例如,$wgMFNearbyEndpoint = 'https://en.m.wikipedia.org/w/api.php';会使用英文维基百科文章的坐标。 附近的端点将用于查找与给定位置相关的内容。

设置皮肤

移动前端提供给您适合移动版格式的网站,这与已存在的桌面版网站可以共存。您可以任意设置其皮肤。

// 选择其中一个并在LocalSettings.php文件底部加入你选的代码:
wfLoadSkin( 'MinervaNeue' );
$wgDefaultMobileSkin = 'minerva'; // 使用Minerva皮肤 (你需要下载并单独安装,否则你会得到异常)
wfLoadSkin( 'Vector' );
$wgDefaultMobileSkin = 'vector'; // 使用Vector皮肤
wfLoadSkin( 'Timeless' );
$wgDefaultMobileSkin = 'timeless'; // 使用Timeless皮肤

以下皮肤兼容移动前端:

配置设置

参见Extension:移动前端/配置

All configuration options are detailed in the README.md file.

额外调整

添加这些可选的兼容扩展,充分利用移动前端扩展:

本地定制

CSS 样式

要为移动主题应用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/Chuck_Schuldiner?useformat=mobile

如果您想查看页面的移动版本而不在整个站点上启用扩展,您也可以将字符串附加到该页面上的URL。

移动前端的过时功能

传统上,移动前端是个非常大的扩展。许多功能要么超过其要求,要么在未来某个日期实现。下面列出了这些。

API

移动前端扩展提供了API,但长期来看我们会弃用,以支持页面内容服务。 使用这些API需要承担风险。 这些API可能会消失(尽管那时我们会充分通知您)!

MobileView API

参见Extension:MobileFrontend/MobileViewAPI

扩充 action=parse

action=parse 接受额外参数:

mobileformat=
以移动格式返回渲染的页面HTML1.23+
noimages
在移动输出禁用图像。
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并安装composer来运行预调试挂钩,这取决于您对扩展的配置。

使用外语维基上的文章进行测试(实时数据)

参见Extension:MobileFrontendContentProvider

使用移动外观

基金会网站

在维基媒体基金会运营的网站,我们使用Varnish缓存服务器来检查您设备的用户代理。

非基金会网站

For non-WMF sites, you can either set up your configuration to mimic how things are done at the WMF (doing device detection at the proxy layer and setting specific X-Device headers), or you can simply use "?useformat=mobile" to switch an article to use the mobile view.

Starting from the snapshot version 1.28, the default $wgMFMobileHeader was changed from X-WAP to X-Subdomain. You could either set $wgMFMobileHeader = 'X-WAP'; or modify your cache (Varnish) header setting, as long as they match.

常见问题

以下问题经常出现在讨论页。 在您提出新话题前,请检查以下列表或检查已有的话题(如果存在的话),以答疑解惑。

Q:我应该如何自定义Minerva皮肤的主菜单?

A:这在phabricator上有记载,您可以在Topic:Tiggc18fvd3stmsf找到临时的解决方案。

Q:我应该如何在Minerva皮肤中加入HTML,例如添加广告或额外的script标签?

A:您可以通过编辑皮肤的模板文件来达到此目的(目前位于include/skins/minerva.mustache)。参见此讨论以获取更多细节。

Q:我是用的扩展似乎不对移动前端生效,为什么?

A:有可能扩展太旧了,需要加入对移动前端的兼容。 Please contact the developer of the extension and point them to ResourceLoader/Writing a MobileFrontend friendly ResourceLoader module. Please do not post to the talk page, as in this case it would be better to file a bug on Phabricator (you can login using your MediaWiki.org username) for a quicker response.

Q:我升级了移动前端扩展,然后遇上致命异常!

A:可能你用的是不兼容的移动扩展和MediaWiki。 这种情况我们一般爱莫能助。 尝试升级移动前端或者MediaWiki来解决问题。

Q:升级MediaWiki后,遇上异常:wgMFDefaultSkinClass设置不正确。

A:MobileFrontend当前假定你安装了[[Special:MyLanguage/Skin:Minerva Neue|]] 皮肤。 如果没有,你需要安装,或者按照上面的指引来配置你的移动版皮肤。

对于扩展开发者

默认情况下,扩展中的资源模块将不会在移动视图中加载。

如果一个模块需要在移动版页面中载入,这份关于撰写对移动前端友好的模块的指南很有帮助。

参见

参考资料

  1. :Fatal error: Uncaught ExtensionDependencyError: MobileFrontend is not compatible with the current MediaWiki core (version 1.32.2), it requires: >= 1.33.0.