Edit

Podrobný popis syntaxe

Filozofie

Nástroj Texy vznikl proto, aby nezkušeným uživatelům umožnil snadno editovat obsah webových stránek. Proto je i syntaxe maximálně intuitivní. Záměrem je, aby text v čisté (nezformátované) formě byl přehledný a jeho formát tušitelný.

Dnes Texy výborně slouží i zkušeným znalcům jazyka HTML. Dovoluje volně kombinovat Texy zápis s HTML značkami. Zkušení uživatelé se tedy nemusí učit nový meta-jazyk a plně využít svých znalostí. Texy jim pouze zjednodušuje práci.

Prvotní logikou syntaxe je žádnou syntaxi nepoužívat. Jen psát čistý text. Vkládání rozšířených informací, jako třeba CSS třídy nebo odkazy, nenaruší tok textu. A zapíší se způsobem, který snadno pochopí i netechnicky založení uživatelé.

Odstavce textu

Za odstavec se považuje jeden nebo více bezprostředně za sebou následujících řádků textu. Odstavečky jsou od sebe oddělené prázdným řádkem.

První odstavec lorem ipsum dolor sit amet.

Druhý odstavec, který tvoří jeden řádek.
A druhý řádek textu. Texy je spojí.
<p>První odstavec lorem ipsum dolor sit amet.</p>

<p>Druhý odstavec, který tvoří jeden řádek. A druhý řádek textu. Texy je spojí.</p>

V editačním políčku webové stránky (textarea) není rozdělení odstavce na dva řádky patrné. Proto je i Texy považuje za jeden odstavec.

Zalomení řádku v odstavci docílíte vložením jedné mezery vlevo:

Kdoví jestli
 jestli jsou na měsíci vůbec nějaký stopy
 a proč kope kolem sebe kdo se topí
 jakej sval to Zemí otáčí
<p>Kdoví jestli<br>
jestli jsou na měsíci vůbec nějaký stopy<br>
a proč kope kolem sebe kdo se topí<br>
jakej sval to Zemí otáčí</p>

Titulky

Titulky je možné zapsat hned dvěma způsoby: podtržením nebo předsazením.

Každý titulek má svůj stupeň. V případě podtržení o důležitosti titulku rozhoduje podtrhávací znak. Od nejvyšší po nejnižší jsou to tyto: # * = -

Hlavní titulek
**************

Podtitulek
==========
<h2>Hlavní titulek</h2>

<h3>Podtitulek</h3>

U titulků zapsaných předsazením určuje úroveň počet předsazených znaků. A ty mohou být # nebo =

Platí: čím více znaků, tím důležitější titulek (minimum jsou dva znaky, maximum sedm).

=== Hlavní titulek ===

## Podtitulek

Jak vidíte v případě podtitulku, znaky vpravo je možné vynechat.

Stupně titulků jsou vždy jen relativní! Tedy Texy najde nejvyšší použitý titulek a ostatní titulky relativně od něj odstupňuje.

Horizontální čáry

Texy zná tyto způsoby zápisu:

--------

********
<hr>
<hr>

Kód

Používá se pro vložení zdrojového kódu. Použitím přídavného modulu lze aktivovat i zvýrazňování syntaxe. Popisuje to jeden z příkladů v distribuci.

/---code php
  function reImage($matches) {
    $content = $matches[1];
    $align = $matches[5];
    $href = $matches[6];
  }
\---
<pre class="src-php"><code><span class="php-keyword1">function</span> reImage(<span class="php-var">$matches</span>) {
  <span
class="php-var">$content</span> = <span class="php-var">$matches</span>[<span class="php-num">1</span>];
  <span
class="php-var">$align</span> = <span class="php-var">$matches</span>[<span class="php-num">5</span>];
  <span
class="php-var">$href</span> = <span class="php-var">$matches</span>[<span class="php-num">6</span>];
}</code></pre>

Všimněte si slova php pro označení jazyka.

Vypnutí Texy

Klíčové slovo html nebo text ovlivňuje, jestli obsah bude chápán jako HTML (včetně značek), nebo prostý text.

/---html
  <em>příklad</em>: **this is not strong**
\---


/---text
  <em>příklad</em>: **this is not strong**
\---

Pro inline vypnutí Texy je možné použít dvojitý apostrof '' a obalit s ním část textu, který nemá být Texy zpracováván.

Příklad: ''**this is not strong**''

Rozdělování do bloků (div)

Tuto schopnost využijete při tvorbě složitějších dokumentů.

