Jump to content

Extension:Popups

From mediawiki.org
This page is a translated version of the page Extension:Popups and the translation is 98% complete.
Pro funkce, která je poháněna tímto rozšířením se podívejte na stránku: Special:MyLanguage/Page Previews.
Příručka k rozšířením MediaWiki
Popups
Stav rozšíření: stabilní
Implementace Vzhled
Popis Zobrazuje vyskakovací okna, když uživatelé přejedou myší nad odkazy na články a značky poznámek pod čarou
Autoři
  • 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.37+
PHP 5.6+
Licence GNU General Public License 2.0 nebo novější
Stáhnout
Příklad English Wikipedia
  • $wgPopupsVirtualPageViews
  • $wgPopupsTextExtractsIntroOnly
  • $wgPopupsStatsvSamplingRate
  • $wgPopupsRestGatewayEndpoint
  • $wgPopupsConflictingNavPopupsGadgetName
  • $wgPopupsPageDisabled
  • $wgPopupsHideOptInOnPreferencesPage
  • $wgPopupsGateway
Přeložte rozšíření Popups, používá-li lokalizaci z translatewiki.net
Problémy Otevřené úkoly · Nahlásit chybu

Rozšíření Popups (ve Special:Version známé jako Náhledy) zobrazuje náhledy stránek a reference při najetí myší na odkaz na článek, respektive na referenci. První z nich obsahuje shrnutí obsahu článku, druhé zobrazuje úplný obsah reference.

Toto rozšíření je iniciativou designového týmu, inspirovaného populárním gadgetem Navigační vyskakovací okna. V současné době je tato funkce ve výchozím nastavení dostupná na všech Wikipediích pro nepřihlášené uživatele. Popis fungování rozšíření a další informace o jeho použití v projektech Wikimedie jsou k dispozici na stránce Náhledy stránek.

Funkce Reference Previews byla přidána postupně a jejím cílem je splnit přání z technického seznamu přání německy mluvící komunity. Podrobnější popis a další informace o jejím použití jsou k dispozici na Náhledy referencí .

Závislosti

Toto rozšíření má při použití s ​​výchozí bránou mwApiPlain pevnou závislost na převodnících Extension:TextExtracts a Extension:PageImages . Existují také volitelné závislosti na Funkce Beta (pokud chcete povolit funkci Reference Previews jako beta verzi) a Rozšíření:EventLogging a Extension:WikimediaEvents (pro instrumentaci).

Instalace

  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného Popups ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
    
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'Popups' );
    
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Příklad finální konfigurace
wfLoadExtensions( [
    'TextExtracts',
    'PageImages',
    'Popups'
] );
$wgPopupsHideOptInOnPreferencesPage = true;
$wgPopupsReferencePreviewsBetaFeature = false;

Nastavení

Volba Výchozí hodnota Dokumentace
$wgPopupsVirtualPageViews false Zda má rozšíření zaznamenávat virtuální zobrazení stránek.
$wgPopupsHideOptInOnPreferencesPage false Zda má být možnost povolit/zakázat náhledy stránek skryta na stránce Předvolby.
$wgPopupsOptInDefaultState 1 (odstraněno od 1.43) Viditelnost náhledů výchozí stránky pro staré účty. Musí se jednat o řetězec z důvodu kompatibility s nastavením beta funkcí. Pro více informací viz T191888. Tato hodnota je interně převedena na typ Bool. Hodnota větší nebo rovna 2 má tedy stejný význam jako 1.
$wgPopupsOptInStateForNewAccounts 1 (odstraněno od 1.43) Výchozí náhled stránky zobrazuje viditelnost pro nově vytvořené účty (1.32–1.43). Více informací najdete na stránce T191888.
$wgPopupsConflictingNavPopupsGadgetName 'Navigation_popups' Lokální název gadgetu Vyskakovací navigační okna použitý jako jeho identifikátor v MediaWiki:Gadgets-definition . Tento gadget není kompatibilní s náhledy stránek. Rozšíření se samo zakáže uživatelům, kteří mají povolený gadget.
$wgPopupsConflictingRefTooltipsGadgetName ReferenceTooltips Název lokálního gadgetu Reference Tooltips použitý jako jeho identifikátor v MediaWiki:Gadgets-definition . Tento gadget není kompatibilní s náhledy referencí. Náhledy referencí se pro uživatele s povoleným gadgetem samy vypnou.
$wgPopupsGateway 'mwApiPlain' Kterou bránu použít pro načítání dat vyskakovacích oken? Dostupné možnosti: mwApiPlain, restbasePlain, restbaseHTML. Úplný a vždy aktuální seznam je k dispozici v src/gateway/page.js.
$wgPopupsRestGatewayEndpoint '/api/rest_v1/page/summary/' Určete koncový bod REST, ze kterého mají být získávány souhrny. Koncový bod musí splňovat specifikaci na Specs/Summary/1.2.0 .
$wgPopupsReferencePreviews true Dočasný příznak funkce pro zakázání náhledů referencí během vývoje.
$wgPopupsReferencePreviewsBetaFeature true Zda by měly být náhledy referencí dostupné jako beta funkce. Pokud je nastaveno na hodnotu false, náhledy referencí jsou ve výchozím nastavení povoleny pro všechny uživatele.
$wgPopupsStatsvSamplingRate 0 Vzorkovací frekvence pro zaznamenávání dat o výkonu do statsv.
$wgPopupsPageDisabled Several special pages. See extension.json for the full list. Seznam stránek, které by neměly zobrazovat vyskakovací okna. Zahrnuje podstránky. Tyto stránky podléhají zásadám wiki pro ukládání HTML do mezipaměti. Abyste viděli efekt této konfigurační proměnné, může být nutné tyto stránky vymazat. Každá vyloučená stránka by měla být definována kanonickým názvem, např.: Special:Userlogin.

