Постоянно защищенный модуль
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Документация по модулю [ просмотреть ] [ изменить ] [ историю ] [ очистить ]

Этот модуль разработан специально для реализации механизма, который перемещает контроль над тем, используются ли значения Викиданных в шаблоне, от кодировщика шаблонов на уровне дизайна шаблона к редактору на уровне статьи. Он предназначен только для использования внутри информационного окна или другого шаблона.

Одна из двух песочниц должна использоваться для тестирования чего-либо, кроме тривиальных поправок.

Доступны тестовые примеры для основного модуля и двух песочниц.

Обзор

Модуль предоставляет эти вызовы специально для использования в информационных ящиках в настоящее время:

  1. getValue - основной вызов, используемый для получения значения (значений) данного свойства
  2. getQualifierValue- дано: (1) имущество; (2) его ценность; (3) идентификатор свойства квалификатора, возвращает значения, которые соответствуют
  3. getValueByQual получает значение свойства, имеющего квалификатор с заданным значением сущности
  4. getValueByLang получает значение свойства, имеющего квалификатор P407 («язык работы или имя»), значение которого имеет данный код языка.
  5. getValueByRefSource получает значение свойства, на которое есть ссылка, "указанная в" (P248), значение которого имеет заданный идентификатор объекта.
  6. getPropOfProp если значение (я) prop1 относится к типу "wikibase-item", тогда оно возвращает значение (я) prop2 каждого из этих элементов wikibase
  7. getAwardCat если элемент имеет значения P166 (получено вознаграждение), тогда он проверяет каждую из этих наград на P2517 (категория для получателей этой награды) и возвращает соответствующую категорию с P734 элемента (фамилия) в качестве ключа сортировки или нет ключ сортировки, если нет фамилии
  8. getIntersectCat для каждого значения prop1 он выбирает основную категорию значения, а затем каждое значение prop2, затем возвращает все категории, представляющие пересечение этих свойств
  9. getSumOfParts сканирует свойство «имеет часть» (P527) на предмет значений, соответствующих списку. Если сопоставленные значения имеют квалификатор «количество» (P1114), эти количества суммируются и возвращаются (но ноль возвращает ноль)
  10. getCoords - получает координаты и передает их через Template: Coord

Устаревший вызов getSourcedValue теперь удален, поскольку он избыточен для getValue, который может выполнять ту же работу с использованием |onlysourced=trueпараметра (который установлен по умолчанию). Устаревший вызов getPreferredValue по-прежнему сохраняется, но его следует заменить на getValue|rank=best.

Также существуют следующие служебные вызовы:

  1. getLinkесли есть дополнительная ссылка на статью в локальной Wiki, она возвращает ссылку на статью с меткой Wikidata в качестве отображаемого текста. Если дополнительной ссылки нет, он возвращает ярлык в виде обычного текста. Если метки на местном языке нет, возвращается идентификатор объекта.
  2. getAT (Заголовок статьи) Если есть дополнительная ссылка на статью в локальной вики, она возвращает дополнительную ссылку в виде обычного текста, в противном случае ничего
  3. getSiteLink получает текстовую ссылку на статью в данной вики
  4. getLabelвозвращает метку Викиданных для местного языка в виде обычного текста. Если метки на местном языке нет, возвращается идентификатор объекта.
  5. getAllLabels извлекает набор меток и форматирует его для отображения как вики-текст
  6. labelorid возвращает метку со всем удаленным викитекстом или идентификатор объекта, если метки нет
  7. getDescription возвращает описание статьи для объекта Викиданных, если локальный параметр - «Викиданные».
  8. getAllDescriptions извлекает набор описаний и форматирует его для отображения как вики-текст
  9. getAliases возвращает псевдонимы для объекта на текущем или заданном языке
  10. getAllAliases извлекает набор псевдонимов и форматирует его для отображения как вики-текст
  11. pageId возвращает идентификатор подключенной страницы Викиданных (entity-ID, Q-number) текущей страницы
  12. formatDate берет datetime обычного формата из mw.wikibase.entity: formatPropertyValues ​​и форматирует его в соответствии с параметрами df (формат даты) и bc
  13. formatNumber форматирует число в соответствии с предоставленным кодом языка
  14. checkBlacklistвозвращает истину, если поле не занесено в черный список (т.е. разрешено)
  15. emptyor возвращает nil, если параметр представляет собой просто знаки препинания, пробелы или html-теги, в противном случае возвращает аргумент без изменений
  16. getLang возвращает код языка MediaWiki или полное название языка текущего контента
  17. getItemLangCode ищет страну (P17), затем официальный язык этой страны (P37) и возвращает код языка (P424)
  18. findLanguageвозвращает (1) предоставленный язык, если он действителен; или (2) установленный пользователем язык; или (3) язык текущей вики
  19. getQidвозвращает (1) идентификатор объекта, если он указан; или (2) идентификатор объекта «основной темы категории (P301)»; или (3) идентификатор объекта, связанный с текущей страницей; или (4) ничего
  20. followQid учитывая список свойств, ищет каждое свойство по очереди и возвращает идентификатор объекта первого совпадающего значения (необязательно возвращает все идентификаторы объекта, которые совпадают)
  21. getGlobe возвращает идентификатор объекта земного шара, используемый в P625 (координаты местоположения), или ноль, если его нет
  22. getCommonsLinkвозвращает одно из следующего в порядке предпочтения: ссылка сайта Commons связанного элемента Викиданных; ссылка сайта Commons основной категории темы связанного элемента Викиданных;
  23. siteID возвращает корень globalSiteID, например "en" для "enwiki", "enwikisource", "en-gb" и т. д.
  24. projID то же, что и siteID
  25. location сканирует из текущего местоположения вверх по цепочке местоположений более высокого уровня, возвращая каждое из них, пока не достигнет страны
  26. examine возвращает отформатированный дамп данного свойства
  27. url2принимает параметр, который является правильным URL-адресом, и форматирует его для использования в информационном окне; он принимает свой собственный вывод как ввод
  28. getWebsite загружает официальный веб-сайт (P856) и форматирует его для использования в информационном окне
  29. checkvalueпросматривает свойство для данного идентификатора объекта как его значение и возвращает этот идентификатор объекта, если он найден; в противном случае ноль
  30. checkValidity возвращает, представляет ли первый безымянный параметр действительный идентификатор объекта
  31. showNoLinks отображает заголовки статей, которые не следует связывать

Примеры звонков:

{{#invoke: WikidataIB | getValue | <PropertyID> | name = <fieldname> | suppressfields = <список полей, которые никогда не будут отображаться> | fetchwikidata = <список полей для получения значений из Викиданных> | onlysourced = <да / нет > | noicon = <yes / no> | df = <dmy / mdy / y> | bc = <BC / BCE> | qual = <ALL / DATES / P999> | list = <ubl / hlist / prose> | connected = <да / нет> | <локальный параметр>}}
{{#invoke: WikidataIB | getCoords | name = <fieldname> | suppressfields = <список полей, которые никогда не будут отображаться> | fetchwikidata = <список полей для получения значений из Викиданных> | <локальный параметр>}}
{{#invoke: WikidataIB | getQualifierValue | <PropertyID> | pval = <ID целевого значения для свойства> | qual = <квалификатор ID для этого целевого значения> | name = <fieldname> | suppressfields = <список полей, которые будут никогда не отображать> | fetchwikidata = <список полей для получения значений из Викиданных> | onlysourced = <да / нет>}}
{{#invoke: WikidataIB | getValueByQual | <PropertyID> | qualID = <идентификатор свойства квалификатора для сопоставления> | qvalue = <QID целевого значения для свойства квалификатора> | name = <fieldname> | suppressfields = <список полей, которые будут никогда не отображать> | fetchwikidata = <список полей для получения значений из Викиданных> | onlysourced = <да / нет>}}
{{#invoke: WikidataIB | getValueByLang | <PropertyID> | lang = <код языка для сопоставления> | name = <fieldname> | suppressfields = <список полей, которые никогда не будут отображаться> | fetchwikidata = <список полей для выборки значений Викиданные> | onlysourced = <да / нет>}}


Функция getValue

Параметры для getValue

Базовые параметры

  • getValue также может принимать именованный параметр, |qid=который является идентификатором Викиданных для статьи. Обычно это не используется, так как по умолчанию для текущей статьи не используется.
  • Свойство, значение которого должно быть возвращено, передается в первом безымянном свойстве и является обязательным.
  • Второй безымянный параметр, если он указан, станет возвращаемым значением, и обращение к Викиданным выполняться не будет.

Белый и черный список

  • Имя поля, из которого вызывается эта функция, передается в именованном параметре |name=, который сначала проверяется на соответствие черному списку полей, которые никогда не должны отображаться (т.е. вызов должен возвращать nil при любых обстоятельствах). Если поля нет в черном списке, оно проверяется на соответствие белому списку. Если имя поля совпадает, вызов вернет любое локально предоставленное значение, если оно указано как второй безымянный параметр, или значение Викиданных в противном случае.
  • Указание |fetchwikidata=ALL- это ярлык для возврата всех полей, не внесенных в черный список.
  • Имя является обязательным при использовании черного или белого списка, поэтому модуль возвращает ноль, если он не указан, кроме случаев, когда |fetchwikidata=ALL.
  • Черный список передается в указанном параметре |suppressfields=
  • Белый список передается в указанном параметре |fetchwikidata=

Sourcing

Функция getValue принимает логический параметр, onlysourcedкоторый подавляет возврат значений Викиданных, которые не получены или получены только из проекта Викимедиа. Отсутствие параметра, пустой параметр ( |onlysourced=) и пустая строка ( "") по умолчанию имеют значение true (т.е. возвращаются только ссылочные значения). Значения no, falseи 0рассматриваются как ложные (т.е. все значения возвращаются); любое другое значение является истинным (хотя |onlysourced=yes/noрекомендуется для удобства чтения).

Ссылка на Викиданные

Функция getValue примет логический параметр, noiconкоторый подавит завершающий значок «редактировать в Викиданных» и ссылку для случаев, когда возвращаемое значение должно быть дополнительно обработано информационным блоком (например, URL-адрес). Отсутствие параметра или пустой параметр ( |noicon=) по умолчанию false (т.е. добавляется значок). Пустая строка ( "") и значение no, falseи 0рассматриваются как ложные; любое другое значение является истинным (хотя |noicon=trueрекомендуется для удобства чтения).

После обсуждения на Module talk: WikidataIB #Visibility of Pen icon , значок ручки скрыт от пользователей, которые не прошли автоподтверждение . Это означает, что большинство читателей не видят значок пера, и представляет собой баланс между эстетикой и вандализмом в Викиданных, с одной стороны, и желанием поощрять редактирование Викиданных, с другой.

Даты

Чтобы удовлетворить требования к датам в форматах mdy, dmy или просто года, getValue принимает именованный параметр, |df=который может принимать значения «dmy», «mdy» или «y» - по умолчанию это «dmy».

Поскольку для статьи может потребоваться любой из суффиксов BC и BCE, getValue принимает именованный параметр, |bc=который может принимать значения «BC» или «BCE» - по умолчанию это «BCE». Некоторые тестовые примеры показаны в Обсуждении модуля: WikidataIB / testing #Calls to getValue для дат .

Ранги

|rank=Параметр, когда установлен в предпочтительных, возвращает только предпочтительных значения; при установке в нормальное состояние возвращает только нормальные значения; если задано значение deprecated, возвращает только устаревшие значения. Если для параметра установлено значение best, он возвращает предпочтительные значения, если они есть, в противном случае - нормальные значения. Любое значение параметра, начинающееся с «p», является «предпочтительным»; любое значение параметра, начинающееся с «n», является «нормальным»; любое значение параметра, начинающееся с "d", считается "устаревшим"; любое значение параметра, начинающееся с «b», является «наилучшим». Допускаются комбинации значений, например, |rank=p nвозвращаются все предпочтительные и нормальные значения (по умолчанию), хотя «лучший» переопределяет любые другие параметры.

Конкретные обработчики типа значения

В модуле есть специальные обработчики для следующих типов данных:

  1. Элементы, которые соответствуют статье в некоторой Википедии, называются «элементы викибазы». Там, где это возможно, они будут связаны с соответствующей статьей в англоязычной Википедии (и без нее).
  2. Элементы, представляющие даты. Это могут быть столетия, годы, годы и месяцы или годы, месяцы и дни.
  3. Элементы, которые представляют собой носители Commons, URL-адреса, внешние идентификаторы или другие виды обычного текста.
  4. Предметы, представляющие количество. Все они могут иметь связанную единицу или быть безразмерными, а также иметь диапазон.
  5. Элементы, представляющие глобальные координаты. Они будут в градусах широты и долготы и будут иметь соответствующую точность.

Элементы, представляющие другие типы данных, в настоящее время не обрабатываются.

Третий класс типов данных может использоваться с параметрами:

  • |prefix=, |postfix=, |linkprefix=,|linkpostfix=

Если вы не укажете хотя бы одно из |linkprefix=или |linkpostfix=, тогда будут использоваться только |prefix=и |postfix=. Например, при получении кода обсерватории Центра малых планет (P717) в Венской обсерватории (Q532127) :

  • {{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}} → до 045 после, до 545 после 

Используйте двойные кавычки, чтобы заключить значение параметра, если оно имеет начальные или конечные пробелы (в противном случае они удаляются). Если вы указываете |linkprefix=или |linkpostfix=, то используются все четыре параметра, и для каждого значения создается ссылка, подобная этой:

  • [[ linkprefix WikidataValue1 linkpostfix | prefix WikidataValue1 postfix]], [[ linkprefix WikidataValue2 linkpostfix | prefix WikidataValue2 postfix]], etc.

Это позволяет делать несколько ссылок на разные разделы статьи-списка, например на Список кодов обсерватории . Например, при получении кода обсерватории Центра малых планет (P717) в Венской обсерватории (Q532127) мы можем сделать ссылки:

  • {{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="List of observatory codes#" |linkpostfix= |qid=Q532127}} → [Список кодов обсерваторий # 045 045], [Список кодов обсерваторий # 545 545] 

Параметры |prefix=, |postfix=, |linkprefix=, |linkpostfix=также применяются к wikibase-элементов , если они связаны между собой .

Форматирование нескольких возвращаемых значений

  • |sorted=<yes|no>- это логическое значение, переданное для сортировки возвращаемых значений. Нет параметра, или пустая строка, или «false», или «no», или «0» отключает сортировку. Это всего лишь очень глупая сортировка по алфавиту и сортирует связанные значения как «[[...»
  • |sep=<separator characters>позволяет определить разделитель между несколькими возвращаемыми значениями. По умолчанию ", "(запятая плюс нормальный пробел). Если в разделителе есть начальные или конечные пробелы, заключите его в двойные кавычки (например, |sep=" - "). Любые двойные кавычки удаляются из разделителя. Символ вертикальной черты ( |) должен быть экранирован как {{!}}. По причинам доступности (см. MOS: PLIST ) не используйте |sep=<br>для вертикальных неразмеченных списков; используйте |list=ublвместо этого.
  • |list=<prose|cslist|hlist|ubl|blist|olist>позволяет отображать несколько возвращаемых значений в виде предложения с двумя последними значениями, разделенными "и" ( |list=prose), горизонтальным списком, разделенным запятыми ( |list=cslistне для использования в прозе), горизонтальным списком ( |list=hlist), вертикальным списком без маркировки ( |list=ubl) , вертикальный маркированный список ( |list=blist) или вертикальный упорядоченный список ( |list=olist). Они переопределяют разделитель и не отображают «значок пера», связанный с «Редактировать в Викиданных».
  • |list=p-1отображает последнее значение. Совместите с, чтобы отобразить n- е значение.|maxvals=n

Ограничение возвращаемых значений

Иногда ожидается, что свойство будет иметь одно значение, например изображение (P18) , но может иметь несколько значений в Викиданных. Установка |maxvals=1ограничивает количество возвращаемых значений до 1. Возможны любые другие значения и функции, как и ожидалось, но ноль рассматривается как «без ограничений».

Отключение

Возвращаемое значение, представляющее статью в локальной вики, по умолчанию будет связано. Сюда входят перенаправления, но не страницы-мазки. Иногда нет необходимости связывать возвращаемые значения, и это может быть выполнено путем установки |linked=no.

Сокращения единиц измерения

Если возвращаемое значение является количеством, добавляется название единиц, в которых оно выражено. Инфобоксы могут пожелать использовать сокращения вместо обычных единиц. Это можно сделать, установив |unitabbr=true.

Отборочные

Параметр |qual=может быть подан, который будет возвращать классификаторы требуемого свойства, если они существуют. Если значение установлено в список разделенных пунктуацией идентификаторов свойств (например, P123, P456), то будут возвращены только значения квалификаторов с этим свойством. Если установлено значение |qual=ALL, то возвращаются все значения квалификаторов. Если установлено значение, |qual=DATESто время начала (P580) и время окончания (P582) свойства возвращаются с разделителем даты. В каждом случае любые возвращаемые значения квалификаторов следуют за значением свойства и заключаются в круглые скобки. Если возвращено несколько значений квалификатора, они по умолчанию будут разделены запятыми, хотя разделитель можно изменить, указав|qsep=(которые могут быть заключены в двойные кавычки, которые удаляются, чтобы можно было включить пробелы). При установке параметра |qsorted=yesвозвращаемые значения квалификаторов сортируются по алфавиту.

Краткая форма параметров

Некоторые из более длинных параметров могут быть сокращены, чтобы сделать дизайн инфобокса более компактным:

  • fwd → fetchwikidata
  • osd → onlysourced
  • spf → suppressfields
  • wdl → wdlinks

Наборы параметров

Как правило, getValueимеет набор значений по умолчанию для своих параметров, которые представляют собой согласованные решения редакторов. Например, по |onlysourced=умолчанию trueбудут возвращены только значения Викиданных, источником которых является нечто большее, чем «Википедия», а по |fetchwikidata=умолчанию noneничего не возвращается, пока это не будет разрешено путем установки некоторых имен полей или «ВСЕ». Это представляет собой отказоустойчивое состояние и позволяет сделать информационные боксы совместимыми с Викиданными без изменения какой-либо статьи до тех пор, пока эта статья не будет включена .

Чтобы упростить использование getValueв других обстоятельствах, общие комбинации параметров могут быть указаны с помощью |parameterset=или его псевдонимом |ps=для удобства. В настоящее время реализованы две комбинации, а именно:

пс = 1
общий набор переопределений для получения простого значения, по возможности связанный:
  • rank = "лучший"
  • fetchwikidata = "ВСЕ"
  • onlysourced = "нет"
  • noicon = "правда"
пс = 2
своего рода необработанное значение в виде обычного текста:
  • rank = "лучший"
  • fetchwikidata = "ВСЕ"
  • onlysourced = "нет"
  • noicon = "правда"
  • connected = "нет"
  • plaindate = "правда"

При необходимости могут быть созданы другие наборы.

Шаблон оболочки

Шаблон {{ wdib }} можно использовать как удобную оболочку для {{#invoke:WikidataIB |getValue}}.

Другие основные функции

Функция getPreferredValue

Функция getPreferredValue работает точно так же, как getValue, принимая те же параметры, но если для каких-либо значений свойства установлен предпочтительный ранг, она вернет только эти значения. Теперь это не рекомендуется в пользу getValue|rank=best.

Функция getCoords

  • getCoords также может принимать именованный параметр, |qid=который является идентификатором Викиданных для статьи. Обычно это не используется, так как по умолчанию для текущей статьи не используется.
  • Первый безымянный параметр, если он указан, станет возвращаемым значением, и никаких вызовов Викиданных выполняться не будет.
  • Координаты из Викиданных анализируются и передаются в Template: Coord, который возвращает отображение, как если бы оно было вызвано вручную.
  • Черный список полей, которые никогда не должны отображаться, и белый список реализованы так же, как и для getValue с использованием |suppressfields=и|fetchwikidata=
  • formatПараметр устанавливает формат отображения в десятичной или д.м.н.. Любое значение, начинающееся с «dec», устанавливает десятичное число; все остальное устанавливает dms.
  • displayПараметр задает позицию отображения на «инлайн», «название» или «инлайн, название». По умолчанию ничего нет (поэтому используется значение по умолчанию для {{ Coord }}, в настоящее время "встроенное").

Функция getQualifierValue

Функция getQualifierValue используется, когда мы хотим получить значение квалификатора. Нам нужно знать свойство и значение свойства, к которому относится квалификатор. Параметры следующие:

  • Идентификатор свойства, переданный в безымянном параметре (или |1=)
  • Целевое значение для этого свойства в |pval=
  • Идентификатор квалификатора для этого целевого значения в |qual=
  • Те же параметры для реализации белого и черного списков свойства, что и в getValue.
  • Необязательное логическое значение, указывающее, будут ли возвращаться только исходные значения свойства (по умолчанию "нет") в |onlysourced=
  • Необязательный идентификатор элемента для произвольного доступа в |qid=
  • Те же параметры для форматирования вывода, что и в getValue

Пример getQualifierValue

В телескопе Южного полюса (Q1513315) есть событие, имеющее важное значение для собственности (P793) , которое имеет конструкцию значения (Q385378) . У него есть два квалификатора: время начала (P580) и время окончания (P582) . Чтобы узнать дату начала:

  • {{#invoke:WikidataIB |getQualifierValue |qid=Q1513315 |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL }}

В телескоп Южного полюса он возвращает:

  • Ноябрь 2006 г. 

Функция getValueByQual

Функция getValueByQual возвращает значение свойства, имеющего квалификатор с заданным значением сущности. Параметры следующие:

  • Идентификатор свойства, переданный в безымянном параметре (или |1=)
  • Идентификатор свойства для квалификатора (или "ВСЕ" или "ДАТЫ") в |qualID=
  • Идентификатор объекта Wikibase значения для этого квалификатора в |qvalue=
  • Те же параметры для реализации белого и черного списков свойства, что и в getValue.
  • Необязательное логическое значение, указывающее, будут ли возвращаться только исходные значения свойства (по умолчанию "нет") в |onlysourced=
  • Необязательный идентификатор элемента для произвольного доступа в |qid=
  • Те же параметры для форматирования вывода, что и в getValue

Пример getValueByQual

В мясе (Q10990) есть свойство произношения аудио (P443), которое имеет несколько значений, каждое из которых имеет квалификационный язык работы или имени (P407) . Мы можем вернуть значение свойства, квалификатор которого имеет значение British English (Q7979).

  • {{#invoke:WikidataIB |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q7979 |fwd=ALL |osd=no |noicon=true}} → En-uk-meat.ogg

Функция getValueByLang

Функция getValueByLang возвращает значение свойства, имеющего квалификатор языка работы или имени (P407) , значение которого имеет код данного языка. Параметры следующие:

  • Идентификатор свойства, переданный в безымянном параметре (или |1=)
  • Код языка Викимедиа (P424) соответствует языку, код которого задается |lang=xx[-yy]. Если код не указан, используется язык по умолчанию.
  • Те же параметры для реализации белого и черного списков свойства, что и в getValue.
  • Необязательное логическое значение, указывающее, будут ли возвращаться только исходные значения свойства (по умолчанию "нет") в |onlysourced=
  • Необязательный идентификатор элемента для произвольного доступа в |qid=
  • Те же параметры для форматирования вывода, что и в getValue

Пример getValueByLang

В OSDN (Q7565108) есть официальный веб-сайт собственности (P856), который имеет несколько значений, каждое из которых имеет квалификационный язык работы или имени (P407) . Мы можем вернуть значение свойства, значение квалификатора языка работы или имени (P407) (элемент WD) само имеет свойство кода языка Викимедиа (P424), которое является «ja», т. Е. Японский (Q5287).

  • {{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}→ https://ja.osdn.net/

Если |lang=не указано, мы можем получить то же значение с языком по умолчанию (здесь это английский (Q1860), а его код языка Викимедиа (P424) - «en»)

  • {{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}→ https://osdn.net/

Служебные функции

Функция getLink

getLink имеет qid объекта Викиданных, переданный как первый безымянный параметр или как | qid =

Если есть дополнительная ссылка на статью в локальной Wiki, она возвращает ссылку на статью с меткой Wikidata в качестве отображаемого текста. Если дополнительной ссылки нет, он возвращает ярлык в виде обычного текста. Если метки на местном языке нет, вместо нее отображается qid.

Викиданные: (Q29016906) и археолог (Q3621491)
  • {{#invoke:WikidataIB |getLink |Q29016906}}→ Q29016906
  • {{#invoke:WikidataIB |getLink |Q3621491}}→ археолог

Функция getLabel

getLabel имеет qid объекта Викиданных, переданный как первый безымянный параметр или как |qid=

Он возвращает метку Викиданных на местном языке для элемента по заданному qid. Если метки на местном языке нет, вместо этого возвращается qid. Обратите внимание, что это метка, присвоенная записи Викиданных на том же языке, что и текущая Вики, если метка существует.

Викиданные: (Q29016906) и археолог (Q3621491)
  • {{#invoke:WikidataIB |getLabel |Q29016906}} → Q29016906
  • {{#invoke:WikidataIB |getLabel |Q3621491}} → археолог
  • {{#invoke:WikidataIB |getLabel |Q19805408}} → Модуль: Biblio / Ouvrage

Метка функции

метка имеет qid объекта Викиданных, переданный как первый безымянный параметр или как |qid=

Он возвращает метку Викиданных на местном языке для элемента по заданному qid или связанного с текущей страницей. Если метки на местном языке нет, возвращается пустая строка. Обратите внимание, что это метка, присвоенная записи Викиданных на том же языке, что и текущая Вики, если метка существует.

Викиданные: (Q29016906) и археолог (Q3621491)
  • {{#invoke:WikidataIB |label |Q29016906}}
  • {{#invoke:WikidataIB |label |Q3621491}} → археолог
  • {{#invoke:WikidataIB |label |Q19805408}} → Модуль: Biblio / Ouvrage

Функция getAT

getAT имеет qid объекта Викиданных, переданный как первый безымянный параметр или как | qid =

Если есть дополнительная ссылка на статью в локальной Wiki, она возвращает дополнительную ссылку в виде простого текста, т. Е. Заголовка статьи. Если дополнительной ссылки нет, она ничего не возвращает. Обратите внимание, что это заголовок статьи в текущей Википедии, если межъязыковая ссылка существует в записи Викиданных.

Викиданные: (Q29016906) и археолог (Q3621491)
  • {{#invoke:WikidataIB |getAT |Q29016906}} → Кориска и сатир
  • {{#invoke:WikidataIB |getAT |Q3621491}} → Археолог

Функция getDescription

getDescription имеет qid объекта Викиданных, переданный как | qid = (по умолчанию используется связанный qid текущей статьи, если он опущен). Он имеет локальный параметр, переданный как первый безымянный параметр. Любой переданный локальный параметр (кроме «Wikidata» или «none») становится возвращаемым значением. Он возвращает описание статьи для объекта Викиданных в виде обычного текста, если локальный параметр - «Викиданные». Ничего не возвращается, если описание не существует или в качестве локального параметра передано «none».

Викиданные: (Q29016906) и археолог (Q3621491)
  • {{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}} → картина Артемизии Джентилески
  • {{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}} → Картина
  • {{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}
  • {{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}} → человек, изучающий человеческую деятельность в прошлом
  • {{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}} → Профессия
  • {{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}

Формат функции Дата

formatDate принимает дату и время обычного формата из mw.wikibase.entity: formatPropertyValues, например «1 августа 30 г. до н.э.» в качестве параметра 1 и форматирует его в соответствии с параметрами df (формат даты) и bc.

  • {{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}} → 1 августа 30 г. до н. Э.
  • {{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}} → 1 августа 30 г. до н.э.
  • df = "dmy" / "mdy" / "y" - по умолчанию "dmy"
  • bc = "BC" / "BCE" - по умолчанию "BCE"

Проверка функций

checkBlacklist позволяет тесту проверить, разрешено ли указанное поле. Возвращает истину, если поле не занесено в черный список (т.е. разрешено). Возвращает ложь, если поле занесено в черный список (т.е. запрещено).

Пример:

  • {{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}} → не занесен в черный список
  • {{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}} → не занесен в черный список

Функция пустая или

emptyor возвращает nil, если его первый безымянный аргумент представляет собой просто знаки препинания, пробелы или HTML-теги, в противном случае он возвращает аргумент без изменений (включая начальный / конечный пробел).

Если аргумент может содержать "=", то он должен быть вызван явно:

  • | 1 = whatever-the-argument-is

В этом случае начальные и конечные пробелы обрезаются.

Он находит применение в информационных боксах, где может заменить такие тесты, как:

  • {{#if: {{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> | }}

с формой, которая использует только один вызов Викиданных:

  • {{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}

Функция labelorid

labelorid - это общедоступная функция для отображения вывода labelOrId ().

Q-число (идентификатор объекта) передается как | qid = или как безымянный параметр.

Он возвращает метку Викиданных для этого объекта или qid, если метка не существует.

Функция getQid

  • getQid работает с текущей страницей и связанной с ней записью Викиданных.
  • Он возвращает qid, если он указан как первый безымянный параметр или как |qid=;
  • в противном случае идентификатор объекта Викиданных "основной темы категории (P301)", если он существует;
  • в противном случае идентификатор объекта Викиданных, связанный с текущей страницей, если он существует;
  • в противном случае ничего

Проверка функции

explore предоставляет дамп всего свойства, указанного в первом безымянном параметре (или в |pid=качестве именованного псевдонима), из элемента, заданного параметром 'qid', или из элемента, соответствующего текущей странице, если qid не указан. Оба параметра могут быть безымянными и указываться в любом порядке.

Она работает аналогично функции дампа , но загружает только одно утверждение, а не всю запись Викиданных.

  • Пример: {{#invoke:WikidataIB |examine |qid=Q1396889 |P50}}

Существует шаблон: Examine, который действует как оболочка для вызова.

  • Пример: {{examine |Q4048254 |P31}}
Таблица 1 { Таблица 2 { ["id"] = "q4048254 $ d1f08825-499b-8d4a-d1ee-304b2498a7fd", ["mainsnak"] = таблица №3 { ["datatype"] = "элемент викибазы", ["datavalue"] = таблица №4 { ["тип"] = "wikibase-entityid", ["значение"] = таблица №5 { ["entity-type"] = "предмет", ["id"] = "Q14204246", ["numeric-id"] = 14204246, }, }, ["property"] = "P31", ["snaktype"] = "значение", }, ["rank"] = "нормальный", ["тип"] = "инструкция", }, table # 6 { ["id"] = "Q4048254 $ 9af461b4-a1d0-4c67-a7f0-f668944a17d6", ["mainsnak"] = таблица №7 { ["datatype"] = "элемент викибазы", ["datavalue"] = таблица №8 { ["тип"] = "wikibase-entityid", ["значение"] = таблица № 9 { ["entity-type"] = "предмет", ["id"] = "Q4656150", ["numeric-id"] = 4656150, }, }, ["property"] = "P31", ["snaktype"] = "значение", }, ["rank"] = "нормальный", ["ссылки"] = таблица №10 { table # 11 { ["hash"] = "3bf39867b037e8e494a8389ae8a03bad6825a7fc", ["snaks"] = таблица №12 { ["P143"] = таблица № 13 { table # 14 { ["datatype"] = "элемент викибазы", ["datavalue"] = таблица №15 { ["тип"] = "wikibase-entityid", ["значение"] = таблица №16 { ["entity-type"] = "предмет", ["id"] = "Q191168", ["numeric-id"] = 191168, }, }, ["property"] = "P143", ["snaktype"] = "значение", }, }, }, ["snaks-order"] = таблица № 17 { «П143», }, }, }, ["тип"] = "инструкция", },}

Функция url2

url2 принимает параметр url =, который является правильным URL-адресом, и форматирует его для использования в информационном окне.

Примеры:

  1. {{#invoke:WikidataIB |url2 |url= http://www.example.com/ }}www .example .com 
    <span class = "url"> [http://www.example.com/ www <wbr />. example <wbr />. com] </span> & nbsp;
  2. {{#invoke:WikidataIB |url2 |url= http://www.example.com/path/ }}www .example .com / путь / 
    <span class = "url"> [http://www.example.com/path/ www <wbr />. example <wbr />. com <wbr /> / path <wbr /> /] </span> & nbsp;
  3. {{#invoke:WikidataIB |url2 |url= {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}www .audi .com 
    <span class = "url"> [https://www.audi.com/ www <wbr />. audi <wbr />. com] </span> & nbsp; <span class = 'penicon autoconfirmed-show'> [[Файл: значок пользовательского интерфейса OOjs edit-ltr -gressive.svg | frameless | text-top | 10px | alt = Отредактируйте это в Викиданных | link = https: //www.wikidata.org/wiki/Q23317? Uselang = en # P856 | Изменить это в Викиданных]] </span>
    {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}}→ https://www.audi.com/ 
    https://www.audi.com/ <span class = 'penicon autoconfirmed-show'> [[File: OOjs UI icon edit-ltr -gressive.svg | frameless | text-top | 10px | alt = Изменить это в Викиданных | link = https: //www.wikidata.org/wiki/Q23317? uselang = en # P856 | Редактировать в Викиданных]] </span>
  4. {{#invoke:WikidataIB |url2 |url= {{url|http://www.example.com/}} }}www .example .com www .example .com / www <wbr /> .example <wbr /> .com] < / span>] 
    <span class = "url"> [http://www.example.com/ www <wbr />. example <wbr />. com] </span> www <wbr />. example <wbr />. com <wbr /> / www <wbr <wbr /> /> <wbr />. example <wbr <wbr /> /> <wbr />. com] << wbr /> / span>] </span> & nbsp;

Сравнение с выводом {{ URL }}:

  1. {{URL | http://www.example.com/ }}www .example .com
    <span class = "url"> [http://www.example.com/ www <wbr />. example <wbr />. com] </span>
  2. {{URL | http://www.example.com/path/ }}www .example .com / путь /
    <span class = "url"> [http://www.example.com/path/ www <wbr />. example <wbr />. com <wbr /> / path <wbr /> /] </span>
  3. {{URL | {{wikidata|property|Q23317|P856}} }}www .audi .com
    <span class = "url"> [https://www.audi.com/ www <wbr />. audi <wbr />. com] </span>
    {{wikidata|property|Q23317|P856}}→ https://www.audi.com/
    https://www.audi.com/

Смотрите также

  • {{#invoke: URL | url}} & {{#invoke: URL | url2}}

Кодирование в инфобокс

Обычно вызов getValue вызывается в определении информационного окна с использованием соответствующих параметров шаблона. Одна простая реализация приведена в качестве примера в Template: Infobox book / Wikidata / Sandbox . В качестве иллюстрации поле «Автор» в информационном окне кодируется следующим образом:

| label2 = Автор {{# if: {{{авторы |}}} | s}}| data2 = {{#invoke: WikidataIB | getValue | P50 | name = author | fetchwikidata = {{{fetchwikidata |}}} | suppressfields = {{{suppressfields |}}} | {{{авторы | {{{автор |}) }}}}}}}

Выбираемое свойство - это первый безымянный параметр. В данном случае это автор (P50) .

Имя поля передается, |name=и это имя сверяется с черным списком и белым списком. Чтобы всегда подавлять поле автора в конкретной статье, редактор будет установлен |suppressfields=authorв информационном поле. В этом случае поле автора никогда не будет отображаться.

Если поле не занесено в черный список, то информационное окно может быть настроено на отображение локально предоставленного значения для автора, просто установив , например, в информационное окно. Он также принимает . Если имя поля находится в белом списке, например , и локальное значение не указано, то в информационном окне будет отображаться значение, полученное из Викиданных. Можно использовать любые разделители, кроме | и {}.|author=George Orwell|authors=|fetchwikidata=author; genre; pub_date; pages; dewey; congress

В сокращении |fetchwikidata=ALLбудет извлекаться все поля, не занесенные в черный список, если в статье для данного поля еще не указано локальное значение.

Поскольку метки Викиданных обычно пишутся в нижнем регистре, функцию ucfirst из Module: String2 можно использовать для заглавной буквы в возвращаемом тексте, например

  • {{#invoke:String2 | ucfirst | {{#invoke:WikidataIB |getValue |P136 |name=genre |fetchwikidata=ALL |onlysourced=false}} }}в животноводческой ферме (Q1396889) производит:
  • Roman à clef , сатирический роман, новелла , роман-антиутопия, басня 

Пример звонков в инфобокс

Базовое использование getValue:

  • {{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{localparameter|}}} }}

Полный набор параметров:

  • {{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |wdl={{{wikidatalink|}}} |df={{dateformat|}} |bc={{{bc|}}} |prefix= |postfix= |linkprefix= |linkpostfix= |sorted={{{sorted|}}} |sep={{{separator|}}} |list={{listtype|}}} |{{{localparameter|}}} }}

Конечно, любой из параметров может быть зафиксирован для данного поля в информационном окне, вместо того, чтобы принимать параметр, предоставленный в информационное окно, что повлияет на все поля. Например, в одном поле можно указать, |list=hlistгде ожидается серия коротких слов; в то время как другое поле может использоваться |list=ublтам, где требуется вертикальный список без маркировки из нескольких слов в каждой строке.

Координаты

Вызов getCoords отобразит вывод Template: Coord, если ему предоставлены координаты, возвращенные из Викиданных. Его можно закодировать так:

| label20 = Координаты| data20 = {{#invoke: WikidataIB | getCoords | name = координаты | suppressfields = {{{suppressfields |}}} | fetchwikidata = {{{fetchwikidata |}}} | {{{координаты |}}}}}

Примером является Шаблон: Инфобокс биосферного заповедника.

{{Инфобокс биосферного заповедника| fetchwikidata = ВСЕ}}

Отображает координаты в обычных позициях при использовании в статье, где координаты Викиданных.

Обновление существующих информационных ящиков

Поскольку параметр |fetchwikidata=необходим для любых функций Викиданных, существующее информационное окно может быть заменено информационным блоком, включающим эти вызовы, без каких-либо изменений в какой-либо статье. Каждую статью, использующую новое информационное окно, можно позже включить, указав |fetchwikidata=ALLили список обязательных полей для этой статьи. На этом этапе ответственность ложится на редактор, позволяющий проверять, не отображаются ли ненужные поля. Если это так, их можно добавить в черный список для статьи, установив |suppressfields=список нежелательных полей.

Проверяемость

Там, где всегда будет важно, чтобы конкретное поле содержало только те значения, на которые есть ссылки, используйте getValue, убедившись, что для |onlysourced=него не установлено значение «ложь», «0» или «нет». По умолчанию он исключает значения, которые не получены или получены только из Википедии, что упрощает работу по проверке на уровне статьи. Если данные без источника приемлемы (!), Установите |onlysourced=no. Поскольку я не в силах создать автоматизированный механизм, который знает, является ли существующий источник надежным или нет в данном контексте, эта работа все равно должна выполняться на уровне статьи редактором, знакомым с предметом. Это всегда нужно делать при первом включении Викиданных для этой статьи.

Шаблоны помощников

Шаблон: Если то показать
проверяет, не является ли первый безымянный параметр пустой строкой, и возвращает его, если это не так. В противном случае возвращается второй безымянный параметр. Необязательные третий и четвертый безымянные параметры предоставляют префикс и суффикс для первого параметра при возврате. Полезно, когда первый параметр - это вызов Викиданных.
Шаблон: Ifnoteq затем показать
проверяет, равен ли первый безымянный параметр второму безымянному параметру, и возвращает третий безымянный параметр, если это так. В противном случае возвращается первый безымянный параметр. Это полезно, когда первым параметром является {{#invoke:модуль Lua, который возвращает значение, для которого требуется конкретное исключение.
Шаблон: Если то wikilink
проверяет, не является ли первый безымянный параметр пустой строкой, и если это не так, он возвращает параметр, отформатированный как переданная вики-ссылка с использованием необязательного префикса пространства имен.
Шаблон: ссылка на программу форматирования
принимает код внешнего идентификатора |code=и использует URL-адрес средства форматирования |url=для создания ссылки на внешний ресурс, который использует этот код как отображение.
Шаблон: Emptyor
проверяет фрагмент текста, чтобы убедиться, действительно ли он пуст или содержит текст. Если безымянный параметр состоит только из тегов html, знаков препинания (например, Wiki-разметки) и пробелов, то Empty или ничего не возвращает; в противном случае он возвращает параметр без изменений. Обертка для функции p.emptyor.

Пример использования: книга Infobox

Этот раздел взят из Template: Infobox book / Wikidata / Sandbox / doc .

Нет Викиданных

{{Infobox book / Wikidata / Sandbox| suppressfields =| fetchwikidata =| name = Животноводческая ферма| title_orig = Скотный двор: Сказочная история| image = Скотный двор - 1-е издание.jpg| image_size = 200 пикселей| caption = Обложка первого издания| author = [[Джордж Оруэлл]]| country = Великобритания| language = английский| жанр = Политическая сатира}}

Работает как незнакомое информационное окно: отображаются только локально предоставленные параметры.

{{Infobox book / Wikidata / Sandbox| name = Животноводческая ферма| title_orig = Скотный двор: Сказочная история| image = Скотный двор - 1-е издание.jpg| image_size = 200 пикселей| caption = Обложка первого издания| author = [[Джордж Оруэлл]]| country = Великобритания| language = английский| жанр = Политическая сатира}}

Черный и белый списки можно не добавлять, если они не используются.

Все Викиданные

{{Infobox book / Wikidata / Sandbox| fetchwikidata = автор; жанр; pub_date; страницы; dewey; съезд}}

Выбирает автора, дату публикации, количество страниц, индекс Дьюи и значения номера каталога Библиотеки Конгресса из Викиданных.

{{Infobox book / Wikidata / Sandbox| fetchwikidata = ВСЕ}}

Вкратце, для |fetchwikidata=параметра можно установить значение ALL, чтобы получить все доступные поля. Любое поле можно подавить, присвоив ему имя |suppressfields=, или переопределить, указав локальное значение.

Никогда не отображать жанр

{{Infobox book / Wikidata / Sandbox| suppressfields = жанр| fetchwikidata = автор; жанр; pub_date; страницы; dewey; съезд}}

Поле жанра всегда будет подавлено, даже если указано локальное значение.

{{Infobox book / Wikidata / Sandbox| suppressfields = жанр| fetchwikidata = автор; жанр; pub_date; страницы; dewey; съезд| жанр = Политическая сатира}}

Локальное переопределение

{{Infobox book / Wikidata / Sandbox| fetchwikidata = автор; жанр; pub_date; страницы; dewey; съезд| жанр = Политическая сатира}}

Поле жанра настроено на отображение «Политическая сатира», независимо от того, что хранится в Викиданных.

{{Infobox book / Wikidata / Sandbox| fetchwikidata = ВСЕ| жанр = Роман}}

Поле жанра настроено на отображение «Роман», независимо от того, что хранится в Викиданных.

Не получать жанр

{{Infobox book / Wikidata / Sandbox| suppressfields =| fetchwikidata = автор; pub_date; страницы; dewey; съезд}}

Поле жанра не будет извлечено из Викиданных. Импортируются только автор, дата публикации, количество страниц, индекс Дьюи и каталожный номер Библиотеки Конгресса. Отображается местное значение жанра.

Экспорт модуля

WikidataIB был разработан для работы на любом языке вики (или проекте Викимедиа) с минимальными изменениями. Необязательный субмодуль Module: WikidataIB / i18n может быть создан для замены значений сообщений об ошибках, порядковых суффиксов и т. Д., Как показано в локальных определениях i18n в модуле. Хотя тот же результат может быть получен путем прямого редактирования этих значений в WikidataIB, использование подмодуля позволит обновленной версии WikidataIB напрямую заменить старый модуль без необходимости повторного редактирования определений i18n.

Связанные элементы

Если цель Wiki имеет соглашение , что определенные элементы обычно не связаны (см ан: Википедия: Руководство по стилям / Linking #what вообще не должен быть связаны для примера), то подмодуль модуля: WikidataIB / nolinks может быть создан для перечисления элементов, которые не следует связывать, используя в качестве примера подмодуль английской Википедии.

Заголовки курсивом

Если в целевой Wiki есть соглашение о том, что определенные работы должны быть выделены курсивом или цитированы (см. Пример в en: Wikipedia: Руководство по форматированию стиля / текста # Имена и заголовки ), то можно создать подмодуль Module: WikidataIB / titleformats для перечислить элементы, которые следует выделить курсивом или указать в кавычках, используя в качестве примера подмодуль английской Википедии.

Сложная дата

Большая часть выходных данных модуля будет использовать местный язык (или любой язык, указанный пользователем в многоязычных вики), на котором есть дополнительная ссылка или метка в Викиданных. Однако даты сложнее и не во всех языках обрабатываются идеально. Чтобы решить эту проблему, WikidataIB использует Module: Complex date, разработанный Jarekt для Commons, что позволяет расширять его для поддержки большего количества языков. В результате необходимо установить сложную дату и ее зависимости вместе с WikidataIB при установке в другом проекте Викимедиа.

Сложные зависимости даты

Модуль: Complex_date опирается на следующие модули:

  • Модуль: Календарь (ленивая загрузка без зависимостей)
  • Модуль: ISOdate
    • Модуль: DateI18n (без зависимостей)
      • Модуль: Без глобальных переменных (из en.wikipedia)
  • Модуль: i18n / сложная дата
    • Модуль: Порядковый (ленивая загрузка)
      • Модуль: I18n / порядковый (без зависимостей)
      • Модуль: Yesno (из en.wikipedia) (без зависимостей)
      • Модуль: Formatnum (без зависимостей)
    • Модуль: Роман (ленивая загрузка без зависимостей)
    • Модуль: Лингвистический (ленивая загрузка без зависимостей)
      • Модуль: Без глобальных переменных (из en.wikipedia)

Если не указано иное, официальную версию каждого модуля можно найти в Commons, хотя версии в английской Википедии обычно синхронизируются.

Смотрите также

  • Модуль: Викиданные , более основательная обработка Викиданных.
  • Шаблон: WikidataOI , шаблон, который использует Module: Wd, но также имеет параметры |fetch=и опции «opt-in», |ifeq=аналогичные тем, которые используются для этого модуля |fetchwikidata=или|fwd=

Категории отслеживания

  • Категория: Статьи с отсутствующей информацией Викиданных  (43)

- Версия: 2021-02-06- Модуль для реализации использования черного и белого списков для полей инфобокса.- Может принимать именованный параметр | qid, который является идентификатором Викиданных для статьи.- если не указан, будет использоваться идентификатор Викиданных, связанный с текущей страницей.- Поля в черном списке никогда не должны отображаться, т.е. модуль должен возвращать nil при любых обстоятельствах.- Поля в белом списке возвращают локальное значение, если оно существует, или значение Викиданных в противном случае- Имя поля, из которого вызывается эта функция, передается в именованном параметре | имя- Имя обязательно при использовании черного или белого списка,- поэтому модуль возвращает ноль, если он не указан.- черный список передается в именованном параметре | suppressfields (или | spf)- белый список передается в именованном параметре | fetchwikidata (или | fwd)местный p = {}local cdate - инициализировать как nil и загружать только функцию _complex_date при необходимости- Модуль: сложная дата загружается лениво и имеет следующие зависимости:- Модуль: Календарь- Модуль: ISOdate- Модуль: DateI18n- Модуль: без глобальных переменных- Модуль: I18n / комплексная дата- Модуль: Порядковый- Модуль: I18n / порядковый- Модуль: Да, нет- Модуль: Formatnum- Модуль: лингвистический-- Следующее, взято из https://www.mediawiki.org/wiki/Wikibase/DataModel#Dates_and_times,- необходим для использования модуля: сложная дата, которая, по-видимому, требует точности даты в виде строки.- Было бы лучше, если бы только авторы страницы mediawiki могли написать «тысячелетие».local dp = {[6] = "тысячелетие",[7] = "век",[8] = "десятилетие",[9] = "год",[10] = "месяц",[11] = "день",}местный i18n ={["ошибки"] ={["property-not-found"] = "Свойство не найдено.",["Свойство не предоставлено"] = "Свойство не предоставлено",["entity-not-found"] = "Объект Викиданных не найден.",["unknown-Claim-type"] = "Неизвестный тип претензии.",["unknown-entity-type"] = "Неизвестный тип объекта.",["qualifier-not-found"] = "Квалификатор не найден.",["site-not-found"] = "Проект Викимедиа не найден.",["labels-not-found"] = "Ярлыков не найдено.",["descriptions-not-found"] = "Описаний не найдено.",["aliases-not-found"] = "Псевдонимов не найдено.",["unknown-datetime-format"] = "Неизвестный формат даты и времени.",["local-article-not-found"] = "Статья доступна в Викиданных, но не в Википедии",["dab-page"] = "(dab)",},["месяцев"] ={«Январь», «Февраль», «Март», «Апрель», «Май», «Июнь»,«Июль», «Август», «Сентябрь», «Октябрь», «Ноябрь», «Декабрь».},["век"] = "век",["BC"] = "BC",["BCE"] = "BCE",["порядковый номер"] ={[1] = "st",[2] = "nd",[3] = "rd",["по умолчанию"] = "th"},["filespace"] = "Файл",["Неизвестно"] = "Неизвестно",["NaN"] = "Не число",- установите следующее для имени категории отслеживания,- например, «[[Категория: статьи с отсутствующей информацией Викиданных]]» или «», чтобы отключить:["missinginfocat"] = "[[Категория: статьи с отсутствующей информацией Викиданных]]",["editonwikidata"] = "Измените это в Викиданных",["latestdatequalifier"] = функция (дата) возврат "до" .. конец даты,- некоторые языки, например боснийский, используют точку в качестве суффикса после каждого числа в дате["datenumbersuffix"] = "",["разделитель списка"] = ",",["multipliers"] = {[0] = "",[3] = "тысяча",[6] = "миллион",[9] = "миллиард",[12] = "триллион",}}- Это позволяет модулю интернационализации отменять приведенную выше таблицу.если 'en' ~ = mw.getContentLanguage (): getCode (), тоrequire ("Модуль: i18n"). loadI18n ("Модуль: WikidataIB / i18n", i18n)конец- Этот кусок HTML реализует складной контейнер. Проверьте, какие классы существуют в вашей вики.local collapsediv = '<div class = "mw-collapsible mw-collapsed" style = "width: 100%; overflow: auto;" data-expandtext = "{{int: show}}" data-collapsetext = "{{int: hide}}"> '- Некоторые элементы не следует связывать.- Каждая вики может создать список тех, что находятся в модуле: WikidataIB / nolinks- Он должен вернуть таблицу с именем itemsindex, содержащую истину для каждого элемента, который не должен быть связанlocal donotlink = {}local nolinks_exists, nolinks = pcall (mw.loadData, «Модуль: WikidataIB / nolinks»)если nolinks_exists тогдаdonotlink = nolinks.itemsindexконец- Чтобы удовлетворить требования Википедии: Руководство по стилям / названиям, некоторые типы элементов выделены курсивом, а другие цитируются.- Подмодуль [[Module: WikidataIB / titleformats]] перечисляет идентификаторы сущностей, используемые в 'instance of' (P31),- что позволяет этому модулю определять значения, которые следует отформатировать.- WikidataIB / titleformats экспортирует таблицу p.formats, которая индексируется идентификатором объекта и содержит значение "или"локальные форматы = {}local titleformats_exists, titleformats = pcall (mw.loadData, "Модуль: WikidataIB / titleformats")если titleformats_exists тогдаформаты = titleformats.formatsконец-------------------------------------------------- ------------------------------ Частные функции-------------------------------------------------- -------------------------------------------------------------------------------- ------------------------------ makeOrdinal должен быть интернационализирован вместе с перечисленным выше:- принимает количественное число как числовое и возвращает порядковый номер в виде строки- нам нужно три исключения на английском для 1-го, 2-го, 3-го, 21-го, ... 31-го и т. д.-------------------------------------------------- ------------------------------ Зависимости: нет-------------------------------------------------- -----------------------------локальный makeOrdinal = функция (кардинал)местный ordsuffix = i18n.ordinal.defaultесли кардинал% 10 == 1, тоordsuffix = i18n.ordinal [1]иначе, если кардинал% 10 == 2, тоordsuffix = i18n.ordinal [2]иначе, если кардинал% 10 == 3, тогдаordsuffix = i18n.ordinal [3]конец- В английском, 1, 21, 31 и т. Д. Используют st, а 11, 111 и т. Д. Используют th.- аналогично для 12 и 13 и т. д.если (кардинальный% 100 == 11) или (кардинальный% 100 == 12) или (кардинальный% 100 == 13), тоordsuffix = i18n.ordinal.defaultконецreturn tostring (cardinal) .. ordsuffixконец-------------------------------------------------- ------------------------------ findLang принимает параметр "langcode", если он указан и действителен.- в противном случае он пытается создать его из заданного пользователем языка ({{int: lang}})- если он не использует язык содержимого вики.- Возвращает языковой объект-------------------------------------------------- ------------------------------ Зависимости: нет-------------------------------------------------- -----------------------------локальный findLang = функция (langcode)местный лангобджlangcode = mw.text.trim (langcode или "")если mw.language.isKnownLanguageTag (langcode), тоlangobj = mw.language.new (код языка)ещеlangcode = mw.getCurrentFrame (): препроцесс ('{{int: lang}}')если mw.language.isKnownLanguageTag (langcode), тоlangobj = mw.language.new (код языка)ещеlangobj = mw.language.getContentLanguage ()конецконецвернуть langobjконец-------------------------------------------------- ------------------------------ _getItemLangCode принимает параметр qid (используя qid текущей страницы, если он пуст)- Если элемент для этого qid имеет свойство country (P17), он смотрит на первое предпочтительное значение- Если в стране есть официальный язык (P37), он смотрит на первое предпочтительное значение.- Если этот официальный язык имеет код языка (P424), он возвращает первое предпочтительное значение.- Иначе ничего не вернет.-------------------------------------------------- ------------------------------ Зависимости: нет-------------------------------------------------- -----------------------------local _getItemLangCode = функция (qid)qid = mw.text.trim (qid или ""): upper ()если qid == "", то qid = mw.wikibase.getEntityIdForCurrentPage () endесли не qid, то верните конецlocal prop17 = mw.wikibase.getBestStatements (qid, "P17") [1]если не prop17 или prop17.mainsnak.snaktype ~ = "значение", то верните конецлокальный qid17 = prop17.mainsnak.datavalue.value.idlocal prop37 = mw.wikibase.getBestStatements (qid17, "P37") [1]если не prop37 или prop37.mainsnak.snaktype ~ = "значение", то верните конецместный qid37 = prop37.mainsnak.datavalue.value.idlocal prop424 = mw.wikibase.getBestStatements (qid37, "P424") [1]если не prop424 или prop424.mainsnak.snaktype ~ = "значение", то верните конецвернуть prop424.mainsnak.datavalue.valueконец-------------------------------------------------- ------------------------------ roundto принимает число (x)- и возвращает округленное значение до (sf) значащих цифр-------------------------------------------------- ------------------------------ Зависимости: нет-------------------------------------------------- -----------------------------локальный roundto = функция (x, sf)если x == 0, то вернуть 0 конецместный s = 1если x <0, тох = -хs = -1конецесли sf <1, то sf = 1 конецлокальный p = 10 ^ (math.floor (math.log10 (x)) - sf + 1)x = math.floor (x / p + 0,5) * p * s- если целое, приведите к целому числу:если x == math.floor (x), то x = math.floor (x) endвернуть хконец-------------------------------------------------- ------------------------------ decimalToDMS принимает десятичные градусы (x) с точностью (p)- и возвращает градусы / минуты / секунды в зависимости от точности-------------------------------------------------- ------------------------------ Зависимости: нет-------------------------------------------------- -----------------------------local decimalToDMS = функция (x, p)- если p не указан, используйте точность около 0,1 секунды.если не число (p), то p = 1e-4 конецместный d = math.floor (x)местный ms = (x - d) * 60если p> 0,5, то точность> 1/2 градусаесли ms> 30, то d = d + 1 конецмс = 0конецместный m = math.floor (мс)местный s = (мс - м) * 60если p> 0,008, то точность> 1/2 минутыесли s> 30, то m = m +1 конецs = 0иначе, если p> 0,00014, то точность> 1/2 секундыs = math.floor (s + 0,5)иначе, если p> 0,000014, то точность> 1/20 секундыs = math.floor (10 * s + 0,5) / 10иначе, если p> 0,0000014, то точность> 1/200 секундыs = math.floor (100 * s + 0,5) / 100else - ограничьте его на 3 декадных места на данный моментs = math.floor (1000 * s + 0,5) / 1000конецвозврат д, м, сконец