/---div .[header]

  content of div

\---
<div class="header">
	<p>content of div</p>
</div>

Je možné bloky i vnořovat:

/---div .[header]

  ## This is a header.

  /---div
    vnořený div
  \---

  Texy je sexy!

\---
<div class="header">
	<h6>This is a header.</h6>

	<div>
		<p>vnořený div</p>
	</div>

	<p>Texy je sexy!</p>
</div>

Citace

Citace jsou odsazené, podobně jako v emailech, znakem >

> This is a blockquote with two paragraphs.
>
> 640 K should be enough for everyone
>
>:http://www.microsoft.com
<blockquote cite="http://www.microsoft.com">
	<p>This is a blockquote with two paragraphs.</p>

	<p>640 K should be enough for everyone</p>
</blockquote>

Zdroj (URI) citace je uveden pomocí dvojtečkové notace, jak je vidět v příkladu. Stejně jako u bloků je možné citace vnořovat, používat v nich titulky atd.

Odkazy

Odkazy se zapisují tak, že odkazující text uzavřete do uvozovek a následujete dvojtečkou a URL. Texy se snaží inteligentně odhadnout konec URL. Můžete mu i pomoci tím, že URI uzavřete do hranatých závorek. Část http:// není povinná.

Jako odkaz je možné vkládat i emaily, Texy je transformuje do podoby, která by měla zmást spamboty.

Look at homepage:[https://texy.info].

Do you know "La Trine":https://www.latrine.cz?

"Write me":me@example.com
<p>Look at <a href="https://texy.info">homepage</a>.</p>

<p>Do you know <a href="https://www.latrine.cz">La Trine</a>?</p>

<p><a href="mailto:me&#64;example.com">Write me</a></p>

Reference

Aby se tok textu „neznečišťoval“ vkládáním URL, je možné všechny adresy uvést na jednom místě a pak se na ně jen odkazovat. Tomu se říká reference. Kromě adresy je možné doplnit i text odkazu a modifikátor.

 [homepage]: https://texy.info/ Texy .(homepage)
 [nette]: http://nette.org

This is [homepage]

Look at "this site":[nette]

Obrázky

Zapisují se mezi hranaté závorky s hvězdičkou:

[* image.gif *]
<img src="//files.texy.info/git/www/image.gif" alt="">

V textových odstavcích je často třeba zvolit, má-li být obrázek zarovnán k levému nebo pravému kraji. Toho docílíte pomocí znaku < a > použitého před pravou závorkou:

[* image.gif <] Left-aligned image

[* image.gif >] Right-aligned image
<p><img src="//files.texy.info/git/www/image.gif" alt="" class="left"> Left-aligned image</p>

<p><img src="//files.texy.info/git/www/image.gif" alt="" class="right"> Right-aligned image</p>

Poznámka: V uvedeném příkladu Texy použil pro zarovnání přímý styl. Je možné systém nakonfigurovat tak, aby místo přiřadil obrázkům zvolenou třídu.

Poznámka: pro všechny (relativní) URL obrázků je možné nastavit výchozí adresář. V uvedeným příkladech to byl images/, proto v Texy není adresář uveden, zatímco ve vygenerovaném HTML ano.

Poznámka: pokud není implicitně určen alternativní text (jak na to viz níže), použije Texy výchozí. Zde je to prosté image

Rozměry

U lokálních obrázků Texy zjistí rozměry automaticky. Pokud je chcete určit ručně, zapište je takto:

[* image.gif 10x20 *]
<img src="//files.texy.info/git/www/image.gif" alt="" width="10" height="20">

Událost on-mouse-over

A toto už je vyšší škola Texy :-) Překlapovací obrázky vytvoříte velmi jednoduše – v jednom obrázku uvedete dvě URL oddělené znakem |

[* image.gif | image-over.gif *]
<img src="//files.texy.info/git/www/image.gif" alt="" onmouseover="this.src='//files.texy.info/git/www/image-over.gif'"
onmouseout="this.src='//files.texy.info/git/www/image.gif'"
onload="var i=new Image();i.src='//files.texy.info/git/www/image-over.gif';if(typeof preload=='undefined')preload=new Array();preload[preload.length]=i;this.onload=''">

Modifikátory

O nich se více dozvíte v jiné kapitole, ale neuškodí si ukázat, jak se u obrázků zapisují. Zkusme si modifikátor pro určení alternativního textu a třídy:

[* image.gif .(alt text)[foto] *]
<img src="//files.texy.info/git/www/image.gif" class="foto" alt="alt text">

