authors (advanced)
Syntaxe {(...)}
"značkového výrazu" umožňuje používat řadu funkcí pro práci s řetězcem a jeho formátování v rámci běžné editace obsahu stránky. Definované operace jsou substr, ftime, strlen, rand, toupper, tolower, ucfirst, ucwords, pagename, a asspaced.
Značkové výrazy (Markup Expressions byly implementovány od PmWiki 2.2.0-beta43).
substr
Markup expression "substr" extrahuje část řetězce. První parametr je zpracovávaný řetězec, druhý parametr je index prvního vybíraného písmene a třetí parametr určuje počet písmen od prvního vybíraného písmene (písmena jsou v řetězci indexována od nuly).
{(substr "PmWiki" 2 3)}
{(substr "PmWiki" 2)}
{(substr "PmWiki" 0 1)}
| Wik
Wiki
P
|
ftime
"Ftime" expressions se používají pro formátování data a času. Základní podoba je:
{(ftime "fmt" "when")}
{(ftime fmt="fmt" when="when")}
kde fmt je formátovací řetězec, v něm můžeme použít znaky se speciálním významem, when je čas, který bude formátován. Parametry je možno volitelně zapisovat "fmt=" and "when=".
Příklady:
{(ftime fmt="%F %H:%M")}
{(ftime %Y)}
{(ftime fmt=%F)}
{(ftime yesterday)}
{(ftime when=tomorrow)}
{(ftime %F yesterday)}
{(ftime week %F)}
{(ftime fmt=%F month)}
| 2025-09-17 16:12
2025
2025-09-17
September 16, 2025, at 12:00 AM
September 18, 2025, at 12:00 AM
2025-09-16
2025-09-17
2025-09-17
|
Parametr fmt se zapisuje buď "fmt=", nebo zápisem kterému předchází '%', či jinak dle nastavení.
Význam znaků pro formátování časových údajů vychází z jazyka PHP a je popsán na http://www.php.net/strftime. Příklady základních znaků:
%F # ISO-8601 datum "2025-09-17"
%H:%M:%S # čas jako hh:mm:ss "16:12:13"
%m/%d/%Y # datum jako mm/dd/yyyy "09/17/2025"
"%A, %B %d, %Y" # slovně "Wednesday, September 17, 2025"
Parametr when přijímá řadu různých formátů data. Zapisuje se buď "when=", nebo jako parametr následující parametru formátování času. Pár příkladů
2007-04-11 # ISO-8601 datum
20070411 # data bez dvojteček, pomlček či teček
2007-03 # měsíce
@1176304315 # Unix timestamp (vteřiny uplynulé od 1-Jan-1970 00:00 UTC)
now # aktuální čas
today # today @ 00:00:00
yesterday # yesterday @ 00:00:00
"next Monday" # relative dates
"last Thursday" # relative dates
"-3 days" # před třemi dny
"+2 weeks" # za dva týdny
U parametru when se užívá pro převod data funkce jazyka PHP strtotime do GNU formátu; která přijímá fráze definované pouze v angličtině (tj. není možný zápis "when=dnes..").
Proměnná $FTimeFmt
umožňuje změnit výchozí formát data této funkce. Výchozí hodnota $FTimeFmt
je $TimeFmt
.
strlen
Expression "strlen" vrací délku řetězce. První parametr je analyzovaný řetězec.
{(strlen "{$:Summary}")}
| 38
|
rand
Expression "rand" vrací náhodné číslo (integer). První parametr je dolní mez , druhý parametr určuje horní mez generátoru náhodných čísel. Při použití bbez parametrů, vrací číslo mezi 0 a RAND MAX.
Příklad: pro náhodné číslo mezi 5 a 15 (včetně) zapiště rand (5, 15).
toupper / tolower
Expression "toupper" a "tolower" konvertuje řatězec na velká či malá písmena. První parametr je výchozí řetězec.
{(toupper "{$:Summary}")}
{(tolower "{$:Summary}")}
| ZNAČKOVÉ VÝRAZY (MARKUP EXPRESSIONS)
značkové výrazy (markup expressions)
|
ucfirst
Expression "ucfirst" konvertuje první písmeno řetězce na velké. Parametrem je výchozí řetězec.
{(ucfirst "{$:Summary}")}
| Značkové výrazy (Markup expressions)
|
ucwords
Expresssion "ucwords" konvertuje první písmena všech slov ve výchozím řetězci, který je také jediným parametrem.
{(ucwords "{$:Summary}")}
| Značkové Výrazy (Markup Expressions)
|
pagename
Expression "pagename" vytvoří název stránky z řetězce jediného parametru. (nejedná se o odkaz, text je neaktivní).
asspaced
The "asspaced" expression rozloží wikislovo na jednotlivé slova. Parametrem je řetězec.
Vnořování funkcí
Markup expression(značkové výrazy, textové funkce..) mohou být vzájemně vnořeny:
{(tolower (substr "Hello World" 2))}
| llo world
|
Poznámky
- Některé z funkcí pro práci s řetězcem mohou pracovat chybně na znacích kodování UTF-8 a na escape(speciálních) znacích.
- Značka ftime nepracuje s některými ISO 8601 daty jako: {(ftime fmt="%m/%d/%Y @ %H:%M:%S" when="20070626T2400")} poté vrací: 06/27/2007/00:00:00. Zadáme-li zobrazit pouze samotný čas:: {(ftime fmt="%H:%M:%S" when="20070626T2400")} poté vrací: 00:00:00 (pmwiki version: pmwiki-2.3.27)
Viz také
<< Proměnné pro stránku | Index dokumentace | Souběžná editace >>