Miguel de Cervantes y Saavedra - Don Quijote de la Mancha - Ebook:
HTML+ZIP- TXT - TXT+ZIP

Wikipedia for Schools (ES) - Static Wikipedia (ES) 2006
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Википедия:Функции парсера — Википедия

Википедия:Функции парсера

Материал из Википедии — свободной энциклопедии

Ссылка:
ВП:ФП

В апреле 2006 в во всех проектах фонда Викимедиа установлено расширение ParserFunctions, написанное Тимом Старлингом.

Этот модуль содержит набор функций парсера. Общий синтаксис этих функций таков:

{{#функция: аргумент 1 | аргумент 2 | аргумент 3…}}

Содержание

[править] Функции

[править] #expr:

Функция expr производит математические вычисления над числами или переменными/параметрами, приводимыми к числам. Синтаксис:

{{ #expr: выражение }}

Поддерживаются следующие операторы (перечислены в порядке, примерно соответствующем их приоритету):

Оператор Действие Пример
{{#expr: 123456789012345}} = 1.2345678901234E+14
{{#expr: 0.000001}} = 1E-06
( ) Операторы группирования {{#expr: (30 + 7) * 7 }} = 259
+ Унарный знак + {{#expr: +30 * +7}} = 210
- Унарный знак - (инвертирование знака) {{#expr: -30 * -7}} = 210
not Унарное либо логическое НЕ {{#expr: not 0 * 7}} = 7
{{#expr: not 30+7}} = 7
* Умножение {{#expr: 30 * 7}} = 210
/ Деление, эквивалент div {{#expr: 30 / 7}} = 4.2857142857143
div Деление, эквивалент /,
целочисленного деления нет
{{#expr: 30 div 7}} = 4.2857142857143
{{#expr: 5 div 2 * 2 + 5 mod 2}} = 6
mod Остаток от деления, получается делением аргументов, у которых отброшены дробные части
Обратите внимание, что div и mod работают не как в обычных языках программирования.
{{#expr: 30 mod 7}} = 2
{{#expr: -8 mod -3}} = -2
{{#expr: -8 mod +3}} = -2
{{#expr: 8 mod 2.7}} = 0
{{#expr: 8 mod 3.2}} = 2
{{#expr: 8.9 mod 3}} = 2
+ Сложение {{#expr: 30 + 7}} = 37
- Вычитание {{#expr: 30 - 7}} = 23
round Округляет число слева от себя до 1/10 в степени числа, указанного справа {{#expr: 30 / 7 round 3}} = 4.286
{{#expr: 30 / 7 round 0}} = 4
{{#expr: 3456 round -2}} = 3500
= Равенство (численное и булево сравнение) {{#expr: 30 = 7}} = 0
<> Неравенство, эквивалент != {{#expr: 30 <> 7}} = 1
!= Неравенство, эквивалент <> и логического xor {{#expr: 1 != 0}} = 1
< Меньше {{#expr: 30 < 7}} = 0
> Больше {{#expr: 30 > 7}} = 1
<= Меньше или равно {{#expr: 30 <= 7}} = 0
>= Больше или равно {{#expr: 30 >= 7}} = 1
and Логическое И {{#expr: 4<5 and 4 mod 2}} = 0
or Логическое ИЛИ {{#expr: 4<5 or 4 mod 2}} = 1

Как всегда, лучше поставить лишние скобки, чем ломать голову с порядком вычисления

Булевые операторы исходят из того, что 0 соответствует лжи, а 1 — истине.

Например:

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

выдаёт:

38

Произведено преобразование 100° по Фаренгейту в градусы по Цельсию с округлением до ближайшего целого числа.

[править] #if:

Функция if (англ. если) служит для создания конструкций вида if-then-else. Её синтаксис таков:

{{ #if: <условие> | <текст, если условие истинно> | <текст, если условие ложно> }}

Если условие — пустая строка или состоит только из пробелов, считается, что условие не выполнено и возвращается текст, если условие ложно; если задано корректное условие, то при его выполнении возвращается текст, если условие истинно. Последний параметр может быть опущен — в этом случае при ложном условии будет возвращена пустая строка.

Обратите внимание, что if не поддерживает сравнение при помощи «=» и прочие математические операции. Так, {{#if: 1 = 2|да|нет}} возвратит «да», так как строка «1 = 2» не пуста. Для сравнения строк используйте ifeq. Для сравнения чисел используйте ifexpr.

[править] #ifeq:

Функция ifeq сравнивает две строки, возвращая ещё одну строку в зависимости от результата сравнения. Её синтаксис таков:

{{ #ifeq: <строка для сравения 1> | <строка для сравения 2> | <текст, если равны> | <текст, если не равны> }}

[править] #ifexist:

[править] #ifexpr:

ifexpr вычисляет математическое выражение и возвращает одну из двух строк в зависимости от результата.

{{ #ifexpr: <выражение> | <текст, если истина> | <текст в противном случае> }}

Если результат вычислений равен нулю — возвращается второй текст, в противном случае — первый. Математический синтаксис такой же, как у expr.

[править] #switch:

[править] #time:

#time — функция форматирующая время и дату. Синтаксис:

{{ #time: format }}

или

{{ #time: format | time }}

Если время не задано то используется текущее.

Из-за кеширования возможно различие между реальным временем и отображаемым. Для ручного обновления сохраните страницу не делая никаких изменений, или перейдите по адресу http://ru.wikipedia.org/w/index.php?title=Имя_страници&action=purge

Аргумент format подобен используемому в функции PHP date

Символ Описание Пример Текущее значение
d День месяца с нулём. 04 22
D Краткое название дня недели. Пн Пт
j День месяца без нуля. 4 22
l Полное название дня недели. понедельник пятница
N Номер дня недели ISO 8601 1 (понедельник) — 7 (воскресенье) 5
w Номер дня недели 0 (воскресенье) — 6 (суббота) 5
z Номер дня года (начиная с 0) 0 — 365 355
W Номер недели ISO 8601 51
F Полное название месяца в именительном падеже. январь декабрь
xg Полное название месяца в родительном падеже. января декабря
m Номер месяца с нулём. 01 — 12 12
M Краткое название месяца. сен дек
n Номер месяца без нуля. 1 — 12 12
t Количество дней в месяце 28 — 31 31
L Проверка является ли год високосным 1 если год високосный, иначе 0 0
Y Год с 4 цифрами. 2006 2006
y Год с 2 цифрами. 06 06
a am или pm am
A AM или PM AM
g 12-часовой формат без 0 1 — 12 9
G 24-часовой формат без 0 0 — 23 9
h 12-часовой формат с 0 01 — 12 09
H 24-часовой формат c 0 00 — 23 09
i Минута с нулём. 00 — 59 25
s Секунда с нулём. 00 — 59 46
c ISO 8601 2006-12-22T09:25:46+00:00
r RFC 2822 Fri, 22 Dec 2006 09:25:46 +0000
U UNIX-время 1166779546

Расширение PHP cинтаксиса:

Символ Описание
xn Выводит следующий числовой код в ASCII число. Например, на языке хинди {{ #time:«H, xnH»}} выведет «०६, 06».
xr Выводит следующий числовой код римскими цифрами (только для чисел <3000). Например, {{ #time:«Y, xrY»}} выведет «2006, MMVI».
xx Буква «x»

Все другие символы будут выведены без изменений.

  • Фраза заключёная в двойные кавычки будет выведена без изменений и кавычек. Незакрытые кавычки будут считаться символами.
    • {{ #time: "Сегодня" l}} → Сегодня вторник
    • {{ #time:i’s"}} → 20’11"
  • Наклонная черта влево работает так же как и в PHP date(). \H выводит H, \" выводит ".

Формат параметра time идентичен используемому в PHP strtotime(). Это могут быть абсолютные и относительные даты, например «11 декабря» и/или «+10 hours», что может использоваться для перевода временных зон. GNU tar manual.

  • {{ #time: j F Y | -14 days }} → 8 декабрь 2006 (14 дней назад)
  • {{ #time: H:i | +4 hours }} → 13:25 (UTC+4)
  • {{ #time: H:i | 8:15 +6 hours }} → 14:15

[править] #rel2abs:

Функция #rel2abs преобразует относительный путь ссылки в абсолютнный.

{{ #rel2abs: | path }}

Под относительным путём пнимается такой, который начинается с символов '/', './' или '../', а также просто '..' или '.'.

Пример:

  • Если находиться на стр. Help:Foo/bar и вызвать {{#rel2abs: ../baz}}, результатом должно стать Help:Foo/baz
  • Если находиться на стр. Help:Foo и вызвать {{#rel2abs: ../baz}}, результатом должно стать baz
  • Если находиться на стр. Help:Foo и вызвать {{#rel2abs: ../../baz}}, результатом должно стать Error: Invalid depth in path: "Help:Foo/../../baz" (tried to access a node above the root node)"

Чтобы не проверять, существует ли искомый путь, можно использоват эту функцию в комбинации с #ifexist:

{{#ifexist: {{#rel2abs: ..}} | '..' exist | '..' does not exist}}

Если путь, передаваемый на вход функции в качестве параметра, не идентифицирован как относительный путь, функция его вернёт в качестве результата. Например:

{{#rel2abs: Help:Help}} возвращает 'Help:Help'

[править] Установка

Скачайте все три указанных ниже файла и установите их в новую директорию ParserFunctions в директории расширений MediaWiki.

Затем добавьте в конец файла LocalSettings.php строку

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

Дерево кода можно посмотреть тут:

[править] Ссылки

 
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com