Reference

Ze stejných důvodů, jako u odkazů, je i obrázky možné zapisovat pomocí referencí. Je třeba definovat URL (nebo více URL oddělených |) a případně i modifikátory.

What a beautiful girl [* picture*] !
<p>What a beautiful girl <img src="//files.texy.info/git/www/picture" alt=""> !</p>

Obrázek s popiskou

Za obrázkem uveďte tři hvězdičky a následuje popiska:

[* image.gif *] *** Toto je *popiska* pod obrázkem
<div class="figure"><img src="//files.texy.info/git/www/image.gif" alt="">
	<p>Toto je <i>popiska</i> pod obrázkem</p>
</div>

Fráze

Asi nejpoužívanější syntax v Texy. Téměř ve všech případech se používá zdvojený znak.

//kurzíva//

*taky kurzíva*

**tučné**

superscript^2 vs. subscript_2

Citace: >>Lorem Ipsum Dolores<<:www.lipsum.com
<p><i>kurzíva</i></p>

<p><em>taky kurzíva</em></p>

<p><b>tučné</b></p>

<p>superscript<sup>2</sup> vs. subscript<sub>2</sub></p>

<p>Citace: <q cite="http://www.lipsum.com">Lorem Ipsum Dolores</q></p>

kurzíva

taky kurzíva

tučné

nejsilněji zdůrazněné

superscript2 vs. subscript2

Citace: Lorem Ipsum Dolores

V případě krátkého citátu je možné vložit i zdroj, pomocí dvojtečkové notace.

Speciálním případem fráze je tzv. kód. Od ostatních se liší tím, že jeho obsah nebude nadále formátován a zobrazí se doslovně:

Odstraňte `<br />` a entitu `&ndash`
<p>Odstraňte <code>&lt;br /&gt;</code> a entitu <code>&amp;ndash</code></p>

Poznámka: jestli se použije element <code> nebo jiný (případně žádný) je možné rozhodnout pouhou konfigurací Texy

S modifikátorem

Je možné jej vložit do každé fráze, vždy těsně před uzavírací znak:

**silný a zelený .{color:green}** jako Hulk
<p><b style="color:green">silný a zelený</b> jako Hulk</p>

silný a zelený jako Hulk

Přímé HTML

Texy není náhrada za HTML. Nehledá ani alternativní způsoby zápisu HTML. Cílem je zjednodušit psaní obsahu. Pokud se Vám zdá jednodušší zapsat některou strukturu přímo v HTML, můžete tak učinit. HTML značky jsou plně podporované.

This <strong class=info>is strong</strong> text.
<br> This is not.
<p>This <strong class="info">is strong</strong> text.<br>
This is not.</p>

Poznámka: všimněte si, že Texy upraví zápis atributů a značek tak, aby byly validní (i pro XHTML výstup). Stejně tak dbá na well-formed zápis!

Poznámka: Rozhodování, která značky a které atributy můžou být v textu použity, je plně uživatelsky ovladatelné. Demonstruje to jeden příklad z distribuce.

Seznamy

Odrážkové seznamy zapisujeme pomocí * + nebo -. Musí být zapsán hned na začátku řádku a za ním musí následovat mezera.

-   Red
-   Green
-   Blue
<ul>
	<li>Red</li>

	<li>Green</li>

	<li>Blue</li>
</ul>
  • Red
  • Green
  • Blue

Číslované seznamy

Texy zná těchto pět způsobů zápisu (první dva jsou ekvivalentní):

1)  Učit se
2)  Učit se
3)  Učit se

a)  Dlouhý
b)  Široký
c)  Krátkozraký

A)  DOS
B)  Windows
C)  Linux

I)  Yesterday
II)  Today
III)  Tomorrow
<ol>
	<li>Učit se</li>

	<li>Učit se</li>

	<li>Učit se</li>
</ol>

<ol style="list-style-type:lower-alpha">
	<li>Dlouhý</li>

	<li>Široký</li>

	<li>Krátkozraký</li>
</ol>

<ol style="list-style-type:upper-alpha">
	<li>DOS</li>

	<li>Windows</li>

	<li>Linux</li>

	<li>Yesterday</li>
</ol>

<ol style="list-style-type:upper-roman">
	<li>Today</li>

	<li>Tomorrow</li>
</ol>
  1. Učit se
  2. Učit se
  3. Učit se
  1. Dlouhý
  2. Široký
  3. Krátkozraký
  1. DOS
  2. Windows
  3. Linux
  4. Yesterday
  1. Today
  2. Tomorrow

