Расширение:PageImages
Статус релиза: стабильно |
|
|---|---|
| Реализация | API, Расширение парсера |
| Описание | Собирает информацию об изображениях, используемых на странице |
| Автор(ы) | Max Semenik (MaxSemобсуждение) |
| Последняя версия | постоянные обновления |
| Политика совместимости | Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости. |
| MediaWiki | 1.37+ |
| PHP | 7.3.19+ |
| Изменения в БД | Нет |
| Лицензия | WTFPL 2.0 |
| Скачать | |
|
|
| Переведите расширение PageImages, если оно доступно на translatewiki.net | |
| Проблемы | Открытые задачи · Сообщить об ошибке |
Расширение PageImages собирает информацию об изображениях, используемых на странице.
Оно ставит своей целью вернуть единственную наиболее подходящую миниатюру для статьи.
PageImages также предоставляет статьям на вики метаданные протокола OpenGraph для извлечения третьими лицами, вроде Facebook.
Установка
- Скачайте и распакуйте файл(ы) в папку с названием
PageImagesв вашей папкеextensions/.
Вместо этого разработчикам и соавторам кода следует установить расширение из Git, используя:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/PageImages
- Добавьте следующий код в конце вашего файла LocalSettings.php:
wfLoadExtension( 'PageImages' );
- Настройте, как вам требуется.
- Чтобы произвести первоначальное присвоение страницам изображений, запустите скрипт «initImageData.php» из каталога «maintenance» расширения. (
/path/to/extensions/PageImages/maintenance/)
Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.
Настройка
$wgPageImagesDenylist — это массив источников для списков запретов изображений. Указанные там изображения никогда не будут выбраны для статей. Пример:
$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',
],
];
Можно использовать более одного источника одновременно.
В списке запретов должны находиться ссылки на файлы. Остальное содержимое не имеет значения (и может иметь ссылки на другие страницы). Например:
* [[:File:First denylisted file.png]]
* [[:File:Second denylisted file.jpeg]]
...
Помните, что ссылки на файлы, которые приводят к добавлению изображений на страницу, работать не будут (эти файлы ведь не просто так находятся в списке запрета, верно?), так что не забывайте про : перед ссылками.
| Name | Description | По умолчанию: |
|---|---|---|
| $wgPageImagesDenylistExpiry | $1 определяет, как долго список должен храниться в кеше (в секундах). | 15 * 60 (15 minutes) |
| $wgPageImagesExpandOpenSearchXml | $1 — если установлен на true, — заставит PageImages заменить встроенное определение изображений в API-модуле opensearch своими, более точными результатами.
|
false
|
| $wgPageImagesNamespaces | $1 — это массив пространств имён, на которых будет активировано PageImages.
После внесения изменений вам нужно будет запустить refreshLinks.php, чтобы сгенерировать информацию об изображениях страниц для этих пространств имён (надеемся, вы сможете использовать параметр |
NS_MAIN
|
| $wgPageImagesOpenGraph | $1 включает или отключает мета-теги OpenGraph (может быть полезным, если другие расширения управляют этими тегами) (1.39+). | true
|
| $wgPageImagesOpenGraphFallbackImage | $1 — это URL-адрес изображения, которое будет отображаться, когда у страницы нет изображения. | false
|
Примечания к обновлению на MediaWiki 1.37+
Since MediaWiki 1.37, $wgPageImagesBlacklist and $wgPageImagesBlacklistExpiry have been renamed to $wgPageImagesDenylist and $wgPageImagesDenylistExpiry, respectively.
Since MediaWiki 1.37, the default page value for $wgPageImagesDenylist has been changed from MediaWiki:Pageimages-blacklist to MediaWiki:Pageimages-denylist.
There is no backward compatibility code added to accept the old names, so you should change the variable names during the upgrade or define both variables in advance in preparation for the upgrade.
If you've added content to MediaWiki:Pageimages-blacklist on your wiki, you should rename it to the new name.
Also set $wgPageImagesBlacklist (the old variable name) to the new page name. The default value will be used when upgrading, which should match your previous change.
API
Расширение PageImages предоставляет информацию об изображениях, добавляя prop=pageimages в properties API для 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.
- name
- Image title.
- original
- URL and original dimensions of image associated with page, if any.
- 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:
- free
- Only free images.
- any
- Best image, whether free or non-free.
- 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]
Response
{
// 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"
}
}
}
}
|
Как это работает
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 names used are page_image and page_image_free; the value is the name of the image.
If a page has both properties, then the values are different.
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.
Каким образом выбираются изображения?
All images on 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., have a negative score), the page will not have any images.
If $wgPageImagesLeadSectionOnly is true, only images in the lead section will be considered.
This is true for Wikipedia projects only; all other projects can pull images from outside the lead.
Как происходит оценка изображений?
Лучшее возможное изображение страницы на вики-сайтах Викимедиа — одно из первых четырёх изображений в статье, с шириной/высотой от 400 до 600 пикселей и с соотношением сторон, где одно значение в два раза больше другого.
- Алгоритм настраиваемый.
- Оценка подсчитывается комбинацией из:
- Ширины изображений определены в
$wgPageImagesScores['width']- На вики Викимедиа изображения менее 119 пикселей оцениваются отрицательно. Предпочтение отдается изображениям с шириной от 400 до 600 пикселей, при этом наиболее предпочтительны те, что ближе к нижней границе.
- Изображения внутри галерей оцениваются отдельно согласно
$wgPageImagesScores['galleryImageWidth']- В галереях на вики Викимедиа изображения менее 100 пикселей отбрасываются.
- Расположение в документе также расматривается, согласно
$wgPageImagesScores['position']- На вики Викимедиа рассматриваются только первые четыре изображения в документе.
- Соотношение ширины и высоты изображения определяется согласно
$wgPageImagesScores['ratio'].- На вики Викимедиа разрешены соотношения от 0.4 до 3.1, при этом от 0.6 до 2.1 — предпочтительны.
- Значение по умолчанию —
$wgPageImagesScores['ratio'] = ["3" => -100, "5" => 0, "20" => 5, "30"=> 0, "31"=> -100];, где ключ представляет собой отношение ширины к высоте, округлённое до десятых, и сдвинутое на одну позицию вправо. Изображение шириной в 400 пикселей и высотой в 300 будет иметь значение 13. Значением ключа является множитель оценки, связанный с этим соотношением. Ключи выбираются и увеличиваются от нуля, при этом новый множитель оценки начинает действовать только после того, как ключ достигнет или превысит своё значение, но не превысит значение следующего ключа. Все прочие изображения будут иметь отрицательную оценку и будут отброшены.
- Ширины изображений определены в
Как обновляются изображения страниц?
PageImages выбирает изображения, когда выполняется хук LinksUpdate (например, при правке страницы).
Можно ли исключить определённые изображения для страниц?
Да!
Для всей вики существует страница MediaWiki:Pageimages-denylist, которую могут редактировать администраторы (пример). Все указанные на этой странице изображения не будут использоваться как изображения страниц для любых статей.
Для конкретных страниц добавьте |class=notpageimage к каждому изображению, которое вы хотите исключить. Например, [[File:Example.png|class=notpageimage]].
Больше подробностей в phab:T301588.
Можно ли указать конкретное изображение для страницы?
Начиная с версии MediaWiki 1.44.0 вы можете отметить изображение, соответствующее критериям, указанным в разделе «Каким образом выбираются изображения?», добавив ему |class=pageimage.
Обычно это рекомендуется использовать в крайнем случае, так как это отменяет алгоритм оценки изображений, что может привести к тому, что изображение окажется неподходящим для того места, где оно отображается (например, по разрешению, лицензии или расположению).
По возможности, предпочтительную миниатюру лучше добавить в качестве первого изображения статьи.
Как мне посмотреть изображение для страницы?
Используя ссылку Сведения о странице на боковой панели (или добавив ?action=info в URL), вы сможете увидеть текущий выбор изображения.
Как мне сбросить неудачное изображение?
Изображение для страницы меняется только при изменении ссылки в статье. В крайнем случае, пожалуйста, добавьте или удалите ссылки со страницы, вернув обратно, если необходимо. Очистка кеша не сработает. При гораздо больших чрезвычайных ситуациях, пожалуйста, создайте тикет на Phabricator.
Why is my page image a blank box?
This likely relates to video content in your article. If a video file begins with a blank screen, that will become the default thumbnail for the video, and if used as the page image, it will become the page image. We are currently working on a fix for this that will allow you to change the default thumbnail of a video. See: phab:T92457 and phab:T22647 for further information.
См. также
| Это расширение используется в одном или нескольких проектах Викимедиа. Вероятно, это означает, что расширение стабильно и работает достаточно хорошо, чтобы использоваться такими сайтами с высоким трафиком. Найдите название этого расширения в файлах конфигурации Викимедиа CommonSettings.php и InitialiseSettings.php, чтобы узнать, где оно установлено. Полный список расширений, установленных на конкретной вики, можно увидеть на странице Special:Version wiki. |
| Это расширение включено в следующие вики-фермы/хостинги и/или пакеты: Это не исчерпывающий список. Некоторые вики-фермы/хостинги и/или пакеты могут содержать это расширение, даже если они не перечислены здесь. Всегда сверяйтесь со своими вики-фермами/хостингами или комплектами/бандлами для подтверждения. |
- Stable extensions/ru
- API extensions/ru
- Parser extensions/ru
- WTFPL licensed extensions/ru
- Extensions in Wikimedia version control/ru
- ApiOpenSearchSuggest extensions/ru
- BeforePageDisplay extensions/ru
- InfoAction extensions/ru
- ParserAfterTidy extensions/ru
- ParserModifyImageHTML extensions/ru
- ParserTestGlobals extensions/ru
- SearchResultProvideThumbnail extensions/ru
- SpecialMobileEditWatchlist::images extensions/ru
- All extensions/ru
- Extensions bundled with MediaWiki 1.34/ru
- Extensions used on Wikimedia/ru
- Extensions included in BlueSpice/ru
- Extensions included in Canasta/ru
- Extensions available as Debian packages/ru
- Extensions included in Fandom/ru
- Extensions included in Miraheze/ru
- Extensions included in MyWikis/ru
- Extensions included in ProWiki/ru
- Extensions included in ShoutWiki/ru
- Extensions included in wiki.gg/ru
- Extensions included in WikiForge/ru
- Search engine optimization extensions/ru
