Extension:MobileFrontend/zh

移动前端（MobileFrontend）的扩展：


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

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

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

尤其请注意，您可能需要检查您的首页. 請參閱-{zh-hans:移动版; zh-hant:行動版; zh-hk:流動版;}-首頁格式.

安裝


配置附近(Nearby)功能
移动前端提供了Special:Nearby页面，这需要一点配置. 你需要做一些事情以使其生效：


 * 1) 由于浏览器的安全考慮，您需要在使用SSL的安全站点上运行--絕對无法通过HTTP请求用户的位置.
 * 2) 安装GeoData扩展
 * 运行
 * 1) 在LocalSettings.php中加入
 * 2) 确定條目的坐标点：
 * 3) 使用 解析器函数来向您的條目中加入位置数据，例如 .  关于语法细节，参见文档.
 * 4) 作为替代，您也可以为Nearby使用一个独立的MediaWiki安装，这需要在您的LocalSettings.php中设置.  例如，会使用英文维基百科上條目的坐标.  附近的端点将用于查找与给定位置相关的内容.



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

以下皮肤兼容於移动前端：


 * Skin:Minerva Neue（稳定，在维基媒体基金会的各個wiki中是默认值）
 * Skin:Vector（默认的桌面版皮肤，对于移动版則是使用了实验性的响应模式）
 * Skin:Timeless（实验性的皮肤）
 * (responsive skin)



-{zh-hans:配置设置; zh-hant:組態設定;}-
参见

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



额外调整
通过添加这些兼容的扩展的選項，最大限度地发挥移动前端的作用：


 * - 获得Special:Nearby并地理位置標記你的條目.
 * - 添加图像到搜索和nearby的结果.
 * - 添加可视化编辑到你的移动版体验.



本地定制


CSS 样式
要为移动主题应用CSS，请编辑MediaWiki:Mobile.css，与MediaWiki:Common.css相对. 要让样式表生效，你需要将 添加到你的MediaWiki:Mobile.js.

移动前端不会加载全局MediaWiki:Common.css，也不会加载任何用户样式表.



-{zh-hans:更多信息; zh-hant:更多資訊;}-
如果您想在桌面浏览器上测试移动扩展，或者想让您的设备不呈现移动版本，您可以将以下键值对附加到URL查询字符串：. 例如：https://en.wikipedia.org/wiki/MediaWiki?useformat=mobile

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



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

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

MobileView API
参见.



扩充 action=parse
接受额外参数：


 * 以移动格式返回渲染的页面HTML.
 * 以移动格式返回渲染的页面HTML.


 * 应用移动主页转换.
 * 应用移动主页转换.

示例：

meta=siteinfo
网站移动版的域（可能与普通域相同也可能不同）可在一般sinteinfo信息的 键中获得.



-{zh-hans:设置; zh-hant:設定;}-
你可能需要运行 并安装php composer以使得预提交的钩子得以运行，这取决于你对扩展的操作.



使用外语wiki上的條目进行测试（实时数据）
参见.



使用移动外观


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



非基金会网站
对于非维基媒体基金会的网站，你可以设置你的配置来模仿维基媒体基金会的工作方式（在代理层进行设备检测并设置特定的X-设备的標头信息），或者你可以简单地使用「?useformat=mobile」来切换條目以使用移动视图. See Extension:MobileFrontend/Configuring browser auto-detection.

Using Apache (.htaccess or httpd.conf)
To set up a mobile domain, add the following rule to .htaccess or http.config

In LocalSettings.php

Now if you navigate to mobile.localhost (or your equivalent) you should see the mobile site.

常见问题
以下问题经常出现在讨论页. 在您提出新话题前，请检查以下列表或检查已有的话题（如果存在的话），以答疑解惑.



Q：我应该如何自定义Minerva皮肤的主菜单？
A：这在phabricator上有记载，您可以在Topic:Tiggc18fvd3stmsf找到临时的解决方案.



Q：我应该如何在Minerva皮肤中加入HTML，例如添加广告或额外的script标签？
A：您可以通过编辑皮肤的模板文件来达到此目的（目前位于 ）. 参见此讨论以获取更多细节.

<span id="Q:_The_extension_I_am_using_doesn&#039;t_seem_to_work_on_MobileFrontend._Why?">

Q：我是用的扩展似乎不对移动前端生效，为什么？
A：有可能扩展太旧了，需要加入对移动前端的兼容. 请联系该扩展的开发者，并将他们指向ResourceLoader/编写一个移动前端友好的ResourceLoader模块. 请不要在讨论页上发帖，因为在这种情况下，最好在Phabricator上提交一个错误（你可以用你在MediaWiki.org的用户名登录），以获得更快的回应.

<span id="Q:_I_upgraded_MobileFrontend_and_now_I&#039;m_getting_a_fatal_exception!">

Q：我升级了移动前端的扩展，然后遇上致命的异常！
A：可能你用的是不兼容的移动扩展和MediaWiki版本. 一般在这种情况，我们爱莫能助. 尝试升级移动前端或者MediaWiki来解决问题.

<span id="Q:_After_upgrading_MediaWiki_I&#039;m_getting_an_exception_wgMFDefaultSkinClass_is_not_setup_correctly.">

Q：升级MediaWiki后，遇上异常：wgMFDefaultSkinClass设置不正确.
A：当下移动前端假定你有安装了皮肤. 如果没有，你就需要安装這個，或者按照上面的指引来配置你的移动版皮肤.

<span id="For_Extension_Developers">

对于扩展开发者
默认情况下，扩展中的资源模块将不会在移动视图中加载.

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

<span id="See_also">

参见

 * 维基媒体移动前端配置文件
 * Commons:Category:MediaWiki extension MobileFrontend
 * Extension:MobileDetect
 * Extension:Progressive web application: turn any wiki into a mobile app
 * Extension:MobileDetect
 * Extension:Progressive web application: turn any wiki into a mobile app