Extension:页面图像
此扩展由网络团队维护。 |
![]() 發佈狀態: 穩定版本 |
|
---|---|
实现 | API , 解析器扩展 |
描述 | 儲存代表一個頁面的圖像信息 |
作者 | Max Semenik (MaxSem讨论) |
最新版本 | 持續更新 |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向後兼容。 |
MediaWiki | 1.37+ |
PHP | 7.3.19+ |
数据库更改 | 否 |
许可协议 | WTFPL 2.0 |
下載 | |
|
|
季度下載量 | 219 (Ranked 50th) |
公開的wiki使用 | 3,896 (Ranked 23rd) |
翻譯PageImages的扩展,若在translatewiki.net可用 | |
問題 | 尚未完成的工作 · 报告錯誤 |
The PageImages extension collects information about images used on a page.
Its aim is to return the single most appropriate thumbnail associated with an article.
PageImages also provides OpenGraph protocol metadata for articles on the wiki for 3rd parties like Facebook to extract.
安裝
- 下载文件,并将其放置在您
extensions/
文件夹中的PageImages
目录内。 - 将下列代码放置在您的
LocalSettings.php
的底部:wfLoadExtension( 'PageImages' );
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
API
The PageImages extension provides image information by adding a prop=pageimages
to the properties API for action=query
.
prop=pageimages (pi)
- This module requires read rights.
- Source: PageImages
- License: WTFPL
Returns information about images on the page, such as thumbnail and presence of photos.
- piprop
Which information to return:
- thumbnail
- URL and dimensions of thumbnail image associated with page, if any.
- original
- URL and original dimensions of image associated with page, if any.
- name
- Image title.
- Values (separate with | or alternative): name, original, thumbnail
- Default: thumbnail|name
- pithumbsize
Maximum width in pixels of thumbnail images.
- Type: integer
- Default: 50
- pilimit
Properties of how many pages to return.
- Type: integer or max
- The value must be between 1 and 50.
- Default: 50
- pilicense
Limit page images to a certain license type
- One of the following values: any, free
- Default: free
- picontinue
When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.
- Type: integer
- pilangcode
Code for the language the image is going to be rendered in if multiple languages are supported
- Get name and 100-pixel thumbnail of an image on the Albert Einstein page.
- api.php?action=query&prop=pageimages&titles=Albert%20Einstein&pithumbsize=100 [open in sandbox]
回应
{
// piprop.name (and image exists)
pageimage?: string // Source image filename (basename of original.source).
// piprop.thumbnail (and image exists)
thumbnail?: {
source: string // Thumbnail image URL.
width: number // Thumbnail image width in pixels.
height: number // Thumbnail image height in pixels.
}
// piprop.original (and image exists)
original?: {
source: string // Source image URL.
width: number // Source image width in pixels.
height: number // Source image height in pixels.
}
}
请求示例
请求一個條目的页面图片。
结果 |
---|
{
"query": {
"normalized": [
{
"from": "Lightbox_demo",
"to": "Lightbox demo"
}
],
"pages": {
"162510": {
"pageid": 162510,
"ns": 0,
"title": "Lightbox demo",
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Crystal_Clear_app_korganizer.png/50px-Crystal_Clear_app_korganizer.png",
"width": 50,
"height": 50
},
"pageimage": "Crystal_Clear_app_korganizer.png"
}
}
}
}
|
配置
$wgPageImagesDenylist is an array of sources for image denylists. Listed images will never be selected as page images. Examples:
$wgPageImagesDenylist = [
// Page on local wiki
[
'type' => 'db',
'page' => 'MediaWiki:Pageimages-denylist',
'db' => false,
],
// Page on Wikimedia Commons, for other Wikimedia projects using direct DB access
[
'type' => 'db',
'page' => 'MediaWiki:Pageimages-denylist',
'db' => 'commonswiki',
],
// Page on Commons, for third-party sites using web access
[
'type' => 'url',
'url' => 'http://commons.wikimedia.org/w/index.php?title=somepage&action=raw',
],
];
More than one source can be used at the same time.
The denylist itself should contain wikilinks to files, the rest of the content is irrelevant (and can contain links to other pages). 例如:
* [[:File:First denylisted file.png]]
* [[:File:Second denylisted file.jpeg]]
...
Remember that file links that result in images being added to the page will not work (these files are denylisted for a reason, right?), so don't forget the :
in front of the links.
$wgPageImagesDenylistExpiry determines how long the list will remain cached, in seconds. Default: 15 * 60 (15 minutes).
$wgPageImagesExpandOpenSearchXml if set to true, PageImages will override the image detection in the opensearch
API module with its own, more accurate results.
默认为“false”。
$wgPageImagesNamespaces is an array of namespaces PageImages will be activated on. 默认为“NS_MAIN”。
After the change, you'll have to run refreshLinks.php to generate the Page image information for those namespaces (hopefully, you can use the --namespace parameter to process only pages on the affected namespaces, since that script is very resource-intensive)
$wgPageImagesOpenGraph enables or disables the OpenGraph meta tags (could be useful if other extensions manage these tags) (1.39+).
Default: true
$wgPageImagesOpenGraphFallbackImage is a URL to fallback image that will be shown when there is no image on a page.
Default:
false
工作原理
When a page is saved with a local image, the parser runs the hooks ParserMakeImageParams
and LinksUpdate
.
The PageImages extension responds to these (and other hooks) and inserts a new property for the page into the page_props table.
The property name is page_image_free
and its value is the name of the image.
The extension only stores the chosen image name. Other features may display the image, such as Page information, Hovercards, and Mobile search while typing.
图像选择
如何检查与页面关联的图像是什么?
页面图像会显示与?action=info
页面。
How does it select images?
All images in the page are collected and a score for each image is calculated. The image with the highest score is selected as the page image. If the wiki is configured such that images contain metadata that specifies images are not freely licensed, the image with the best score that is also freely licensed is also stored. If no suitable image is found or all the images score badly (i.e. has a negative score), the page will not have any images.
If $wgPageImagesLeadSectionOnly is true, only images in the lead section will be considered. Currently it is true for only Wikipedia projects, all other projects can pull images from outside the lead.
How are images scored?
The best possible page image on Wikimedia wikis is one of the first four images in an article which has a width/height between 400-600px and a height/width which is twice the value of the other dimension.
- The algorithm is configurable.
- Scores are calculated by a combination of:
- Image widths as defined in
$wgPageImagesScores['width']
- In Wikimedia wikis, images smaller than 119 pixels are weighted highly negatively. Images with widths between 400px-600px are favoured, with a preference for the lower bound.
- Images inside galleries are scored separately using
$wgPageImagesScores['galleryImageWidth']
- In Wikimedia wikis gallery images which are smaller than 100 are disregarded.
- Position in document is also considered as defined in
$wgPageImagesScores['position']
- On Wikimedia wikis, only the first 4 images that appear in the document are considered.
- The ratio of the image's width to height is considered
$wgPageImagesScores['ratio']
- On Wikimedia wikis a ratio of 0.4 to 3.1 is allowed, with 0.6 to 2.1 preferred. Any other images will score negatively and be discarded.
- Image widths as defined in
Be more technical, please...
Pageimages populates images whenever the LinksUpdate hook runs.
Can I exclude certain page images?
Yes!
For an entire wiki, there is a page that administrators can edit at MediaWiki:Pageimages-denylist (example). Any images that appear here will not be used as page images for any article.
For specific pages, add |class=notpageimage
to each image you want to exclude. For example, [[File:Example.png|class=notpageimage]]
.
More details are at phab:T301588.
How can I see the page image for a page?
Using the 页面信息 link in the sidebar (or adding ?action=info
to the URL) you'll be able to see the current image choice.
如何清除不良图像?
仅当文章中的链接更改时,页面图像才会更改。对于紧急情况,请在页面中添加/删除链接,必要时进行恢复。 刷新缓存将不起作用。 对于较大的紧急情况,请提交Phabricator工单。
为什么我的页面图像是空白框?
这可能与您文章中的视频内容有关。 如果视频文件以空白屏幕开头,则它将成为视频的默认缩略图,并且如果用作页面图像,它将成为页面图像。 我们目前正在对此进行修复,使您可以更改视频的默认缩略图。 有关更多信息,请参见:phab:T92457和phab:T22647。
Upgrade notes
- Since MediaWiki 1.37,
$wgPageImagesBlacklist
and$wgPageImagesBlacklistExpiry
have been renamed to$wgPageImagesDenylist
and$wgPageImagesDenylistExpiry
respectively. There's no backwards compatibility code added to accept the old variable names, which means you should change the variable names during the upgrade, or define both variables in advance in preparation for the upgrade. - Since MediaWiki 1.37, the default page value for
$wgPageImagesDenylist
has been changed fromMediaWiki:Pageimages-blacklist
toMediaWiki:Pageimages-denylist
. If you've added content toMediaWiki:Pageimages-blacklist
on your wiki, you should rename it during the upgrade. If you want to prepare in advance for the upgrade, you can rename the page to the new name, and also set$wgPageImagesBlacklist
(the old variable name) to the new page name, and the default value will be used when upgrading, which should match your previous change.
參見
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
这个扩展包含在以下包和/或维基农场: 这不是一个权威的名单。一些维基农场/主机可能包含这个extension,即使它们没有在这里列出。经常检查您的维基农场/主机或包来确认。 |