Ajuda: funcions d'analitzador
![]() |
Aquesta pàgina descriu les funcions de l' analitzador que es poden introduir al wikicode per processar cadenes i números. Són especialment útils per crear plantilles . Les funcions d'analitzador també poden utilitzar variables Mediawiki .
Alguns són proporcionats per l' extensió ParserFunctions de MediaWiki i tenen sintaxi:
{{#functionname: argument 1 | argument 2 | argument 3 ...}}
Altres són funcions bàsiques de MediaWiki i generalment tenen sintaxi:
{{nom de la funció: argument}}
Els espais al voltant de {{
, }}
i |
no són rellevants a la sintaxi, de manera que per exemple {{ #nomefunzione: argomento 1 | argomento 2 }}
equival a {{#nomefunzione:argomento 1|argomento 2}}
.
Es poden realitzar funcions més complexes que aquestes mitjançant mòduls .
expr
La funció expr
processa operacions matemàtiques. Els operadors compatibles, per ordre de precedència, són:
Operador | Operació | Exemple |
---|---|---|
- | Negació unària | {{#expr: - 7}} = -7 |
exp | Exponencial | {{#expr: exp 3}} = 20.085536923188 |
ln | Logaritme natural | {{#expr: ln 100}} = 4.6051701859881 |
abs | Valor absolut | {{#expr: abs -2}} = 2 |
trunc | Arrodonint cap avall | {{#expr: trunc 1.5}} = 1 {{#expr: trunc -1.5}} = -1 |
pis | Arrodonint cap avall | {{#expr: planta 1.5}} = 1 {{#expr: planta -1,5}} = -2 |
Hi ha el | Arrodonint cap amunt | {{#expr: ceil 1.5}} = 2 {{#expr: ceil -1.5}} = -1 |
sin , cos , tan | Funcions trigonomètriques (en radians) | {{#expr: sin 1}} = 0,8414709848079 |
asin , acos , atan | Funcions trigonomètriques inverses | {{#expr: asin 0.5}} = 0.5235987755983 |
no | Lògic NO | {{#expr: not 7}} = 0 |
^ | Exponentització | {{#expr: 30 ^ 7}} = 21870000000 |
* | Multiplicació | {{#expr: 30 * 7}} = 210 |
/ o div | Divisió | {{#expr: 30/7}} = 4.2857142857143 |
mod | Mòdul, retorna la resta d’una divisió | {{#expr: 30 mod 7}} = 2 |
+ | Addició | {{#expr: 30 + 7}} = 37 |
- | Resta | {{#expr: 30 - 7}} = 23 |
rodó | Arrodoneu fins al número més proper. El segon operant és el nombre de decimals; si és negatiu, arrodoneix a 10, 100 ... | {{#expr: 1.2345 ronda 2}} = 1,23 {{#expr: 1.2378 ronda 2}} = 1,24 {{#expr: 5432 round -2}} = 5400 |
= | Igualtat | {{#expr: 30 = 7}} = 0 |
<> o ! = | Desigualtat | {{#expr: 30 <> 7}} = 1 |
< | Menor | {{#expr: 30 <7}} = 0 |
> | Més gran | {{#expr: 30> 7}} = 1 |
<= | Menys o iguals | {{#expr: 30 <= 7}} = 0 |
> = | Major o igual | {{#expr: 30> = 7}} = 1 |
i | Lògic I | {{#expr: 30 i 7}} = 1 |
o bé | OR lògic | {{#expr: 30 o 7}} = 1 |
() | Suports | {{#expr: (30 + 7) * 7}} = 259 |
Els números s’han d’introduir en notació informàtica, sense separadors de milers i amb el punt com a separador decimal, per exemple. 12345.67
; es retornen de la mateixa manera a la sortida. No es requereixen espais entre operadors.
Els operadors booleans tracten 0 com a fals i qualsevol nombre diferent de zero com a cert. A la sortida, el vertader es torna com a 1.
Les constants "e" (número d'Euler) i "pi" (pi) estan disponibles.
Exemple:
{{#expr: (100 - 32) / 9 * 5 ronda 0}}
retorna:
38
que és 100 ° F en ° C, arrodonit al nombre enter més proper.
Les pàgines que contenen errors en funcions expr (expressions mal formades, divisió per zero ...) es col·loquen a Categoria: Pàgines amb errors en expressions .
si
La funció if
és una construcció if-then-else. Sintaxi:
{{#if: <condició> | <després envia un missatge de text> | <text en cas contrari> }}
Si la condició consisteix en una cadena buida o un espai, es considera falsa i, en cas contrari, es retorna el text . Si no, es retorna el text . en cas contrari, es pot ometre el text : en aquest cas, el resultat serà buit si l'expressió és falsa.
Exemple:
{{Plantilla | paràmetre = alguna cosa}} {{Plantilla}} {{Plantilla | paràmetre =}} | | | | | | | | | {{#if: {{{paràmetre |}}} | El paràmetre està indicat. | El paràmetre no està indicat o està buit. }}
Tingueu en compte que la funció if
no admet el signe "=" ni les expressions matemàtiques. {{#if: 1 = 2|sì|no}}
retornarà "sí", perquè la cadena "1 = 2" no està buida. La funció if
està pensada com una funció if defined
. Per comparar cadenes, utilitzeu ifeq
. Per comparar números, utilitzeu ifexpr
.
Per verificar que una o altra condició és certa, podeu escriure:
{{#if: {{{A |}}} {{{B |}}} | A o B | ni A ni B}}
Per verificar que ambdues condicions són certes, podeu escriure:
{{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A i B | Un buit o B buit}}
Per veure quines condicions són certes, podeu escriure:
{{#if: {{{A |}}} | {{#if: {{{B |}}} | A i B | només A}} | {{#if: {{{B |}}} | només B | ni A ni B}} }}
ifeq
La funció ifeq
compara dues cadenes i retorna una altra cadena que depèn del resultat de la comparació. Sintaxi:
{{#ifeq: <text 1> | <text 2> | <si són iguals, retorna això> | <en cas contrari això> }}
iferror
La funció iferror
pren una cadena com a entrada i retorna una altra cadena de les dues possibles; la sortida depèn de la cadena d'entrada, si aquest conté un objecte HTML amb class="error"
(que pot ser generat per altres funcions de l'analitzador com #expr
i #time
o per plantilla) el primer es torna, en cas contrari el segon.
{{#iferror <string> | <si la cadena retorna un error> | <si la cadena és correcta> }}
Es poden posar una o les dues cadenes de sortida. Si s'omet la cadena que cal escriure en cas que la cadena d'entrada sigui exacta, es retornarà el valor de la cadena d'entrada. Si s'omet la cadena que cal escriure en cas que la cadena d'entrada sigui incorrecta, es retornarà una cadena buida a la sortida:
{{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}
→ correcte{{#iferror: {{#expr: 1 + X }} | errore | corretta }}
→ error{{#iferror: {{#expr: 1 + 2 }} | errore }}
→ 3{{#iferror: {{#expr: 1 + X }} | errore }}
→ error{{#iferror: {{#expr: 1 + 2 }} }}
→ 3{{#iferror: {{#expr: 1 + X }} }}
→{{#iferror: <strong class="error">a</strong> | errore | corretta }}
→ error
ifexpr
La funció ifexpr
resol una expressió matemàtica i retorna un text en funció del resultat.
{{#ifexpr: <expressió> | <després envia un missatge de text> | <text en cas contrari> }}
Si l'expressió coincideix, llavors es torna el text, en cas contrari es torna el text. La sintaxi de les expressions és la mateixa que a l’ expr
.
si existeix
ifexist
retorna un dels dos resultats, segons si existeix o no una pàgina en it.wiki.
El primer paràmetre és el títol a cercar, el segon és el resultat a retornar si existeix la pàgina i el tercer és el resultat a retornar si la pàgina no existeix. Si el primer paràmetre no és un títol vàlid, la funció retorna el resultat negatiu.
-
{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
- retorna "L'entrada de biologia existeix!" perquè la biologia existeix.
-
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
- retorna "Sí".
-
{{#ifexist:m:Help:Calculation|Sì|No}}
- retorna "No", malgrat l'existència de m: Help: Calculation , a causa del prefix interwiki.
NB : ifexist és una funció cara
Existència de fitxers
ifexist
també us permet provar la disponibilitat d'un fitxer, en aquest cas independentment de si és local o de Commons , indicant el fitxer amb l'espai de noms virtual Media
Per contra, amb File
, Immagine
o Image
comprovem l'existència local de la pàgina de descripció del fitxer.
Com això:
-
{{#ifexist: Media: Example.png | il file esiste su Commons o in locale | il file non esiste né su Commons né in locale }}
- retorna "el fitxer existeix a commons o localment"
En lloc d'això:
-
{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
- retorna "no hi ha pàgina local"
interruptor
La funció de switch
compara una cadena amb altres, retornant una cadena determinada si troba una coincidència. Sintaxi:
{{#interruptor: <valor de comparació> | <valor 1 > = <resultat 1 > | <valor 2 > = <resultat 2 > | ... | <valor n > = <resultat n > | # default = <resultat predeterminat> }}
switch
cercarà tots els valors donats fins que trobi una coincidència. Quan es troba una coincidència, es torna el resultat assignat a aquest valor (el text després del signe igual). Si no es troba cap coincidència, però l'últim element no té un signe igual, es retornarà com a valor per defecte.
També és possible assignar un resultat a diversos valors, evitant duplicar text. Per exemple:
{{#interruptor: <valor de comparació> | <valor 1 > | <valor 2 > | <valor 3 > = <resultat 3 > | ... | <valor n > = <resultat n > | # default = <resultat predeterminat> }}
Tingueu en compte que el valor 1 i el valor 2 no contenen el símbol igual. Si es trobés una coincidència, es retornaria el resultat assignat a un valor de 3 (resultat 3 ).
Format
Cas delicat
resum ràpid:
- Primera majúscula:
{{ucfirst:}}
:Funzioni parser
- primer minúscula:
{{lcfirst:}}
-funzioni parser
- TOTS MAJÚS:
{{uc:}}
:FUNZIONI PARSER
- totes en minúscules:
{{lc:}}
-funzioni parser
lc
Minúscules acrònim (en minúscules): transforma el text en caràcters en minúscula.
Amb {{lc:AbCdEf}}
obtindreu abcdef.
Amb {{lc:Ä Β Ç}}
obtenim ä β ç, donada ä β ç.
uc
Acrònim en majúscules (majúscules): transforma un text en majúscules.
Amb {{uc:AbCdEf}}
obteniu ABCDEF.
Amb {{uc:ä β ß}}
obtenim Ä Β ß.
lcfirst
Acrònim de minúscula primer (primer minúscula): transforma el primer caràcter d’un text en minúscula: amb {{lcfirst:Ab Cd}}
s’obté ab Cd.
ucfirst
Acrònim de majúscules primer (primera lletra majúscula): transforma el primer caràcter d’un text en majúscules: amb {{ucfirst:aB cD}}
s’obté AB cD.
formatnum
Afegiu separadors de punts decimals i de milers a un nombre pur.
Mil separadors s’insereixen només a la part sencera (abans de la coma), no a la part fraccionària (després de la coma).
El número indicat a l' entrada s'ha d'introduir en notació informàtica, sense separadors de milers i amb el punt com a separador decimal, per exemple. 12345.67
, com els indicats a l'entrada i retornats a la sortida per #expr .
Amb {{formatnum:1234.56}}
obtenim 1 234,56
Amb {{formatnum:1234567.8901234}}
obtenim 1 234 567.8901234
La presència de notes junt amb el número no dóna problemes, són ignorades i retornades tal com són.
Els caràcters no numèrics, tret dels separadors, també s'ignoren i es conserven. Tanmateix, aquesta pràctica està obsoleta i fa que la pàgina es col·loqui a la categoria: pàgines amb arguments de format no numèric .
Amb {{formatnum:''I numeri sono 1234 e 5678<ref>Prova.</ref>''}}
obteniu Els números són 1 234 i 5 678 [1]
Això es pot fer al revés mitjançant l'addició d'R com el segon paràmetre: amb {{formatnum:1 234 567,89|R}}
s'obté 1234 567.89 (espais no són espais normals, però el caràcter d'espai -breaking ).
padleft i padright
Afegeix caràcters de farciment a l'esquerra, cosa que fa que la cadena tingui una longitud fixa. Sintaxi:
{{padleft: string | longitud | omplint}}
Amb {{padleft:ciao|10|+-}}
obteniu +-+-+-ciao
padright
té el mateix efecte, però omple el costat dret. Exemple: {{padright:ciao|10|+-}}
genera: ciao+-+-+-
padleft
o padright
es poden utilitzar per obtenir els primers N caràcters d'una cadena de longitud ≥ N: amb {{padleft:|3|Tizio}}
s'obté Tiz
plural
Mostra una cadena diferent segons si l'argument és "1" o un nombre superior.
{{plural: N | singular | plural}}
Amb {{plural:3|casa|case}}
obtenim case
El valor predeterminat amb un paràmetre buit o no reconegut és "plural". "1" seguit d'altres paraules i "-1" es reconeixen com a singulars.
temps
La funció de time
és una construcció per formatar el temps. Sintaxi:
{{#time: format }}
o bé
{{#time: format | temps }}
Si no s'especifica un valor per a l' hora, s'utilitzarà la data i l'hora de la conversió de la pàgina a HTML (en temps universal coordinat ). Tingueu en compte que, a causa del mecanisme de memòria cau, aquest valor pot diferir considerablement del moment en què es mostra la pàgina. Per actualitzar el valor, cal desar la pàgina (sense haver-la modificat, és a dir, fent un "edit nul"), o mostrar-la sol·licitant la neteja de la memòria cau ( &action=purge
afegida a la url) o seleccioneu la opció que desactiva la memòria cau de les pàgines a les vostres preferències.
La funció #timel
és anàloga a #time
, però utilitza la zona horària local de it.wiki ( UTC + 1 amb possible horari d'estiu ) en lloc del temps universal coordinat.
Paràmetre de format
El paràmetre format és una cadena que utilitza una sintaxi similar a la que s’utilitza a les dates en PHP [2] .
format ràpid
-
-{{#timel:j FY}}
17 agosto 2021
-
-{{#timel:Ymd}}
2021-08-17
-
-{{#timel:lj FYG:s}}
martedì 17 agosto 2021 2:19
-
-{{#timel:D j MY h:sa}}
mar 17 ago 2021 02:19 am
-
-{{#timel:Ymd H:s}}
2021-08-17 02:19
Paràmetre | Descripció | sortida equivalent amb | Variables equivalents | ||
---|---|---|---|---|---|
# temps | # timel | Hora UTC | Hora local | ||
Curs | |||||
Y | en 4 dígits | 2021 | 2021 | {{AQUEST ANY}} | {{LOCALYEAR}} |
y | en 2 dígits | 21 | 21 | - | - |
L | 1 si salt, 0 en cas contrari | 0 | 0 | - | - |
Mes | |||||
F. | Nom complet | Agost | Agost | {{CURRENTMONTHNAME}} | {{LOCALMONTHNAME}} |
M. | Nom curt | agulla | agulla | {{CURRENTMONTHABBREV}} | {{LOCALMONTHABBREV}} |
m | Número del mes (01-12) | 08 | 08 | {{AQUEST MES}} | {{LOCALTMONTH}} |
n | Número del mes (1-12) | 8 | 8 | ||
t | Nombre de dies al mes | 31 | 31 | ||
Dia | |||||
d | Dia del mes (01-31). | 17 | 17 | {{CURRENTDAY2}} | {{LOCALDAY2}} |
j | Dia del mes (1 - 31). | 17 | 17 | {{CURRENTDAY}} | {{LOCALDAY}} |
z | Dia de l'any (0 - 364 [3] ) | 228 | 228 | ||
L | Nom complet | Dimarts | Dimarts | {{CURRENTDAYNAME}} | {{LOCALDAYNAME}} |
D. | Nom curt | desfigurar | desfigurar | ||
No. | ISO 8601 dia de la setmana (1 (dilluns) - 7 (diumenge)) | 2 | 2 | {{CURRENTWEEK}} | {{LOCALWEEK}} |
w | Dia de la setmana (0 (diumenge) - 6 (dissabte)) | 2 | 2 | ||
Setmanes | |||||
W | Setmana de l'any (01-52) | 33 | 33 | {{CURRENTWEEK}} | {{LOCALWEEK}} |
Hores | |||||
H: sí | Hora: minuts (00:00 - 23:59) | 00:24 | 02:24 | {{CURRENTTIME}} | {{HORA LOCAL}} |
H. | Format horari 24 hores (00 - 23) | 00 | 02 | {{CURRENTHOUR}} | {{LOCALHOUR}} |
G. | Format de 24 hores (0 - 23) | 0 | 2 | ||
h | Format horari de 12 hores (01-12) | 12 | 02 | ||
g | Format horari de 12 hores (1-12) | 12 | 2 | ||
a | am o pm | sóc | sóc | ||
A | AM o PM | AM | AM | ||
el | El minut (00 - 59) | 24 | 24 | ||
s | El segon (00 - 59) | 19 | 19 |
Els caràcters no reconeguts es deixen sense canvis. Hi ha dues tècniques per evitar processar caràcters inserits en cadenes de descripció:
- incloure el mateix entre cometes dobles (no es tindran en compte les cometes simples)
- Correcte:
{{ #time: "Attualmente è" F}}
→ Actualment és agost - Incorrecte:
{{ #time: Attualmente è F}}
→ AM3131uDilluns08UTC831UTC és agost - Cometes simples:
{{ #time:G:i's"}}
→ 0: 24'19"
- Correcte:
- Utilitzeu el caràcter d'escapament "\".
-
→ H{{ #time:\H}}
-
→"{{ #time:\"}}
-
Paràmetre de temps
El format del paràmetre de temps és idèntic al que utilitza la funció PHP strtotime (). Admet dates absolutes i relatives. Les dates han de ser en anglès, és a dir, "11 de desembre" i no "11 de desembre" i "+10 hores" i no "+10 hores". Aquesta característica es pot utilitzar per a la gestió de "zones horàries" o per a la conversió des de l'hora UTC que s'utilitza per defecte al temps CET o CEST utilitzat a Itàlia. Per obtenir més informació, consulteu el manual de GNU tar .
Exemples
-
{{#time:G:i's"|+1 hours}}
→ 1: 24'19" retorna CET (hora estàndard) -
{{#time:G:i's"|+2 hours}}
→ 2: 24'19" retorna l'hora CEST (hora d'estiu) -
{{#time:j FY|-14 days}}
torna el 3 d'agost de 2021 (fa 14 dies) -
{{#time:H:i|+6 hours}}
retorna les 06:24 (6 hores més UTC ) -
{{#time:H:i|8:15 +6 hours}}
torna a les 14:15 -
{{#time:m/Y|-1 months}}
torna el 07/2021 (fa 1 mes) -
{{#time:d/m|25 dicembre}}
retorna Error: hora no vàlida. (25 de desembre) -
{{#time:d/m|December 25}}
torna el 25/12 (25 de desembre)
"-1" i "darrera" són equivalents, igual que "+1" i "següent".
Rang de validesa
L'interval de dates que aquesta funció gestiona correctament és del 1970-1-1 00:00:01 al 2038-1-19 03:14:07 (1 a 2 31 segons des de principis del 1970).
Rutes
codi d’url
Convertiu text a format compatible amb URL substituint els espais per "+" i altres caràcters de format d'URL amb els seus equivalents: {{urlencode:hello world ?&=#/:}}
Rendiments hello + world +% 3F% 26% 3D% 23 % 2F% 3A.
rel2abs
Converteix un camí d'accés, ja sigui un URL o el títol d'una subpàgina de Viquipèdia, de relatiu a absolut. Sintaxi:
{{# rel2abs: ruta relativa | camí base}}
El primer paràmetre, com passa amb les rutes de carpeta Windows / Unix, pot contenir una combinació de:
-
.
(ruta actual) -
..
(nivell superior) -
/nome
(nom de subpàgina)
El segon paràmetre, si s'omet, és el títol de la pàgina actual.
Amb {{#rel2abs: ../cccc | aaaaa/bbb }}
dóna lloc a aaaaa/cccc
parts del títol
Extreu d'un camí, ja sigui un URL o el títol d'una subpàgina de Viquipèdia, els components de diferents nivells separats per "/". Sintaxi:
{{#titleparts: path | nombre de parts | part inicial}}
El valor per defecte és "totes" per al nombre de parts i 1 per a la part inicial. Els números negatius us permeten comptar des de la part inferior (dreta).
Amb {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }}
obteniu bbb/cc/ddd
Amb {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }}
obteniu Https://wikipedia.org (el // compta com a dos nivells)
Admet un màxim de 25 nivells i 255 caràcters i no funciona amb alguns caràcters. Es recomana utilitzar-lo només amb camins i no per a altres "trucs".
etiqueta
La funció d' tag
genera una etiqueta XML específica de wikicode, com ara <ref> o <gallery>, inclosa l'etiqueta de tancament. Sintaxi:
{{#tag: <nom de l'etiqueta> | <contingut> | <attribut1> = <valor1> | <attribute2> = <val22 ...}}
Exemple:
{{#tag: ref | Contingut | nom = Nom}}
És equivalent a <ref name="Nome">Contenuto</ref>
i retorna: [4]
La funció és particularment útil quan una plantilla necessita generar una etiqueta que també contingui un wikicode complex, perquè garanteix que l'etiqueta es processi després del seu contingut (en cas contrari, el contingut pot no funcionar). També garanteix que les etiquetes presents al codi no executat (com ara la part negada d'un #if) no es processin falsament.
Altres
- invocar
- vegeu Ajuda: formularis
- propietat
- vegeu Ajuda: Wikidata
- gènere
- Normalment s’utilitza a les plantilles d’alerta d’usuari. Si es dóna un nom d’usuari, torna una cadena diferent en funció del gènere de l’usuari, si s’especifica a les seves preferències. Sintaxi
{{sexe: nom | home | femení | desconegut}}
Si no especifiqueu cap text per a "desconegut", el valor per defecte és masculí. Si el nom és buit, utilitzeu l'usuari actual.
Funcions oneroses
Algunes funcions i variables són costoses , és a dir, el seu càlcul requereix un "esforç" relativament elevat per al sistema. Normalment són funcions i variables que demanen informació sobre una altra pàgina, com ara ifexist. També hi ha un límit al nombre d’aquestes funcions que es poden trucar des d’una pàgina; si la passa, les trucades deixen de funcionar i la pàgina es col·loca a Categoria: pàgines amb massa trucades a funcions d'analitzador .
Per tant, no us excedeixis en l’ús d’aquestes funcions, especialment en plantilles que s’inclouen moltes vegades a la mateixa pàgina. En general, les funcions corresponents disponibles a Lua són igual de costoses, de manera que els mòduls no resolen el problema.
Nota
- ^ Proveu-ho.
- ^http://www.php.net/date
- ^ 0 - 365 per als anys de traspàs
- ^ Contingut
Pàgines relacionades
Altres projectes
Per obtenir informació tècnica completa i actualitzada:
-
Wikisource conté una pàgina sobre funcions d'analitzador
-
La Wikiquote conté cometes sobre funcions d'analitzador
-
Viquillibres conté textos o manuals sobre funcions d'analitzador
-
La Wikiversitat conté recursos sobre funcions d'analitzador
-
Mediawiki conté informació sobre les funcions de l'analitzador