Vnořené seznamy

a)  Bird
  I)  Bird
    -   Red
    -   Green
    -   Blue
  II)  McHale
  III)  Parish
b)  McHale
c)  Parish
      1)  Bird
      2)  McHale
      3)  Parish
<ol style="list-style-type:lower-alpha">
	<li>Bird
		<ol style="list-style-type:upper-roman">
			<li>Bird
				<ul>
					<li>Red</li>

					<li>Green</li>

					<li>Blue</li>
				</ul>
			</li>

			<li>McHale</li>

			<li>Parish</li>
		</ol>
	</li>

	<li>McHale</li>

	<li>Parish
		<ol>
			<li>Bird</li>

			<li>McHale</li>

			<li>Parish</li>
		</ol>
	</li>
</ol>

Definiční seznam

Koncert Divokej Bill:
    - termín: 9. 12. 2004
    - místo: Hala Vodová, Brno
    - Cena: 260 Kč
<dl>
	<dt>Koncert Divokej Bill</dt>

	<dd>termín: 9. 12. 2004</dd>

	<dd>místo: Hala Vodová, Brno</dd>

	<dd>Cena: 260 Kč</dd>
</dl>
Koncert Divokej Bill
termín: 9. 12. 2004
místo: Hala Vodová, Brno
Cena: 260 Kč

S modifikátorem

Modifikátor, který ovlivňuje celý seznam, se uvádí na řádku před ním. Ostatní (klasicky) na konci řádku:

.{color:red}
triangl:   .{color:blue}
    - trojúhelník      .{color:green}
    - neladěný bicí hudební nástroj
    - tringulační věž
triangl
trojúhelník
neladěný bicí hudební nástroj
tringulační věž

Modifikátory

