Help:Extension:Linter/cs: Difference between revisions
Created page with "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." |
Created page with "=== Cíl: Čisté značení ===" |
||
| Line 61: | Line 61: | ||
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. |
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. |
||
<span id="Goal:_Clean_markup"></span> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
=== |
=== Cíl: Čisté značení === |
||
</div> |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
<div lang="en" dir="ltr" class="mw-content-ltr"> |
||
Revision as of 07:53, 28 April 2025
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í.
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.
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, missnested-tag a 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í
Getting markup right is hard. Even in the presence of errors, the parser does a fairly decent job in most cases in figuring out accurately how that piece of markup is supposed to render. But, in much the same way that typos, punctuation and minor grammatical errors can feel unsettling, some editors or those with a developer-mindset might find lint issues in these categories unsettling. We don't recommend spending an inordinate amount of time fixing these issues and, in many scenarios, bots might be able to fix these up as well. misnested-tag, missing-end-tag, stripped-tag lint categories affect this goal.
Goal: Improve content portability and presentation
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. While skins do their best to adapt to content, they are restricted in what they can do given the myriad of templates used across our sites. Where we can, issues are flagged for editors to assist. night-mode-unaware-background-color, large-tables, lint categories affect this goal.
FAQ
When are lint errors for a page updated?
Currently, all lint categories are populated by errors identified by Parsoid while parsing a page. When a page (or, template transcluded on a page) is edited, ChangeProp requests a re-parse of that page from Parsoid, which will send the fresh results to the Linter extension.
This means that when a new category is introduced (or a correction is made to a previous category), it may take a while for all the results to be updated (if ever for pages that are rarely touched). Making a null edit would speed up the process individually. However, in phab:T161556, we're exploring ways to reprocess all pages.
Should pages in X namespace (e.g. talk) be fixed
The priority is content namespaces. The rest largely depend on the wiki. A lot of pages are used as a sandbox, and as such deliberately contain errors.
Tools
- w:User:PerfektesChaos/js/lintHint – a JavaScript gadget that shows a list of LintErrors (Parsoid messages) live
- WPCleaner – a Java program that interfaces with Linter and can also detect some of the errors
- ja:User:MawaruNeko/ShowPageLintError.js – a user script that shows all lint errors on a page
- Bot by User:星耀晨曦 that can fix multiple-unclosed-formatting-tags errors.