Ajuda: funcions d'analitzador

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Abreviatures
WP: PARSER
WP: Analitzador
WP: Anàlisi
Ajuda: analitzador
Ajuda: Anàlisi
Gnome-help.svg - Taulell d'informació

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

Abreviatures
Ajuda: 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

Abreviatures
Ajuda: canvia

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"
  • Utilitzeu el caràcter d'escapament "\".
    • {{ #time:\H}} → 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

Icona de la lupa mgx2.svg El mateix tema en detall: error de l'any 2038 .

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

  1. ^ Proveu-ho.
  2. ^http://www.php.net/date
  3. ^ 0 - 365 per als anys de traspàs
  4. ^ Contingut

Pàgines relacionades

Altres projectes

Per obtenir informació tècnica completa i actualitzada:

Enllaços externs