Ajutor: funcții de analizor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Abrevieri
WP: PARSER
WP: Parser
WP: Analizare
Ajutor: Parser
Ajutor: Analizare
Gnome-help.svg - Birou de informare

Această pagină descrie funcțiile de analizor care pot fi introduse în wikicode pentru a procesa șiruri și numere. Sunt utile în special în crearea șabloanelor . Funcțiile de analiză pot utiliza, de asemenea, variabile Mediawiki .

Unele sunt furnizate de extensia MediaWiki ParserFunctions și au sintaxă:

 {{#functionname: argument 1 | argument 2 | argumentul 3 ...}}

Altele sunt funcții de bază MediaWiki și au în general sintaxă:

 {{nume de funcție: argument}}

Spațiile din jurul {{ , }} și | nu sunt relevante în sintaxă, deci de exemplu {{ #nomefunzione: argomento 1 | argomento 2 }} este echivalent cu {{#nomefunzione:argomento 1|argomento 2}} .

Funcții mai complexe decât acestea pot fi realizate prin module .

expr

Funcția expr procesează operații matematice. Operatorii suportați, în ordinea priorității, sunt:

Operator Operațiune Exemplu
- Negarea unară {{#expr: - 7}} = -7
exp Exponențială {{#expr: exp 3}} = 20.085536923188
ln Logaritm natural {{#expr: ln 100}} = 4.6051701859881
abs Valoare absolută {{#expr: abs -2}} = 2
trunc Rotunjind în jos {{#expr: trunc 1.5}} = 1
{{#expr: trunc -1.5}} = -1
podea Rotunjind în jos {{#expr: etaj 1.5}} = 1
{{#expr: etaj -1.5}} = -2
Există Rotunjind {{#expr: ceil 1.5}} = 2
{{#expr: ceil -1.5}} = -1
sin , cos , tan Funcții trigonometrice (în radiani) {{#expr: sin 1}} = 0,8414709848079
asin , acos , atan Funcții trigonometrice inverse {{#expr: asin 0.5}} = 0.5235987755983
nu Logic NU {{#expr: not 7}} = 0
^ Exponențierea {{#expr: 30 ^ 7}} = 21870000000
* Multiplicare {{#expr: 30 * 7}} = 210
/ sau div Divizia {{#expr: 30/7}} = 4.2857142857143
mod Modul, returnează restul unei divizii {{#expr: 30 mod 7}} = 2
+ Plus {{#expr: 30 + 7}} = 37
- Scădere {{#expr: 30 - 7}} = 23
rundă Rotunjiți până la cel mai apropiat număr.
Al doilea operand este numărul de zecimale;
dacă este negativ, rotunjiți la 10, 100 ...
{{#expr: 1.2345 runda 2}} = 1.23
{{#expr: 1.2378 runda 2}} = 1.24
{{#expr: 5432 round -2}} = 5400
= Egalitate {{#expr: 30 = 7}} = 0
<> sau ! = Inegalitate {{#expr: 30 <> 7}} = 1
< Minor {{#expr: 30 <7}} = 0
> Mai mare {{#expr: 30> 7}} = 1
<= Mai puțin sau egal {{#expr: 30 <= 7}} = 0
> = Mai mare sau egal {{#expr: 30> = 7}} = 1
și Logic ȘI {{#expr: 30 și 7}} = 1
sau SAU logic {{#expr: 30 sau 7}} = 1
() Suporturi {{#expr: (30 + 7) * 7}} = 259

Numerele trebuie introduse în notare computerizată, fără separatoare de mii și cu punctul ca separator zecimal, de ex. 12345.67 ; sunt returnate în același mod la ieșire. Nu sunt necesare spații între operatori.

Operatorii booleni tratează 0 ca fiind fals și orice număr diferit de zero ca fiind adevărat. La ieșire, adevăratul este returnat ca 1.

Sunt disponibile constantele „e” (numărul lui Euler) și „pi” (pi).

Exemplu:

 {{#expr: (100 - 32) / 9 * 5 runda 0}}

se intoarce:

 38

care este 100 ° F în ° C, rotunjit la cel mai apropiat număr întreg.

Paginile care conțin erori în funcțiile expr (expresii slab formate, divizare la zero ...) sunt plasate în Categorie: Pagini cu erori în expresii .

dacă

Abrevieri
Ajutor: dacă

Funcția if este o construcție if-then-else. Sintaxă:

 {{#if: <condiție> | <apoi text> | <altfel text> }}

Dacă condiția constă dintr-un șir gol sau un spațiu, atunci este considerată falsă, iar în caz contrar textul este returnat. Dacă nu, atunci textul este returnat. în caz contrar, textul poate fi omis: în acest caz, rezultatul va fi gol dacă expresia este falsă.

Exemplu:

 {{Șablon | parametru = ceva}} {{Șablon}} {{Șablon | parametru =}}
                                     | | |
                                     | | |
                                     | | |
{{#if: {{{parametru |}}} | Parametrul este indicat. | Parametrul nu este indicat sau este gol. }}

Rețineți că funcția if nu acceptă semnul "=" sau expresiile matematice. {{#if: 1 = 2|sì|no}} returna „da”, deoarece șirul „1 = 2” nu este gol. Funcția if este concepută ca o funcție if defined . Pentru a compara șirurile, utilizați ifeq . Pentru a compara numerele, utilizați ifexpr .

Pentru a verifica dacă o condiție sau alta este adevărată, puteți scrie:

 {{#if: {{{A |}}} {{{B |}}} | A sau B | Nici a, nici b}}

Pentru a verifica dacă ambele condiții sunt adevărate, puteți scrie:

 {{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A și B | A gol sau B gol}}

Pentru a vedea care sunt condițiile adevărate, puteți scrie:

 {{#if: {{{A |}}}
| {{#if: {{{B |}}} | A și B | numai A}}
| {{#if: {{{B |}}} | numai B | Nici a, nici b}}
}}

ifeq

Funcția ifeq compară două șiruri și returnează un alt șir care depinde de rezultatul comparației. Sintaxă:

 {{#ifeq: <text 1> | <text 2> | <dacă sunt egale, returnează acest lucru> | <altfel aceasta> }}

iferror

Funcția iferror ia un șir ca intrare și returnează un alt șir dintre cele două posibile; ieșirea depinde de șirul de intrare, dacă acesta conține un obiect HTML cu class="error" (care poate fi generat de alte funcții de analiză, cum ar fi #expr și #time sau de șablon), primul este returnat, altfel al doilea.

 {{#iferror <string> | <dacă șirul returnează o eroare> | <dacă șirul este corect> }}

Se pot pune oricare sau ambele șiruri de ieșire. Dacă șirul de scris este omis în cazul în care șirul de intrare este exact atunci se restituie valoarea șirului de intrare. Dacă șirul de scris este omis în cazul în care șirul de intrare este greșit, atunci un șir gol este returnat la ieșire:

 {{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}corect
{{#iferror: {{#expr: 1 + X }} | errore | corretta }}eroare
{{#iferror: {{#expr: 1 + 2 }} | errore }}3
{{#iferror: {{#expr: 1 + X }} | errore }}eroare
{{#iferror: {{#expr: 1 + 2 }} }}3
{{#iferror: {{#expr: 1 + X }} }} 
{{#iferror: <strong class="error">a</strong> | errore | corretta }}eroare

ifexpr

Funcția ifexpr rezolvă o expresie matematică și returnează un text pe baza rezultatului.

 {{#ifexpr: <expression> | <apoi text> | <altfel text> }}

Dacă expresia se potrivește, atunci textul este returnat, altfel textul este returnat. Sintaxa expresiilor este aceeași ca în expr .

dacă există

ifexist returnează unul dintre cele două rezultate, în funcție de existența sau nu a unei pagini date de pe it.wiki.

Primul parametru este titlul de căutat, al doilea este rezultatul de returnat dacă pagina există și al treilea este rezultatul de returnat dacă pagina nu există. Dacă primul parametru nu este un titlu valid, funcția returnează rezultatul negativ.

{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
returnează „Intrarea în biologie există!” deoarece biologia există.
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
returnează „Da”.
{{#ifexist:m:Help:Calculation|Sì|No}}
returnează „Nu”, în ciuda existenței m: Ajutor: Calcul , datorită prefixului interwiki.

NB : ifexist este o funcție costisitoare

Existența fișierelor

ifexist vă permite, de asemenea, să testați disponibilitatea unui fișier, în acest caz, indiferent dacă este local sau în Commons , indicând fișierul cu spațiul de nume virtual Media

Dimpotrivă, cu File , Immagine sau Image testăm existența locală a paginii de descriere a fișierului.

Asa:

{{#ifexist: Media: Example.png | il file esiste su Commons o in locale | il file non esiste né su Commons né in locale }}
returnează „fișierul există în comun sau local”

In schimb:

{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
returnează „nu există pagină locală”

intrerupator

Abrevieri
Ajutor: comutați

Funcția de switch compară un șir cu altele, returnând un șir dat dacă găsește o potrivire. Sintaxă:

 {{#switch: <valoare de comparație>
 | <valoare 1 > = <rezultat 1 >
 | <valoare 2 > = <rezultatul 2 >
 | ...
 | <valoare n > = <rezultat n > 
 | # implicit = <rezultat implicit>
 }}

switch va căuta toate valorile date până când va găsi o potrivire. Când se găsește o potrivire, rezultatul atribuit acelei valori (textul după semnul egal) este returnat. Dacă nu se găsește nicio potrivire, dar ultimul element nu are un semn egal, acesta va fi returnat ca valoare implicită.

De asemenea, este posibil să atribuiți un rezultat mai multor valori, evitând duplicarea textului. De exemplu:

 {{#switch: <valoare de comparație>
 | <valoare 1 >
 | <valoare 2 >
 | <valoare 3 > = <rezultatul 3 >
 | ...
 | <valoare n > = <rezultat n > 
 | # implicit = <rezultat implicit>
 }}

Rețineți că valoarea 1 și valoarea 2 nu conțin simbolul egal. Dacă s-a găsit o potrivire, rezultatul atribuit unei valori 3 (rezultatul 3 ) ar fi returnat.

Formatare

Caz sensibil

rezumat rapid:

  • Prima scriere cu majuscule: {{ucfirst:}} - Funzioni parser
  • prima minusculă: {{lcfirst:}} - funzioni parser
  • TOATE MAJUSCULE: {{uc:}} - FUNZIONI PARSER
  • toate minuscule: {{lc:}} - funzioni parser

lc

Jos caz acronim (toate cu litere mici): transformă un text în caractere minuscule.

Cu {{lc:AbCdEf}} veți obține abcdef.
Cu {{lc:Ä Β Ç}} obținem ä β ç, dat ä β ç.

uc

Acronim superior caz (majuscule): transformă un text în caractere majuscule.

Cu {{uc:AbCdEf}} obțineți ABCDEF.
Cu {{uc:ä β ß}} obținem Ä Β ß.

În primul rând

Primul acronim cu litere mici (primul cu litere mici): transformă primul caracter al unui text în minuscule: cu {{lcfirst:Ab Cd}} obțineți ab Cd.

ucfirst

Primul acronim pentru majuscule (prima literă majusculă): transformă primul caracter al unui text în litere mari: cu {{ucfirst:aB cD}} obții AB cD.

formatnum

Adăugați separatoare de zecimale și mii la un număr pur.

Mii de separatoare sunt inserate numai în partea întreagă (înainte de virgulă), nu în partea fracționată (după virgulă).

Numărul dat în intrare trebuie introdus în notația computerului, fără separatoare de mii și cu punctul ca separator zecimal, de ex. 12345.67 , ca cele date în intrare și returnate în ieșire de #expr .

Cu {{formatnum:1234.56}} obținem 1 234,56

Cu {{formatnum:1234567.8901234}} obținem 1 234 567.8901234

Prezența notelor împreună cu numărul nu dă probleme, sunt ignorate și returnate așa cum sunt.

Caracterele nenumerice, cu excepția separatoarelor, sunt, de asemenea, ignorate și păstrate. Cu toate acestea, această practică este depreciată și face ca pagina să fie plasată în categoria: Pagini cu argumente formatnum numerice .

Cu {{formatnum:''I numeri sono 1234 e 5678<ref>Prova.</ref>''}} obțineți Numerele sunt 1 234 și 5 678 [1]

Puteți face acest lucru invers, adăugând R ca al doilea parametru: cu {{formatnum:1 234 567,89|R}} obțineți 1 234 567,89 (spațiile nu sunt spații normale, ci spațiu de rupere a caracterelor).

padleft și padright

Adaugă caractere de umplere la stânga, făcând șirul cu o lungime fixă. Sintaxă:

 {{padleft: string | lungime | umplere}}

Cu {{padleft:ciao|10|+-}} obțineți +-+-+-ciao

padright are același efect, dar umple partea dreaptă. Exemplu: {{padright:ciao|10|+-}} generează: ciao+-+-+-

padleft sau padright pot fi utilizate pentru a obține primele N caractere ale unui șir de lungime ≥ N: cu {{padleft:|3|Tizio}} obțineți Tiz

plural

Afișează un șir diferit în funcție de argumentul „1” sau un număr mai mare.

 {{plural: N | singular | plural}}

Cu {{plural:3|casa|case}} obținem case

Valoarea implicită cu parametrul gol sau nerecunoscut este „plural”. „1” urmat de alte cuvinte și „-1” sunt recunoscute ca singular.

timp

Funcția time este o construcție pentru formatarea timpului. Sintaxă:

 {{#time: format }}

sau

 {{#time: format | timp }}

Dacă nu este specificată o valoare pentru timp , se utilizează data și ora conversiei paginii în HTML (în timp universal coordonat ). Vă rugăm să rețineți că, datorită mecanismului de stocare în cache, această valoare poate diferi considerabil de momentul în care pagina este afișată. Pentru a actualiza valoarea este necesar să salvați pagina (fără să o modificați, adică făcând o „editare nulă”) sau să o afișați solicitând curățarea cache-ului ( &action=purge adăugat la adresa URL) sau selectați opțiune care dezactivează stocarea în cache a paginilor în preferințele dvs.

Funcția #timel este similară cu #time , dar folosește fusul orar local al acestuia.wiki ( UTC + 1 cu posibilă oră de vară ) în loc de Timpul universal coordonat.

Parametru format

Parametrul format este un șir care folosește o sintaxă similară cu cea utilizată în datele din PHP [2] .

formatare rapidă

  • {{#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
Parametru Descriere ieșire echivalentă cu Variabile echivalente
# timp # timel Ora UTC Ora locala
An
Da în 4 cifre 2021 2021 {{ANUL CURENT}} {{LOCALYEAR}}
y în 2 cifre 21 21 - -
L 1 dacă salt, 0 altfel 0 0 - -
Lună
F. Numele complet August August {{CURRENTMONTHNAME}} {{LOCALMONTHNAME}}
M. Nume scurt ac ac {{CURRENTMONTHABBREV}} {{LOCALMONTHABBREV}}
m Numărul lunii (01-12) 08 08 {{LUNA CURENTĂ}} {{LOCALTMONTH}}
n Numărul lunii (1 - 12) 8 8
t Numărul de zile din lună 31 31
Zi
d Ziua lunii
(01 - 31).
17 17 {{CURRENTDAY2}} {{LOCALDAY2}}
j Ziua lunii (1 - 31). 17 17 {{ZIUA CURENTĂ}} {{LOCALDAY}}
z Ziua anului (0 - 364 [3] ) 228 228
L Numele complet marţi marţi {{CURRENTDAYNAME}} {{LOCALDAYNAME}}
D. Nume scurt mar mar
Nu. ISO 8601 zi a săptămânii
(1 (luni) - 7 (duminică))
2 2 {{SĂPTĂMÂNA ACEASTA}} {{LOCALWEEK}}
w Zi a săptămânii
(0 (duminică) - 6 (sâmbătă))
2 2
Săptămâni
W Săptămâna anului
(01 - 52)
33 33 {{SĂPTĂMÂNA ACEASTA}} {{LOCALWEEK}}
Ore
H: da Oră: minute (00:00 - 23:59) 00:24 02:24 {{ORA CURENTĂ}} {{ORA LOCALA}}
H. Format oră 24 ore (00 - 23) 00 02 {{CURRENTHOUR}} {{LOCALHOUR}}
G. Format format 24 de ore (0 - 23) 0 2
h Format format de 12 ore (01 - 12) 12 02
g Format format de 12 ore (1 - 12) 12 2
la AM sau PM a.m a.m
LA AM sau PM A.M A.M
the Minutul (00 - 59) 24 24
s Al doilea (00 - 59) 19 19

Caracterele nerecunoscute rămân neschimbate. Există două tehnici pentru a evita procesarea caracterelor inserate în șirurile de descriere:

  • atașați același lucru între ghilimele duble (ghilimelele simple nu vor fi luate în considerare)
    • Corect: {{ #time: "Attualmente è" F}} → Este în prezent august
    • Incorect: {{ #time: Attualmente è F}} → AM3131uLunzi08UTC831UTC este august
    • Citate unice: {{ #time:G:i's"}} → 0: 24'19"
  • Folosiți caracterul de evacuare „\”.
    • {{ #time:\H}} → H
    • {{ #time:\"}} →"

Parametru de timp

Formatul parametrului de timp este identic cu cel folosit de funcția PHP strtotime (). Acceptă atât datele absolute, cât și cele relative. Datele trebuie să fie în limba engleză, adică „11 decembrie” și nu „11 decembrie” și „+10 ore” și nu „+10 ore”. Această caracteristică poate fi utilizată pentru gestionarea „fusurilor orare” sau pentru conversia de la ora UTC utilizată în mod implicit la ora CET sau CEST utilizată în Italia. Pentru mai multe informații, consultați manualul GNU tar .

Exemple

  • {{#time:G:i's"|+1 hours}} → 1: 24'19" returnează CET (ora standard)
  • {{#time:G:i's"|+2 hours}} → 2: 24'19" returnează ora CEST (ora de vară)
  • {{#time:j FY|-14 days}} revine la 3 august 2021 (acum 14 zile)
  • {{#time:H:i|+6 hours}} returnează 06:24 (6 ore plus UTC )
  • {{#time:H:i|8:15 +6 hours}} revine la 14:15
  • {{#time:m/Y|-1 months}} returnează 07/2021 (acum 1 lună)
  • {{#time:d/m|25 dicembre}} returnează Eroare: timp nevalid. (25 decembrie)
  • {{#time:d/m|December 25}} returnează 25/12 (25 decembrie)

„-1” și „ultimul” sunt echivalente, la fel ca „+1” și „următor”.

Gama de valabilitate

Pictogramă lupă mgx2.svg Același subiect în detaliu: Bugul anului 2038 .

Intervalul de date care sunt tratate corect de această funcție este de la 1970-1-1 00:00:01 până la 2038-1-19 03:14:07 (1 la 2 31 de secunde de la începutul lui 1970).

Trasee

urlencode

Convertiți textul în format compatibil cu URL- urile înlocuind spațiile cu „+” și alte caractere de formatare a adreselor URL cu echivalentele lor: {{urlencode:hello world ?&=#/:}} Randamente hello + world +% 3F% 26% 3D% 23 % 2F% 3A.

rel2abs

Convertește o cale, fie că este o adresă URL sau titlul unei subpagini Wikipedia, de la relativ la absolut. Sintaxă:

 {{# rel2abs: cale relativă | cale de bază}}

Primul parametru, ca în căile folderelor Windows / Unix, poate conține o combinație de:

  • . (ruta curentă)
  • .. (nivel superior)
  • /nome (numele subpagini)

Al doilea parametru, dacă este omis, este titlul paginii curente.

Cu {{#rel2abs: ../cccc | aaaaa/bbb }} are ca rezultat aaaaa/cccc

titluri

Extrase dintr-o cale, fie că este o adresă URL sau titlul unei subpagini Wikipedia, componentele diferitelor niveluri separate prin „/”. Sintaxă:

 {{#titleparts: cale | numărul de piese | partea inițială}}

Valoarea implicită este „toate” pentru numărul de piese și 1 pentru partea inițială. Numerele negative vă permit să contați din partea de jos (dreapta).

Cu {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }} obțineți bbb/cc/ddd
Cu {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }} primiți Https://wikipedia.org (// contează ca două niveluri)

Acesta acceptă maximum 25 de niveluri și 255 de caractere și nu funcționează cu unele caractere. Este recomandat să-l folosiți doar cu căi și nu pentru alte „trucuri”.

etichetă

Funcția de tag generează o etichetă XML specifică unui wikicode, cum ar fi <ref> sau <gallery>, inclusiv eticheta de închidere. Sintaxă:

 {{#tag: <numele etichetei> | <contenut> | <attribute1> = <valor1> | <attribute2> = <value2> ...}}

Exemplu:

 {{#tag: ref | Conținut | nume = Nume}}

Este echivalent cu <ref name="Nome">Contenuto</ref> și returnează: [4]

Funcția este deosebit de utilă atunci când un șablon trebuie să genereze o etichetă care conține, de asemenea, un wikicode complex, deoarece asigură că eticheta este procesată după conținutul său (altfel este posibil ca conținutul să nu funcționeze). De asemenea, se asigură că orice etichete prezente în codul neexecutat (cum ar fi partea negată a unui #if) nu sunt procesate în mod fals.

Alte

invoca
vezi Ajutor: Formulare
proprietate
vezi Ajutor: Wikidata
gen
De obicei utilizat în șabloanele de alertă ale utilizatorilor. Având un nume de utilizator, acesta returnează un șir diferit în funcție de sexul utilizatorului, dacă este specificat în preferințele sale. Sintaxă
{{gender: name | mascul | femeie | străin }}
Dacă nu specificați un text pentru „necunoscut”, valoarea implicită este masculină. Dacă numele este gol, utilizați utilizatorul curent.

Funcții oneroase

Unele funcții și variabile sunt costisitoare , adică calculul lor necesită un „efort” relativ mare pentru sistem. Acestea sunt de obicei funcții și variabile care solicită informații despre o altă pagină, cum ar fi ifexist. Există, de asemenea, o limită a numărului acestor funcții care pot fi apelate de pe o pagină; dacă îl treceți, apelurile nu mai funcționează și pagina este plasată în Categorie: Pagini cu prea multe apeluri către funcții de analiză .

Prin urmare, vă rugăm să nu exagerați cu utilizarea acestor funcții, în special în șabloanele care sunt incluse de multe ori pe aceeași pagină. În general, funcțiile corespunzătoare disponibile în Lua sunt la fel de scumpe, deci modulele nu rezolvă problema.

Notă

  1. ^ Încercați.
  2. ^http://www.php.net/date
  3. ^ 0 - 365 pentru anii bisectivi
  4. ^ Cuprins

Pagini conexe

Alte proiecte

Pentru informații tehnice complete și actualizate:

linkuri externe