Nejsilnější zbraň Texy Lze použít tyto druhy modifikátorů:

  • (titulek) popisné, přidají objektu titulek (nebo alternativní text obrázkům)
  • [class1 class2 #id] určující třídu a / nebo ID prvku
  • {class:blue} přímý zápis stylu
  • {target:_blank} nebo přímý zápis HTML atributů
  • horizontální zarovnání:
    • doleva <
    • doprava >
    • vycentrovaný <>
    • do bloku =
  • vertikální zarovnání: (jen u tabulek)
    • nahoru ^
    • na střed –
    • dolů _

Modifikátory se zapisují spojitě (bez mezer) a musí jim předcházet tečka. Takže třeba .(popis)[left] nastavuje atribut title na popis a třídu na left.

Modifikátory je vždy zapisují zcela doprava.

Příklad použití modifikátoru na odstavci textu:

Vycentrováno modifikátorem  .<>

Obarveno modifikátorem .{color:blue; lang: cs}
<p style="text-align:center">Vycentrováno modifikátorem</p>

<p lang="cs" style="color:blue">Obarveno modifikátorem</p>

Typografie

Sem patří všechny úpravy a náhrady textu, které upravují jeho vzhled v souladu s typografickými pravidly a podobně:

- "české" 'typografické' uvozovky
- pomlčka vs. spojovník: 10-15 vs. česko-slovenský
- pomlčka: jedna -- dvě
- typografický křížek u rozměrů 10 x 20
- šipky <- a -> a <-> ;
- tři tečky...
- zachování HTML entit &amp;
- náhrady(TM) nebo(R) za příslušné entity(C)
  • „české“ ‚typografické‘ uvozovky
  • pomlčka vs. spojovník: 10–15 vs. česko-slovenský
  • pomlčka: jedna – dvě
  • typografický křížek u rozměrů 10 × 20
  • šipky ← a → a ↔ ;
  • tři tečky…
  • zachování HTML entit &
  • náhrady™ nebo® za příslušné ©entity

práce s mezerami:

- vkládání nezalomitelných mezer za jednopísmenné předložky (v autě u okna)
- nedělitelné mezery u telefonních čísel +420 776 552 046
vkládání nezalomitelných mezer za jednopísmenné předložky (v&nbsp;autě u&nbsp;okna)

nedělitelné mezery u&nbsp;telefonních čísel +420&nbsp;776&nbsp;552&nbsp;046

Poznámka: Nahrazování se obvykle řídí dalšími pravidly, které určují, kdy symbol nahradit a kdy ne. Například šipka -> nemůže být na konci řádku atd. Proto nebuďte překvapeni, když v některých případech Texy náhradu neprovede. Pokud to považujete za chybu, dejte mi vědět.

Zkratky, akronymy

Používá se zápisu s dvojitou kulatou závorkou:

jednoslovné: NATO((North Atlantic Treaty Organisation))

víceslovné: "et al."((a další))
<p>jednoslovné: <abbr title="North Atlantic Treaty Organisation" class="about">NATO</abbr></p>

<p>víceslovné: <abbr title="a další" class="about">et al.</abbr></p>

Poznámka: mezi ABBR a ACRONYM se nerozlišuje.

Klikatelné URI

Automatický převod URI do klikatelné formy (včetně emailů)

další informace na www.texy.info a také ...

další informace na www.texy.info a také …

Rozdělení velmi dlouhých slov

Velmi zajímavá a důležitá funkce Texy. Dlouhá slova mohou narušit vzhled stránky, proto je vhodné prohlížeči naznačit, kde je může zalomit. Texy tyto místa hledá s přihlédnutím k národním zvyklostem, tedy slovo rozděluje podle slabik:

nejneobhospodařovávatelnějšími
nejneobhospoda&shy;řovávatelnější&shy;mi</p

Poznámka: limit délky slova je volitelný

Poznámka: současné prohlížeče na jádru Gecko (Mozilla, Firefox) jsou k naznačenému dělení slepí. Doufám, že vývojáři tento nedostatek brzy odstraní. Nebo zkuste tohle

Tabulky

Příklad jednoduché tabulky, sloupce se oddělují znakem |

| first col | second col | third col
| Adam      | Eva        | Franta

A výsledek je:

first col second col third col
Adam Eva Franta

Hlavičku tabulky můžeme definovat tímto zápisem:

|-----------------------------
| First Name | Last Name | Age
|----------------------------
| Jesus      | Christ    | 33
| Cecilie    | Svobodova | 74
First Name Last Name Age
Jesus Christ 33
Cecilie Svobodova 74

Pokud hlavičku netvoří řádek (řádky), můžeme ji definovat na úrovni buněk. Stačí vložit hvězdičku ihned po znaku |

|* First Name | Jesus    | Cecilie
|* Last Name  | Christ   | Svobodova
|* Age        | 33       | 74
First Name Jesus Cecilie
Last Name Christ Svobodova
Age 33 74

Sloučení sloupců

všimněte si zdvojeného ||

|-----------------------------
| Name                  || Age
|----------------------------
| Jesus      | Christ    | 33
Name Age
Jesus Christ 33

Sloučení řádků

Všimněte si znaku ^ symbolizujícího směr nahoru:

|-----------------------------
| First Name | Last Name | Age
|----------------------------
| Bill                  || 50
|                       ^| 52
| Jim        | Beam      | 70
First Name Last Name Age
Bill 50
52
Jim Beam 70

Modifikátory

Platí tato pravidla:

  • modifikátor ovlivňující celou tabulku se vkládá bezprostředně před tabulku
  • ovlivňující řádek se vkládá na konec řádku
  • ovlivňující sloupec se vkládá na začátek buňky (vlevo v buňce)
  • a nakonec ovlivňující buňku se vkládá na konec buňky (pravo v buňce)

Podívejte se na příklad.

.(people)
| .{color: green} first col | second col      .>| third col | .{font-style:italic}
| Adam                      | Eva .{color: blue}| Franta    |

Zde je:

  • .(people) modifikátor tabulky
  • .{color: green} modifikátor sloupce
  • .{font-style:italic} modifikátor řádku
  • .{color: blue} a také .> modifikátor buňky

Takže výsledná tabulka vypadá takto:

first col second col third col
Adam Eva Franta

Kompatibilita

Syntax Texy není plně kompatibilní s žádným jiným systémem. Některé pravidla jsou stejná, jiná zase odlišná. Texy se o kompatibilitu nesnaží, tím by bylo nuceno kromě výhod ostatních systémů distribuovat i jejich nelogičnosti.

Setkal jsem se s názorem že Texy má podobnou syntaxi jako Textile. Musím varovat – tato podobnost by Vás mohla zmást. Je totiž jen zdánlivá – například oba systémy využívají pro zápis modifikátorů závorky (kulaté, složené a hranaté) a znaky < > pro zarovnání (co jiného totiž použít, že?). Jejich význam je však v každém systému diametrálně odlišný.

Syntax je zvolena tak, aby byla maximálně intuitivní a přirozená. Samozřejmě někomu jinému se může zdát nepochopitelná.