Rozšíření:ArrayFunctions
Stav rozšíření: stabilní |
|
|---|---|
| Zavádění | Funkce analyzátoru |
| Popis | Poskytuje sadu čistě parserových funkcí, které operují s poli |
| Autoři | Marijn van Wezel (Wikibase Solutions) |
| Nejnovější verze | 2.0.1 (2026-06-18) |
| Zásady kompatibility | Větev master zachovává zpětnou kompatibilitu. |
| MediaWiki | >=1.40.0 |
| PHP | >=7.4 |
| Změny v databázi | Ne |
| Composer | wikibase-solutions/array-functions |
|
|
| Licence | GNU General Public License 2.0 nebo novější |
| Stáhnout | |
| Přeložte rozšíření ArrayFunctions, používá-li lokalizaci z translatewiki.net | |
| Problémy | Otevřené úkoly · Nahlásit chybu |
Dokumentace k dalším vydáním: 1.0 · 1.1 · 1.2 · 1.3 · 1.4 · 1.5 · 1.6 · 1.7 · 1.8 · 1.9 · 1.10 · 1.11 · 1.12 · 1.13 · 1.14 · 1.15 · 1.16 · 1.17 · 2.0.
Rozšíření ArrayFunctions vytváří sadu čistých, s Parsoid kompatibilních (viz zde) parserových funkcí, které provádějí operace s poli.
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
ArrayFunctionsve vaší složceextensions/.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ArrayFunctions
- Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'ArrayFunctions' ); // Zvyšte hodnotu $wgMaxArticleSize pro umožnění větších polí (výchozí: 2048) $wgMaxArticleSize = 8192;
- Configure performance limits as necessary.
Dokončeno – Přejděte na stránku Special:Versionvaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
TL;DR
ArrayFunctions definuje kolekci parserových funkcí, které umožňují pracovat s neměnnými seznamy a objekty, souhrnně označovanými jako "arrays" (pole). Místo ukládání těchto polí do paměti jsou přímo vypsány funkcí parseru a lze je předat šablonám nebo jiným funkcím parseru. I když je možné vytvářet a pracovat s poli výhradně prostřednictvím wikitextu, doporučeným přístupem je použít Scribunto (Lua), Semantic MediaWiki nebo Cargo k vytvoření pole, které obsahuje všechna potřebná data, a použít ArrayFunctions pouze pro formátování pole. Funkce parseru #af_list a #af_object by se měly používat primárně pro jednoduchá, jednorázová pole.
ArrayFunctions definuje mnoho (přes 30) funkcí parseru, ale ty nejužitečnější jsou:
- #af_get – načíst hodnotu nebo provést nějakou operaci stručně;
- #af_pipeline – vytvořit kanál operací, aby se zabránilo hlubokému vnoření;
- #af_foreach – opakovat přes pole;
- #af_show – vypsat hodnotu uloženou v poli;
- #af_print – vypsat pole pro účely ladění;
- #af_map – upravit všechny prvky pole;
- #af_template – vyvolat šablonu s daty uloženými v poli;
- #af_list – vytvořit seznam;
- #af_object — vytvořit objekt;
- #af_zip – spojit dvě nebo více polí dohromady.
Kompatibilita
ArrayFunctions se zavazuje, že nebude porušovat zpětnou kompatibilitu. To znamená, že kód orientovaný pro uživatele (např. funkce parseru, funkce Lua a magická slova) bude fungovat donekonečna a změny budou vždy implementovány zpětně kompatibilním způsobem.
ArrayFunctions se také snaží co nejdéle udržovat kompatibilitu se staršími verzemi MediaWiki, ale vzhledem k povaze rozšíření to nemusí být možné donekonečna. V případě, že aktualizace MediaWiki naruší funkci, na které ArrayFunctions závisí, bude tato záplata, pokud to bude možné, zpětně kompatibilní. Jinak bude vydána nová HLAVNÍ verze ArrayFunctions.
| ArrayFunctions | MediaWiki | PHP | Scribunto1 | Semantic MediaWiki1 | Cargo1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2.0.0+ |
|
|
|
|
| ||||||||||
| 1.15.0+ |
|
|
|
|
| ||||||||||
| 1.14+ |
|
|
|
|
N/A | ||||||||||
| 1.0-1.13 |
|
|
|
N/A | N/A |
- 1 Měkká závislost. Omezení verze platí pouze při instalaci softwaru.
Výkonnostní limity
| ArrayFunctions version | ≥ 1.16 |
$wgMaxArticleSize.ArrayFunctions poskytuje řadu konfiguračních parametrů, které omezují výpočetní dobu určitých funkcí a zabraňují uživatelům v provedení útok typu denial-of-service na vaší wiki. Z důvodů zpětné kompatibility jsou tato omezení ve výchozím nastavení vypnuta. Dostupné konfigurační parametry jsou:
| Název | Výchozí | Doporučeno | Popis |
|---|---|---|---|
$wgArrayFunctionsForeachIterationLimit |
-1 |
~1024
|
Tento konfigurační parametr omezuje maximální počet iterací #af_foreach, které může stránka provést. Nastavení na hodnotu nižší než nula neovlivní počet opakování. |
$wgArrayFunctionsMaxRangeSize |
-1 |
~4096
|
Tento konfigurační parametr omezuje maximální velikost pole vytvořeného pomocí funkce parser #af_range. Nastavení na hodnotu nižší než nula neovlivní velikost polí vytvořených s #af_range. |
$wgArrayFunctionsMaxPipelineLength |
-1 |
~$wgMaxTemplateDepth / 4
|
Tento konfigurační parametr omezuje maximální délku kanálu na (#af_pipeline). Nastavení na hodnotu nižší než nula neovlivní počet kroků v kanálu. |
Tato omezení jsou uvedena v reportu o omezeních parseru, který lze použít k úpravě nastavení nebo ladění stránky.
Časté dotazy
Jak mohu definovat pole, které se bude používat na celé stránce?
Není možné přímo definovat pole, které se má použít na celé stránce, protože by to vyžadovalo sekvenční zpracování rozšiřujících tagů, což Parsoid nepodporuje (viz Rozšíření API#Žádná podpora pro sekvenční zpracování rozšiřujících tagů v pořadí). Místo toho můžete pole předávat jako parametry šablony:
{{My template|{{#af_list:a|b|c}}}}
Tímto způsobem je pole k dispozici v Template:My template jako {{{1}}}.
Jak iterovat přes pole?
K prvkům pole je možné iterativně přistupovat pomocí proměnné #af_foreach:
{{#af_foreach:{{#af_list:red|green|blue}}||color|<nowiki/>
* {{{color}}} is my favourite.
}}
Očekávaný výstup z výše uvedeného výstřižku je:
- red is my favourite.
- green is my favourite.
- blue is my favourite.
Proč nejsou hodnoty rozpoznány jako pole?
To se může stát, protože vaše pole jsou příliš velká. MediaWiki interně uchovává počítadlo celkové velikosti argumentů šablony, které lze zvýšit o $wgMaxArticleSize.
Hlavní rozdíl mezi ArrayFunctions a těmito rozšířeními je, že parserové funkce ArrayFunctions jsou čisté. To znamená, že místo úpravy nebo deklarace proměnné funkce parser přímo vypíše její výsledek.
Například s argumentem #af_map se dané pole nemodifikuje. Místo toho se vytvoří, upraví a poté vypíše kopie.
Žádná funkce parseru v ArrayFunctions nemodifikuje globální stav: Veškeré výpočty probíhají výhradně voláním funkce parseru.
Díky tomu se práce s ArrayFunctions velmi liší od práce s jinými rozšířeními, jako je Arrays nebo Variables.
Místo imperativní úpravy pole uloženého v proměnné je nutné k provádění složitějších operací použít složení funkce.
Například:
{{#arraydefine: fruits | orange, banana, strawberry, apple }}
{{#arraysort: fruits | asc }}
{{#arrayprint: fruits }}
- ArrayFunctions
{{#af_pipeline: {{#af_list: orange | banana | strawberry | apple }}
| {{#af_sort: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
Proč se z hodnot pole ořezávají mezery?
Mezery jsou ve wikitextu podstatně bezpodmínečné. Aby bylo toto chování logické, jsou z hodnot pole opakovaně ořezávány mezery.
Funkce
- Parametry s předponou hvězdičky (*) označují, že lze předat proměnný počet pozičních argumentů.
- Parametry s dvojitou hvězdičkou (**) označují, že lze předat proměnný počet pojmenovaných argumentů.
- Všechny názvy argumentů klíčových slov rozlišují velká a malá písmena.
- Všechny argumenty typu string podporují následující escape sekvence:
\spro prostory\npro nové řádky\\pro zpětná lomítka
Rozšíření definuje následující funkce parseru, funkce Lua, formáty výsledků Semantic MediaWiki, formáty zobrazení Cargo a magická slova:
| Název | Popis |
|---|---|
#af_bool
|
Vytvoří řetězec s booleovskou hodnotou. |
#af_float
|
Vytvoří plovoucí řetězec |
#af_int
|
Převede řetězec na celé číslo. |
#af_list
|
Vytvoří nový seznam z hodnot. |
#af_object
|
Vytvoří nový objekt z hodnot. |
#af_range
|
Vytvoří konečný rozsah celých čísel. |
#af_split
|
Rozdělí řetězec na základě oddělovače. |
AF_EMPTY
|
Prázdné pole. |
mw.af.export
|
Vytvoří nové pole z Lua. |
arrayfunctions
|
Naformátujte výsledek dotazu Semantic MediaWiki jako pole typu ArrayFunctions. |
arrayfunctions
|
Zobrazí výsledek dotazu Cargo jako pole o velikosti ArrayFunctions. |
| Název | Popis |
|---|---|
#af_count
|
Spočítá počet hodnot v poli. |
#af_exists
|
Zkontroluje, zda v poli existuje klíč nebo index. |
#af_get
|
Načte prvek z pole podle indexu. |
#af_isarray
|
Zkontroluje, zda je hodnota pole. |
#af_print
|
Vypíše pole pro účely ladění. |
#af_search
|
Vyhledá hodnotu v poli. |
#af_show
|
Zobrazí hodnotu ve formátu čitelném pro člověka. |
mw.af.import
|
Vytvoří novou tabulku z pole ArrayFunctions. |
| Název | Popis |
|---|---|
#af_difference
|
Vypočítá rozdíl mezi poli. |
#af_filter
|
Filter element from an array. |
#af_flatten
|
Zploštění pole. |
#af_group
|
Vypočítá pole, které po indexování vrátí všechny prvky klíče ze všech podpolí. |
#af_intersect
|
Vypočítá průnik polí. |
#af_keysort
|
Seřadí seznam objektů na základě hodnot klíče. |
#af_ksort
|
Seřadí pole podle klíče. |
#af_merge
|
Vypočítá sjednocení polí. |
#af_push
|
Přidá hodnotu na konec seznamu. |
#af_put
|
Nastaví hodnotu na indexu. |
#af_reverse
|
Obrátí pole. |
#af_set
|
Nastaví hodnotu na indexu (zastaralé od 1.13.0). |
#af_slice
|
Extrahuje výřez z pole. |
#af_sort
|
Seřadí seznam. |
#af_unique
|
Odstraní duplikáty z pole. |
#af_unset
|
Odebere hodnotu z pole podle indexu. |
#af_zip
|
Sbalí dvě nebo více polí dohromady. |
| Název | Popis |
|---|---|
#af_foreach
|
Opakuje přes pole |
#af_join
|
Rekurzivně spojí položky pole pomocí oddělovače. |
#af_map
|
Aplikuje zpětné volání na každý prvek seznamu. |
#af_reduce
|
Iterativním způsobem zredukuje pole na jednu hodnotu pomocí zpětného volání. |
| Název | Popis |
|---|---|
#af_if
|
Na základě predikátu vybere jednu ze dvou alternativ. |
#af_pipeline
|
Vytvoří kanál funkcí. |
#af_stringmap
|
Použije zpětné volání na každou hodnotu v řetězci s oddělovači. |
#af_template
|
Vyvolá šablonu s hodnotami v poli. |
#af_trim
|
Ořízne znaky na začátku a na konci řetězce. |
af_bool
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru převádí řetězec na booleovskou hodnotu.
To je užitečné pro vytvoření pole obsahujícího booleovskou hodnotu.
Hodnoty, které jsou považovány za true, jsou "1", "true", "on" a "yes".
Hodnoty, které jsou považovány za false, jsou "0", "false", "off" a "no".
Pokud je zadána jakákoli jiná hodnota, bude vrácena chyba.
Popis
{{#af_bool: value }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| value | řetěz nebo boolean | Hodnota, která se má převést na booleovskou hodnotu. |
Návratové hodnoty
Vrátí přetypovanou booleovskou hodnotu.
Příklady
| Vytvoření neprůhledné reprezentace booleovské hodnoty | {{#af_bool: yes }}, {{#af_bool: no }}, {{#af_bool: true }}
|
boolean__^__1, boolean__^__0, boolean__^__1 |
| Vytvoření pole obsahujícího booleovskou hodnotu | {{#af_print: {{#af_list: {{#af_bool: yes}} }} }}
|
|
af_count
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru počítá počet hodnot v poli.
Ve výchozím nastavení tato funkce parseru počítá pouze počet prvků nejvyšší úrovně.
Pokud je však argumentu klíčového slova recursive přiřazena hodnota true, bude se také sčítat počet položek v jakýchkoli podpolích.
V případě hodnoty recursive=true se započítává jak prvek obsahující pole, tak i všechny hodnoty uvnitř pole.
Popis
{{#af_count: array | recursive=recursive }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má spočítat. | |
| recursive | boolean | false |
Zda se mají položky počítat rekurzivně. |
Návratové hodnoty
Počet položek v poli.
Příklady
| Spočítání počtu položek v jednorozměrném seznamu | {{#af_print: {{#af_count: {{#af_list: a | b | c }} }} }}
|
3 |
| Spočítání počtu položek ve vícerozměrném seznamu | {{#af_print: {{#af_count: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} }} }}
|
2 |
| Rekurzivně spočítat počet položek ve vícerozměrném seznamu | {{#af_print: {{#af_count: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} | recursive=true }} }}
|
6 |
af_difference
| ArrayFunctions version | ≥ 1.5 |

Tato funkce parseru vypočítává rozdíl mezi poli. Tato funkce uchovává klíče.
Popis
{{#af_difference: array | *arrays }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| array | pole | První pole. |
| *arrays | pole | Ostatní pole. |
Návratové hodnoty
Vrátí pole obsahující všechny hodnoty z proměnné array, které se nenacházejí v žádném z polí v proměnné arrays.
Klíče v array jsou zachovány.
Příklady
| Vypočítat rozdíl tří polí | {{#af_print: {{#af_difference: {{#af_list: a | b | c }} | {{#af_list: a }} | {{#af_list: b}} }} }}
|
|
af_exists
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru kontroluje, zda daný klíč nebo index v daném poli existuje. Pro kontrolu vnořených polí lze zadat více klíčů.
Popis
{{#af_exists: array | *keys }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| array | pole | Pole, které se má zkontrolovat. |
| keys | řetězec nebo celé číslo | Klíč ke kontrole. Pro kontrolu, zda existuje vnořený klíč, lze zadat více klíčů. |
Návratové hodnoty
Vrací true, pokud array obsahuje klíč, jinak vrací false.
Příklady
| Zkontrolovat, zda existuje klíč | {{#af_print: {{#af_exists: {{#af_object: hello=world }} | hello }} }}
|
true |
| Zkontrolovat, zda existuje index | {{#af_print: {{#af_exists: {{#af_list: a | b | c }} | 2 }} }}
|
true |
| Zkontrolovat, zda existuje vnořený klíč | {{#af_print: {{#af_exists: {{#af_list: a | {{#af_list: b | c }} }} | 0 | 3 }} }}
|
false |
af_filter
| ArrayFunctions version | ≥ 2.0 |
This parser function filters elements from an array based on a condition. The condition is evaluated for each element in the array, and if the condition returns a "falsy" value, the element will be removed. Otherwise, the element will be kept. The values that are considered "falsy" are:
- The empty string;
- The boolean
false; - The strings "no", "off", "false" and "0".
If no condition is given, all empty elements are removed. Indices are not reset after calling this function.
Description
{{#af_filter: array | value_name | condition }}
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| array | array | The array to filter. | |
| value_name | string | null
|
The name to give to the value in the condition. |
| condition | string | null
|
The condition to filter on. |
Return values
Returns the array with all values for which the condition returned a falsy value removed.
Examples
| Remove all empty values | {{#af_print: {{#af_filter: {{#af_list: a | | c }} }} }}
|
|
| Remove the element "b" | {{#af_print: {{#af_filter: {{#af_list: a | b | c }} | v | {{#ifeq: {{{v}}} | b | yes }} }} }}
|
|
af_flatten
| ArrayFunctions version | ≥ 1.11 |
Tato funkce parseru vytvoří nové pole se všemi prvky podpole zřetězenými do něj rekurzivně až do zadané hloubky, nebo dokud není pole zcela zploštěno, pokud není hloubka zadána.
Popis
{{#af_flatten: array | depth }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má zploštit. | |
| depth | celé číslo | null
|
Hloubka, do které se má pole zploštit, nebo nic, co se má zploštit, dokud není pole zcela zploštělé. |
Návratové hodnoty
Vrátí pole se všemi prvky podpole zřetězenými do něj rekurzivně až do zadané hloubky, nebo zcela zploštělé pole, pokud hloubka není zadána.
Příklady
| Zploštění pole o jednu úroveň | {{#af_print: {{#af_flatten: {{#af_list: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }} }}
|
|
af_float
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru přetypuje řetězec na číslo s plovoucí desetinnou čárkou. To je užitečné pro vytvoření pole obsahujícího číslo s plovoucí čárkou.
Popis
{{#af_float: value }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| value | řetězec nebo plovoucí | Hodnota, která se má přetypovat na typ s plovoucí plovoucí hodnotou. |
Návratové hodnoty
Vrátí přetypovaný float (plovoucí).
Příklady
| Vytvoření neprůhledné reprezentace float | {{#af_float: 1.298 }}, {{#af_float: 0 }}
|
float__^__1.298, float__^__0 |
| Vytvoření pole obsahující číslo s plovoucí čárkou | {{#af_print: {{#af_list: {{#af_float: 1.298 }} }} }}
|
|
af_foreach
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru poskytuje způsob iterování přes pole.
Pro každý z prvků v daném vstupním poli vyhodnotí jeho tělo a nahradí všechny výskyty proměnných key_name a value_name.
K těmto proměnným lze přistupovat stejným způsobem jako k parametrům šablony, a to tak, že je obklopíte trojitými závorkami (např. {{{value_name}}}).
Chování této funkce parseru může být ovlivněno konfiguračním parametrem $wgArrayFunctionsForeachIterationLimit.
Popis
{{#af_foreach: array | key_name | value_name | body | delimiter=delimiter }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, přes které se má opakovat. | |
| key_name | řetězec | null |
Název, který se má použít pro klíč. |
| value_name | řetězec | null |
Název, který se má použít pro hodnotu. |
| body | řetězec | Tělo, které se má vrátit pro každé opakování. | |
| delimiter | řetězec | "" |
Oddělovač, který se má vložit mezi výsledky (k dispozici od verze 1.9.0). |
Návratové hodnoty
Vrátí výsledný wikitext.
Příklady
| Opakovat přes seznam | {{#af_foreach: {{#af_list: John | Steve | Harry }} | | name | Hello, {{{name}}}!<br/> }}
|
Hello, John! Hello, Steve! Hello, Harry! |
| Opakovat přes objekt | {{#af_foreach: {{#af_object: Hello=John | Hi=Steve | Welcome=Harry }} | greeting | name | {{{greeting}}}, {{{name}}}!<br/> }}
|
Hello, John! Hi, Steve! Welcome, Harry! |
| Opakovat přes seznam a přidat oddělovač | {{#af_foreach: {{#af_list: John | Steve | Harry }} | | name | Hello, {{{name}}}! | delimiter=<br/> }}
|
Hello, John! Hello, Steve! Hello, Harry! |
af_get
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru načte prvek s daným indexem z daného pole nebo provede nějakou operaci, pokud je index přetížený. Pokud index neexistuje a nejedná se o přetížený index, vrátí se prázdný řetězec.
Přetížený index umožňuje uživateli stručně provádět určité jednoduché operace s poli během indexování.
Použití přetíženého indexu je identické s prvním provedením příkazu #af_get se všemi indexy před přetíženým indexem, poté provedením funkce určené přetíženým indexem a následným provedením dalšího příkazu #af_get se zbývajícími indexy.
Například {{#af_get: {{{1}}} | a | * | b }} je ekvivalent {{#af_get: {{#af_group: {{#af_get: {{{1}}} | a }} }} | b }}.
Pokud pole obsahuje klíč, který koliduje se symbolem přetíženého indexu, bude místo toho načtena hodnota pod klíčem. To bylo provedeno z důvodů zpětné kompatibility.
Popis
{{#af_get: array | *indices }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| array | pole | Pole, ve kterém se má indexovat. |
| *indices | řetězec | Index. Vnořeným polím v indexu lze přiřadit více indexů. |
Přetížené indexy (k dispozici od verze 1.11.0)
| Syntaxe | Ekvivalentní funkce | Popis |
|---|---|---|
*
|
#af_group | Seskupí podpole podle klíče. |
<-
|
#af_reverse | Obrátí pole. |
><
|
#af_flatten | Jednou pole srovná. |
>><<
|
#af_flatten | Zplošťuje pole, dokud nebude zcela ploché. |
#
|
#af_unique | Odstraní duplikáty z pole. |
n..m
|
#af_slice | Načte část pole (pro indexování od začátku do konce pole lze vynechat buď n nebo m).
|
! (k dispozici od verze 1.16.0)
|
#af_show | Zobrazí hodnotu čitelnou formou ve formátu table, simple.
|
// (available since version 2.0.0)
|
#af_filter | Remove all empty elements from the array. |
Návratové hodnoty
Vrátí indexovanou hodnotu nebo prázdný řetězec, pokud index neexistuje.
Příklady
| Získání prvku nejvyšší úrovně | {{#af_get: {{#af_list: a | b | c }} | 1 }}
|
b |
| Získat podpole | {{#af_print: {{#af_get: {{#af_list: a | {{#af_list: b | c }} }} | 1 }} }}
|
|
| Získat vnořený prvek | {{#af_get: {{#af_list: a | {{#af_object: hello=world }} }} | 1 | hello }}
|
world |
| Obrátit pole | {{#af_print: {{#af_get: {{#af_list: a | b | c }} | <- }} }}
|
|
| Načíst poslední prvek pole | {{#af_print: {{#af_get: {{#af_list: a | b | c }} | <- | 0 }} }}
|
c |
af_group
| ArrayFunctions version | ≥ 1.11 |
Tato funkce parseru vypočítá pole, kde jsou podpole rekurzivně seskupeny podle klíče.
Popis
{{#af_group: array }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| array | pole | Pole, pro které se mají seskupit podpole. |
Návratové hodnoty
Vrátí pole, kde jsou podpole rekurzivně seskupeny podle klíče.
Příklady
| Seskupení podpolí podle klíče | {{#af_print: {{#af_group: {{#af_list: {{#af_object: a=1 | b=2 }} | {{#af_object: a=3 | b=4 }} | {{#af_object: a=5 | b=5 }} }} }} }}
|
|
af_if
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru vybere jednu ze dvou alternativ na základě daného predikátu.
Popis
{{#af_if: predicate | consequent | alternative }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| predicate | boolean | Tvrzení. | |
| consequent | řetězec | Hodnota, která se má vrátit, pokud tvrzení platí (tj. je true).
| |
| alternative | řetězec | ""
|
Hodnota, která se má vrátit, pokud tvrzení neplatí (tj. je false).
|
Návratové hodnoty
Vrátí důsledek, pokud tvrzení platí, nebo alternativu, pokud je zadána a tvrzení neplatí.
Příklady
| Kontrola, zda je hodnota pole | {{#af_if: {{#af_isarray: not an array }} | A beautiful array! | Not an array! }}
|
Not an array! |
af_int
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru převádí řetězec na celé číslo. To je užitečné pro vytvoření pole obsahujícího celé číslo.
Popis
{{#af_int: value }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| value | řetězec nebo celé číslo | Hodnota, která se má převést na celé číslo. |
Návratové hodnoty
Vrátí přetypované celé číslo.
Příklady
| Vytvoření neprůhledné reprezentace celého čísla | {{#af_int: 42 }}, {{#af_int: -12 }}
|
integer__^__42, integer__^__-12 |
| Vytvoření pole obsahujícího celé číslo | {{#af_print: {{#af_list: {{#af_int: -129}} }} }}
|
|
af_intersect
| ArrayFunctions version | ≥ 1.2 |

Tato funkce parseru vypočítává průnik polí. Tato funkce uchovává klíče.
Popis
{{#af_intersect: array | *arrays }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| array | pole | První pole. |
| *arrays | pole | Ostatní pole. |
Návratové hodnoty
Vrátí průnik zadaných polí.
Příklady
| Výpočet průniku dvou identických polí | {{#af_print: {{#af_intersect: {{#af_list: a | b | c }} | {{#af_list: a | b | c }} }} }}
|
|
| Výpočet průniku dvou částečně překrývajících se polí | {{#af_print: {{#af_intersect: {{#af_list: a | b | c }} | {{#af_list: c | d | e }} }} }}
|
|
af_isarray
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru kontroluje, zda je daná hodnota pole.
Popis
{{#af_isarray: value }}
Parametry
| Název | Typ | Popis |
|---|---|---|
| value | smíšený | Hodnota, která se má zkontrolovat. |
Návratové hodnoty
Vrací true, pokud je value pole, jinak false.
Příklady
| Kontrola, zda je pole polem | {{#af_print: {{#af_isarray: {{#af_list: a | b | c }} }} }}
|
true
|
| Kontrola, zda je řetězec polem | {{#af_print: {{#af_isarray: Hello, World! }} }}
|
false
|
af_join
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru rekurzivně spojuje položky pole pomocí daného oddělovače.
Popis
{{#af_join: array | glue }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, ke kterému se má připojit. | |
| glue | řetězec | "" |
Řetězec použitý ke spojení jednotlivých položek. |
Návratové hodnoty
Vrátí spojené pole.
Příklady
| Spojení s jednorozměrným polem | {{#af_join: {{#af_list: a | b | c }} }}
|
abc |
| Spojování jednorozměrného pole pomocí oddělovače | {{#af_join: {{#af_list: a | b | c }} | \s-\s }}
|
a - b - c |
| Spojování vícerozměrného pole pomocí oddělovače | {{#af_join: {{#af_list: a | b | {{#af_list: c | d }} }} | \s-\s }}
|
a - b - c - d |
af_keysort
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru seřadí seznam objektů na základě hodnot zadaného klíče. Pro seřazení pole podle klíče použijte #af_ksort.
Popis
{{#af_keysort: array | key | descending=descending | caseinsensitive=caseinsensitive }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má seřadit. | |
| key | řetězec | Klíč hodnot, na kterých by mělo být řazení založeno. | |
| descending | boolean | false |
Zda se má seřadit sestupně. |
| caseinsensitive | boolean | false |
Zda se při řazení mají ignorovat velká a malá písmena (k dispozici od verze 1.7.0). |
Návratové hodnoty
Vrátí seřazené pole.
Příklady
| Seřadit podle věku | {{#af_print: {{#af_keysort: {{#af_list:
{{#af_object: name=John | age=56 }} |
{{#af_object: name=Harry | age=12 }} |
{{#af_object: name=Bob | age=24 }}
}} | age }} }}
|
|
| Seřadit podle věku, sestupně | {{#af_print: {{#af_keysort: {{#af_list:
{{#af_object: name=John | age=56 }} |
{{#af_object: name=Harry | age=12 }} |
{{#af_object: name=Bob | age=24 }}
}} | age | descending=true }} }}
|
|
af_ksort
| ArrayFunctions version | ≥ 1.7 |
Tato funkce parseru seřadí pole podle klíče.
Popis
{{#af_ksort: array | descending=descending | caseinsensitive=caseinsensitive }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má seřadit. | |
| descending | boolean | false |
Zda se má seřadit sestupně. |
| caseinsensitive | boolean | false |
Zda se při řazení mají ignorovat velká a malá písmena (k dispozici od verze 1.7.0). |
Návratové hodnoty
Vrátí seřazené pole.
Příklady
| Seřadit podle klíče | {{#af_print: {{#af_ksort: {{#af_object: c=banana | a=orange | b=apple }} }} }}
|
|
af_list
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru vytvoří nový seznam z zadaných parametrů.
Popis
{{#af_list: *values }}
Parametry
- *values : smíšený
- Hodnoty pro seznam.
Návratové hodnoty
Vrátí výsledný seznam.
Příklady
| Vytvoření jednoduchého jednorozměrného seznamu | {{#af_print: {{#af_list: a | b | c }} }}
|
|
| Vytvoření vícerozměrného seznamu | {{#af_print: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} }}
|
|
| Vytvoření seznamu objektů | {{#af_print: {{#af_list:
{{#af_object: name=Harry | age=22 }} |
{{#af_object: name=Bobby | age=29 }}
}} }}
|
|
af_map
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru aplikuje zpětné volání na každý prvek seznamu.
Popis
{{#af_map: array | value_name | callback }}
Parametry
- array : pole
- Pole, které se má spustit prostřednictvím zpětného volání.
- value_name : řetězec
- Název, který se má dát hodnotě ve zpětném volání.
- callback : řetězec
- Zpětné volání, které se má použít pro každý prvek pole.
Návratové hodnoty
Vrátí výsledné mapované pole.
Příklady
| Připojení řetězce ke každému prvku | {{#af_print: {{#af_map: {{#af_list: a | b | c }} | v | {{{v}}}-appended }} }}
|
|
| Změna prvků seznamu | {{#af_print: {{#af_map: {{#af_list: {{#af_list: a }} | {{#af_list: b }} }} | v | {{#af_push: {{{v}}} | c }} }} }}
|
|
af_merge
| ArrayFunctions version | ≥ 1.2 |
Tato funkce parseru vypočítává sloučení dvou nebo více polí. Sloučí prvky jednoho nebo více polí dohromady tak, že hodnoty jednoho z nich se připojí na konec předchozího. Neodstraňuje duplikáty.
Pokud vstupní pole obsahují stejný klíč typu string, pak pozdější hodnota pro tento klíč přepíše předchozí. Pokud pole obsahují číselné klíče, budou místo nich připojeny pozdější hodnoty a pozdější klíče budou přečíslovány.
Popis
{{#af_merge: array | *arrays }}
Parametry
- array : pole
- První pole.
- *arrays : pole
- Ostatní pole.
Návratové hodnoty
Vrátí sjednocení daných polí.
Příklady
| Připojení řetězce ke každému prvku | {{#af_print: {{#af_merge: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }}
|
|
af_object
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru vytvoří nový objekt z daných parametrů.
Popis
{{#af_object: **values }}
Parametry
- **values : smíšený
- Hodnoty pro objekt.
Návratové hodnoty
Vrátí výsledný objekt.
Příklady
| Vytvoření jednoduchého jednorozměrného objektu | {{#af_print: {{#af_object: a=b | b=c | c=d }} }}
|
|
| Vytvoření vícerozměrného objektu | {{#af_print: {{#af_object: head={{#af_object: title=MediaWiki | meta={{#af_list: {{#af_object: charset=UTF-8 }} }} }} }} }}
|
|
af_pipeline
| ArrayFunctions version | ≥ 1.14 |
Tato funkce parseru vytváří kanál operací.
Funkce parser vezme výsledek z rozšíření předchozího argumentu a předá ho jako zadaný parametr (nebo ve výchozím nastavení prev) dalšímu argumentu funkce parser.
To je velmi užitečné pro zlepšení čitelnosti kódu šablony, protože umožňuje odstranit hluboce vnořená volání funkcí parseru.
Například následující dva úryvky jsou sémanticky ekvivalentní:
| Před | Po |
|---|---|
{{#af_print: {{#af_unique: {{#af_reverse: {{#af_list: a | a | b | c}} }} }} }}
|
{{#af_pipeline: {{#af_list: a | a | b | c }}
| {{#af_reverse: {{{prev}}} }}
| {{#af_unique: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
|
Chování této funkce parseru může být ovlivněno konfiguračním parametrem $wgArrayFunctionsMaxPipelineLength.
Popis
{{#af_pipeline: initial | *steps | parameter=parameter }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| initial | smíšený | Počáteční hodnota pipeline. | |
| *steps | smíšený | Následné kroky pipeline. | |
| parameter | řetězec | "prev" |
Název, který se má použít pro předchozí hodnotu. |
Návratové hodnoty
Vrátí hodnotu vrácenou posledním krokem pipeline.
Příklady
| Vytvoření pipeline | {{#af_pipeline: {{#af_list: a | a | b | c }}
| {{#af_reverse: {{{prev}}} }}
| {{#af_unique: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
|
|
af_print
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru vypíše danou hodnotu pro účely ladění. Na rozdíl od #af_show neanalyzuje hodnotu. Tato funkce by se měla používat pouze pro účely ladění, zvažte použití #af_show k zobrazení hodnoty čtenáři.
Popis
{{#af_print: *values | end=end }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| *values | smíšený | Hodnoty, které se mají vytisknout. | |
| end | řetězec | "" |
Řetězec, který se má připojit na konec každé vytištěné hodnoty. |
Návratové hodnoty
Vrátí hodnotu ve formě čitelné pro člověka.
Příklady
| Vytisknout booleovskou hodnotu | {{#af_print: {{#af_bool: yes }} }}
|
true |
| Vytisknout seznam | {{#af_print: {{#af_list: a | b | c }} }}
|
|
af_push
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru přidá zadanou hodnotu na konec seznamu.
Popis
{{#af_push: array | value }}
Parametry
- array : pole
- Pole, ke kterému se má připojit hodnota.
- value : smíšený
- Hodnota, kterou je třeba přidat.
Návratové hodnoty
Vrátí pole s připojenou hodnotou.
Příklady
| Vložení hodnoty | {{#af_print: {{#af_push: {{#af_list: a | b }} | c }} }}
|
|
af_put
| ArrayFunctions version | ≥ 1.13 |
Tato funkce parseru nastaví danou hodnotu pro daný index. Je identické s #af_set, s výjimkou pořadí parametrů. Tato funkce parseru by měla být upřednostňována před funkcí #af_set.
Popis
{{#af_put: array | value | *indices }}
Parametry
- array : pole
- Do pole, ve kterém se má nastavit index.
- value : smíšený
- Hodnota, na kterou se má index nastavit.
- *indices : řetězec
- Index, který má být nastaven. Vnořeným indexovým polím lze přiřadit více indexů.
Návratové hodnoty
Vrátí pole s daným indexem nastaveným na danou hodnotu.
Příklady
| Nahrazení existující hodnoty | {{#af_print: {{#af_put: {{#af_list: a | b | c }} | d | 2 }} }}
|
|
| Vytvoření nového indexu | {{#af_print: {{#af_set: {{#af_object: foo=bar }} | far | boo }} }}
|
|
| Vytvoření nového podpole | {{#af_print: {{#af_set: {{#af_object: foo=bar }} | far | boo | far }} }}
|
|
af_range
| ArrayFunctions version | ≥ 1.12 |
Tato funkce parseru vytváří konečný rozsah celých čísel.
i. prvek rozsahu je určen funkcí r(i) = start + step * i.
Pro kladný krok jsou hranice rozsahu i >= 0 a r(i) < stop.
Pro záporný krok jsou hranice i >= 0 a r(i) > stop.
Chování této funkce parseru může být ovlivněno konfiguračním parametrem $wgArrayFunctionsMaxRangeSize.
Popis
{{#af_range: start | stop | step }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| start | celé číslo | Začátek rozsahu. | |
| stop | celé číslo | null
|
Konec rozsahu (nezahrnuje). Pokud je tato hodnota vynechána, hodnota start se stane hodnotou stop a hodnota start bude výchozí na nule. |
| step | celé číslo | 1 | Velikost kroku mezi hodnotami rozsahu. |
Návratové hodnoty
Konečný rozsah celých čísel.
Příklady
| Vytvoření rozsahu od 0 do 4 | {{#af_print: {{#af_range: 0 | 5 }} }}
|
|
| Alternativní syntaxe pro rozsah od 0 do 4 | {{#af_print: {{#af_range: 5 }} }}
|
|
| Vytvoření rozsahu od 0 do -4 | {{#af_print: {{#af_range: 0 | -5 | -1 }} }}
|
|
| Vytvoření rozsahu všech lichých čísel mezi 0 a 10 | {{#af_print: {{#af_range: 1 | 10 | 2 }} }}
|
|
af_reduce
| ArrayFunctions version | ≥ 1.2 |
Tato funkce parseru opakovaně redukuje pole na jednu hodnotu pomocí zpětného volání.
Opakovaně aplikuje hodnotu callable na prvky daného pole, aby se pole zredukovalo na jednu hodnotu.
Volatelné metodě se předává hodnota aktuální iterace a také výsledek předchozí iterace.
Popis
{{#af_reduce: array | carry_name | value_name | callable | initial }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má zmenšit. | |
| carry_name | řetězec | Název, který se má použít pro přenos. | |
| value_name | řetězec | Název, který se má použít pro hodnotu. | |
| callable | řetězec | Zpětné volání, které se má použít pro každou iteraci. | |
| initial | řetězec | "" |
Počáteční přenos k použití. |
Návratové hodnoty
Vrátí výslednou hodnotu.
Příklady
| Použití redukce k zřetězení hodnot | {{#af_reduce: {{#af_list: a | b | c }} | c | i | {{{c}}}{{{i}}} }}
|
abc |
| Použití redukce k obrácení a následnému zřetězení hodnot | {{#af_reduce: {{#af_list: a | b | c }} | c | i | {{{i}}}{{{c}}} }}
|
cba |
| Použití redukce k sestavení rovnice | {{#af_reduce: {{#af_list: 2 | 3 | 5 | 7 | 11 }} | c | i | {{{c}}} + {{{i}}} | 0 }}
|
0 + 2 + 3 + 5 + 7 + 11 |
af_reverse
| ArrayFunctions version | ≥ 1.11 |
Tato funkce parseru obrací zadané pole. Nezachovává číselné klíče.
Popis
{{#af_reverse: array }}
Parametry
- array : pole
- Pole, které se má obrátit.
Návratové hodnoty
Vrátí původní pole v obráceném pořadí.
Příklady
| Obrácení seznamu | {{#af_print: {{#af_reverse: {{#af_list: a | b | c}} }} }}
|
|
af_search
| ArrayFunctions version | ≥ 1.3 |
Tato funkce parseru prohledává dané pole a hledá danou hodnotu a pokud je hodnota nalezena, vrací první odpovídající klíč.
Popis
{{#af_search: array | value }}
Parametry
- array : pole
- Pole, ve kterém se má hledat.
- value : smíšený
- Hodnota, která se má vyhledat.
Návratové hodnoty
Vrátí první odpovídající klíč, pokud je hodnota nalezena, jinak nic.
Příklady
| Hledání hodnoty v poli | {{#af_print: {{#af_search: {{#af_list: a | b | c }} | b }} }}
|
1 |
af_set
| ArrayFunctions version | ≥ 1.0 |
(zastaralé od 1.13.0)
Tato funkce parseru nastaví danou hodnotu pro daný index. V ArrayFunctions 1.13.0 byl zastaralý a neměl by se již používat. Z důvodu zpětné kompatibility zůstane k dispozici na dobu neurčitou. Alternativně byste měli použít #af_put.
Popis
{{#af_set: value | array | *indices }}
Parametry
- value : smíšený
- Hodnota, na kterou se má index nastavit.
- array : pole
- Do pole, ve kterém se má nastavit index.
- *indices : řetězec
- Index, který má být nastaven. Vnořeným indexovým polím lze přiřadit více indexů.
Návratové hodnoty
Vrátí pole s daným indexem nastaveným na danou hodnotu.
Příklady
| Nahrazení existující hodnoty | {{#af_print: {{#af_set: d | {{#af_list: a | b | c }} | 2 }} }}
|
|
| Vytvoření nového indexu | {{#af_print: {{#af_set: far | {{#af_object: foo=bar }} | boo }} }}
|
|
| Vytvoření nového podpole | {{#af_print: {{#af_set: far | {{#af_object: foo=bar }} | boo | far }} }}
|
|
af_show
| ArrayFunctions version | ≥ 1.4 |
Tato funkce parseru vypíše danou hodnotu ve formátu čitelném pro člověka.
Formátování hodnoty je založeno na format.
Popis
{{#af_show: value | format=format }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| value | smíšený | Hodnota, která se má zobrazit. | |
| format | řetězec | "simple"
|
(zavedeno od 1.16.0) Seznam formátů oddělených čárkami. Hodnota bude zobrazena s použitím prvního formátu, který daný typ hodnoty podporuje. |
Formáty (k dispozici od verze 1.16.0)
| Název | Podporované typy | Popis |
|---|---|---|
simple
|
string, integer, float, boolean
|
Naformátuje hodnotu jako její řetězcovou reprezentaci. Toto je výchozí formát. |
table
|
array
|
Naformátuje hodnotu jako tabulku. |
Návratové hodnoty
Vrátí hodnotu v lidsky čitelné podobě, formátovanou pomocí proměnné format.
Příklady
| Zobrazení hodnoty | {{#af_show: Hello World! }}
|
Hello World! |
| Zobrazení celého čísla | {{#af_show: {{#af_int: 42 }} | format=simple }}
|
42 |
af_slice
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru extrahuje výřez z daného pole. Klíče budou resetovány a jejich pořadí bude přeskupeno.
Popis
{{#af_slice: array | offset | length }}
Parametry
| Name | Type | Required? | Description |
|---|---|---|---|
array |
pole | Požadované | Pole, ze kterého se má odebrat výřez. |
offset |
celé číslo | Požadované | Posun, na kterém začíná řez. Pokud je nezáporná, řez začne na tomto daném posunu. Pokud je záporná, sekvence bude začínat v dané vzdálenosti od konce pole. |
length |
celá čísla, volitelné | Volitelné | Délka řezu. Pokud je délka zadána a je kladná, pak bude řez obsahovat tento počet prvků. Pokud je délka zadána a je záporná, pak řez zastaví tolik prvků od konce pole. Pokud je vynechán, pak bude řez obsahovat vše od offsetu až do konce pole. |
Návratové hodnoty
Výřez.
Příklady
| Získání prvních dvou prvků | {{#af_print: {{#af_slice: {{#af_list: a | b | c }} | 0 | 2 }} }}
|
|
| Získání posledního prvku | {{#af_print: {{#af_slice: {{#af_list: a | b | c }} | -1 }} }}
|
|
af_sort
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru seřadí daný seznam. Nezachovává numerické klávesy.
Popis
{{#af_sort: array | descending=descending | caseinsensitive=caseinsensitive }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| array | pole | Pole, které se má seřadit. | |
| descending | boolean | false |
Zda se má seznam seřadit sestupně. |
| caseinsensitive | boolean | false |
Zda se při řazení mají ignorovat velká a malá písmena. |
Návratové hodnoty
Vrátí seřazený seznam.
Příklady
| Vzestupné seřazení seznamu | {{#af_print: {{#af_sort: {{#af_list: b | c | a }} }} }}
|
|
| Sestupné seřazení seznamu | {{#af_print: {{#af_sort: {{#af_list: b | c | a }} | descending=true }} }}
|
|
af_split
| ArrayFunctions version | ≥ 1.1 |
Tato funkce parseru rozděluje daný řetězec na základě oddělovače.
Popis
{{#af_split: string | delimiter }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| string | řetězec | Řetězec, který má být rozdělen. | |
| delimiter | řetězec | "," |
Oddělovač, který se má použít. |
Návratové hodnoty
Vrátí výsledný seznam.
Příklady
| Rozdělení řetězce na základě čárek | {{#af_print: {{#af_split: a, b, c }} }}
|
|
| Rozdělení věty na slova | {{#af_print: {{#af_split: Lorem ipsum dolor et | \s }} }}
|
|
af_stringmap
| ArrayFunctions version | ≥ 1.6 |
Tato funkce parseru aplikuje zpětné volání na každou položku řetězce s oddělovači a vrátí výsledek jako řetězec s oddělovači, volitelně s jiným oddělovačem. Tato funkce je podobná parserové funkci Page Forms' #arraymap.
Popis
{{#af_stringmap: value | delimiter | value_name | callback | new_delimiter | conjunction }}
Parametry
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| value | řetězec | Oddělený řetězec. | |
| delimiter | řetězec | Oddělovač, na kterém se má rozdělit value. Pokud je zadán prázdný řetězec, použije se ",".
| |
| value_name | řetězec | Název, který se má dát hodnotě ve zpětném volání. | |
| callback | řetězec | Zpětné volání, které se má použít pro každý prvek pole. | |
| new_delimiter | řetězec | ", " |
Nový oddělovač, který se má vložit mezi mapované položky. |
| conjunction | řetězec | null
|
Oddělovač, který se má umístit mezi poslední dvě položky. To vám umožní vytvořit přirozenější shrnutí, například "Alice, Bob a Eva". Pokud není zadána žádná hodnota, použije se new_delimiter.
|
Návratové hodnoty
Vrátí výsledný řetězec s oddělovači.
Příklady
| Proměnit každou položku na odkaz | {{#af_stringmap: William Shakespeare, Stephen King, Mark Twain | , | x | [[{{{x}}}]] }}
|
William Shakespeare, Stephen King, Mark Twain |
| Převedení seznamu odděleného čárkami na seznam čitelný pro člověka | {{#af_stringmap: William Shakespeare, Stephen King, Mark Twain | , | x | {{{x}}} | ,\s | and }}
|
William Shakespeare, Stephen King and Mark Twain |
af_template
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru vyvolá danou šablonu a předá hodnoty z daného pole jako argumenty. V případě, že dané pole je objekt, budou hodnoty předány jako pojmenované argumenty. Jinak budou předány jako číselné argumenty.
Popis
{{#af_template: name | data }}
Parametry
- name : řetězec
- Název šablony, která se má vyvolat. Pokud není zadán jmenný prostor, předpokládá se, že stránka je v jmenném prostoru šablony, jinak se použije zadaný jmenný prostor. Stránka musí existovat, musí být zahrnutelná a musí být čitelná pro uživatele, jinak se zobrazí chyba.
- data : pole
- Data, která se mají předat parametrům. Hodnoty s číselnými indexy se předávají jako poziční argumenty a hodnoty s řetězcovými indexy se předávají jako pojmenované argumenty.
Návratové hodnoty
Rozšířená šablona.
Příklady
| Vyvolání šablony se seznamem | {{#af_template: Echo | {{#af_list: a | b }} }}
|
{{Echo|a|b}}
|
| Vyvolání šablony s objektem | {{#af_template: Echo | {{#af_object: foo=bar | boo=far }} }}
|
{{Echo|foo=bar|boo=far}}
|
af_trim
| ArrayFunctions version | ≥ 1.8 |
Tato funkce parseru ořízne zadané znaky ze začátku a konce daného řetězce.
Pořadí znaků nehraje roli.
Zastaví se, jakmile narazí na znak, který není v characters.
Popis
{{#af_trim: string | characters }}
Parametry
- string : řetězec
- Řetězec, který bude oříznut.
- characters : řetězec
- Znaky, které se mají oříznout.
Návratové hodnoty
Ořezaný řetězec.
Příklady
| Ořezání řetězce | {{#af_trim: !a! | ! }}
|
a |
| Ořezávání všech řetězců v seznamu | {{#af_print: {{#af_map: {{#af_list: !a! | !b! | !c! }} | v | {{#af_trim: {{{v}}} | ! }} }} }}
|
|
af_unique
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru odstraňuje duplicitní hodnoty z daného pole. Tato funkce neresetuje klíče.
Popis
{{#af_unique: array }}
Parametry
- array : pole
- Pole, ze kterého se mají odstranit duplikáty.
Návratové hodnoty
Vrátí pole s odstraněnými duplikáty.
Příklady
| Odstranění duplikátů z pole | {{#af_print: {{#af_unique: {{#af_list: a | a | b | c | b }} }} }}
|
|
af_unset
| ArrayFunctions version | ≥ 1.0 |
Tato funkce parseru odstraní z pole hodnotu přidruženou k danému indexu a vrátí výsledek. Číselné klávesy se po volání této funkce nevynulují.
Popis
{{#af_unset: array | *indices }}
Parametry
- array : pole
- Pole, ze kterého se má odebrat daný klíč.
- *indices : řetězec
- Index, který má být odstraněn. Vnořeným indexovým polím lze přiřadit více indexů.
Návratové hodnoty
Vrátí pole, po kterém je odstraněn daný index.
Příklady
| Odebrání indexu nejvyšší úrovně | {{#af_print: {{#af_unset: {{#af_list: a | b | c }} | 2 }} }}
|
|
| Odebrání indexu nejvyšší úrovně, klíče se neresetují | {{#af_print: {{#af_unset: {{#af_list: a | b | c }} | 1 }} }}
|
|
| Odebrání vnořeného indexu | {{#af_print: {{#af_unset: {{#af_object: foo={{#af_object: bar=quz | far=buz }} }} | foo | bar }} }}
|
|
af_zip
| ArrayFunctions version | ≥ 1.16 |
Tato funkce parseru bere jedno nebo více polí a seskládá je dohromady podle klíče, čímž vytvoří pole, kde každý klíč mapuje na pole obsahující všechny hodnoty pod daným klíčem v každém ze vstupních polí. Výsledné pole bude obsahovat pouze klíče, které byly přítomny ve všech vstupních polích. To znamená, že pokud vstupní pole obsahuje klíč, který není přítomen v žádném z ostatních vstupních polí, klíč bude zahozen a nebude součástí finálního komprimovaného pole.
Popis
{{#af_zip: array | *arrays }}
Parametry
- array : pole
- První pole.
- *arrays : pole
- Ostatní pole.
Návratové hodnoty
Vrátí pole složená dohromady.
Příklady
| Zipování dvou seznamů stejné délky | {{#af_print: {{#af_zip: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }}
|
|
| Zipování dvou seznamů různých délek | {{#af_print: {{#af_zip: {{#af_list: a | b }} | {{#af_list: d | e | f }} }} }}
|
|
| Zipování dvou objektů se stejnými klíči | {{#af_print: {{#af_zip: {{#af_object: a=a | b=b }} | {{#af_object: a=c | b=d }} }} }}
|
|
| Zipování dvou objektů s různými klíči | {{#af_print: {{#af_zip: {{#af_object: a=a | b=b }} | {{#af_object: a=c | different=d }} }} }}
|
|
Scribunto
Toto rozšíření je obzvláště užitečné v kombinaci s Lua, protože ho lze použít k vytvoření pole obsahujícího data potřebná pro prezentaci stránky. Toto pole lze exportovat pro práci s ArrayFunctions:
local p = {};
function p.world()
return mw.af.export({
["Hello"] = "World"
});
end
return p;
Tento modul lze pak vyvolat takto:
{{#af_print: {{#invoke: Hello | world }} }}
|
|
mw.af.export
| ArrayFunctions version | ≥ 1.0 |
Tato funkce v Lua exportuje tabulku v Lua jako pole o velikosti ArrayFunctions.
Popis
mw.af.export( table )
Parametry
- table : pole
- Pole, které se má exportovat.
Návratové hodnoty
Vrátí tabulku jako pole typu ArrayFunctions.
mw.af.import
| ArrayFunctions version | ≥ 1.6 |
Tato funkce v Lua importuje pole ArrayFunctions jako tabulku v Lua.
Popis
mw.af.import( array )
Parametry
- array : pole
- Pole, které se má importovat.
Návratové hodnoty
Vrátí pole jako tabulku v Lua.
Semantic MediaWiki
Toto rozšíření se integruje se Semantic MediaWiki přidáním formátu výsledku arrayfunctions.
Formát výsledku arrayfunctions se používá k formátování výsledků dotazu jako pole ArrayFunctions.
Výsledek je téměř identický s výsledkem funkce mw.smw.ask v Lua od Semantic Scribunto, s výjimkou číselných indexů, které začínají na nule.
arrayfunctions
| ArrayFunctions version | ≥ 1.14 |
Tento formát výsledků formátuje výsledky dotazu jako pole typu ArrayFunctions.
Popis
{{#ask: query | format=arrayfunctions }}
Návratové hodnoty
Vrátí výsledek dotazu jako pole typu ArrayFunctions.
Příklady
| Jednoduchý dotaz | {{#af_print: {{#ask:
[[Category:City]]
[[Located in::Germany]]
|?Population
|?Area#km²=Size
|mainlabel=City
|sort=Population
|order=descending
|headers=plain
|format=arrayfunctions
}} }}
|
|
Cargo
Toto rozšíření se integruje s Cargo přidáním formátu zobrazení arrayfunctions.
Formát výsledku arrayfunctions se používá k formátování výsledků dotazu jako pole ArrayFunctions.
arrayfunctions
| ArrayFunctions version | ≥ 1.15 |
Tento formát zobrazení formátuje výsledky dotazu jako pole typu ArrayFunctions.
Popis
no html je vyžadován pro to, aby ArrayFunctions správně interpretoval výsledek.{{#cargo_query: parameters | no html | format=arrayfunctions }}
Návratové hodnoty
Vrátí výsledek dotazu jako pole typu ArrayFunctions.
Příklady
| Jednoduchý dotaz | {{#af_print: {{#cargo_query: tables=Books
|no html
|fields=_pageName,Authors,Genres
|format=arrayfunctions
}} }}
|
|
Kouzelná slůvka
Rozšíření definuje řadu magických slov (proměnných).
AF_EMPTY
| ArrayFunctions version | ≥ 1.0 |
Toto magické slovo vrací prázdné pole.
To je užitečné, protože s hodnotami #af_list nebo #af_object není možné vytvořit prázdné pole.
Popis
{{AF_EMPTY}}
Návratové hodnoty
Vrátí prázdné pole.
Prezentace
-
Prezentace na SMWCon 2022 o ArrayFunctions
-
Prezentace na EMWCon 2023 o ArrayFunctions
-
Workshop na SMWCon 2023 o tom, jak vytvořit wiki kompatibilní s Parsoidem
-
Prezentace na SMWCon 2023 o Parsoidu a ArrayFunctions
-
Prezentace na workshopu MUD jaro 2025 ArrayFunctions
Související odkazy
- Rozšíření:Arrays – podobné rozšíření, které funguje tak, že nejprve definuje a poté manipuluje s poli. Nekompatibilní s Parsoidem.
- Rozšíření:Scribunto – umožňuje vkládat Lua skripty do wikistránek.
Seznam změn
Všechny významné změny v ArrayFunctions zde budou zdokumentovány.
Formát je založen na Keep a Changelog a toto rozšíření se řídí standardem Semantic Versioning.
v2.0.1 - 2026 červen 18
Changed
- Make
#af_stringmapable to create array with "0" as a value. Previously, "0" would be removed from the array.
v2.0.0 - 2026 leden 28
Added
- Add the
#af_filterparser function. - Add the
//overloaded index to remove empty values.
Changed
- BREAKING: Remove support for MediaWiki 1.39 and earlier. The oldest supported version is now MediaWiki 1.40.
- BREAKING: In
#af_pipeline, when the first argument is empty,{{{prev}}}now renders literally as{{{prev}}}. Use{{{prev|}}}to preserve the 1.x.x behavior. - Ignore the first argument when it is empty for
#af_difference,#af_intersect,#af_merge,#af_object,#af_pipeline, and#af_zip. - Localisation updates courtesy of translatewiki.net.
v1.17.0 - 2025 srpen 26
Special:Version, where it still shows as 1.16.2.
Přidáno
- Přidána konfigurační proměnná
$wgArrayFunctionsMaxPipelineLengthpro omezení celkového počtu kroků v kanálu. - Přidána kategorie sledování
Pages using the ArrayFunctions extension(af-tracking-category).
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Rozsahy přesahující
$wgArrayFunctionsMaxRangeSizese nyní berou v úvahu při hlášení velikosti největšího konstruovaného rozsahu v sestavě limitů analyzátoru. Dříve se braly v úvahu pouze rozsahy, které nepřekračovaly limit. - Oprava chyby
TypeError, která se vyskytla při šíření chyby z vnořeného volání funkce parseru.
v1.16.2 - 2025 červen 28
Opraveno
- Oprava výjimky způsobené uložením objektu
Messagedo dat rozšíření parseru (T397946). - Zajištění, aby se chyby vykreslovaly v cílovém jazyce stránky, nikoli v jazyce uživatele. (T397951).
v1.16.1 - 2025 červen 19
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Oprava chyby
BadMethodCallException, která byla způsobena spoléháním se na$wgLangv háčkuParserLimitReportPrepare.
v1.16.0 - 2025 červen 10
Přidáno
- Přidána konfigurační proměnná
$wgArrayFunctionsForeachIterationLimit, pro omezení celkového počtu iterací, které lze provést pomocí proměnné#af_foreach. - Přidána konfigurační proměnná
$wgArrayFunctionsMaxRangeSize, chcete-li omezit maximální počet prvků, které může pole vytvořené pomocí proměnné#af_rangeobsahovat. - Přidána funkce parseru
#af_zip. - Přidán přetížený index
!pro zobrazení hodnoty. - Přidány formáty
tableasimplepro '#af_show'. - Přidána kategorie sledování
Pages with ArrayFunctions errors(af-error-category). - Přidáno sledování a šíření chyb.
Změněno
- Povolení naformátovat proměnné
#af_show. - Funkce parseru
#af_sorta#af_ksortnyní porovnávají položky normálně, a ne jako řetězce. - Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Oprava výjimky při předávání prázdného řetězce argumentu klíčového slova.
v1.15.0 - 2025 květen 13
Přidáno
- Přidán formát zobrazení Cargo
arrayfunctions.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.14.2 - 2025 duben 15
Opraveno
- Odeberání vlastnosti bez hodnoty z výsledku při použití formátu výsledku
arrayfunctionsse Semantic MediaWiki.
v1.14.1 - 2025 duben 15
Přidáno
- Přidána kompatibilita se Semantic MediaWiki 5.0.0.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Obnovení kompatibility se zastaralou verzí MediaWiki 1.35.
v1.14.0 - 2025 duben 1
Přidáno
- Přidání formátu výsledků
arrayfunctionsSemantic MediaWiki. - Přidána funkce parseru
#af_pipeline.
Změněno
- Zrušena kompatibilita s MediaWiki 1.35.
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Opravena výjimka při použití
#af_templatena MediaWiki 1.44.
v1.13.0 - 2025 březen 4
Změněno
- Nahrazena funkce parseru
#af_setfunkcí#af_put. Funkce parseru#af_setzůstává k dispozici z důvodu zpětné kompatibility. - Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Pole magických proměnných ID se již nepovažuje za asociativní, což by dříve narušovalo zvýrazňování syntaxe v CodeMirror. (o alex4401)
v1.12.0 - 2025 únor 4
Přidáno
- Přidána funkce parseru
#af_range.
Změněno
- Přejmenována funkce parseru
#af_wildcardna#af_groupa přidán alias pro#af_wildcard. - Funkce parseru
#af_differencenyní porovnává položky normálně, místo aby je porovnávala jako řetězce. - Funkce parseru
#af_existsnyní akceptuje více klíčů pro kontrolu, zda existuje vnořený klíč. - Funkce parseru
#af_intersectnyní porovnává položky normálně, místo aby je porovnávala jako řetězce. - Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.11.0 - 2024 prosinec 10
Přidáno
- Přidány následující funkce parseru:
#af_flatten#af_wildcard#af_reverse. - Přetížení proměnné
#af_getspeciálními indexy pro provádění určitých operací s polem namísto načítání klíče.
Změněno
- Funkce parseru
#af_uniquenyní porovnává položky normálně, místo aby je porovnávala jako řetězce.
v1.10.0 - 2024 listopad 26
Přidáno
- Přidána ZLIB komprese pomocí
gzdeflateagzinflate.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.9.0 - 2024 květen 2
Přidáno
- Přidána volba
delimiterdo funkce parseru#af_foreach.
Změněno
- Všechny řetězcové parametry nyní podporují escape sekvence.
v1.8.0 - 2024 duben 4
Změněno
- Prázdné znaky jsou nyní ořezány na začátku a na konci hodnot pole, aby bylo chování konzistentní s ostatními parametry v MediaWiki.
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.7.0 - 2023 říjen 24
Přidáno
- Přidána funkce parseru
#af_ksort. - Přidána volba
caseinsensitivedo funkce parseru#af_keysort. - Přidána volba
caseinsensitivedo funkce parseru#af_sort.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.6.0 - 2023 září 12
Přidáno
- Přidána funkce parseru
#af_stringmap. - Přidána funkce
mw.af.importv Lua pro import polí ArrayFunctions do Lua.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.5.0 - 2023 září 7
Přidáno
- Přidána funkce parseru
#af_difference.
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.4.4 - 2023 červen 30
Změněno
- Aktualizace lokalizace s laskavým svolením translatewiki.net.
Opraveno
- Opravena funkce parseru
#af_template, která již explicitně nekontroluje oprávnění uživatele ke čtení, protože běžná transkluze šablon to také nedělá. Dříve se vypisovala chyba.
v1.4.3 - 2023 květen 26
Změněno
- Export hodnoty
NULL(např. pomocí funkcemw.af.exportv Lua) nyní povede k prázdnému řetězci. Dříve seNULLvracelo beze změny.
v1.4.2 - 2023 květen 26
Změněno
- Funkce parseru
#af_templatenyní zobrazuje neexistující šablony jako nefunkční odkaz. Dříve se vypisovala chyba. - Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.4.1 - 2023 květen 5
Změněno
- Funkce parseru
#af_splitnyní povoluje jako první parametr prázdný řetězec. Dříve se vypisovala chyba. - Aktualizace lokalizace s laskavým svolením translatewiki.net.
v1.4.0 - 2023 duben 26
Přidáno
- Přidána funkce parseru
#af_show.
v1.3.0 - 2023 březen 27
Přidáno
- Přidána funkce parseru
#af_search.
v1.2.0 - 2023 březen 3
Přidáno
- Add the following parser functions:
#af_intersect#af_merge#af_reduce.
v1.1.0 - 2023 únor 3
Přidáno
- Přidána funkce parseru
#af_split.
v1.0.1 - 2023 leden 9
Změněno
- Funkce
mw.af.exportv Lua nyní podporuje parametry všech typů. Dříve podporoval pouze pole.
Opraveno
- Opraven problém, kdy byla vyvolána výjimka při předání parametru s nesprávným typem proměnné
mw.af.export.
v1.0.0 - 2023 leden 7
Přidáno
- Přidány funkce parseru:
#af_bool#af_count#af_exists#af_float#af_foreach#af_get#af_if#af_int#af_isarray#af_join#af_keysort#af_list#af_map#af_object#af_print#af_push#af_set#af_slice#af_sort#af_template#af_unique#af_unset
| Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: |
- Stable extensions/cs
- Parser function extensions/cs
- Extensions supporting Composer/cs
- ParserFirstCallInit extensions/cs
- ParserGetVariableValueSwitch extensions/cs
- GetMagicVariableIDs extensions/cs
- ScribuntoExternalLibraries extensions/cs
- CargoSetFormatClasses extensions/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- All extensions/cs
- Extensions included in wiki.gg/cs
- Array extensions/cs
- Extensions by Wikibase Solutions/cs
