Расширение:Всплывающие окна

This page is a translated version of the page Extension:Popups and the translation is 34% complete.
Для the feature that is powered by this extension, см.: Page Previews.
Справка по расширениям MediaWiki
OOjs UI icon advanced-invert.svg
Popups
Статус релиза: стабильно
Hovercard english.png
Реализация Тема оформления
Описание Отображает всплывающие окна, когда пользователи наводят курсор на ссылки на статьи и маркеры сносок
Автор(ы)
  • Prateek Saxena (user:Prtksxna),
  • Yair Rand,
  • Sam Smith,
  • Joaquín Oltra Hernández,
  • Bahodir Mansurov,
  • Jon Robson,
  • Piotr Miazga,
  • Jeff Hobson
  • WMDE Engineering
MediaWiki 1.30+
PHP 5.6+
Лицензия GNU General Public License 2.0 или позднее
Скачать
Пример English Wikipedia
  • $wgPopupsVirtualPageViews
  • $wgPopupsOptInDefaultState
  • $wgPopupsRestGatewayEndpoint
  • $wgPopupsHideOptInOnPreferencesPage
  • $wgPopupsConflictingRefTooltipsGadgetName
  • $wgPopupsTextExtractsIntroOnly
  • $wgPopupsPageDisabled
  • $wgPopupsStatsvSamplingRate
  • $wgPopupsReferencePreviewsBetaFeature
  • $wgPopupsConflictingNavPopupsGadgetName
  • $wgPopupsOptInStateForNewAccounts
  • $wgPopupsGateway
  • $wgPopupsReferencePreviews
Quarterly downloads 535 (Ranked 13th)
Public wikis using 2,174 (Ranked 60th)
Переведите расширение Popups, если оно доступно на translatewiki.net
Проблемы Открытые задачи · Сообщить об ошибке

Расширение Popups отображает предварительный просмотр страниц и ссылок при наведении курсора на ссылку на статью или, соответственно, на ссылку. Первый состоит из резюме содержания статьи, второй показывает полное содержание ссылки.

Это инициатива команды дизайнеров, вдохновленных популярным гаджетом Навигационные окошки. В настоящее время эта функция доступна во всех Википедиях по умолчанию для вышедших из системы пользователей. Описание функций расширения и дополнительную информацию о его использовании в проектах Викимедиа доступно в Page Previews.

The Reference Previews feature was added eventually and aims to fulfill a wish from the German-speaking community's Technical Wishlist. A more detailed description and more information on its use is available at Помощь:Предпросмотры сносок .

Зависимости

Это расширение имеет жесткую зависимость от Расширение:TextExtracts и Расширение:PageImages при использовании по умолчанию со шлюзом mwApiPlain. Существуют также дополнительные зависимости от Бета-Функции (новые возможности) (без BetaFeatures, он загружается для всех пользователей), Расширение:EventLogging и Extension:WikimediaEvents (для инструментария).

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием Popups в вашей папке extensions/.
  • Добавьте следующий код внизу вашего LocalSettings.php :
    wfLoadExtension( 'Popups' );
    
  •   Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Пример окончательной настройки LocalSettings для нетестируемого сайта (обычная вики)

wfLoadExtensions( [
    'TextExtracts',
    'PageImages',
    'Popups'
] );
$wgPopupsHideOptInOnPreferencesPage = true;
$wgPopupsReferencePreviewsBetaFeature = false;

API предварительного просмотра страниц

Каждый проект уникален, и то, что отображается в превью, сильно зависит от содержимого вашей вики.

Расширение Popups оптимизировано для работы с контентом, подобным Википедии (например, викитекстом).

Если ваша вики использует другой тип обработчика содержимого (например, как в случае с Wikibase ) потребуется предоставить собственный API.

API может быть написан на любом языке, но ответ API должен соответствовать спецификации указанной здесь: Specs/Summary/1.2.0 Определение новых API выходит за рамки расширения Popups.

После определения вы можете настроить предварительный просмотр страниц, чтобы они указывали на ваш API, используя параметр конфигурации $wgPopupsRestGatewayEndpoint.

Параметры конфигурации