Náhledy obsahu stránky

Vyskakovací okna s náhledem stránky zobrazují obrázek (pokud je k dispozici) a krátký textový úryvek.

Obrázek

Obrázek pochází z metody Extension:PageImages , která vrací nejvhodnější náhledový obrázek přidružený k článku. Ignoruje šablony údržby, stuby, ikony vlajek atd.

Text

Náhledy stránek lze konfigurovat pomocí libovolného kompatibilního API, které je kompatibilní s Souhrnný koncový bod služby obsahu stránek pomocí $wgPopupsRestGatewayEndpoint. Třetím stranám doporučujeme používat Službu obsahu stránek, aby si mohly s lokální wiki užívat vyskakovací okna.

Můžete také použít rozšíření Extension:TextExtracts . Toto rozšíření má různá omezení a aktivně nepodporujeme používání tohoto API.

Renderery

Toto rozšíření má v současné době pouze jeden renderer, a to pro běžné stránky.

Lze snadno přidat nové renderery pro různé typy stránek nebo věci jako reference.

Je třeba vytvořit nový objekt pomocí následujících metod:

  • init
  • createPopup
  • getOffset
  • getClasses
  • processPopup

Podrobnosti o těchto metodách si můžete prohlédnout v ext.popups.renderer.article.js nebo v tomto patchu, který přidává renderer pro reference.

API pro náhledy stránek

Každý projekt je jiný a to, co se zobrazuje v náhledech, do značné míry závisí na obsahu vaší wiki.

Rozšíření Popups bylo optimalizováno pro práci s obsahem podobným Wikipedii (např. wikitext).

Pokud vaše wiki používá jiný druh obslužného programu obsahu (například jako v případě Wikibase ), bude muset poskytnout vlastní API.

API lze napsat v libovolném jazyce, ale odpověď API musí odpovídat specifikaci definované v Specs/Summary/1.2.0 .

Definování nových API je mimo rozsah rozšíření Popups.

Jakmile je definováno, můžete nakonfigurovat náhledy stránek tak, aby odkazovaly na vaše API, pomocí konfigurační volby $wgPopupsRestGatewayEndpoint.

