Questo tipo di markup {(...)}
consente l’effettuazione al proprio interno di una quantità di operazioni di formattazione su stringhe. Le operazioni definite in questa ricetta includono substr, ftime, strlen, rand, mod, toupper / tolower, ucfirst, ucwords, pagename e asspaced.
Le espressioni di markup possono essere annidate, usando il markup {(...(...)...)}
.
L’espressione "substr" estrae una porzione della stringa data. I suoi argomenti sono
{(substr "PmWiki" 2 3)} {(substr "PmWiki" 2)} {(substr "PmWiki" 0 1)} {(substr "PmWiki" 0 -3)} {(substr "PmWiki" -3)} | Wik Wiki P PmW iki |
Per ottenere gli n' ultimi caratteri di una stringa si usi la notazione {(substr "string" -n)}
Per eliminare gli ultimi n' caratteri di una stringa si usi la notazione (substr "string" 0 -n)}
Le espressioni "ftime" si usano per formattare date e orari. La forma generica è
{(ftime "fmt" "when")}
{(ftime fmt="fmt" when="when")}
dove fmt la stringa di formattazione e when è la data da formattare. Gli argomenti possono essere passati in un ordine qualsiasi e opzionalmente si possono usare le etichette "fmt=" e "when=".
Esempi:
{(ftime)} {(ftime fmt="%F %H:%M")} {(ftime %Y)} {(ftime fmt=%T)} {(ftime when=tomorrow)} {(ftime fmt="%Y-%m-%d" yesterday)} {(ftime "+1 week" %F)} {(ftime fmt=%D "+1 month")} {(ftime fmt="%a%e %b" when="next week")} | December 22, 2024, at 11:18 PM 2024-12-22 23:18 2024 23:18:54 December 23, 2024, at 12:00 AM 2024-12-21 2024-12-29 01/22/25 Mon23 Dec |
Il parametro fmt consiste di quanto viene passato mediante "fmt=", del primo parametro che contiene un carattere '%', o anche del default del sito. I codici di formattazione sono descritti in http://php.net/strftime. Oltre a questi, '%F' produce date nel formato ISO-8601, e '%s' produce timestamp Unix. Alcune delle più comuni stringhe di formattazione sono:
%F # date ISO-8601 "2024-12-22" %s # timestamp Unix "1734909534" %H:%M:%S # orario hh:mm:ss "23:18:54" %m/%d/%Y # data mm/dd/yyyy "12/22/2024" "%A, %B %d, %Y" # con parole "Sunday, December 22, 2024"
Il parametro when è in grado di comprendere svariati tipi di formati. Consiste di quanto viene passato mediante "when=", o della parte rimanente del parametro dopo che si è determinao il parametro format. Alcuni esempi:
2007-04-11 # date ISO-8601 20070411 # date senza caratteri intermedi 2007-03 # mesi @1176304315 # timestamp Unix (in secondi dal 1-Gen-1970 00:00 UTC) now # data e ora correnti today # oggi alle 00:00:00 yesterday # ieri alle @ 00:00:00 "next Monday" # date relative "last Thursday" # date relative "-3 days" # tre giorni fa "+2 weeks" # due settimane ad ora
Nota: Per convertire i timestamp Unix li si deve dotare del prefisso @, in questo modo, "{(ftime "%A, %B %d, %Y" @1231116927)}"
.
Il parametro when usa la funzione PHP strtotime per convertire le stringhe data conformemente ai formati di input delle date GNU; al momento della scrittura di queste istruzioni vengono supportati solo i formati di data in lingua inglese.
Si può usare la variabile $FTimeFmt
per modificare il formato di default usato dalla funzione "ftime": quello predefinito in $TimeFmt
è $TimeFmt
.
L’espressione "strlen" restituisce la lunghezza di una stringa: le va passata come argomento la stringa da misurare.
{(strlen "{$:Summary}")} | 39 |
L’espressione "rand" restituisce un intero casuale. Il primo argomento rappresenta il limite inferiore, ed il secondo il limite superiore che il numero restituito può assumere. Se richiamata senza argomenti rand() restituisce un intero pseudo-random compreso tra 0 e RAND_MAX. Se si desidera un numero casuale compreso ta 5 e 15 si usi l’espressione (rand 5 15).
{(rand)} {(rand 1 99)} | 1657243274 78 |
L’espressione avanzata "mod" restituisce il modulo (resto) della divisione di due numeri. Può essere usato nei Modelli PageList? avanzati insieme a {$$PageCount}
per inserire del markup in ogni elemento (modulo), per esempio per creare delle righe di colore alternato in una tabella, o per inserirvi interruzioni di riga. (Vedere anche PageLists?, Stili wiki e ConditionalMarkup?)
>>comment<< %define=bg1 item bgcolor=#f88% %define=bg2 item bgcolor=#ff8% %define=bg0 item bgcolor=#8f8% [[#altrows]] * %bg{(mod {$$PageCount} 3)}% {=$Name} ({$$PageCount}) [[#altrowsend]] >><< (:pagelist fmt=#altrows group=PmWiki count=10:) |
|
Le espressioni "toupper" e "tolower" convertono una stringa rispettivamente in maiuscolo e minuscolo: va passata loro come argomento la stringa da convertire.
{(toupper "{$:Summary}")} {(tolower "{$:Summary}")} | OPERAZIONI DI FORMATTAZIONE SU STRINGHE operazioni di formattazione su stringhe |
L’espressione "ucfirst" converte in maiuscolo il primo carattere di una stringa specificata, and "ucwords", the first character of each word: le va passata come argomento la stringa da processare.
{(ucfirst "{$:Summary}")} {(ucwords "{$:Summary}")} | Operazioni di formattazione su stringhe Operazioni Di Formattazione Su Stringhe |
L’espressione "pagename" costruisce il nome della pagina a partire dalla stringa specificata come argomento.
{(pagename "{$:Summary}")} | PmWikiIt.OperazioniDiFormattazioneSuStringhe |
L’espressione "asspaced" formatta le wikiword: le va passata come argomento la stringa da processare.
{(asspaced "{$FullName}")} | Pm Wiki It.Markup Expressions |
Le espressioni di markup possono essere annidate. Le parentesi graffe vanno omesse nelle espressioni interne::
{(tolower (substr "Hello World" 2))} | llo world |
Traduzione di PmWiki.MarkupExpressions -
Pagina originale: PmWikiIt.MarkupExpressions -
Backlinks
Ultime modifiche:
PmWikiIt.MarkupExpressions: June 29, 2015, at 08:00 PM
PmWiki.MarkupExpressions: December 15, 2018, at 07:44 AM