Nápověda:Neočekávaná odřádkování a mezery

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Neočekávaná odřádkování a mezery se na Wikipedii nejčastěji vyskytují při kombinaci dvou šablon nebo podobných prvků (kouzelných slůvek). Skrytá chyba těchto prvků se projeví tím, že v místě jejich použití se vytvoří nežádoucí nový odstavec, případně jen mezera v textu. Při vytváření či úpravě šablon je proto potřeba možnost chyby dobře otestovat. V článcích někdy lze důsledkům zamezit umístěním obou šablon (prvků) na jeden řádek. (Psaní vícera šablon na jeden řádek je ale spíše jen ošklivý workaround, dirty hack, jako trvalé „řešení“ nevhodný. Lze ho však v editačním režimu použít pro potvrzení, že jde opravdu o tento problém, a pro zjištění, která z šablon je příčinou.)

Začlenění do šablony

Při jakémkoli rozšiřování šablon existuje nebezpečí nechtěného přidání odřádkování. Zkušenosti wikipedistů říkají, že se mezi produkty dvou následných šablon v článcích objevují neočekávaná odřádkování, ačkoli by se měly výsledky těsně dotýkat a navazovat.

* Způsob vzniku nechtěného odřádkování, ukázka chybného příkladu:

Je vidět, že se do stránek vkládá veškerý výsledek, tedy i odřádkování v kódu šablony: ta tedy mohou vznikat před jí vygenerovaným obsahem, v něm i za ním.

* Ukázka správného příkladu, bez vzniku nechtěného odřádkování: Kategorie:Dummy

Otestování nechtěných odřádkování

Zákeřnost nechtěných odřádkování spočívá ve dvou důvodech: Wiki jediné odřádkování ignoruje, to může vznikat třeba právě v šabloně, a interpretuje ho jen jako mezeru. Ovšem sejdou-li se dvě taková odřádkování za sebou, vzniká neočekávané odřádkování i v samotném článku. +more Takový souběh však zdaleka nemusí nastat vždy, ani ne často, a v článku se pak těžko dohledává příčina.

Druhá komplikace pro wikipedistu spočívá v nutnosti svou editaci v šabloně řádně otestovat: Například tím, že si ji zkusí použít. V úvahu připadají dva případy testů, kdy se šablona použije obklopena pokusným textem: * na jediném řádku, pro triviální otestování případu, kdy by šablona vkládala hned dvě odřádkování najednou * a i přísněji ověření případného vkládání byť i jediného přebytečného odřádkování, na hned po sobě následujících řádcích, kam už tedy jedno ze dvou odřádkování bylo vloženo úmyslně. +more Výsledky se sice mohou objevit nad sebou (například kvůli použití HTML prvku div uvnitř), ovšem mají se těsně dotýkat: Ani zde z použití šablony nesmí vzniknout nechtěné odřádkování.

V jednom řádku

pokusný textpokusný text s očekávaným výsledkem

Naopak chybně by bylo obojí, jak s odřádkováním před

pokusný text

tak i za výsledkem.

pokusný text

Přes více řádků

pokusný text

pokusný text s očekávaným výsledkem

Naopak chybně by bylo obojí, jak s odřádkováním před

tak i za výsledkem.

Nechtěné mezery

V textu se mohou chybně objevovat i neočekávané mezery, například . A ačkoli ty zpravidla neznamenají takový problém, jako dohledávání nechtěných odřádkování, i ony jsou chybou k opravení, nešlo-li o úmyslné chování šablony.

Předávání hodnot přes parametry

Už samotný způsob předání hodnoty do šablony je určující, zda se předaná hodnota otrimuje, či ne: Záleží na použití pojmenovaných nebo i číslovaných parametrů místo anonymních. * Mezi těmito voláními šablony s výslovným určením parametru "" a "" není ve výsledku žádný rozdíl: Oba případy dají stejný výsledek

Použitím pojmenovaných parametrů se tedy předávaná hodnota textově trimuje, odstraňují se počáteční a koncové mezery. +more * Naproti tomu jiné dva případy se zamlčenými parametry "" a "" už budou dávat každý jiný výsledek: .

proti

, tedy věrnou kopii předané hodnoty!

Je na rozhodnutí wikipedisty, jak má jeho šablona tyto mezery zpracovávat.

Ukázky předávání mezer

abcxyzabcxyz
abcxyzabcxyz
abcxyzabcxyz
abcxyzabcxyz

abcxyzabcxyz
abcxyzabcxyz

Text ve wikitabulce zalomený na více řádků

Bohužel, je hloupým chováním wikitabulek, tabulek vytvořených wikisyntaxí, že první řádek textu zalomeného v buňce na více řádků je ve wikitabulce odsazen vertikální mezerou. Tento jev se běžně projevuje například v infoboxech, při zadávání jedné delší hodnoty zalomeně přes vícero řádků.

Dodaná vertikální mezera vlastně není celý řádek, jde jen o nějaké zvětšené okraje, asi CSS vlastností margin.

Wikitabulka s vertikální mezerou u prvního řádku

px"text mezera pod pokračuje přes více řádků
[wiki_table=30735944]

px"text mezera pod pokračuje přes více řádků

px"text mezera nad pokračuje přes více řádků

Wikitabulka, obejití

px"text pokračuje přes více řádků
Jediný způsob, jak potíž obejít, je odebrat odřádkování ze zdrojového kódu a ponechat jen HTML lámání do výsledku:

px"text pokračuje přes více řádků

Tím sice vyloučíme vznik vertikálních mezer u řádků textu, ale zase přijdeme o přehlednost zdrojového kódu.

Wikitabulka s vertikální mezerou u prvního i posledního řádku

Potíž nepomůže obejít ani obalení celého bloku textu do jediné hodnoty pomocí značky <div>:

px"text vysoký pokračuje přes více řádků
[wiki_table=0f4bc695]

px"text vysoký pokračuje přes více řádků

px"text nízký pokračuje přes více řádků

Obalením sice přehlednost zdrojového kódu zachováme, avšak neodstraníme vertikální mezery. Obalování do bloku navíc může selhat a způsobit dokonce dvě vertikální mezery. +more Je totiž třeba ve zdrojovém kódu odřádkovat na začátku i na konci. Obalení tedy nakonec nic nepřináší.

Wikitabulka s vertikální mezerou, závěr

Je-li záměrem mít vzhled tabulek pod kontrolou, mít je kompaktní a minimalizovat jejich výšku, nelze než zapisovat všechny jejich vstupy do jediného řádku. To se týká především navigačních šablon na spodcích článků, kde je vertikální rozměr podstatný.

Kategorie:Wikipedie:Vzhled a styl Kategorie:Wikipedie:Návody Kategorie:Wikipedie:Formátování textu

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top