Známé problémy

  • Uživatelé rozšíření Translate by si měli všimnout, že náhledy stránek požadují náhledy v jazyce obsahu stránky. Pokud náhled obsahuje kompletní přeložitelný blok, bude přeložen. Pokud však náhled obsahuje neúplný přeložitelný blok – například proto, že je věta oříznuta – pak se nepřeloží a zobrazí se v jazyce obsahu stránky. Pokud toto chování pozorujete, měli byste zvážit označení jednotlivých vět v úvodní části. Úkol T167852 je určen pro technické publikum, ale obsahuje více informací o základním problému.
  • Delší matematické vzorce se v náhledu ořezávají - dlouhé matematické nebo chemické vzorce (vzorce širší než šířka náhledu) se v náhledech zobrazují jako oříznuté. Nepodařilo se nám přidat přechod, který by indikoval, že vzorec pokračuje i v samotném článku.
  • Malé soubory mohou být v složce "Informace o stránce" (action=info), ale ne ve složce "Popups" (vyskakovací okna). Zde jsou stanoveny některé požadavky - pro obrázek na výšku: přesná (min) výška 1 px a maximální šířka 2 px; pro obrázek na šířku: přesná (min) šířka 3 px a maximální výška 4 px[1]. Aby se obrázky mohly zobrazit, musí být možné je převést na miniaturu větší nebo rovnou těmto "přesným" velikostem. (Pokud ořezáváte velký obrázek, abyste z něj vytvořili úvodní obrázek článku, ujistěte se, že vytvářený obrázek není menší než zadané velikosti.)
  • The preview popup for some pages may contain only the text: There was an issue displaying this preview. Jedním z důvodů je, že rozšíření TextExtracts nedokáže najít žádný "úvodní" text pro stránku, což se může stát, pokud článek začíná určitými entitami, například infoboxem vytvořeným pomocí rozšíření PortableInfobox . Řešením je nastavit hodnotu $wgPopupsTextExtractsIntroOnly = false;, i když to může způsobit, že náhled bude obsahovat nežádoucí entity, jako například názvy neúvodních sekcí. Konfigurační proměnná TextExtracts $wgExtractsRemoveClasses pak může být použita k vyčištění těchto nežádoucích entit z náhledu, i když je tím zároveň skryjete před všemi ostatními uživateli rozhraní TextExtracts API.

Rozšiřitelnost

V MediaWiki 1.40 mohou rozšíření a vzhledy rozšířit funkcionalitu náhledů stránek o vlastní typy náhledů. Toho se dosáhne registrací atributu PluginModules v souboru extension.json nebo skin.json, který odkazuje na ResourceLoaderModule, jenž může registrovat typ náhledu.

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

Pluginový modul by měl exportovat informace o tom, kdy se má náhled zobrazit (prostřednictvím selektoru) a jak se mají data náhledu načítat (prostřednictvím knihovny gateway). Selektor by měl odpovídat elementu, který má atribut data-title. Atribut data-title bude předán funkci fetchPreviewForTitle.

module.exports = {
        // jedinečné ID představující typ náhledu.
        type,
        // Selektor CSS, který odpovídá vašemu vlastnímu typu náhledu
        selector: '.mycustomselector',
        // Brána
        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;
                }
        }
};

Pro příklady z reálného světa poskytuje Extension:Math popisky nástrojů Smath a Extension:Cite náhledy referencí.

Časté dotazy

Proč nemohu kopírovat a vkládat text z náhledu?

V době psaní tohoto článku nevýhody takového postupu převažují nad výhodami. V podstatě se jedná o zmenšení dotykové plochy pro přečtení celého článku. Jakmile bude Náhled stránek nasazen na anglické a německé Wikipedii, můžete tento úkol znovu otevřít a znovu zahájit diskusi, ale momentálně s tím nemáme žádné plány.

Jak mohu změnit obrázek, který vidím v náhledu?

Viz Extension:PageImages#Výběr obrázku.

Jak mohu odstranit obsah z náhledu stránky?

Jakýkoli prvek označený třídou noexcerpt bude ze souhrnu odstraněn.

Proč je obsah ze shrnutí odstraněn?

Jakýkoli HTML prvek označený třídou noexcerpt, mw-ref, reference, noprint, nomobile nebo sortkey bude ze souhrnu odstraněn. Pokud má být text zobrazen v souhrnu, neměli byste za žádných okolností používat tyto třídy v šablonách, které se používají v úvodní části článku.

Odkud pocházejí souhrny?

Tyto funkce poskytuje souhrn REST API (produkční wikin Wikimedie) nebo TextExtracts API v případě, že vaše wiki používá výchozí bránu mwApiPlain.

Proč jsou fráze v závorkách odebrány?

V T91344 ve Phabricatoru probíhá dobrá diskuse. Pokud k tomu máte nějaké názory nebo s tím souvisí nějaké problémy, dejte nám prosím vědět.

Proč se mi nezobrazují vyskakovací okna mimo jmenné prostory obsahu?

Vyskakovací okna se zobrazují pouze u odkazů na stránky v jmenných prostorech obsahu. Toto je omezení vyskakovacích oken. Textové výňatky jsou k dispozici z jiných jmenných prostorů. Tomuto problému se můžete vyhnout přidáním dalších jmenných prostorů do $wgContentNamespaces .

Odkazy

Poznámky pod čarou