Help:Extension:Linter/cs
Rozšíření Linter identifikuje vzory wikitextu, které je nutné nebo lze na stránkách opravit, spolu s pokyny, jaké jsou problémy s těmito vzory a jak je opravit.
Stránka Chyby nalezené Lintem seskupuje chyby podle typu. Některé z těchto problémů se dají snadněji najít na stránce Substituce šablon. Na této stránce budeme klasifikovat problémy s Linterem podle závažnosti problému vzhledem k cílům, které tyto problémy blokují. Více informací a diskuse k tomuto tématu je uvedeno níže.
Ve spodní části stránky Chyby nalezené Lintem je nová funkce "Zobrazit všechny chyby Linteru pro konkrétní stránku", která umožňuje editorovi zobrazit přehled všech chyb na jedné stránce. Zpráva obsahuje kategorii a další užitečné informace a každá chyba má klikatelný odkaz, který načte stránku a chybu zvýrazní. (Poznámka: Pokud má váš editor zdrojového kódu povoleno zvýrazňování syntaxe, nemusí zvýrazňování fungovat). Pokud budete postupovat od konce seznamu směrem nahoru, změny na stránce nezneplatní posuny znaků dřívějších chyb a je to doporučený způsob práce, pokud opravujete všechny chyby na stránce.
Budeme i nadále vylepšovat funkčnost, abychom eliminovali šum, opravili chyby a zvýšili praktičnost výstupu Linteru, ale aktuální výstup je připraven k použití a akci.
Dokumentace problémů s lintováním
Proč a co opravit
Do budoucna plánuje parsovací tým využít rozšíření Linter k identifikaci vzorů wikitextu:
- Které jsou chybné (např. falešné možnosti obrázků – obvykle způsobené překlepy nebo tím, že parsování možností médií v MediaWiki je křehké).
- Které jsou zastaralé (např.: samozavírací tagy)
- Které se mohou přerušit kvůli změnám v parsovacím kanálu (např.: nahrazení Tidy za RemexHTML)
- Které již nejsou platné v HTML5 (např. zastaralé tagy jako center, font)
- Které jsou potenciálně poškozené a analyzátor je může špatně interpretovat oproti tomu, co editor zamýšlel (např. neuzavřené HTML tagy, špatně vnořené HTML tagy)
Ne všechny je nutné opravit okamžitě, nebo dokonce vůbec (v závislosti na vaší toleranci k lintům). Různé cíle se dosahují opravou různých podmnožin výše uvedených problémů s linty. My (parsovací tým) se budeme snažit být ohledně těchto cílů transparentní a poskytneme vám rady, které cíle se dosahují opravou kterých problémů.
Zjednodušené pokyny jsou uvedeny na stránce s častými dotazy.
Cíl: Nahrazení Tidy
V rámci řešení technických nedostatků v parsovacím kanálu MediaWiki jsme nahradili Tidy nástrojem založeným na HTML5. To by však narušilo vykreslování malé podmnožiny stránek, pokud by nebyly opraveny určité vzory wikitextu. Konkrétně se jednalo o problémy nalezené v kategoriích deletable-table-tag
, pwrap-bug-workaround
, self-closed-tag
, tidy-whitespace-bug
, html5-misnesting
a tidy-font-bug
. Abychom mohli včas nahradit Tidy, klasifikovali jsme všechny tyto problémy jako vysoce prioritní.
Cíl: Zlepšení kompatibility mezi vykreslováním PHP parseru a Parsoidu
V současné době se HTML kód generovaný analyzátorem PHP používá pro zobrazení pro čtení a HTML kód generovaný Parsoidem se používá mimo jiné v editačních nástrojích a aplikacích pro Android. Tým pro analýzu, jako jeden ze svých dlouhodobých cílů, chce umožnit použití výstupu Parsoidu jak pro čtení, tak i pro úpravy. Protože Parsoid i RemexHTML jsou nástroje založené na HTML5, kategorie lint, které ovlivňují vykreslování RemexHTML, ovlivňují také vykreslování Parsoidu. Zatím jsme neidentifikovali žádné novější problémy s lintováním, které by ovlivňovaly vykreslování Parsoidu, ale tento seznam budeme aktualizovat, jakmile nějaké takové zjistíme.
Cíl: Vyhovující výstup HTML5
Jedná se o poněkud složitý cíl a dosud jsme se nedostali k pochopení toho, jak důležité je tento cíl sledovat nebo jak daleko bychom s ním měli zajít. Navíc dosud není jasné, jaké mechanismy chceme k dosažení tohoto cíle využít. Například na základě řady diskusí na různých místech Uživatel:Legoktm/HTML+MediaWiki nastiňuje návrh pro nakládání s velkým tagem, který byl v html5 zastaralý. V každém případě oprava problémů v kategoriích obsolete-tag
a self-closed-tag
tento cíl podporuje. Vzhledem k nejasnostem ohledně tohoto cíle jsme kategorii obsolete-tag označili jako cíl s nízkou prioritou.
Cíl: Vyjasnění záměru editora
Správné značení je těžké.
Chyby se neúmyslně vkrádají.
I když se analyzátor snaží tyto chyby co nejlépe opravit, v mnoha případech to, co analyzátor provede, nemusí skutečně odrážet původní záměr editora.
Vzhledem k tomu doporučujeme, bylo by nejlepší opravit zde uvedené problémy, aby se objasnil záměr editora.
Zdá se, že problémy v kategoriích bogus-image-options
, fostered-content
, misnested-tag
, missing-end-tag
ovlivňují tento cíl.
Jelikož se jedná o poměrně důležitý cíl, označili jsme většinu z nich střední prioritou.
Kategorii chybějících koncových značek jsme však označili nízkou prioritou, protože ve velké většině případů se zdá, že analyzátor provádí poměrně přesnou obnovu.
Přesto doporučujeme opravit cokoli, co lze opravit bez větší námahy, už jen proto, aby se usnadnilo pochopení ostatními lidskými editory a nástroji.
Cíl: Čisté značení
Správné kódování je těžké. I v případě chyb si parser ve většině případů docela dobře poradí, jak přesně má daný kód vykreslit. Stejně jako překlepy, interpunkce a drobné gramatické chyby mohou být znepokojivé, i někteří editoři nebo ti, kteří s vývojářským přístupem shledávají problémy s lintováním v těchto kategoriích znepokojivé. Nedoporučujeme trávit nepřiměřené množství času opravováním těchto problémů a v mnoha případech by je mohli opravit i boti. Kategorie lintování missnested-tag
, missing-end-tag
, stripped-tag
tento cíl ovlivňují.
Cíl: Zlepšit přenositelnost a prezentaci obsahu
Writing templates for content that works across different devices, different browser resolutions, different skins (and their themes e.g. dark mode), different websites (e.g. Wikiwand, Kiwix, Wikimedia Apps) is tricky.
Vzhledy se sice co nejlépe přizpůsobují obsahu, ale vzhledem k nesčetným šablonám používaným na našich stránkách jsou jejich možnosti omezené.
Kde je to možné, jsou problémy označeny, aby s nimi mohli editoři pomoci.
night-mode-unaware-background-color
, large-tables
, kategorie lint ovlivňují tento cíl.
Časté dotazy
Kdy se aktualizují chyby lint pro stránku?
V současné době jsou všechny kategorie lint naplněny chybami identifikovanými programem Parsoid při analýze stránky. Když je stránka (nebo šablona zahrnutá na stránce) upravena, ChangeProp požádá Parsoid o opětovnou analýzu dané stránky, která odešle nové výsledky do rozšíření Linter.
To znamená, že když je zavedena nová kategorie (nebo je provedena oprava předchozí kategorie), může chvíli trvat, než se všechny výsledky aktualizují (pokud vůbec u stránek, kterých se málokdy dotýkáme). Provedení úpravy s hodnotou null by proces jednotlivě urychlilo. V phab:T161556 však zkoumáme způsoby, jak znovu zpracovat všechny stránky.
Měly by být opraveny stránky v X jmenném prostoru (např. diskuse)
Prioritou jsou jmenné prostory obsahu. Zbytek do značné míry závisí na wiki. Mnoho stránek se používá jako pískoviště a proto záměrně obsahují chyby.
Nástroje
- w:User:PerfektesChaos/js/lintHint – JavaScriptový gadget, který zobrazuje seznam chyb LintError (zpráv Parsoid) v reálném čase
- WPCleaner – program v Javě, který komunikuje s Linterem a dokáže také detekovat některé chyby
- ja:User:MawaruNeko/ShowPageLintError.js – uživatelský skript, který zobrazuje všechny chyby lint na stránce
- Robot od User:星耀晨曦, který dokáže opravit chyby multiple-unclosed-formatting-tags .