Axuda: funcións de analizador
![]() |
Esta páxina describe as funcións do analizador que se poden introducir no wikicode para procesar cadeas e números. Son especialmente útiles para crear modelos . As funcións de analizador tamén poden usar variables Mediawiki .
Algúns son proporcionados pola extensión MediaWiki ParserFunctions e teñen sintaxe:
{{# nomefunción: argumento 1 | argumento 2 | argumento 3 ...}}
Outras son funcións básicas de MediaWiki e xeralmente teñen sintaxe:
{{nome da función: argumento}}
Os espazos arredor de {{
, }}
e |
non son relevantes na sintaxe, polo que por exemplo {{ #nomefunzione: argomento 1 | argomento 2 }}
equivale a {{#nomefunzione:argomento 1|argomento 2}}
.
Funcións máis complexas que estas pódense realizar a través de módulos .
expr
A función expr
procesa operacións matemáticas. Os operadores soportados, por orde de precedencia, son:
Operador | Operación | Exemplo |
---|---|---|
- | Negación unaria | {{#expr: - 7}} = -7 |
exp | Exponencial | {{#expr: exp 3}} = 20.085536923188 |
ln | Logaritmo natural | {{#expr: ln 100}} = 4.6051701859881 |
abs | Valor absoluto | {{#expr: abs -2}} = 2 |
trunc | Redondeando cara abaixo | {{#expr: trunc 1.5}} = 1 {{#expr: trunc -1.5}} = -1 |
chan | Redondeando cara abaixo | {{#expr: andar 1.5}} = 1 {{#expr: andar -1.5}} = -2 |
Alí está o | Redondeo cara arriba | {{#expr: ceil 1.5}} = 2 {{#expr: ceil -1.5}} = -1 |
sin , cos , tan | Funcións trigonométricas (en radiáns) | {{#expr: sin 1}} = 0,8414709848079 |
asin , acos , atan | Funcións trigonométricas inversas | {{#expr: asin 0.5}} = 0.5235987755983 |
non | Lóxico NON | {{#expr: not 7}} = 0 |
^ | Exponenciación | {{#expr: 30 ^ 7}} = 21870000000 |
* | Multiplicación | {{#expr: 30 * 7}} = 210 |
/ ou div | División | {{#expr: 30/7}} = 4.2857142857143 |
mod | Módulo, devolve o resto dunha división | {{#expr: 30 mod 7}} = 2 |
+ | Adición | {{#expr: 30 + 7}} = 37 |
- | Resta | {{#expr: 30 - 7}} = 23 |
redondo | Redondea ata o número máis próximo. O segundo operando é o número de decimais; se é negativo, redondea a 10, 100 ... | {{#expr: 1.2345 rolda 2}} = 1.23 {{#expr: 1.2378 rolda 2}} = 1.24 {{#expr: 5432 round -2}} = 5400 |
= | Igualdade | {{#expr: 30 = 7}} = 0 |
<> ou ! = | Desigualdade | {{#expr: 30 <> 7}} = 1 |
< | Menor | {{#expr: 30 <7}} = 0 |
> | Maior | {{#expr: 30> 7}} = 1 |
<= | Menos ou iguais | {{#expr: 30 <= 7}} = 0 |
> = | Maior ou igual | {{#expr: 30> = 7}} = 1 |
e | E lóxico | {{#expr: 30 e 7}} = 1 |
ou | OR lóxico | {{#expr: 30 ou 7}} = 1 |
() | Soportes | {{#expr: (30 + 7) * 7}} = 259 |
Os números deben introducirse en notación informática, sen separadores de miles e co punto como separador decimal, por exemplo. 12345.67
; devólvense do mesmo xeito á saída. Non se requiren espazos entre operadores.
Os operadores booleanos tratan 0 como falso e calquera número diferente de cero como verdadeiro. Na saída devólvese o verdadeiro como 1.
As constantes "e" (número de Euler) e "pi" (pi) están dispoñibles.
Exemplo:
{{#expr: (100 - 32) / 9 * 5 rolda 0}}
devolve:
38
que é 100 ° F en ° C, redondeado ao número enteiro máis próximo.
As páxinas que conteñen erros nas funcións expr (expresións mal formadas, división por cero ...) colócanse en Categoría: Páxinas con erros nas expresións .
se
A función if
é unha construción if-then-else. Sintaxe:
{{#if: <condición> | <despois envía un texto> | <doutro xeito de texto> }}
Se a condición consiste nunha cadea baleira ou nun espazo, entón considérase falsa e, en caso contrario, devólvese o texto . Se non, devólvese o texto . se non, pódese omitir texto : neste caso o resultado quedará baleiro se a expresión é falsa.
Exemplo:
{{Modelo | parámetro = algo}} {{Modelo}} {{Modelo | parámetro =}} | | | | | | | | | {{#if: {{{parámetro |}}} | O parámetro está indicado. | O parámetro non está indicado ou está baleiro. }}
Teña en conta que a función if
non admite o signo "=" nin as expresións matemáticas. {{#if: 1 = 2|sì|no}}
devolverá "si", porque a cadea "1 = 2" non está baleira. A función if
preténdese como unha función if defined
. Para comparar cadeas, usa ifeq
. Para comparar números, use ifexpr
.
Para verificar que unha ou outras condicións son certas, pode escribir:
{{#if: {{{A |}}} {{{B |}}} | A ou B | nin A nin B}}
Para verificar que ambas condicións son certas, pode escribir:
{{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A e B | Un baleiro ou B baleiro}}
Para ver que condicións son certas podes escribir:
{{#if: {{{A |}}} | {{#if: {{{B |}}} | A e B | só A}} | {{#if: {{{B |}}} | só B | nin A nin B}} }}
ifeq
A función ifeq
compara dúas cadeas e devolve outra cadea que depende do resultado da comparación. Sintaxe:
{{#ifeq: <texto 1> | <texto 2> | <se son iguais, devolve isto> | <senón isto> }}
iferror
A función iferror
toma unha cadea como entrada e devolve outra cadea das dúas posibles; a saída depende da cadea de entrada, se contén un obxecto HTML con class="error"
(que pode ser xerado por outras funcións de analizador como #expr
e #time
ou por modelo) devólvese o primeiro, se non o segundo.
{{#iferror <string> | <se a cadea devolve un erro> | <se a cadea é correcta> }}
Pódense poñer unha ou ambas as cadeas de saída. Se se omite a cadea a escribir no caso de que a cadea de entrada sexa exacta, devólvese o valor da cadea de entrada. Se se omite a cadea a escribir no caso de que a cadea de entrada sexa incorrecta, devólvese unha cadea baleira na saída:
{{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}
→ correcto{{#iferror: {{#expr: 1 + X }} | errore | corretta }}
→ erro{{#iferror: {{#expr: 1 + 2 }} | errore }}
→ 3{{#iferror: {{#expr: 1 + X }} | errore }}
→ erro{{#iferror: {{#expr: 1 + 2 }} }}
→ 3{{#iferror: {{#expr: 1 + X }} }}
→{{#iferror: <strong class="error">a</strong> | errore | corretta }}
→ erro
ifexpr
A función ifexpr
resolve unha expresión matemática e devolve un texto en función do resultado.
{{#ifexpr: <expresión> | <despois envía un texto> | <doutro xeito de texto> }}
A expresión corresponde, entón o texto é devolto, se non, o texto é de retorno. A sintaxe das expresións é a mesma que en expr
.
se existe
ifexist
devolve un dos dous resultados, en función de se existe ou non unha páxina dada nel.wiki.
O primeiro parámetro é o título que se busca, o segundo é o resultado que se devolve se a páxina existe e o terceiro é o resultado que se devolve se a páxina non existe. Se o primeiro parámetro non é un título válido, a función devolve o resultado negativo.
-
{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
- devolve "A entrada de bioloxía existe!" porque a bioloxía existe.
-
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
- devolve "Si".
-
{{#ifexist:m:Help:Calculation|Sì|No}}
- devolve "Non", a pesar da existencia dem: Axuda: cálculo , debido ao prefixo interwiki.
NB : ifexist é unha función cara
Existencia de ficheiros
ifexist
tamén permite probar a dispoñibilidade dun ficheiro, neste caso independentemente de que sexa local ou en Commons , indicando o ficheiro co espazo de nome virtual Media
Pola contra, con File
, Immagine
ou Image
comprobamos a existencia local da páxina de descrición do ficheiro.
Como isto:
-
{{#ifexist: Media: Example.png | il file esiste su Commons o in locale | il file non esiste né su Commons né in locale }}
- devolve "o ficheiro existe en commons ou localmente"
No seu lugar:
-
{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
- devolve "non hai páxina local"
cambiar
A función de switch
compara unha cadea con outras, devolvendo unha cadea dada se atopa unha coincidencia. Sintaxe:
{{#interruptor: <valor de comparación> | <valor 1 > = <resultado 1 > | <valor 2 > = <resultado 2 > | ... | <valor n > = <resultado n > | # default = <resultado predeterminado> }}
switch
buscará entre todos os valores dados ata atopar unha coincidencia. Cando se atopa unha coincidencia, devólvese o resultado asignado a ese valor (o texto despois do signo igual). Se non se atopa ningunha coincidencia, pero o último elemento non ten un signo igual, devolverase como valor predeterminado.
Tamén é posible asignar un resultado a varios valores, evitando duplicar texto. Por exemplo:
{{#interruptor: <valor de comparación> | <valor 1 > | <valor 2 > | <valor 3 > = <resultado 3 > | ... | <valor n > = <resultado n > | # default = <resultado predeterminado> }}
Teña en conta que o valor 1 e o valor 2 non conteñen o símbolo igual. Se se atopase unha coincidencia, devolveríase o resultado asignado a un valor de 3 (resultado 3 ).
Formatado
Distinción entre maiúsculas e minúsculas
resumo rápido:
- Primeira maiúscula:
{{ucfirst:}}
-Funzioni parser
- primeira minúscula:
{{lcfirst:}}
-funzioni parser
- TODAS MAIÚSCULAS:
{{uc:}}
-FUNZIONI PARSER
- todas en minúsculas:
{{lc:}}
-funzioni parser
lc
Minúsculas acrónimo (en minúsculas): transforma texto en caracteres minúsculos.
Con {{lc:AbCdEf}}
obtense abcdef.
Con {{lc:Ä Β Ç}}
obtemos ä β ç, dada ä β ç.
uc
Acrónimo en maiúsculas (todo en maiúsculas): transforma un texto en caracteres maiúsculos.
Con {{uc:AbCdEf}}
obtés ABCDEF.
Con {{uc:ä β ß}}
obtemos Ä Β ß.
primeiro
Acrónimo de minúscula primeiro (primeiro minúscula): transforma o primeiro carácter dun texto en minúscula: con {{lcfirst:Ab Cd}}
obtense ab Cd.
ucfirst
Acrónimo de maiúsculas primeiro (primeira maiúscula): transforma o primeiro carácter dun texto en maiúsculas: con {{ucfirst:aB cD}}
obtés AB cD.
formatnum
Engade separadores de punto decimal e miles a un número puro.
Miles de separadores insírense só na parte enteira (antes da coma), non na parte fraccionada (despois da coma).
O número indicado na entrada debe introducirse na notación por ordenador, sen separadores de miles e co punto como separador decimal, por exemplo. 12345.67
, como os dados na entrada e devoltos na saída por #expr .
Con {{formatnum:1234.56}}
obtemos 1 234,56
Con {{formatnum:1234567.8901234}}
obtemos 1 234 567.8901234
A presenza de notas xunto co número non dá problemas, ignóranse e devólvense tal e como están.
Os caracteres non numéricos, excluíndo os separadores, tamén se ignoran e gardan. Non obstante, esta práctica está obsoleta e fai que a páxina se coloque na categoría: páxinas con argumentos de formato non numérico .
Con {{formatnum:''I numeri sono 1234 e 5678<ref>Prova.</ref>''}}
obtén Os números son 1 234 e 5 678 [1]
Podes facelo doutro xeito engadindo R como segundo parámetro: con {{formatnum:1 234 567,89|R}}
obtés 1 234 567,89 (os espazos non son espazos normais senón que rompen caracteres).
padleft e padright
Engade caracteres de recheo á esquerda, facendo que a corda teña unha lonxitude fixa. Sintaxe:
{{padleft: string | lonxitude | enchendo}}
Con {{padleft:ciao|10|+-}}
obtés +-+-+-ciao
padright
ten o mesmo efecto pero enche o lado dereito. Exemplo: {{padright:ciao|10|+-}}
xera: ciao+-+-+-
padleft
ou padright
pódense usar para obter os primeiros N caracteres dunha cadea de lonxitude ≥ N: con {{padleft:|3|Tizio}}
obtés Tiz
plural
Mostra unha cadea diferente segundo o argumento sexa "1" ou un número maior.
{{plural: N | singular | plural}}
Con {{plural:3|casa|case}}
obtemos case
O valor predeterminado cun parámetro baleiro ou non recoñecido é "plural". "1" seguido doutras palabras e "-1" recoñécense como singulares.
tempo
A función time
é unha construción para formatar o tempo. Sintaxe:
{{#time: format }}
ou
{{# hora: formato | tempo }}
Se non se especifica un valor para o tempo, úsase a data e a hora da conversión da páxina en HTML (en Tempo Universal Coordinado ). Ten en conta que debido ao mecanismo de almacenamento en caché este valor pode diferir considerablemente do momento no que se amosa a páxina. Para actualizar o valor é necesario gardar a páxina (sen modificala, é dicir, facendo unha "edición nula"), ou amosala solicitando a limpeza da caché ( &action=purge
engadida á url) ou seleccione a opción que desactiva a caché das páxinas nas túas preferencias.
A función #timel
é análoga a #time
, pero usa a zona horaria local de it.wiki ( UTC + 1 con posible horario de verán ) no canto de Tempo Universal Coordinado.
Parámetro de formato
O parámetro de formato é unha cadea que usa unha sintaxe similar á usada nas datas en PHP [2] .
formato rápido
-
-{{#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ámetro | Descrición | saída equivalente con | Variables equivalentes | ||
---|---|---|---|---|---|
# tempo | # timel | Hora UTC | Hora local | ||
Ano | |||||
Si | en 4 díxitos | 2021 | 2021 | {{CURRENTYEAR}} | {{LOCALYEAR}} |
y | en 2 díxitos | 21 | 21 | - | - |
L | 1 se salto, 0 doutro xeito | 0 | 0 | - | - |
Mes | |||||
F. | Nome completo | Agosto | Agosto | {{CURRENTMONTHNAME}} | {{LOCALMONTHNAME}} |
M. | Nome curto | agulla | agulla | {{CURRENTMONTHABBREV}} | {{LOCALMONTHABBREV}} |
m | Número do mes (01-12) | 08 | 08 | {{CURRENTMONTH}} | {{LOCALTMONTH}} |
n | Número do mes (1-12) | 8 | 8 | ||
t | Número de días do mes | 31 | 31 | ||
Día | |||||
d | Día do mes (01-31). | 17 | 17 | {{CURRENTDAY2}} | {{LOCALDAY2}} |
j | Día do mes (1 - 31). | 17 | 17 | {{CURRENTDAY}} | {{LOCALDAY}} |
z | Día do ano (0 - 364 [3] ) | 228 | 228 | ||
L | Nome completo | Martes | Martes | {{CURRENTDAYNAME}} | {{LOCALDAYNAME}} |
D. | Nome curto | mar | mar | ||
Non | ISO 8601 día da semana (1 (luns) - 7 (domingo)) | 2 | 2 | {{CURRENTWEEK}} | {{LOCALWEEK}} |
w | Día da semana (0 (domingo) - 6 (sábado)) | 2 | 2 | ||
Semanas | |||||
W | Semana do ano (01-52) | 33 | 33 | {{CURRENTWEEK}} | {{LOCALWEEK}} |
Horas | |||||
H: si | Hora: minutos (00:00 - 23:59) | 00:24 | 02:24 | {{CURRENTTIME}} | {{LOCALTIME}} |
H. | Formato de hora 24 horas (00-23) | 00 | 02 | {{CURRENTHOUR}} | {{LOCALHOUR}} |
G. | Formato de 24 horas (0 - 23) | 0 | 2 | ||
h | Formato de hora de 12 horas (01-12) | 12 | 02 | ||
g | Formato de hora de 12 horas (1-12) | 12 | 2 | ||
a | am ou pm | son | son | ||
A | AM ou PM | AM | AM | ||
o | O minuto (00 - 59) | 24 | 24 | ||
s | O segundo (00 - 59) | 19 | 19 |
Os caracteres non recoñecidos quedan inalterados. Hai dúas técnicas para evitar procesar caracteres inseridos nas cadeas de descrición:
- inclúe o mesmo entre comiñas dobres (non se terán en conta as comiñas simples)
- Correcto:
{{ #time: "Attualmente è" F}}
→ Actualmente é agosto - Incorrecto:
{{ #time: Attualmente è F}}
→ AM3131uMonday08UTC831UTC é agosto - Citas individuais:
{{ #time:G:i's"}}
→ 0: 24'19"
- Correcto:
- Use o carácter de escape "\".
-
→ H{{ #time:\H}}
-
→"{{ #time:\"}}
-
Parámetro de tempo
O formato do parámetro tempo é idéntico ao usado pola función PHP strtotime (). Admite datas absolutas e relativas. As datas deben estar en inglés, é dicir, "11 de decembro" e non "11 de decembro" e "+10 horas" e non "+10 horas". Esta función pódese usar para a xestión de "fusos horarios" ou para a conversión desde a hora UTC usada por defecto ata a hora CET ou CEST usada en Italia. Para obter máis información, consulte o manual GNU tar .
Exemplos
-
{{#time:G:i's"|+1 hours}}
→ 1: 24'19" devolve a CET (hora estándar) -
{{#time:G:i's"|+2 hours}}
→ 2: 24'19" devolve a hora CEST (hora de verán) -
{{#time:j FY|-14 days}}
regresa o 3 de agosto de 2021 (hai 14 días) -
{{#time:H:i|+6 hours}}
devolve as 06:24 (6 horas máis UTC ) -
{{#time:H:i|8:15 +6 hours}}
devolve as 14:15 -
{{#time:m/Y|-1 months}}
devolve o 07/2021 (hai 1 mes) -
{{#time:d/m|25 dicembre}}
devolve un erro: hora non válida. (25 de decembro) -
{{#time:d/m|December 25}}
devolve o 25/12 (25 de decembro)
"-1" e "último" son equivalentes, do mesmo xeito que "+1" e "seguinte".
Rango de validez
O intervalo de datas que se manexa correctamente por esta función é de 1970-1-1 00:00:01 a 2038-1-19 03:14:07 (1 a 2 31 segundos desde principios de 1970).
Rutas
código de url
Converter texto en URL- formato compatible, substituíndo os espazos con "+" e outros caracteres formato de URL cos seus equivalentes: {{urlencode:hello world ?&=#/:}}
Ingresos Ola + mundo +% 3F% 26 %% 3D 23 % 2F% 3A.
rel2abs
Converte un camiño, xa sexa un URL ou o título dunha subpáxina da Wikipedia, de relativo a absoluto. Sintaxe:
{{# rel2abs: ruta relativa | camiño base}}
O primeiro parámetro, como nos camiños de cartafoles de Windows / Unix, pode conter unha combinación de:
-
.
(ruta actual) -
..
(nivel superior) -
/nome
(nome da subpáxina)
O segundo parámetro, se se omite, é o título da páxina actual.
Con {{#rel2abs: ../cccc | aaaaa/bbb }}
resulta en aaaaa/cccc
partes do título
Extractos dunha ruta, xa sexa unha URL ou o título dunha subpáxina da Wikipedia, os compoñentes de diferentes niveis separados por "/". Sintaxe:
{{#titleparts: camiño | número de partes | parte inicial}}
O valor predeterminado é "todas" para o número de pezas e 1 para a parte inicial. Os números negativos permiten contar dende a parte inferior (dereita).
Con {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }}
obtés bbb/cc/ddd
Con {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }}
obtés Https://wikipedia.org (o // conta como dous niveis)
Soporta un máximo de 25 niveis e 255 caracteres e non funciona con algúns personaxes. Recoméndase usalo só con camiños e non para outros "trucos".
etiqueta
A función tag
xera unha etiqueta XML específica de wikicode, como <ref> ou <gallery>, incluída a etiqueta de peche. Sintaxe:
{{#tag: <nome da etiqueta> | <contido> | <atributo1> = <valor1> | <attribute2> = <valor2> ...}}
Exemplo:
{{#tag: ref | Contido | nome = Nome}}
É equivalente a <ref name="Nome">Contenuto</ref>
e devolve: [4]
A función é especialmente útil cando un modelo precisa xerar unha etiqueta que tamén conteña wikicode complexo, porque garante que a etiqueta se procesa despois do seu contido (se non, o contido pode non funcionar). Tamén garante que as etiquetas presentes no código non executado (como a parte negada dun #if) non se procesen falsamente.
Outra
- invocar
- ver Axuda: formularios
- propiedade
- ver Axuda: Wikidata
- xénero
- Normalmente úsase nos modelos de alerta do usuario. Dado un nome de usuario, devolve unha cadea diferente segundo o sexo do usuario, se se especifica nas súas preferencias. Sintaxe
{{xénero: nome | home | femia | estraño}}
Se non especifica un texto para "descoñecido", o predeterminado é masculino. Se o nome está baleiro, use o usuario actual.
Funcións gravosas
Algunhas funcións e variables son caras , é dicir, o seu cálculo require un "esforzo" relativamente alto para o sistema. Normalmente son funcións e variables que solicitan información sobre outra páxina, como ifexist. Tamén hai un límite ao número destas funcións que se poden chamar desde unha páxina; se o aprobas, as chamadas deixan de funcionar e a páxina colócase en Categoría: Páxinas con demasiadas chamadas a funcións de analizador .
Polo tanto, non esaxere o uso destas funcións, especialmente nos modelos que se inclúen moitas veces na mesma páxina. En xeral, as funcións correspondentes dispoñibles en Lua son igualmente caras, polo que os módulos non resolven o problema.
Nota
- ^ Próbao.
- ^http://www.php.net/date
- ^ 0 - 365 para anos bisestos
- ^ Contido
Páxinas relacionadas
Outros proxectos
Para obter información técnica completa e actualizada:
-
Wikisource contén unha páxina sobre funcións de analizador
-
A Wikiquote contén comiñas sobre funcións de analizador
-
Wikibooks contén textos ou manuais sobre funcións de analizador
-
A Wikiversidade contén recursos sobre funcións de analizador
-
Mediawiki contén información sobre as funcións do analizador