Опция Значение по умолчанию Документация
$wgPopupsVirtualPageViews false Должно ли расширение регистрировать виртуальные просмотры страниц.
$wgPopupsHideOptInOnPreferencesPage false Whether the option to enable/disable Page Previews should be hidden on Preferences page. По умолчанию False.
$wgPopupsOptInDefaultState 1 Default Page Previews visibility for old accounts. Has to be a string as a compatibility with beta feature settings. For more information see задача T191888. This value is internally converted to the Bool type. Therefore, a value greater than or equal to 2 has the same meaning as 1.
$wgPopupsOptInStateForNewAccounts 1 Default Page Previews visibility for newly created accounts (from Q2 2018). For more information see задача T191888.
$wgPopupsConflictingNavPopupsGadgetName 'Navigation_popups' The local Navigation popups gadget name used as its identifier in MediaWiki:Gadgets-definition . This gadget is incompatible with page previews. The extension will disable itself for users with the gadget enabled.
$wgPopupsConflictingRefTooltipsGadgetName ReferenceTooltips The local Reference Tooltips gadget name used as its identifier in MediaWiki:Gadgets-definition . This gadget is incompatible with reference previews. Reference previews will disable itself for users with the gadget enabled.
$wgPopupsGateway 'mwApiPlain' 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/page.js.
$wgPopupsRestGatewayEndpoint '/api/rest_v1/page/summary/' Specify a REST endpoint where summaries should be sourced from. Endpoint must meet the spec at Specs/Summary/1.2.0 .
$wgPopupsReferencePreviews true Temporary feature flag to disable reference previews during development.
$wgPopupsReferencePreviewsBetaFeature true Whether Reference Previews should be available as a Beta feature. If false, Reference Previews are enabled for all users by default.
$wgPopupsEventLogging false Whether we should log events. Note if this is enabled without using that variable events will be logged for all users without any sampling! Будьте осторожны!
$wgPopupsStatsvSamplingRate 0 Sampling rate for logging performance data to statsv.
$wgPopupsPageDisabled Several special pages. See extension.json for the full list. List of pages that should not show Popups. Includes subpages. These pages are subject to the HTML cache policy of the wiki. A purge on these pages maybe needed to see the effect of this configuration variable. Every excluded page should be defined by a canonical name, eg: Special:Userlogin.


Page previews content

Всплывающие окна предварительного просмотра страницы показывают изображение (если оно доступно) и небольшой фрагмент текста.

Изображение

Изображение формируются при помощи Расширение:PageImages , которое возвращает одну наиболее подходящую миниатюру, связанную со статьей. Он игнорирует шаблоны обслуживания, незавершённые статьи и т.д.

Текст

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 Расширение: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.

Типы примечаний

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. <ref><cite class="journal"></cite></ref>. Currently the following types are supported: web, journal, book, news, note. Apart from that there is always a generic fallback if neither the cite tag was found nor an appropriate class was used. Please note, that it's not recommended to use the CSS-classes directly in wikitext, but rather by creating templates.

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.
  • Small files may be in the "Рage information" (action=info), but not in the "Popups". Some requirements are set here - for a portrait image: exact (min) height 250 px & max width 203 px; for a landscape image: exact (min) width 320 px & max height 200 px[1]. To display, images must be able to become a thumbnail that is larger or equal to these "exact" sizes. (If you are cropping a large image to make a leading picture for an article, be sure that the picture you are creating is not smaller than the specified sizes.)

Extensibility

In MediaWiki 1.40, extensions and skins can extend the page previews functionality with their own custom preview types. It does this by registering a PluginModules attribute in its extension.json or skin.json file that points to a ResourceLoaderModule that can register a preview type.

{
    "attributes": {
        "Popups": {
            "PluginModules": [
              "skins.skinjson.popup"
            ]
        }
    }
}

The plugin module should export information about when the preview should be displayed (via selector), and how the preview data should be retrieved (via gateway library).

module.exports = {
        // a unique ID representing your preview type.
        type,
        // CSS selector that matches your custom preview type
        selector: '.mycustomselector',
        // Gateway that
        gateway: {
                fetchPreviewForTitle:  ( title, el ) => {
                	const deferred = $.Deferred();
                	deferred.resolve( {
                		title: 'Hello world',
                		extract: [
                			`Hi`
                		],
                		url: 'https://www.mediawiki.org/wiki/Extension:Popups',
                		type,
                		languageCode: 'en',
                		languageDirection: 'ltr',
                		thumbnail: undefined,
                		pageId: -1
                	} );
                	return deferred;
                }
        }
};

This feature is still in its infancy, has a few bugs (example) and feedback/bug reports via Phabricator are encouraged.

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?

How can I remove content from a page preview?

Any element marked with the noexcerpt class will be stripped from the summary.

Where do summaries come from?

These are provided by the summary REST API or the TextExtracts API in case your wiki is using the default mwApiPlain gateway.

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 .

Ссылки