扩展:弹窗
此扩展由阅读网络团队维护。 |
Popups 发布状态: 稳定版 |
|
---|---|
![]() |
|
实现 | 皮肤 |
描述 | 在用户悬停在条目链接及腳註標記时显示弹窗 |
作者 |
|
MediaWiki | 1.30+ |
PHP | 5.6+ |
数据庫更新 | 否 |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下载 | |
翻译Popups扩展如果在translatewiki.net可用 | |
检查使用和版本矩阵。 | |
问题 | 开放的工作 · 报告错误 |
当用户将鼠标悬停在一个页面和分别的引用时,弹窗(Popups)扩展会预览一篇文章的内容,对于引用,还会显示引用的完整内容。
这个扩展原始Design team的开始,因著名的Navigation popups(导航弹窗)而作。当前该功能对所有未登录的维基百科用户启用。参见页面预览以了解扩展运作的描述,以及在此维基媒体项目的更多信息。
引用预览功能最终被加入,并用于实现德语社区的愿望。Reference Previews 有更详细的介绍和更多信息。
依赖
这个扩展对扩展:TextExtracts 和扩展:页面图像 具有依赖。如果你希望beta功能的引用预览,还可以依赖测试功能 ;此外还依赖Extension:EventLogging 和Extension:WikimediaEvents (对于指导)。
安装
- 安装依赖组件。
- 下载文件,并将其放置在您
extensions/
文件夹中的Popups
目录内。
- 将下列代码放置在您的LocalSettings.php的底部:
wfLoadExtension( 'Popups' );
- 完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。
致使用MediaWiki 1.25或更早版本的用户:
上面的说明介绍的是安装此扩展的新方法,它使用wfLoadExtension()
。 如果您需要在早期版本(MediaWiki 1.25和更早版本)中安装此扩展,而不是wfLoadExtension( 'Popups' );
,您需要使用:
require_once "$IP/extensions/Popups/Popups.php";
Example of final LocalSettings configuration for a non-testing site (regular wiki)
wfLoadExtensions([
'TextExtracts',
'PageImages',
'Popups'
]);
$wgPopupsHideOptInOnPreferencesPage = true;
$wgPopupsOptInDefaultState = '1';
$wgPopupsReferencePreviewsBetaFeature = false;
Page previews API
Every project is different, and what displays in your previews is highly dependent on the content inside your wiki.
Extension:Popups has been optimised to work with Wikipedia-like content (e.g. wikitext). If your wiki is using a different kind of content handler (for example as is the case for Wikibase) it will need to provide its own API.
The API can be written in any language, but the response of the API must match the spec defined here:
https://www.mediawiki.org/wiki/Specs/Summary/1.2.0
Defining new APIs is out of scope for the Popups extension.
Once defined, you can configure page previews to point to your API using $wgPopupsRestGatewayEndpoint configuration option.
配置选项
选项 | 默认值 | 可用于… | 文档 |
---|---|---|---|
$wgPopupsHideOptInOnPreferencesPage
|
false
|
sysadmins | Whether the option to enable/disable Page Previews should be hidden on Preferences page. Please note if PopupsBetaFeature is set to true this option will be always hidden. False by default |
$wgPopupsOptInDefaultState
|
0
|
sysadmins | Default Page Previews visibility. Has to be a string as a compatibility with beta feature settings |
$wgPopupsConflictingNavPopupsGadgetName
|
Navigation_popups
|
sysadmins | Navigation popups gadget name |
$wgPopupsGateway
|
mwApiPlain
|
sysadmins | Which gateway to use for fetching Popups data. Available options: [mwApiPlain|restbasePlain|restbaseHTML]. Full and always up to date list is available in src/gateway/index.js
|
$wgPopupsReferencePreviewsBetaFeature
|
true
|
sysadmins | Whether Reference Previews should be available as a Beta feature, or be enabled for all users by default. |
$wgPopupsRestGatewayEndpoint
|
/api/rest_v1/page/summary/
|
sysadmins | Specify a REST endpoint where summaries should be sourced from. Endpoint must meet the spec at Specs/Summary/1.2.0 |
$wgPopupsAnonsExperimentalGroupSize
|
0
|
sysadmins | Defines the fraction of users that should be subject to an A/B test. When enabled half of users in this group will see page previews. The rest will be divided into one of two buckets where previews will not show and the control group size will match the enabled bucket. If undefined, or 0, no users will be subject to experimentation and previews will be enabled for everyone unless $wgPopupsBetaFeature is enabled.
|
$wgPopupsEventLogging
|
false
|
sysadmins | Whether we should log events. This should be used carefully alongside PopupsAnonsExperimentalGroupSize. Note if this is enabled without using that variable events will be logged for all users. Be careful! |
$wgPopupsSchemaSamplingRate
|
0
|
sysadmins | Sampling rate for logging performance data to statsv |
$wgPopupsPageBlacklist
|
[ "Special:Userlogin", "Special:CreateAccount" ]
|
sysadmins | Blacklisted pages are subject to the HTML cache policy of the wiki. A purge on a blacklisted page maybe needed to see the effect of this configuration variable. Every blacklisted page should be defined by a canonical name, eg: Special:Userlogin
|
Page previews content
The page preview popups show an image (if one is available) and a small text excerpt.
图片
The image comes from the Extension:PageImages which returns the single most appropriate thumbnail associated with an article. It ignores maintenance templates, stubs, flag icons etc.
文本
The page previews can be configured with any compatible API that is compatible with the Page content service summary endpoint using $wgPopupsRestGatewayEndpoint
. For third parties we encourage using the Page Content Service to enjoy using Popups with your local wiki.
You can also use the Extension:TextExtracts extension. This extension has various caveats and we do not actively support use of this API.
Reference previews content
The content in the reference preview popups is taken directly from the reference section on the page itself. No external services are involved here. If the content exceeds the popup size scrollbars are shown so everything can be looked at.
Reference types
The reference types displayed are set by using specific CSS-classes on the <cite>
-tag that can be used to encapsulate the content of a reference e.g. <cite class="journal">
.
Currently there are four different types supported: web
, journal
, book
, news
.
Apart from that there is always a generic fallback if neither the cite tag was found nor an appropriate class was used.
Renderers
This extensions currently has only one renderer, that is for ordinary pages.
New renderers for different kind of pages, or things like references can be easily added.
One needs to create a new object with the following methods:
- init
- createPopup
- getOffset
- getClasses
- processPopup
You can see details of these methods in ext.popups.renderer.article.js or this patch that adds a renderer for references.
已知问题
- Users of the Translate extension should note that Page Previews requests previews in the content language of the page. If the preview contains a complete translatable block, then it will be translated. If, however, the preview contains an incomplete translateable block – because a sentence is cut off, say – then it isn't translated and will be displayed in the content language of the page. If you are observing this behavior, then you should consider marking up individual sentences in your lead section.
- T167852 is for a technical audience but has more information on the underlying problem.
- Longer math formulas cutting off in preview - long math or chemical formulas (formulas wider than the preview width) display as truncated in previews. We were not able to add a gradient in order to indicate that the formula is continued on the article itself.
FAQ
Why can't I copy and paste text from a preview?
At time of writing, the cons of doing so outweigh the pros. Essentially it boils down to decreasing the touch area to read the article in full. Once Page Previews is deployed on English and German Wikipedia, feel free to reopen this task and reignite the discussion, but right now we have no plans.
How can I change the image that I see on preview?
See Extension:PageImages#Image choice.
如何从页面预览中移除内容?
Any element marked with the noexcerpt
class will be stripped from the summary.
摘要来自哪里?
These are provided by the Summary REST API.
Why are parenthetical stripped?
There's a good discussion going on in T91344 in Phabricator. If you have any views on this or see any problems relating to this, please let us know there.
Why don't I see Popups outside of content namespaces?
Popups appear on links to pages in content namespaces only. This is a limitation of Popups; TextExtracts are available from other namespaces. You may work around this by appending more namespaces into $wgContentNamespaces .
Links
- Page Previews help page and central feedback page on MediaWiki.org
- Reference Previews help page and central feedback page on MediaWiki.org
- Reference Previews main project page on Meta
此扩展被用于一个或多个维基媒体项目上。 这可能意味着扩展稳定且工作良好,足以用在同等高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中寻找此扩展名称以查看安装它的网站。 详细的已安装扩展的完整列表可在wiki的Special:Version页面找到。 |