CINXE.COM
Модул:Wd – Уикипедия
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="bg" dir="ltr"> <head> <meta charset="UTF-8"> <title>Модул:Wd – Уикипедия</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )bgwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"],"wgRequestId":"33174ed1-f1cb-4659-9dc5-2548eeed0226","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Модул:Wd","wgTitle":"Wd","wgCurRevisionId":12133177,"wgRevisionId":12133177,"wgArticleId":682711,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Шаблони за Уикиданни","Модули в Уикипедия"],"wgPageViewLanguage":"bg","wgPageContentLanguage":"bg","wgPageContentModel":"Scribunto","wgRelevantPageName":"Модул:Wd","wgRelevantArticleId":682711,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["autoconfirmed"],"wgRestrictionMove":["autoconfirmed"],"wgNoticeProject": "wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":70000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q24733825","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={ "ext.gadget.WatchlistTopSectionWidgetFix":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.QRpediaFix","ext.gadget.EditToolbar","ext.gadget.EditToolbar-menu-page_elements","ext.gadget.EditToolbar-menu-thematic_templates","ext.gadget.EditToolbar-menu-article_templates", "ext.gadget.EditToolbar-menu-talk_templates","ext.gadget.EditToolbar-menu-other_templates","ext.gadget.OpenStreetMap","ext.gadget.Switcher","ext.gadget.ParsePhabLinks","ext.gadget.Mwbot","ext.gadget.UploadRedirectToCommons","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","wikibase.client.vector-2022","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=bg&modules=ext.cite.styles%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=bg&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=bg&modules=ext.gadget.WatchlistTopSectionWidgetFix&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=bg&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Модул:Wd – Уикипедия"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//bg.m.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Уикипедия (bg)"> <link rel="EditURI" type="application/rsd+xml" href="//bg.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://bg.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.bg"> <link rel="alternate" type="application/atom+xml" title="Емисия на Atom за Уикипедия" href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D0%BC%D0%B5%D0%BD%D0%B8&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Модул_Wd rootpage-Модул_Wd skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Направо към съдържанието</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Сайт"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Главно меню" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Главно меню</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Главно меню</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">преместване към страничната лента</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">скриване</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Навигация </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Началната страница [z]" accesskey="z"><span>Начална страница</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Зареждане на случайна страница [x]" accesskey="x"><span>Случайна статия</span></a></li> </ul> </div> </div> <div id="p-Полезно" class="vector-menu mw-portlet mw-portlet-Полезно" > <div class="vector-menu-heading"> Полезно </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D0%BC%D0%B5%D0%BD%D0%B8" title="Списък на последните промени в уикито [r]" accesskey="r"><span>Последни промени</span></a></li><li id="n-Общи-разговори" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A0%D0%B0%D0%B7%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B8"><span>Общи разговори</span></a></li><li id="n-Обсъждани-статии" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%90%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%B8_%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%B8"><span>Обсъждани статии</span></a></li><li id="n-Администратори" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%97%D0%B0%D1%8F%D0%B2%D0%BA%D0%B8_%D0%BA%D1%8A%D0%BC_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%82%D0%B5"><span>Администратори</span></a></li><li id="n-Изтривания" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B8_%D0%B7%D0%B0_%D0%B8%D0%B7%D1%82%D1%80%D0%B8%D0%B2%D0%B0%D0%BD%D0%B5"><span>Изтривания</span></a></li><li id="n-За-контакти" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%97%D0%B0_%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B8"><span>За контакти</span></a></li> </ul> </div> </div> <div id="p-Включете_се!" class="vector-menu mw-portlet mw-portlet-Включете_се" > <div class="vector-menu-heading"> Включете се! </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Защо?" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9A%D0%BE%D0%B9_%D1%81%D1%8A%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0_%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F"><span>Защо?</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D1%8A%D1%80%D0%B2%D0%B8_%D1%81%D1%82%D1%8A%D0%BF%D0%BA%D0%B8" title="Място, където може да се информирате"><span>Помощ</span></a></li><li id="n-Картинки" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:10_%D0%BD%D0%B5%D1%89%D0%B0,_%D0%BA%D0%BE%D0%B8%D1%82%D0%BE_%D1%82%D1%80%D1%8F%D0%B1%D0%B2%D0%B0_%D0%B4%D0%B0_%D1%81%D0%B5_%D0%B7%D0%BD%D0%B0%D1%8F%D1%82_%D0%B7%D0%B0_%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8%D1%82%D0%B5_%D0%B2_%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F"><span>Картинки</span></a></li><li id="n-Поведение" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5"><span>Поведение</span></a></li><li id="n-Изпробване" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D1%8F%D1%81%D1%8A%D1%87%D0%BD%D0%B8%D0%BA"><span>Изпробване</span></a></li><li id="n-Нова-статия" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%92%D1%8A%D0%BB%D1%88%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA"><span>Нова статия</span></a></li> </ul> </div> </div> <div id="p-Общувайте" class="vector-menu mw-portlet mw-portlet-Общувайте" > <div class="vector-menu-heading"> Общувайте </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Блог-на-общността" class="mw-list-item"><a href="https://blog.wikimedia.bg/" rel="nofollow"><span>Блог на общността</span></a></li><li id="n-Фейсбук-страница" class="mw-list-item"><a href="https://www.facebook.com/WikipediaBG" rel="nofollow"><span>Фейсбук страница</span></a></li><li id="n-Фейсбук-група" class="mw-list-item"><a href="https://www.facebook.com/groups/WikipediaBG" rel="nofollow"><span>Фейсбук група</span></a></li><li id="n-🎮-Дискорд" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%94%D0%B8%D1%81%D0%BA%D0%BE%D1%80%D0%B4"><span>🎮 Дискорд</span></a></li><li id="n-Телеграм" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A2%D0%B5%D0%BB%D0%B5%D0%B3%D1%80%D0%B0%D0%BC"><span>Телеграм</span></a></li><li id="n-IRC" class="mw-list-item"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:IRC"><span>IRC</span></a></li><li id="n-GitHub" class="mw-list-item"><a href="https://github.com/wikimedia-bg" rel="nofollow"><span>GitHub</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Уикипедия" src="/static/images/mobile/copyright/wikipedia-wordmark-bg.svg" style="width: 7.5em; height: 1.3125em;"> <img class="mw-logo-tagline" alt="Свободната енциклопедия" src="/static/images/mobile/copyright/wikipedia-tagline-bg.svg" width="120" height="12" style="width: 7.5em; height: 0.75em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Претърсване на Уикипедия [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Търсене</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Търсене в Уикипедия" aria-label="Търсене в Уикипедия" autocapitalize="sentences" title="Претърсване на Уикипедия [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Специални:Търсене"> </div> <button class="cdx-button cdx-search-input__end-button">Търсене</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Лични инструменти"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Облик"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Облик" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Облик</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_bg.wikipedia.org&uselang=bg" class=""><span>Направете дарение</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A1%D1%8A%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BD%D0%B0_%D1%81%D0%BC%D0%B5%D1%82%D0%BA%D0%B0&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%3AWd" title="Насърчаваме Ви да си създадете сметка и да влезете, въпреки че не е задължително." class=""><span>Създаване на сметка</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%B0%D0%BD%D0%B5_%D0%B8%D0%BB%D0%B8_%D0%B2%D0%BB%D0%B8%D0%B7%D0%B0%D0%BD%D0%B5&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%3AWd" title="Препоръчваме Ви да влезете, въпреки, че не е задължително. [o]" accesskey="o" class=""><span>Влизане</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Допълнителни опции" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Лични инструменти" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Лични инструменти</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Потребителско меню" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_bg.wikipedia.org&uselang=bg"><span>Направете дарение</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A1%D1%8A%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BD%D0%B0_%D1%81%D0%BC%D0%B5%D1%82%D0%BA%D0%B0&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%3AWd" title="Насърчаваме Ви да си създадете сметка и да влезете, въпреки че не е задължително."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Създаване на сметка</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%B0%D0%BD%D0%B5_%D0%B8%D0%BB%D0%B8_%D0%B2%D0%BB%D0%B8%D0%B7%D0%B0%D0%BD%D0%B5&returnto=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%3AWd" title="Препоръчваме Ви да влезете, въпреки, че не е задължително. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Влизане</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Страници за излезли от системата редактори <a href="/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89:%D0%92%D1%8A%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" aria-label="Научете повече за редактирането"><span>научете повече</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9C%D0%BE%D0%B8%D1%82%D0%B5_%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8" title="Списък на промените, направени от този IP адрес [y]" accesskey="y"><span>Приноси</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9C%D0%BE%D1%8F%D1%82%D0%B0_%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%B0" title="Дискусия относно редакциите от този адрес [n]" accesskey="n"><span>Беседа</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Сайт"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Съдържание" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Съдържание</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">преместване към страничната лента</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">скриване</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Начало</div> </a> </li> <li id="toc-Употреба" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Употреба"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Употреба</span> </div> </a> <ul id="toc-Употреба-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Команди" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Команди"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Команди</span> </div> </a> <button aria-controls="toc-Команди-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Превключване на подраздел Команди</span> </button> <ul id="toc-Команди-sublist" class="vector-toc-list"> <li id="toc-Claim_class" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Claim_class"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Claim class</span> </div> </a> <ul id="toc-Claim_class-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-General_class" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#General_class"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>General class</span> </div> </a> <ul id="toc-General_class-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Main_class" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Main_class"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Main class</span> </div> </a> <ul id="toc-Main_class-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Flags" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Flags"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Flags</span> </div> </a> <button aria-controls="toc-Flags-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Превключване на подраздел Flags</span> </button> <ul id="toc-Flags-sublist" class="vector-toc-list"> <li id="toc-Command_flags" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Command_flags"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Command flags</span> </div> </a> <ul id="toc-Command_flags-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Configuration_flags" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Configuration_flags"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Configuration flags</span> </div> </a> <ul id="toc-Configuration_flags-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Arguments" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Arguments"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Arguments</span> </div> </a> <button aria-controls="toc-Arguments-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Превключване на подраздел Arguments</span> </button> <ul id="toc-Arguments-sublist" class="vector-toc-list"> <li id="toc-Positional_arguments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Positional_arguments"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Positional arguments</span> </div> </a> <ul id="toc-Positional_arguments-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Named_arguments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Named_arguments"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Named arguments</span> </div> </a> <ul id="toc-Named_arguments-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Property_aliases" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Property_aliases"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Property aliases</span> </div> </a> <ul id="toc-Property_aliases-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Разширена_употреба" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Разширена_употреба"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Разширена употреба</span> </div> </a> <ul id="toc-Разширена_употреба-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Примери" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Примери"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Примери</span> </div> </a> <button aria-controls="toc-Примери-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Превключване на подраздел Примери</span> </button> <ul id="toc-Примери-sublist" class="vector-toc-list"> <li id="toc-Example_references" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Example_references"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>Example references</span> </div> </a> <ul id="toc-Example_references-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Вижте_също" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Вижте_също"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Вижте също</span> </div> </a> <ul id="toc-Вижте_също-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Съдържание" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Скриване/показване на съдържанието" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Скриване/показване на съдържанието</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">Модул</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Wd</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Към статията на друг език. Налична на 127 езика" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-127" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">127 езика</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ab mw-list-item"><a href="https://ab.wikipedia.org/wiki/%D0%90%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Амодуль:Wd – абхазки" lang="ab" hreflang="ab" data-title="Амодуль:Wd" data-language-autonym="Аԥсшәа" data-language-local-name="абхазки" class="interlanguage-link-target"><span>Аԥсшәа</span></a></li><li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Module:Wd" title="Module:Wd – африканс" lang="af" hreflang="af" data-title="Module:Wd" data-language-autonym="Afrikaans" data-language-local-name="африканс" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-ang mw-list-item"><a href="https://ang.wikipedia.org/wiki/Module:Wd" title="Module:Wd – староанглийски" lang="ang" hreflang="ang" data-title="Module:Wd" data-language-autonym="Ænglisc" data-language-local-name="староанглийски" class="interlanguage-link-target"><span>Ænglisc</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:Wd" title="وحدة:Wd – арабски" lang="ar" hreflang="ar" data-title="وحدة:Wd" data-language-autonym="العربية" data-language-local-name="арабски" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-arc mw-list-item"><a href="https://arc.wikipedia.org/wiki/Module:Wd" title="Module:Wd – арамейски" lang="arc" hreflang="arc" data-title="Module:Wd" data-language-autonym="ܐܪܡܝܐ" data-language-local-name="арамейски" class="interlanguage-link-target"><span>ܐܪܡܝܐ</span></a></li><li class="interlanguage-link interwiki-ary mw-list-item"><a href="https://ary.wikipedia.org/wiki/%D9%85%D9%88%D8%AF%D9%88%D9%84:Wd" title="مودول:Wd – Moroccan Arabic" lang="ary" hreflang="ary" data-title="مودول:Wd" data-language-autonym="الدارجة" data-language-local-name="Moroccan Arabic" class="interlanguage-link-target"><span>الدارجة</span></a></li><li class="interlanguage-link interwiki-as mw-list-item"><a href="https://as.wikipedia.org/wiki/Module:Wd" title="Module:Wd – асамски" lang="as" hreflang="as" data-title="Module:Wd" data-language-autonym="অসমীয়া" data-language-local-name="асамски" class="interlanguage-link-target"><span>অসমীয়া</span></a></li><li class="interlanguage-link interwiki-av mw-list-item"><a href="https://av.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – аварски" lang="av" hreflang="av" data-title="Модуль:Wd" data-language-autonym="Авар" data-language-local-name="аварски" class="interlanguage-link-target"><span>Авар</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – азербайджански" lang="az" hreflang="az" data-title="Modul:Wd" data-language-autonym="Azərbaycanca" data-language-local-name="азербайджански" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D9%85%D8%A7%DA%98%D9%88%D9%84:Wd" title="ماژول:Wd – South Azerbaijani" lang="azb" hreflang="azb" data-title="ماژول:Wd" data-language-autonym="تۆرکجه" data-language-local-name="South Azerbaijani" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-ban mw-list-item"><a href="https://ban.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – балийски" lang="ban" hreflang="ban" data-title="Modul:Wd" data-language-autonym="Basa Bali" data-language-local-name="балийски" class="interlanguage-link-target"><span>Basa Bali</span></a></li><li class="interlanguage-link interwiki-bcl mw-list-item"><a href="https://bcl.wikipedia.org/wiki/Module:Wd" title="Module:Wd – Central Bikol" lang="bcl" hreflang="bcl" data-title="Module:Wd" data-language-autonym="Bikol Central" data-language-local-name="Central Bikol" class="interlanguage-link-target"><span>Bikol Central</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – беларуски" lang="be" hreflang="be" data-title="Модуль:Wd" data-language-autonym="Беларуская" data-language-local-name="беларуски" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D1%96%D0%BA%D1%96%D0%B7%D1%8C%D0%B2%D0%B5%D1%81%D1%82%D0%BA%D1%964" title="Модуль:Вікізьвесткі4 – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Модуль:Вікізьвесткі4" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bh mw-list-item"><a href="https://bh.wikipedia.org/wiki/Module:Wd" title="Module:Wd – Bhojpuri" lang="bh" hreflang="bh" data-title="Module:Wd" data-language-autonym="भोजपुरी" data-language-local-name="Bhojpuri" class="interlanguage-link-target"><span>भोजपुरी</span></a></li><li class="interlanguage-link interwiki-blk mw-list-item"><a href="https://blk.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:Wd" title="မော်ဂျူး:Wd – Pa'O" lang="blk" hreflang="blk" data-title="မော်ဂျူး:Wd" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa'O" class="interlanguage-link-target"><span>ပအိုဝ်ႏဘာႏသာႏ</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%AE%E0%A6%A1%E0%A6%BF%E0%A6%89%E0%A6%B2:Wd" title="মডিউল:Wd – бенгалски" lang="bn" hreflang="bn" data-title="মডিউল:Wd" data-language-autonym="বাংলা" data-language-local-name="бенгалски" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – босненски" lang="bs" hreflang="bs" data-title="Modul:Wd" data-language-autonym="Bosanski" data-language-local-name="босненски" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/M%C3%B2dul:Wd" title="Mòdul:Wd – каталонски" lang="ca" hreflang="ca" data-title="Mòdul:Wd" data-language-autonym="Català" data-language-local-name="каталонски" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cdo mw-list-item"><a href="https://cdo.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:Wd" title="模組:Wd – Mindong" lang="cdo" hreflang="cdo" data-title="模組:Wd" data-language-autonym="閩東語 / Mìng-dĕ̤ng-ngṳ̄" data-language-local-name="Mindong" class="interlanguage-link-target"><span>閩東語 / Mìng-dĕ̤ng-ngṳ̄</span></a></li><li class="interlanguage-link interwiki-ce mw-list-item"><a href="https://ce.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd~en" title="Модуль:Wd~en – чеченски" lang="ce" hreflang="ce" data-title="Модуль:Wd~en" data-language-autonym="Нохчийн" data-language-local-name="чеченски" class="interlanguage-link-target"><span>Нохчийн</span></a></li><li class="interlanguage-link interwiki-ceb mw-list-item"><a href="https://ceb.wikipedia.org/wiki/Module:Wd" title="Module:Wd – себуански" lang="ceb" hreflang="ceb" data-title="Module:Wd" data-language-autonym="Cebuano" data-language-local-name="себуански" class="interlanguage-link-target"><span>Cebuano</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D9%85%DB%86%D8%AF%DB%8C%D9%88%D9%88%D9%84:Wd" title="مۆدیوول:Wd – кюрдски (централен)" lang="ckb" hreflang="ckb" data-title="مۆدیوول:Wd" data-language-autonym="کوردی" data-language-local-name="кюрдски (централен)" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/Modulo:Wd" title="Modulo:Wd – корсикански" lang="co" hreflang="co" data-title="Modulo:Wd" data-language-autonym="Corsu" data-language-local-name="корсикански" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – чешки" lang="cs" hreflang="cs" data-title="Modul:Wd" data-language-autonym="Čeština" data-language-local-name="чешки" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-cv mw-list-item"><a href="https://cv.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – чувашки" lang="cv" hreflang="cv" data-title="Модуль:Wd" data-language-autonym="Чӑвашла" data-language-local-name="чувашки" class="interlanguage-link-target"><span>Чӑвашла</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Modiwl:Wd" title="Modiwl:Wd – уелски" lang="cy" hreflang="cy" data-title="Modiwl:Wd" data-language-autonym="Cymraeg" data-language-local-name="уелски" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – датски" lang="da" hreflang="da" data-title="Modul:Wd" data-language-autonym="Dansk" data-language-local-name="датски" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-dag mw-list-item"><a href="https://dag.wikipedia.org/wiki/Module:Wd" title="Module:Wd – Dagbani" lang="dag" hreflang="dag" data-title="Module:Wd" data-language-autonym="Dagbanli" data-language-local-name="Dagbani" class="interlanguage-link-target"><span>Dagbanli</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Module:Wd" title="Module:Wd – гръцки" lang="el" hreflang="el" data-title="Module:Wd" data-language-autonym="Ελληνικά" data-language-local-name="гръцки" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Module:Wd" title="Module:Wd – английски" lang="en" hreflang="en" data-title="Module:Wd" data-language-autonym="English" data-language-local-name="английски" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Modulo:Wd" title="Modulo:Wd – есперанто" lang="eo" hreflang="eo" data-title="Modulo:Wd" data-language-autonym="Esperanto" data-language-local-name="есперанто" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/M%C3%B3dulo:Wd" title="Módulo:Wd – испански" lang="es" hreflang="es" data-title="Módulo:Wd" data-language-autonym="Español" data-language-local-name="испански" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Moodul:Wd" title="Moodul:Wd – естонски" lang="et" hreflang="et" data-title="Moodul:Wd" data-language-autonym="Eesti" data-language-local-name="естонски" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Modulu:Wd" title="Modulu:Wd – баски" lang="eu" hreflang="eu" data-title="Modulu:Wd" data-language-autonym="Euskara" data-language-local-name="баски" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Wd" title="پودمان:Wd – персийски" lang="fa" hreflang="fa" data-title="پودمان:Wd" data-language-autonym="فارسی" data-language-local-name="персийски" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Module:Wd" title="Module:Wd – френски" lang="fr" hreflang="fr" data-title="Module:Wd" data-language-autonym="Français" data-language-local-name="френски" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/Module:Wd" title="Module:Wd – ирландски" lang="ga" hreflang="ga" data-title="Module:Wd" data-language-autonym="Gaeilge" data-language-local-name="ирландски" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/M%C3%B3dulo:Wd" title="Módulo:Wd – галисийски" lang="gl" hreflang="gl" data-title="Módulo:Wd" data-language-autonym="Galego" data-language-local-name="галисийски" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-glk mw-list-item"><a href="https://glk.wikipedia.org/wiki/%D9%85%D8%A7%D8%AC%DB%8A%D9%84:Wd" title="ماجۊل:Wd – Gilaki" lang="glk" hreflang="glk" data-title="ماجۊل:Wd" data-language-autonym="گیلکی" data-language-local-name="Gilaki" class="interlanguage-link-target"><span>گیلکی</span></a></li><li class="interlanguage-link interwiki-gu mw-list-item"><a href="https://gu.wikipedia.org/wiki/%E0%AA%B5%E0%AA%BF%E0%AA%AD%E0%AA%BE%E0%AA%97:Wd" title="વિભાગ:Wd – гуджарати" lang="gu" hreflang="gu" data-title="વિભાગ:Wd" data-language-autonym="ગુજરાતી" data-language-local-name="гуджарати" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-gv mw-list-item"><a href="https://gv.wikipedia.org/wiki/Module:Wd" title="Module:Wd – манкски" lang="gv" hreflang="gv" data-title="Module:Wd" data-language-autonym="Gaelg" data-language-local-name="манкски" class="interlanguage-link-target"><span>Gaelg</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/Module:Wd" title="Module:Wd – хауса" lang="ha" hreflang="ha" data-title="Module:Wd" data-language-autonym="Hausa" data-language-local-name="хауса" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-hak mw-list-item"><a href="https://hak.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:Wd" title="模組:Wd – Hakka Chinese" lang="hak" hreflang="hak" data-title="模組:Wd" data-language-autonym="客家語 / Hak-kâ-ngî" data-language-local-name="Hakka Chinese" class="interlanguage-link-target"><span>客家語 / Hak-kâ-ngî</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%89%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%82%E0%A4%B2:Wd" title="मॉड्यूल:Wd – хинди" lang="hi" hreflang="hi" data-title="मॉड्यूल:Wd" data-language-autonym="हिन्दी" data-language-local-name="хинди" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – хърватски" lang="hr" hreflang="hr" data-title="Modul:Wd" data-language-autonym="Hrvatski" data-language-local-name="хърватски" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – унгарски" lang="hu" hreflang="hu" data-title="Modul:Wd" data-language-autonym="Magyar" data-language-local-name="унгарски" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%84%D5%B8%D5%A4%D5%B8%D6%82%D5%AC:Wd" title="Մոդուլ:Wd – арменски" lang="hy" hreflang="hy" data-title="Մոդուլ:Wd" data-language-autonym="Հայերեն" data-language-local-name="арменски" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/Module:Wd" title="Module:Wd – интерлингва" lang="ia" hreflang="ia" data-title="Module:Wd" data-language-autonym="Interlingua" data-language-local-name="интерлингва" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – индонезийски" lang="id" hreflang="id" data-title="Modul:Wd" data-language-autonym="Bahasa Indonesia" data-language-local-name="индонезийски" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-ilo mw-list-item"><a href="https://ilo.wikipedia.org/wiki/Modulo:Wd" title="Modulo:Wd – илоко" lang="ilo" hreflang="ilo" data-title="Modulo:Wd" data-language-autonym="Ilokano" data-language-local-name="илоко" class="interlanguage-link-target"><span>Ilokano</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Module:Wd" title="Module:Wd – исландски" lang="is" hreflang="is" data-title="Module:Wd" data-language-autonym="Íslenska" data-language-local-name="исландски" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Wd" title="モジュール:Wd – японски" lang="ja" hreflang="ja" data-title="モジュール:Wd" data-language-autonym="日本語" data-language-local-name="японски" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-jv mw-list-item"><a href="https://jv.wikipedia.org/wiki/Modhul:Wd" title="Modhul:Wd – явански" lang="jv" hreflang="jv" data-title="Modhul:Wd" data-language-autonym="Jawa" data-language-local-name="явански" class="interlanguage-link-target"><span>Jawa</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%9B%E1%83%9D%E1%83%93%E1%83%A3%E1%83%9A%E1%83%98:Wd" title="მოდული:Wd – грузински" lang="ka" hreflang="ka" data-title="მოდული:Wd" data-language-autonym="ქართული" data-language-local-name="грузински" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-kab mw-list-item"><a href="https://kab.wikipedia.org/wiki/Module:Wd" title="Module:Wd – кабилски" lang="kab" hreflang="kab" data-title="Module:Wd" data-language-autonym="Taqbaylit" data-language-local-name="кабилски" class="interlanguage-link-target"><span>Taqbaylit</span></a></li><li class="interlanguage-link interwiki-km mw-list-item"><a href="https://km.wikipedia.org/wiki/Module:Wd" title="Module:Wd – кхмерски" lang="km" hreflang="km" data-title="Module:Wd" data-language-autonym="ភាសាខ្មែរ" data-language-local-name="кхмерски" class="interlanguage-link-target"><span>ភាសាខ្មែរ</span></a></li><li class="interlanguage-link interwiki-kn mw-list-item"><a href="https://kn.wikipedia.org/wiki/%E0%B2%AE%E0%B2%BE%E0%B2%A1%E0%B3%8D%E0%B2%AF%E0%B3%82%E0%B2%B2%E0%B3%8D:Wd" title="ಮಾಡ್ಯೂಲ್:Wd – каннада" lang="kn" hreflang="kn" data-title="ಮಾಡ್ಯೂಲ್:Wd" data-language-autonym="ಕನ್ನಡ" data-language-local-name="каннада" class="interlanguage-link-target"><span>ಕನ್ನಡ</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%93%88:Wd" title="모듈:Wd – корейски" lang="ko" hreflang="ko" data-title="모듈:Wd" data-language-autonym="한국어" data-language-local-name="корейски" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – кюрдски" lang="ku" hreflang="ku" data-title="Modul:Wd" data-language-autonym="Kurdî" data-language-local-name="кюрдски" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-kw mw-list-item"><a href="https://kw.wikipedia.org/wiki/Module:Wd" title="Module:Wd – корнуолски" lang="kw" hreflang="kw" data-title="Module:Wd" data-language-autonym="Kernowek" data-language-local-name="корнуолски" class="interlanguage-link-target"><span>Kernowek</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – киргизки" lang="ky" hreflang="ky" data-title="Модуль:Wd" data-language-autonym="Кыргызча" data-language-local-name="киргизки" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-lb mw-list-item"><a href="https://lb.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – люксембургски" lang="lb" hreflang="lb" data-title="Modul:Wd" data-language-autonym="Lëtzebuergesch" data-language-local-name="люксембургски" class="interlanguage-link-target"><span>Lëtzebuergesch</span></a></li><li class="interlanguage-link interwiki-lld mw-list-item"><a href="https://lld.wikipedia.org/wiki/Modulo:Wd" title="Modulo:Wd – Ladin" lang="lld" hreflang="lld" data-title="Modulo:Wd" data-language-autonym="Ladin" data-language-local-name="Ladin" class="interlanguage-link-target"><span>Ladin</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Module:Wd" title="Module:Wd – литовски" lang="lt" hreflang="lt" data-title="Module:Wd" data-language-autonym="Lietuvių" data-language-local-name="литовски" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Modulis:Wd" title="Modulis:Wd – латвийски" lang="lv" hreflang="lv" data-title="Modulis:Wd" data-language-autonym="Latviešu" data-language-local-name="латвийски" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-mai mw-list-item"><a href="https://mai.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%81%E0%A4%B2:Wd" title="मोड्युल:Wd – майтхили" lang="mai" hreflang="mai" data-title="मोड्युल:Wd" data-language-autonym="मैथिली" data-language-local-name="майтхили" class="interlanguage-link-target"><span>मैथिली</span></a></li><li class="interlanguage-link interwiki-mdf mw-list-item"><a href="https://mdf.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – мокша" lang="mdf" hreflang="mdf" data-title="Модуль:Wd" data-language-autonym="Мокшень" data-language-local-name="мокша" class="interlanguage-link-target"><span>Мокшень</span></a></li><li class="interlanguage-link interwiki-min mw-list-item"><a href="https://min.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – минангкабау" lang="min" hreflang="min" data-title="Modul:Wd" data-language-autonym="Minangkabau" data-language-local-name="минангкабау" class="interlanguage-link-target"><span>Minangkabau</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" title="Модул:Wd – македонски" lang="mk" hreflang="mk" data-title="Модул:Wd" data-language-autonym="Македонски" data-language-local-name="македонски" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%98%E0%B4%9F%E0%B4%95%E0%B4%82:Wd" title="ഘടകം:Wd – малаялам" lang="ml" hreflang="ml" data-title="ഘടകം:Wd" data-language-autonym="മലയാളം" data-language-local-name="малаялам" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Module:Wd" title="Module:Wd – монголски" lang="mn" hreflang="mn" data-title="Module:Wd" data-language-autonym="Монгол" data-language-local-name="монголски" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-mnw mw-list-item"><a href="https://mnw.wikipedia.org/wiki/%E1%80%99%E1%80%9D%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0:Wd" title="မဝ်ဂျူ:Wd – Mon" lang="mnw" hreflang="mnw" data-title="မဝ်ဂျူ:Wd" data-language-autonym="ဘာသာမန်" data-language-local-name="Mon" class="interlanguage-link-target"><span>ဘာသာမန်</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BF%E0%A4%AD%E0%A4%BE%E0%A4%97:Wd" title="विभाग:Wd – марати" lang="mr" hreflang="mr" data-title="विभाग:Wd" data-language-autonym="मराठी" data-language-local-name="марати" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – малайски" lang="ms" hreflang="ms" data-title="Modul:Wd" data-language-autonym="Bahasa Melayu" data-language-local-name="малайски" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:Wd" title="မော်ဂျူး:Wd – бирмански" lang="my" hreflang="my" data-title="မော်ဂျူး:Wd" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="бирмански" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-nah mw-list-item"><a href="https://nah.wikipedia.org/wiki/M%C3%B3dulo:Wd" title="Módulo:Wd – Nahuatl" lang="nah" hreflang="nah" data-title="Módulo:Wd" data-language-autonym="Nāhuatl" data-language-local-name="Nahuatl" class="interlanguage-link-target"><span>Nāhuatl</span></a></li><li class="interlanguage-link interwiki-nds-nl mw-list-item"><a href="https://nds-nl.wikipedia.org/wiki/Module:Wd" title="Module:Wd – долносаксонски" lang="nds-NL" hreflang="nds-NL" data-title="Module:Wd" data-language-autonym="Nedersaksies" data-language-local-name="долносаксонски" class="interlanguage-link-target"><span>Nedersaksies</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%81%E0%A4%B2:Wd" title="मोड्युल:Wd – непалски" lang="ne" hreflang="ne" data-title="मोड्युल:Wd" data-language-autonym="नेपाली" data-language-local-name="непалски" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Module:Wd" title="Module:Wd – нидерландски" lang="nl" hreflang="nl" data-title="Module:Wd" data-language-autonym="Nederlands" data-language-local-name="нидерландски" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – норвежки (нюношк)" lang="nn" hreflang="nn" data-title="Modul:Wd" data-language-autonym="Norsk nynorsk" data-language-local-name="норвежки (нюношк)" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Modul:Wd-norsk" title="Modul:Wd-norsk – норвежки (букмол)" lang="nb" hreflang="nb" data-title="Modul:Wd-norsk" data-language-autonym="Norsk bokmål" data-language-local-name="норвежки (букмол)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%AE%E0%AC%A1%E0%AD%8D%E0%AD%9F%E0%AD%81%E0%AC%B2:Wd" title="ମଡ୍ୟୁଲ:Wd – ория" lang="or" hreflang="or" data-title="ମଡ୍ୟୁଲ:Wd" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="ория" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-os mw-list-item"><a href="https://os.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd~en" title="Модуль:Wd~en – осетински" lang="os" hreflang="os" data-title="Модуль:Wd~en" data-language-autonym="Ирон" data-language-local-name="осетински" class="interlanguage-link-target"><span>Ирон</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%AE%E0%A9%8C%E0%A8%A1%E0%A8%BF%E0%A8%8A%E0%A8%B2:Wd" title="ਮੌਡਿਊਲ:Wd – пенджабски" lang="pa" hreflang="pa" data-title="ਮੌਡਿਊਲ:Wd" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="пенджабски" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pag mw-list-item"><a href="https://pag.wikipedia.org/wiki/Module:Wd" title="Module:Wd – пангасинан" lang="pag" hreflang="pag" data-title="Module:Wd" data-language-autonym="Pangasinan" data-language-local-name="пангасинан" class="interlanguage-link-target"><span>Pangasinan</span></a></li><li class="interlanguage-link interwiki-pap mw-list-item"><a href="https://pap.wikipedia.org/wiki/Module:Wd" title="Module:Wd – папиаменто" lang="pap" hreflang="pap" data-title="Module:Wd" data-language-autonym="Papiamentu" data-language-local-name="папиаменто" class="interlanguage-link-target"><span>Papiamentu</span></a></li><li class="interlanguage-link interwiki-ps mw-list-item"><a href="https://ps.wikipedia.org/wiki/Module:Wd" title="Module:Wd – пущу" lang="ps" hreflang="ps" data-title="Module:Wd" data-language-autonym="پښتو" data-language-local-name="пущу" class="interlanguage-link-target"><span>پښتو</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/M%C3%B3dulo:Wd" title="Módulo:Wd – португалски" lang="pt" hreflang="pt" data-title="Módulo:Wd" data-language-autonym="Português" data-language-local-name="португалски" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – румънски" lang="ro" hreflang="ro" data-title="Modul:Wd" data-language-autonym="Română" data-language-local-name="румънски" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd~en" title="Модуль:Wd~en – руски" lang="ru" hreflang="ru" data-title="Модуль:Wd~en" data-language-autonym="Русский" data-language-local-name="руски" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-rue mw-list-item"><a href="https://rue.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – Rusyn" lang="rue" hreflang="rue" data-title="Модуль:Wd" data-language-autonym="Русиньскый" data-language-local-name="Rusyn" class="interlanguage-link-target"><span>Русиньскый</span></a></li><li class="interlanguage-link interwiki-sa mw-list-item"><a href="https://sa.wikipedia.org/wiki/%E0%A4%AA%E0%A4%9F%E0%A4%B2%E0%A4%AE%E0%A5%8D:Wd" title="पटलम्:Wd – санскрит" lang="sa" hreflang="sa" data-title="पटलम्:Wd" data-language-autonym="संस्कृतम्" data-language-local-name="санскрит" class="interlanguage-link-target"><span>संस्कृतम्</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/Module:Wd" title="Module:Wd – шотландски" lang="sco" hreflang="sco" data-title="Module:Wd" data-language-autonym="Scots" data-language-local-name="шотландски" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-sd mw-list-item"><a href="https://sd.wikipedia.org/wiki/%D9%85%D8%A7%DA%8A%D9%8A%D9%88%D9%84:Wd" title="ماڊيول:Wd – синдхи" lang="sd" hreflang="sd" data-title="ماڊيول:Wd" data-language-autonym="سنڌي" data-language-local-name="синдхи" class="interlanguage-link-target"><span>سنڌي</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – сърбохърватски" lang="sh" hreflang="sh" data-title="Modul:Wd" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="сърбохърватски" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-shn mw-list-item"><a href="https://shn.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%82%83%E1%82%87%E1%81%B5%E1%80%BB%E1%80%B0%E1%80%B8:Wd" title="မေႃႇၵျူး:Wd – шан" lang="shn" hreflang="shn" data-title="မေႃႇၵျူး:Wd" data-language-autonym="ၽႃႇသႃႇတႆး " data-language-local-name="шан" class="interlanguage-link-target"><span>ၽႃႇသႃႇတႆး </span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/Module:Wd" title="Module:Wd – синхалски" lang="si" hreflang="si" data-title="Module:Wd" data-language-autonym="සිංහල" data-language-local-name="синхалски" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Module:Wd" title="Module:Wd – Simple English" lang="en-simple" hreflang="en-simple" data-title="Module:Wd" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – словашки" lang="sk" hreflang="sk" data-title="Modul:Wd" data-language-autonym="Slovenčina" data-language-local-name="словашки" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-skr mw-list-item"><a href="https://skr.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Wd" title="ماڈیول:Wd – Saraiki" lang="skr" hreflang="skr" data-title="ماڈیول:Wd" data-language-autonym="سرائیکی" data-language-local-name="Saraiki" class="interlanguage-link-target"><span>سرائیکی</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – словенски" lang="sl" hreflang="sl" data-title="Modul:Wd" data-language-autonym="Slovenščina" data-language-local-name="словенски" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Moduli:Wd" title="Moduli:Wd – албански" lang="sq" hreflang="sq" data-title="Moduli:Wd" data-language-autonym="Shqip" data-language-local-name="албански" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" title="Модул:Wd – сръбски" lang="sr" hreflang="sr" data-title="Модул:Wd" data-language-autonym="Српски / srpski" data-language-local-name="сръбски" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-su mw-list-item"><a href="https://su.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – сундански" lang="su" hreflang="su" data-title="Modul:Wd" data-language-autonym="Sunda" data-language-local-name="сундански" class="interlanguage-link-target"><span>Sunda</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – шведски" lang="sv" hreflang="sv" data-title="Modul:Wd" data-language-autonym="Svenska" data-language-local-name="шведски" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/Module:Wd" title="Module:Wd – тамилски" lang="ta" hreflang="ta" data-title="Module:Wd" data-language-autonym="தமிழ்" data-language-local-name="тамилски" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%AE%E0%B0%BE%E0%B0%A1%E0%B1%8D%E0%B0%AF%E0%B1%82%E0%B0%B2%E0%B1%8D:Wd" title="మాడ్యూల్:Wd – телугу" lang="te" hreflang="te" data-title="మాడ్యూల్:Wd" data-language-autonym="తెలుగు" data-language-local-name="телугу" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-tet mw-list-item"><a href="https://tet.wikipedia.org/wiki/M%C3%B3dulo:Wd" title="Módulo:Wd – тетум" lang="tet" hreflang="tet" data-title="Módulo:Wd" data-language-autonym="Tetun" data-language-local-name="тетум" class="interlanguage-link-target"><span>Tetun</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" title="Модул:Wd – таджикски" lang="tg" hreflang="tg" data-title="Модул:Wd" data-language-autonym="Тоҷикӣ" data-language-local-name="таджикски" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A1%E0%B8%AD%E0%B8%94%E0%B8%B9%E0%B8%A5:Wd" title="มอดูล:Wd – тайски" lang="th" hreflang="th" data-title="มอดูล:Wd" data-language-autonym="ไทย" data-language-local-name="тайски" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-ti mw-list-item"><a href="https://ti.wikipedia.org/wiki/%E1%88%9E%E1%8B%B5%E1%8B%A9%E1%88%8D:Wd" title="ሞድዩል:Wd – тигриня" lang="ti" hreflang="ti" data-title="ሞድዩል:Wd" data-language-autonym="ትግርኛ" data-language-local-name="тигриня" class="interlanguage-link-target"><span>ትግርኛ</span></a></li><li class="interlanguage-link interwiki-tk mw-list-item"><a href="https://tk.wikipedia.org/wiki/Module:Wd" title="Module:Wd – туркменски" lang="tk" hreflang="tk" data-title="Module:Wd" data-language-autonym="Türkmençe" data-language-local-name="туркменски" class="interlanguage-link-target"><span>Türkmençe</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/Module:Wd" title="Module:Wd – тагалог" lang="tl" hreflang="tl" data-title="Module:Wd" data-language-autonym="Tagalog" data-language-local-name="тагалог" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Mod%C3%BCl:Wd" title="Modül:Wd – турски" lang="tr" hreflang="tr" data-title="Modül:Wd" data-language-autonym="Türkçe" data-language-local-name="турски" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – татарски" lang="tt" hreflang="tt" data-title="Модуль:Wd" data-language-autonym="Татарча / tatarça" data-language-local-name="татарски" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wd" title="Модуль:Wd – украински" lang="uk" hreflang="uk" data-title="Модуль:Wd" data-language-autonym="Українська" data-language-local-name="украински" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Wd" title="ماڈیول:Wd – урду" lang="ur" hreflang="ur" data-title="ماڈیول:Wd" data-language-autonym="اردو" data-language-local-name="урду" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Modul:Wd" title="Modul:Wd – узбекски" lang="uz" hreflang="uz" data-title="Modul:Wd" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="узбекски" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vec mw-list-item"><a href="https://vec.wikipedia.org/wiki/Modulo:Wd" title="Modulo:Wd – Venetian" lang="vec" hreflang="vec" data-title="Modulo:Wd" data-language-autonym="Vèneto" data-language-local-name="Venetian" class="interlanguage-link-target"><span>Vèneto</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/M%C3%B4_%C4%91un:Wd" title="Mô đun:Wd – виетнамски" lang="vi" hreflang="vi" data-title="Mô đun:Wd" data-language-autonym="Tiếng Việt" data-language-local-name="виетнамски" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-war mw-list-item"><a href="https://war.wikipedia.org/wiki/Module:Wd" title="Module:Wd – варай" lang="war" hreflang="war" data-title="Module:Wd" data-language-autonym="Winaray" data-language-local-name="варай" class="interlanguage-link-target"><span>Winaray</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/%E6%A8%A1%E5%9D%97:Wd" title="模块:Wd – ву китайски" lang="wuu" hreflang="wuu" data-title="模块:Wd" data-language-autonym="吴语" data-language-local-name="ву китайски" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-za mw-list-item"><a href="https://za.wikipedia.org/wiki/%E6%A8%A1%E5%9D%97:Wd" title="模块:Wd – зуанг" lang="za" hreflang="za" data-title="模块:Wd" data-language-autonym="Vahcuengh" data-language-local-name="зуанг" class="interlanguage-link-target"><span>Vahcuengh</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Module:Wd" title="Module:Wd – китайски" lang="zh" hreflang="zh" data-title="Module:Wd" data-language-autonym="中文" data-language-local-name="китайски" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:Wd" title="模組:Wd – Minnan" lang="nan" hreflang="nan" data-title="模組:Wd" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="Minnan" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:Wd" title="模組:Wd – кантонски" lang="yue" hreflang="yue" data-title="模組:Wd" data-language-autonym="粵語" data-language-local-name="кантонски" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q24733825#sitelinks-wikipedia" title="Редактиране на междуезиковите препратки" class="wbc-editpage">Редактиране</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Именни пространства"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" title="View the module page [c]" accesskey="c"><span>Модул</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB_%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%B0:Wd" rel="discussion" title="Беседа за страницата [t]" accesskey="t"><span>Беседа</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Промяна на езиковия вариант" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Прегледи"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd"><span>Преглед</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&action=edit" title="Страницата е защитена. Можете да разгледате изходният ѝ код. [e]" accesskey="e"><span>Преглед на кода</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&action=history" title="Предишни версии на страницата [h]" accesskey="h"><span>История</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Инструменти" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Инструменти</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Инструменти</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">преместване към страничната лента</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">скриване</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Допълнителни опции" > <div class="vector-menu-heading"> Действия </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd"><span>Преглед</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&action=edit"><span>Преглед на кода</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&action=history"><span>История</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Основни </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9A%D0%B0%D0%BA%D0%B2%D0%BE_%D1%81%D0%BE%D1%87%D0%B8_%D0%BD%D0%B0%D1%81%D0%B0%D0%BC/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" title="Списък на всички страници, сочещи насам [j]" accesskey="j"><span>Какво сочи насам</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A1%D0%B2%D1%8A%D1%80%D0%B7%D0%B0%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D0%BC%D0%B5%D0%BD%D0%B8/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd" rel="nofollow" title="Последните промени на страници, сочени от тази страница [k]" accesskey="k"><span>Свързани промени</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/MediaWiki:Uploadtext" title="Качи файлове [u]" accesskey="u"><span>Качване на файл</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B8" title="Списък на всички специални страници [q]" accesskey="q"><span>Специални страници</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&oldid=12133177" title="Постоянна препратка към тази версия на страницата"><span>Постоянна препратка</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&action=info" title="Повече за тази страница"><span>Информация за страницата</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:UrlShortener&url=https%3A%2F%2Fbg.wikipedia.org%2Fwiki%2F%25D0%259C%25D0%25BE%25D0%25B4%25D1%2583%25D0%25BB%3AWd"><span>Кратък URL адрес</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:QrCode&url=https%3A%2F%2Fbg.wikipedia.org%2Fwiki%2F%25D0%259C%25D0%25BE%25D0%25B4%25D1%2583%25D0%25BB%3AWd"><span>Изтегляне на QR код</span></a></li> </ul> </div> </div> <div id="p-electronpdfservice-sidebar-portlet-heading" class="vector-menu mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading" > <div class="vector-menu-heading"> Отпечатване/изнасяне </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="electron-print_pdf" class="mw-list-item"><a href="/w/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:DownloadAsPdf&page=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%3AWd&action=show-download-screen"><span>Изтегляне като PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Версия за печат на страницата [p]" accesskey="p"><span>Версия за печат</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> В други проекти </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Module:Wd" hreflang="en"><span>Общомедия</span></a></li><li class="wb-otherproject-link wb-otherproject-meta mw-list-item"><a href="https://meta.wikimedia.org/wiki/Module:Wd" hreflang="en"><span>Мета-уики</span></a></li><li class="wb-otherproject-link wb-otherproject-outreach mw-list-item"><a href="https://outreach.wikimedia.org/wiki/Module:Wd" hreflang="en"><span>Wikimedia Outreach</span></a></li><li class="wb-otherproject-link wb-otherproject-species mw-list-item"><a href="https://species.wikimedia.org/wiki/Module:Wd" hreflang="en"><span>Уикивидове</span></a></li><li class="wb-otherproject-link wb-otherproject-wikidata mw-list-item"><a href="https://www.wikidata.org/wiki/Module:Wd" hreflang="en"><span>Уикиданни</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q24733825" title="Препратка към свързания обект от хранилището за данни [g]" accesskey="g"><span>Обект в Уикиданни</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Облик"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Облик</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">преместване към страничната лента</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">скриване</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">от Уикипедия, свободната енциклопедия</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="bg" dir="ltr"><p><br /> </p> <table class="plainlinks ombox ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Information_icon4.svg/40px-Information_icon4.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Information_icon4.svg/60px-Information_icon4.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Information_icon4.svg/80px-Information_icon4.svg.png 2x" data-file-width="620" data-file-height="620" /></span></span></td><td class="mbox-text">You might want to use one of the user-friendly wrapper templates <span class="wp-templatelink">{{</span><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Wikidata" class="mw-redirect" title="Шаблон:Wikidata">Wikidata</a><span class="wp-templatelink">}}</span> and <span class="wp-templatelink">{{</span><a href="/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:WikidataOI&action=edit&redlink=1" class="new" title="Шаблон:WikidataOI (страницата не съществува)">WikidataOI</a><span class="wp-templatelink">}}</span> instead of invoking this module directly.</td></tr></tbody></table> <p><br /> </p> <table class="plainlinks ombox mbox-small ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8" title="Уикипедия:Модули"><img alt="Lua лого" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/30px-Lua-Logo.svg.png" decoding="async" width="30" height="30" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/45px-Lua-Logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/60px-Lua-Logo.svg.png 2x" data-file-width="947" data-file-height="947" /></a></span></td><td class="mbox-text">This module depends on the following other modules:<div><ul><li><a class="mw-selflink selflink">Модул:Wd</a></li></ul></div></td></tr></tbody></table> <p>Този модул е предназначен да извлича данни от <b><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D0%B8" title="Уикиданни">Уикиданни</a></b>, със или без връзка към съответната статия. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Употреба"><span id=".D0.A3.D0.BF.D0.BE.D1.82.D1.80.D0.B5.D0.B1.D0.B0"></span>Употреба</h2></div> <p><code>{{#invoke:wd<span style="visibility:hidden;">0</span><span style="background-color: #cddae3">|command1|flag1a|flag1b|flag1c</span><span style="visibility:hidden;">0</span><span style="background-color: #dce5ec">|command2|flag2a|flag2b|flag2c</span><span style="visibility:hidden;">0</span><span style="background-color: #c1debf">|flag0a|flag0b|flag0c</span><span style="visibility:hidden;">0</span><span style="background-color: #ffdfc4">|arg1|arg2|arg3</span>}}</code> </p> <div class="mw-heading mw-heading2"><h2 id="Команди"><span id=".D0.9A.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.B8"></span>Команди</h2></div> <p>The commands (<code><span style="background-color: #cddae3">command1</span></code>, <code><span style="background-color: #dce5ec">command2</span></code>, ...) determine what kind of values are returned. One call can only contain commands from a single class, except that the main class is always used together with one other class. </p> <div class="mw-heading mw-heading3"><h3 id="Claim_class">Claim class</h3></div> <p>The claim class commands can be combined, meaning that multiple commands of different types from this class can be given at one time. </p><p>Combine multiple commands into one call to this модул, instead of making multiple calls to this модул with one command each, to be sure that all the returned pieces of information belong to each other. </p> <table class="wikitable"> <tbody><tr> <th>Type </th> <th>Command </th> <th>Returns </th> <th>Basic usage </th> <th>Description </th></tr> <tr> <td rowspan="2" style="text-align:right;">I </td> <th style="text-align:left;"><code>property</code> </th> <td><small>first match<sup id="cite_ref-fmc_1-0" class="reference"><a href="#cite_note-fmc-1"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup></small> </td> <td><code>{{#invoke:wd|property|P1}}</code> </td> <td rowspan="2">Returns the requested property – or list of properties – from the current item-entity or from a given entity. </td></tr> <tr> <th style="text-align:left;"><code>properties</code> </th> <td><small>all matches</small> </td> <td><code>{{#invoke:wd|properties|P1}}</code> </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td rowspan="2" style="text-align:right;">II </td> <th style="text-align:left;"><code>qualifier</code> </th> <td><small>first match<sup id="cite_ref-fmc_1-1" class="reference"><a href="#cite_note-fmc-1"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup></small> </td> <td><code>{{#invoke:wd|qualifier|P1|P2}}</code> </td> <td rowspan="2">Returns the requested qualifier – or list of qualifiers – from the given property of the current item-entity or of a given entity. <p>Unlike the other claim class commands, this command can be given multiple times to retrieve different qualifiers in one call. </p> </td></tr> <tr> <th style="text-align:left;"><code>qualifiers</code> </th> <td><small>all matches</small> </td> <td><code>{{#invoke:wd|qualifiers|P1|P2}}</code> </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td rowspan="2" style="text-align:right;">III </td> <th style="text-align:left;"><code>reference</code> </th> <td><small>first match<sup id="cite_ref-fmc_1-2" class="reference"><a href="#cite_note-fmc-1"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup></small> </td> <td><code>{{#invoke:wd|reference|P1}}</code> </td> <td rowspan="2">Returns a reference – or list of references – from the given property of the current item-entity or of a given entity.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>b<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <th style="text-align:left;"><code>references</code> </th> <td><small>all matches</small> </td> <td><code>{{#invoke:wd|references|P1}}</code> </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td colspan="5" style="text-align:left;"><div class="reflist" style="list-style-type: lower-alpha;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-fmc-1"><span class="mw-cite-backlink">↑ <a href="#cite_ref-fmc_1-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-fmc_1-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-fmc_1-2"><sup><i><b>в</b></i></sup></a></span> <span class="reference-text">Returns only a single value instead of multiple (if multiple claims or statements match). The returned value is the first match found from the best-ranked claims.</span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Only references that are valid according to the <a href="https://www.wikidata.org/wiki/Help:Sources" class="extiw" title="d:Help:Sources">Wikidata guideline on sources</a> are returned (i.e. those that have at least a property <a href="https://www.wikidata.org/wiki/Property:P248" class="extiw" title="d:Property:P248">указано в <small>(P248)</small></a> or <a href="https://www.wikidata.org/wiki/Property:P854" class="extiw" title="d:Property:P854">уеб адрес на източник <small>(P854)</small></a>).</span> </li> </ol></div></div> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="General_class">General class</h3></div> <p>The general class commands cannot be combined. </p> <table class="wikitable"> <tbody><tr> <th>Type </th> <th>Command </th> <th>Returns </th> <th>Basic usage </th> <th>Description </th></tr> <tr> <td style="text-align:right;">I </td> <th style="text-align:left;"><code>label</code> </th> <td> </td> <td><code>{{#invoke:wd|label}}</code> </td> <td>Returns the label of the current item-entity or of a given entity if present. </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td style="text-align:right;">II </td> <th style="text-align:left;"><code>title</code> </th> <td> </td> <td><code>{{#invoke:wd|title}}</code> </td> <td>Returns the title of the page linked to the current item-entity or to a given item-entity if such page exists. </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td style="text-align:right;">III </td> <th style="text-align:left;"><code>description</code> </th> <td> </td> <td><code>{{#invoke:wd|description}}</code> </td> <td>Returns the description of the current item-entity or of a given entity if present. </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td rowspan="2" style="text-align:right;">IV </td> <th style="text-align:left;"><code>alias</code> </th> <td><small>first match<sup id="cite_ref-fmg_3-0" class="reference"><a href="#cite_note-fmg-3"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup></small> </td> <td><code>{{#invoke:wd|alias}}</code> </td> <td rowspan="2">Returns an alias – or list of aliases – of the current item-entity or of a given entity if present. </td></tr> <tr> <th style="text-align:left;"><code>aliases</code> </th> <td><small>all matches</small> </td> <td><code>{{#invoke:wd|aliases}}</code> </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td rowspan="2" style="text-align:right;">V </td> <th style="text-align:left;"><code>badge</code> </th> <td><small>first match<sup id="cite_ref-fmg_3-1" class="reference"><a href="#cite_note-fmg-3"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup></small> </td> <td><code>{{#invoke:wd|badge}}</code> </td> <td rowspan="2">Returns a badge – or list of badges – for the page linked to the current item-entity or to a given item-entity if such page exists. </td></tr> <tr> <th style="text-align:left;"><code>badges</code> </th> <td><small>all matches</small> </td> <td><code>{{#invoke:wd|badges}}</code> </td></tr> <tr> <td colspan="5"> </td></tr> <tr> <td colspan="5" style="text-align:left;"><div class="reflist" style="list-style-type: lower-alpha;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-fmg-3"><span class="mw-cite-backlink">↑ <a href="#cite_ref-fmg_3-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-fmg_3-1"><sup><i><b>б</b></i></sup></a></span> <span class="reference-text">Returns only a single value instead of multiple (if multiple values are present).</span> </li> </ol></div></div> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Main_class">Main class</h3></div> <table class="wikitable"> <tbody><tr> <th>Command</th> <th>Basic usage</th> <th>Description</th> </tr> <tr> <th style="text-align:left;"><code>main</code></th> <td><code>{{#invoke:wd|main|command|P1}}</code></td> <td>Intended for use by wrapper templates (around this module) to invoke one or more of the above commands, returning their respective output. <p>The parameters passed to the wrapper template are the ones that will be used by the module, e.g. <code>{{wikidata|<b>property</b>|<b>P1549</b>}}</code> → <code>{{#invoke:Wd|main}}</code> → <code>{{#invoke:Wd|main|<b>property</b>|<b>P1549</b>}}</code>.</p> <p>Therefore, any parameters set by the wrapper template itself will be discarded, e.g. <code>{{wikidata|<b>property</b>|<b>P1549</b>}}</code> → <code>{{#invoke:Wd|main|<span style="color:red">qualifier</span>|<span style="color:red">P1082</span>|<span style="color:red">P585</span>}}</code> → <code>{{#invoke:Wd|main|<b>property</b>|<b>P1549</b>}}</code>.</p> </td> </tr> </tbody></table> <div class="mw-heading mw-heading2"><h2 id="Flags">Flags</h2></div> <p>The following (optional) flags are available which can be used to alter this модул's behaviour. They must be given after the (first) <span style="background-color: #cddae3">command</span> and before the other <span style="background-color: #ffdfc4">arguments</span>. For convenience, empty flags (i.e. <code>||</code>) are allowed and will simply be ignored. </p> <div class="mw-heading mw-heading3"><h3 id="Command_flags">Command flags</h3></div> <p>These flags (<code><span style="background-color: #cddae3">flag1*</span></code>, <code><span style="background-color: #dce5ec">flag2*</span></code>, ...) apply to the command that precedes them directly. </p> <table class="wikitable"> <tbody><tr> <th>Flag </th> <th>Description </th></tr> <tr> <th style="text-align:left;"><code>linked</code> </th> <td>Creates a link to the Wikipedia article that is connected to the property or qualifier if it exists. Also links units of measurement that may be appended to values. <p>If this parameter is omitted, then the plain property or qualifier value will be returned. </p> </td></tr> <tr> <th style="text-align:left;"><code>short</code> </th> <td><b><code><span style="color:red">[EXPENSIVE]</span></code></b> Returns the <a href="https://www.wikidata.org/wiki/Property:P1813" class="extiw" title="d:Property:P1813">кратко име <small>(P1813)</small></a> of any entity returned if they have one attached. If that is not the case, then the default behaviour of returning the entity's label will occur. </td></tr> <tr> <th style="text-align:left;"><code>raw</code> </th> <td>Returns the raw value if applicable. <p>If this flag is used with item or property datatypes, then this will return the Q-identifier or P-identifier. </p><p>For quantity datatypes, this flag will strip off any units of measurement, unless the <code>unit</code> flag is also given in which case the raw unit of measurement (its Q-identifier) will be returned. </p><p>If this flag is used with time datatypes, then the returned date will be in the format of <code>yyyy-mm-dd</code> (e.g. <code>1731-02-11</code>), or <code>yyyy-mm</code>, or <code>yyyy</code> depending on the date's precision. Dates in the Julian calendar stored with a precision of days through millenniums will have <code>/Julian</code> attached to the output (e.g. <code>1731-02-11/Julian</code>, which may be split off using the <a href="https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23titleparts" class="extiw" title="mw:Help:Extension:ParserFunctions"><span class="oneline">{{#titleparts}}</span> template function</a>). </p><p>If it is used with globe coordinate datatypes, then it replaces the various symbols with forward slashes in the returned value (e.g. <code>52/5/3/N/4/19/3/E</code>, which may be split into parts using the <a href="https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23titleparts" class="extiw" title="mw:Help:Extension:ParserFunctions"><span class="oneline">{{#titleparts}}</span> template function</a>). </p> </td></tr> <tr> <th style="text-align:left;"><code>multilanguage</code> </th> <td>Returns monolingual text values in any available language, not just the current wiki's language. </td></tr> <tr> <th style="text-align:left;"><code>unit</code> </th> <td>Returns only the unit of measurement for quantity datatypes. </td></tr> <tr> <th style="text-align:left;"><code>latitude</code> </th> <td>Returns only the geographic latitude in decimal format (e.g. 37.8013). Makes sense only with property <code>coord/P625</code>. </td></tr> <tr> <th style="text-align:left;"><code>longitude</code> </th> <td>Returns only the geographic longitude in decimal format (e.g. -122.3988). Makes sense only with property <code>coord/P625</code>. </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Configuration_flags">Configuration flags</h3></div> <p>These flags (<code><span style="background-color: #c1debf">flag0*</span></code>) are general configuration flags and can be given anywhere after the first command (but before the other arguments). </p> <table class="wikitable"> <tbody><tr> <th> </th> <th>Flag </th> <th>Command class </th> <th>Description </th></tr> <tr> <td rowspan="4" style="text-align:right;"><span style="white-space:nowrap;">Combination of:</span> </td> <th style="text-align:left;"><code>preferred</code> </th> <td rowspan="4"><a href="#Claim_class">claim</a> </td> <td rowspan="4">Sets a rank constraint for the selected claim(s). <p>The first three set the ranks for which claim(s) will be selected. They can optionally be followed by a <code>+</code> or a <code>-</code>, e.g. <code>normal+</code> or <code>preferred-</code>, where the first selects claims with a 'normal' rank <i>or higher</i> and the second selects claims with a 'preferred' rank <i>or lower</i>. To get claims of all ranks, use <code>preferred-</code> or <code>deprecated+</code>. </p><p>If the <code>best</code> flag is given additionally, then only the claims that have the highest rank amongst the selected claims will be returned. </p><p>The default is <code>normal+|best</code> (so by default claims with a 'deprecated' rank are never returned). </p><p>Output is always sorted from highest rank to lowest (regardless of any of these flags being set). </p> </td></tr> <tr> <th style="text-align:left;"><code>normal</code> </th></tr> <tr> <th style="text-align:left;"><code>deprecated</code> </th></tr> <tr> <th style="text-align:left;"><code>best</code> </th></tr> <tr> <td rowspan="3" style="text-align:right;"><span style="white-space:nowrap;">Combination of:</span> </td> <th style="text-align:left;"><code>future</code> </th> <td rowspan="3">claim </td> <td rowspan="3">Sets a time constraint for the selected claim(s). Uses the claims' qualifiers of <a href="https://www.wikidata.org/wiki/Property:P580" class="extiw" title="d:Property:P580">начало <small>(P580)</small></a> and <a href="https://www.wikidata.org/wiki/Property:P582" class="extiw" title="d:Property:P582">край <small>(P582)</small></a> to determine if the claim is valid for the selected time period(s). <p>The default is <code>future|current|former</code> (so by default claims that are valid for any time period are returned). </p> </td></tr> <tr> <th style="text-align:left;"><code>current</code> </th></tr> <tr> <th style="text-align:left;"><code>former</code> </th></tr> <tr> <td> </td> <th style="text-align:left;"><code>mdy</code> </th> <td>claim </td> <td>Returns date values in month-day-year order instead of day-month-year order. </td></tr> <tr> <td> </td> <th style="text-align:left;"><code>single</code> </th> <td>claim </td> <td>Returns only a single claim instead of multiple (if multiple claims match). Has no effect if the <code>property</code>/<code>properties</code> command is given, in which case this flag would be redundant. </td></tr> <tr> <td> </td> <th style="text-align:left;"><code>sourced</code> </th> <td>claim </td> <td>Only returns claims that have at least one valid reference. </td></tr> <tr> <td rowspan="2" style="text-align:right;"><span style="white-space:nowrap;">One of:</span> </td> <th style="text-align:left;"><code>edit</code> </th> <td rowspan="2">claim, <a href="#General_class">general</a> </td> <td rowspan="2">Adds a clickable icon after the output that may be used by readers to edit the returned claim on Wikidata. <p>If <code>edit@end</code> is used, then the icon will be placed at the end of the line for neat alignment in infoboxes. </p> </td></tr> <tr> <th style="text-align:left;"><code>edit@end</code> </th></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Arguments">Arguments</h2></div> <p>The arguments determine the sources from which all the returned values are fetched. </p> <div class="mw-heading mw-heading3"><h3 id="Positional_arguments">Positional arguments</h3></div> <p>The following table shows the available positional arguments (<code><span style="background-color: #ffdfc4">arg*</span></code>) in their fixed order. For each command, the applicable set of arguments is marked. If multiple commands are given, then the applicable set is the union of the individual sets. For instance, if the commands <code>properties</code> and <code>qualifiers</code> have been given, then at least both the arguments <code>property_id</code> and <code>qualifier_id</code> should be given as well. </p><p>More than one <code>qualifier</code>/<code>qualifiers</code> command can be given. The order in which these commands with their flags are given matches the order in which the respective <code>qualifier_id</code> arguments are given. </p> <table class="wikitable" style="background:none;border:none;"> <tbody><tr style="text-align:center;"> <td rowspan="2" style="background:none;border:none;"> </td> <td colspan="2"><small><i>(required)</i></small> </td> <td><small style="color:#777;"><i>(optional)</i></small> </td> <td><small style="color:#777;">(optional)</small> </td> <td><small>(required)</small> </td> <td><small style="color:#777;">(optional)</small> </td> <td><small>(required)</small> </td> <td><small>(required)</small> </td> <td rowspan="2" style="background:none;border:none;"> </td></tr> <tr> <td colspan="2"> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td style="border-right:2px solid #000;"><i><code>{{#invoke:wd</code></i> </td> <td colspan="2" style="border-right:2px solid #000;"><i><code>commands</code></i> </td> <td style="border-right:2px solid #000;"><i><code style="color:#777;">flags</code></i> </td> <th style="border-right:2px solid #000;background-color:#ffdfc4;"><code style="color:#777;">entity_id</code> </th> <th style="border-right:2px solid #000;background-color:#ffdfc4;"><code>property_id</code> </th> <th style="border-right:2px solid #000;background-color:#ffdfc4;"><code style="color:#777;">raw_value</code> </th> <th style="border-right:2px solid #000;background-color:#ffdfc4;"><code>qualifier_id</code> </th> <th style="background-color:#ffdfc4;"><code>qualifier_id</code> </th> <td><i><code>}}</code></i> </td></tr> <tr> <td rowspan="12" colspan="2" style="background:none;border:none;"> </td> <td rowspan="2" colspan="2" style="border-style:dashed;border-left-color:blue;border-bottom-color:blue;"> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td rowspan="12" style="background:none;border:none;"> </td></tr> <tr style="text-align:center;"> <td rowspan="2"><code>label</code>, <code>title</code>,<br /><code>description</code>,<br /><code>alias</code>/<code>aliases</code>,<br /><code>badge</code>/<code>badges</code> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td></tr> <tr> <td rowspan="2" colspan="2" style="border-style:dashed;border-left-color:blue;border-bottom-color:blue;"> </td></tr> <tr style="text-align:center;"> <td rowspan="2" colspan="2" style="border-top:none;"><code>property</code>/<code>properties</code> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td></tr> <tr> <td rowspan="2" colspan="2" style="border-style:dashed;border-left-color:blue;border-bottom-color:blue;"> </td></tr> <tr style="text-align:center;"> <td rowspan="2" colspan="3" style="border-top:none;"><code>reference</code>/<code>references</code> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td></tr> <tr> <td rowspan="2" colspan="2" style="border-style:dashed;border-left-color:blue;border-bottom-color:blue;"> </td></tr> <tr style="text-align:center;"> <td rowspan="2" colspan="4" style="border-top:none;"><code>qualifier</code>/<code>qualifiers</code> </td> <td rowspan="2" style="border-top:none;border-bottom:none;"> </td></tr> <tr> <td rowspan="2" colspan="2" style="border-style:dashed;border-left-color:blue;border-bottom-color:blue;"> </td></tr> <tr style="text-align:center;"> <td rowspan="2" colspan="5" style="border-top:none;"><code>qualifier</code>/<code>qualifiers</code> <i>(optional 2<sup>nd</sup>, 3<sup>rd</sup>, etc.)</i> </td></tr> <tr> <td rowspan="2" colspan="2" style="border:none;"> </td></tr> <tr> <td colspan="5" style="border:none;"> </td></tr></tbody></table> <p>Below follows a description of all positional arguments. </p> <table class="wikitable"> <tbody><tr> <th>Argument </th> <th>Description </th></tr> <tr> <th style="text-align:left;"><code style="color:#777;">entity_id</code> <p><small style="font-weight:normal;">(optional)</small> </p> </th> <td><b><code><span style="color:red">[EXPENSIVE]</span></code></b> <b>Q-identifier</b> of the item-entity to be accessed (e.g. <code>Q55</code>), or <b>P-identifier</b> (or an available <b><a href="#Property_aliases">alias</a></b>) of the property-entity to be accessed preceded by the <code>Property:</code> prefix (e.g. <code>Property:P38</code>). <p>In case of the <a href="#General_class">general class commands</a>, the <code>Property:</code> prefix may be omitted for P-identifiers (e.g. <code>P38</code>). </p><p>If this parameter is omitted, then the item-entity connected to the current page will be used (except when <code>eid=</code> is given, see below). If this parameter is given, but empty (i.e. <code>||</code>), then due to its position it will be interpreted as an <a href="#Flags">empty flag</a> and thus be ignored, giving the same result as if it were omitted. See also the <a href="#Named_arguments"><code>eid=</code> named argument</a> below that can be used to give an entity-ID too, but without the item-entity connected to the current page being used as a result in this specific case. </p> </td></tr> <tr> <th style="text-align:left;"><code>property_id</code> </th> <td><b>P-identifier</b> (or an available <b><a href="#Property_aliases">alias</a></b>) of the property within the entity to be accessed, without the <code>Property:</code> prefix (e.g. <code>P35</code>). </td></tr> <tr> <th style="text-align:left;"><code style="color:#777;">raw_value</code> <p><small style="font-weight:normal;">(optional)</small> </p> </th> <td>Either the <b>Q-identifier</b> equal to the property value (e.g. <code>Q29574</code>) or a <b>literal value</b> (i.e. string or quantity etc., <i>no entity label</i>) equal to the raw property value of the particular claim to be accessed. <p>Dates as literal values must be formatted <code>yyyy-mm-dd</code> (e.g. <code>1731-02-11</code>) for dates with a precision of days, <code>yyyy-mm</code> (e.g. <code>1731-02</code>) for dates with a precision of months, and <code>yyyy</code> (e.g. <code>1731</code>) for dates of lesser precision. Dates BCE require a minus sign in front of the year (e.g. <code>-2950-01-31</code>). Dates stored in the Julian calendar must have <code>/Julian</code> attached to the end (e.g. <code>1731-02-11/Julian</code>). Decades like the 2010s must be given as <code>2010</code> (but the 2010s BCE as <code>-2019</code>), centuries like the 20th century as <code>1901</code> (but the 20th century BCE as <code>-2000</code>), and millenniums like the 3rd millennium as <code>2001</code> (but the 3rd millennium BCE as <code>-3000</code>). </p><p>Globe coordinates as literal values must be formatted with forward slashes (i.e. <code>/</code>) between the parts and no symbols (e.g. <code>52/5/3/N/4/19/3/E</code>) <i>without any spaces or leading zeros</i>. </p><p>The special type '<b>no value</b>' can be given by entering the empty string (i.e. <code>||</code>) and the special type '<b>unknown value</b>' can be given by entering a single underscore (i.e. <code>|_|</code>). To get a literal underscore, escape it by placing a backslash <code>\</code> directly in front of it (i.e. <code>\_</code>); the same holds for a literal backslash (i.e. <code>\\</code>). </p><p>To get a literal vertical bar <code>|</code>, use <code><span style="color:#9098A0" class="wp-templatelink">{{<a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!" title="Шаблон:!">!</a>}}</span></code> or <code>&#124;</code>. </p><p>If this parameter is omitted, then all claims (matching any other constraints) within the property will be accessed. </p> </td></tr> <tr> <th style="text-align:left;"><code>qualifier_id</code> </th> <td><b>P-identifier</b> (or an available <b><a href="#Property_aliases">alias</a></b>) of the qualifier within the entity to be accessed, without the <code>Property:</code> prefix (e.g. <code>P580</code>). </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Named_arguments">Named arguments</h3></div> <p>Below follows a description of all named arguments, which are name-value pairs (i.e. <code>|name=value</code>). These are all optional and can be given anywhere after the first command. </p> <table class="wikitable"> <tbody><tr> <th>Argument </th> <th>Description </th></tr> <tr> <th style="text-align:right;"><code>eid=</code> </th> <td><b><code><span style="color:red">[EXPENSIVE]</span></code></b> This argument offers the same functionality as the <a href="#Positional_arguments">positional argument <code>entity_id</code></a> (e.g. <code>|eid=Q55</code>), with one difference: if the argument is given but its value is left empty (i.e. <code>|eid=</code>), then no entity is accessed at all instead of the item-entity connected to the current page. This is useful in some cases where a variable entity-ID is expected, but where the item-entity connected to the current page should not be accessed as the default. <p>Also, the <code>Property:</code> prefix may be omitted for P-identifiers (e.g. <code>|eid=P38</code>) for all commands. </p><p>This argument only has effect if the positional argument <code>entity_id</code> is omitted. </p> </td></tr> <tr> <th style="text-align:right;"><code><i><qualifier></i>=</code> </th> <td>The <code><i><qualifier></i></code> is a placeholder for a set of arguments that determine which claims should be accessed based on qualifier value, analogous to the pair of <a href="#Positional_arguments">positional arguments <code>property_id</code> and <code>raw_value</code></a> that determine access based on property value. <p>As such, <code><i><qualifier></i></code> is any qualifier's <b>P-identifier</b> (or an available <b><a href="#Property_aliases">alias</a></b>) without the <code>Property:</code> prefix (e.g. <code>P518</code>). Its value is either the <b>Q-identifier</b> equal to one of the qualifier values (e.g. <code>Q27561</code>) or a <b>literal value</b> (i.e. string or quantity etc., <i>no entity label</i>) equal to one of the raw qualifier values of the particular claim to be accessed. The value format is the same as for the positional argument <code>raw_value</code>. The special type '<b>no value</b>' given by the empty string also matches the total absence within the claim of the particular qualifier. </p><p>Example: <code>|P518=Q27561</code> </p><p>Multiple arguments of this type can be given to match multiple qualifier values simultaneously for each claim. </p> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Property_aliases">Property aliases</h3></div> <p>Property aliases are other names for P-identifiers that can be used instead. The following property aliases (which are <a href="/w/index.php?title=Case_sensitivity&action=edit&redlink=1" class="new" title="Case sensitivity (страницата не съществува)">case-sensitive</a>) are currently available: </p> <table class="wikitable"> <tbody><tr> <th>Alias </th> <th><sub>translates<br /></sub><sup>to</sup> </th> <th>P-identifier </th></tr> <tr> <td>coord</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P625" class="extiw" title="d:Property:P625">P625</a> </td></tr> <tr> <th colspan="3"> </th></tr> <tr> <td>image</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P18" class="extiw" title="d:Property:P18">P18</a> </td></tr> <tr> <td>author</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P50" class="extiw" title="d:Property:P50">P50</a> </td></tr> <tr> <td>publisher</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P123" class="extiw" title="d:Property:P123">P123</a> </td></tr> <tr> <td>importedFrom</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P143" class="extiw" title="d:Property:P143">P143</a> </td></tr> <tr> <td>statedIn</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P248" class="extiw" title="d:Property:P248">P248</a> </td></tr> <tr> <td>pages</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P304" class="extiw" title="d:Property:P304">P304</a> </td></tr> <tr> <td>language</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P407" class="extiw" title="d:Property:P407">P407</a> </td></tr> <tr> <td>publicationDate</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P577" class="extiw" title="d:Property:P577">P577</a> </td></tr> <tr> <td>startTime</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P580" class="extiw" title="d:Property:P580">P580</a> </td></tr> <tr> <td>endTime</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P582" class="extiw" title="d:Property:P582">P582</a> </td></tr> <tr> <td>chapter</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P792" class="extiw" title="d:Property:P792">P792</a> </td></tr> <tr> <td>retrieved</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P813" class="extiw" title="d:Property:P813">P813</a> </td></tr> <tr> <td>referenceURL</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P854" class="extiw" title="d:Property:P854">P854</a> </td></tr> <tr> <td>sectionVerseOrParagraph</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P958" class="extiw" title="d:Property:P958">P958</a> </td></tr> <tr> <td>archiveURL</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P1065" class="extiw" title="d:Property:P1065">P1065</a> </td></tr> <tr> <td>title</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P1476" class="extiw" title="d:Property:P1476">P1476</a> </td></tr> <tr> <td>formatterURL</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P1630" class="extiw" title="d:Property:P1630">P1630</a> </td></tr> <tr> <td>quote</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P1683" class="extiw" title="d:Property:P1683">P1683</a> </td></tr> <tr> <td>shortName</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P1813" class="extiw" title="d:Property:P1813">P1813</a> </td></tr> <tr> <td>archiveDate</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P2960" class="extiw" title="d:Property:P2960">P2960</a> </td></tr> <tr> <td>inferredFrom</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P3452" class="extiw" title="d:Property:P3452">P3452</a> </td></tr> <tr> <td>typeOfReference</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P3865" class="extiw" title="d:Property:P3865">P3865</a> </td></tr> <tr> <td>column</td> <td style="text-align: center;">→</td> <td><a href="https://www.wikidata.org/wiki/Property:P3903" class="extiw" title="d:Property:P3903">P3903</a> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Разширена_употреба"><span id=".D0.A0.D0.B0.D0.B7.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B0_.D1.83.D0.BF.D0.BE.D1.82.D1.80.D0.B5.D0.B1.D0.B0"></span>Разширена употреба</h2></div> <p>The layout of the output from (a combination of) commands that have both a singular and a plural form (e.g. <code>property</code>/<code>properties</code>) can be customized by using a number of named flags, which are name-value pairs (i.e. <code>|flag=value</code>), that can be given anywhere after the first command. The table below shows the available named flags. </p><p>To insert a space at the beginning or end of a <code>value</code>, use an underscore <code>_</code>. To get a literal underscore, escape it by placing a backslash <code>\</code> directly in front of it (i.e. <code>\_</code>); the same holds for a literal backslash (i.e. <code>\\</code>). To get a literal vertical bar <code>|</code>, use <code><span style="color:#9098A0" class="wp-templatelink">{{<a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!" title="Шаблон:!">!</a>}}</span></code> or <code>&#124;</code>. </p> <table class="wikitable"> <tbody><tr> <th>Named flag </th> <th>Default value </th> <th>Default condition </th> <th>Description </th></tr> <tr> <th rowspan="6" style="text-align:right;"><code>format=</code> </th> <td><code>%p[%s][%r]</code> </td> <td>if the <code>property</code>/<code>properties</code> command <b>was</b> given and the <code>qualifier</code>/<code>qualifiers</code> command <b>was not</b> given </td> <td rowspan="6">The format of a single claim. The available parameters are as follows. <table class="wikitable"> <tbody><tr> <th>Parameter </th> <th>Description </th></tr> <tr> <td><code>%p</code> </td> <td>The claim's property value applied by the <code>property</code>/<code>properties</code> command. </td></tr> <tr> <td><code>%q1</code>, <code>%q2</code>, <code>%q3</code>, ... </td> <td>The claim's qualifier value or list of qualifier values applied by the corresponding <code>qualifier</code>/<code>qualifiers</code> command. </td></tr> <tr> <td><code>%q</code> </td> <td>The collection of the qualifier values applied by each <code>qualifier</code>/<code>qualifiers</code> command (i.e. <code>%q1</code> + <code>%q2</code> + <code>%q3</code> + ...). If only one <code>qualifier</code>/<code>qualifiers</code> command was given, then this parameter is equivalent to <code>%q1</code>. </td></tr> <tr> <td><code>%r</code> </td> <td>The claim's reference value or list of reference values applied by the <code>reference</code>/<code>references</code> command. </td></tr> <tr> <td><code>%a</code> </td> <td>The entity's alias applied by the <code>alias</code>/<code>aliases</code> command. </td></tr> <tr> <td><code>%b</code> </td> <td>The entity's page badge applied by the <code>badge</code>/<code>badges</code> command. </td></tr> <tr> <td><code>%s</code> </td> <td>The movable separator placeholder. This is a special parameter that is not applied by a command, but instead is filled automatically between each pair of claims (if a list of claims is returned). This is handy in case a reference is returned as well, since it allows the reference to be placed after the punctuation mark as prescribed by <a href="/w/index.php?title=%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:Manual_of_Style&action=edit&redlink=1" class="new" title="Уикипедия:Manual of Style (страницата не съществува)">Wikipedia's manual of style</a>. The default value is a comma (<code>,</code>) and can be overridden with the <code>sep%s</code> flag (see below). </td></tr></tbody></table> <p>Optional parameters can be given by encapsulating them between square brackets: <code>[...]</code>. All content between the square brackets is only displayed if a value for each optional parameter that has been defined between the same brackets has been found. Optional content can also be nested. </p><p>To use two opening square brackets that directly follow each other (i.e. <code><a href="/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!((&action=edit&redlink=1" class="new" title="Шаблон:!(( (страницата не съществува)">Шаблон:!((</a></code>), use <code><span style="color:#9098A0" class="wp-templatelink">{{<a href="/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!((&action=edit&redlink=1" class="new" title="Шаблон:!(( (страницата не съществува)">!((</a>}}</span></code>. </p><p>At least one parameter must be given that is not optional, while the <code>%s</code> parameter must always be defined as optional. </p><p>To get a literal <code>[</code>, <code>]</code>, <code>%</code> or <code>\</code>, escape the character by placing a backslash <code>\</code> directly in front of it (e.g. <code>\%</code>). See also the description directly above this table for more. </p> </td></tr> <tr> <td><code>%q[%s][%r]</code> </td> <td>if the <code>property</code>/<code>properties</code> command <b>was not</b> given and the <code>qualifier</code>/<code>qualifiers</code> command <b>was</b> given </td></tr> <tr> <td><code>%r</code> </td> <td>if <b>only</b> the <code>reference</code>/<code>references</code> command was given </td></tr> <tr> <td><code>%p[ <span style="font-size:85\%">(%q)</span>][%s][%r]</code> </td> <td>if the <code>property</code>/<code>properties</code> command <b>was</b> given and the <code>qualifier</code>/<code>qualifiers</code> command <b>was</b> given </td></tr> <tr> <td><code>%a[%s]</code> </td> <td>if the <code>alias</code>/<code>aliases</code> command was given </td></tr> <tr> <td><code>%b[%s]</code> </td> <td>if the <code>badge</code>/<code>badges</code> command was given </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th rowspan="2" style="text-align:right;"><code>sep=</code> </th> <td><code><dfn title="space" class="explain">_</dfn></code> </td> <td><span style="color:#777;"><i>default</i></span> </td> <td rowspan="2">The fixed separator between each pair of claims. </td></tr> <tr> <td><dfn title="empty" class="explain"><code><span style="visibility:hidden;">0</span></code></dfn> </td> <td>if <b>only</b> the <code>reference</code>/<code>references</code> command was given <b>without</b> the <code>raw</code> flag </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th rowspan="2" style="text-align:right;"><code>sep%s=</code> </th> <td><code>,</code> </td> <td><span style="color:#777;"><i>default</i></span> </td> <td rowspan="2">The movable separator between each pair of claims. This will be the value of the <code>%s</code> parameter applied to all claims except for the last in the list. </td></tr> <tr> <td><code>;</code> </td> <td>if the <code>property</code>/<code>properties</code> command <b>was not</b> given and the <code>qualifier</code>/<code>qualifiers</code> command <b>was</b> given </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th style="text-align:right;"><code>sep%q1=</code>, <code>sep%q2=</code>, <code>sep%q3=</code>, ... </th> <td><code><dfn title="comma space" class="explain">,_</dfn></code> </td> <td><span style="color:#777;"><i>default</i></span> </td> <td>The separator between each pair of qualifiers of a single claim. These are the value separators for the <code>%q1</code>, <code>%q2</code>, <code>%q3</code>, ... parameters. <p>If only one <code>qualifier</code>/<code>qualifiers</code> command was given, then the <code>sep%q1</code> flag is equivalent to <code>sep%q</code>. </p> </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th rowspan="2" style="text-align:right;"><code>sep%q=</code> </th> <td><code><dfn title="comma space" class="explain">,_</dfn></code> </td> <td>if <b>exactly one</b> <code>qualifier</code>/<code>qualifiers</code> command was given </td> <td rowspan="2">The separator between each set of qualifiers of a single claim. This is the value separator for the <code>%q</code> parameter. <p>If only one <code>qualifier</code>/<code>qualifiers</code> command was given, then this flag is equivalent to <code>sep%q1</code>. </p> </td></tr> <tr> <td><code><dfn title="semicolon space" class="explain"><span class="mw-default-size" typeof="mw:File"><span><img alt="намигане" src="//upload.wikimedia.org/wikipedia/commons/2/21/Namiga.png" decoding="async" width="16" height="16" class="mw-file-element" data-file-width="16" data-file-height="16" /></span></span>_</dfn></code> </td> <td>if <b>more than one</b> <code>qualifier</code>/<code>qualifiers</code> command was given </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th rowspan="2" style="text-align:right;"><code>sep%r=</code> </th> <td><dfn title="empty" class="explain"><code><span style="visibility:hidden;">0</span></code></dfn> </td> <td><span style="color:#777;"><i>default</i></span> </td> <td rowspan="2">The separator between each pair of references of a single claim. This is the value separator for the <code>%r</code> parameter. </td></tr> <tr> <td><code><dfn title="space" class="explain">_</dfn></code> </td> <td>if the <code>raw</code> flag <b>was</b> given for the <code>reference</code>/<code>references</code> command </td></tr> <tr> <td colspan="4"> </td></tr> <tr> <th style="text-align:right;"><code>punc=</code> </th> <td><dfn title="empty" class="explain"><code><span style="visibility:hidden;">0</span></code></dfn> </td> <td><span style="color:#777;"><i>default</i></span> </td> <td>A punctuation mark placed at the end of the output. This will be placed on the <code>%s</code> parameter applied to the last claim in the list. <p>This allows any references to be placed after the punctuation mark when the output is used as part of a sentence. </p> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Примери"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80.D0.B8"></span>Примери</h2></div> <table class="wikitable"> <tbody><tr> <th>Parameters and output types </th> <th>Example </th> <th style="width:20%">Description </th></tr> <tr> <td style="color:#777;font-size:small;"><a href="https://www.wikidata.org/wiki/Q55" class="extiw" title="d:Q55">Q55</a> = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P395" class="extiw" title="d:Property:P395">P395</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">string</span>] </p> </td> <td><code>{{#invoke:wd|property|Q55|P395}}</code><br /> <dl><dd>↓<br /></dd> <dd>NL</dd></dl> </td> <td>Gets a literal string value. </td></tr> <tr> <td style="color:#777;font-size:small;">P395 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">string</span>] </p> </td> <td><code>{{#invoke:wd|property|P395}}</code><br /> <dl><dd>↓<br /></dd> <dd>NL</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%B8%D1%8F" title="Нидерландия">Нидерландия</a> page (which is linked to Q55), then the <code>Q55</code> can be omitted. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P395 = "NL"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">string</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>eid=Q55</b>|P395}}</code><br /> <dl><dd>↓<br /></dd> <dd>NL</dd></dl> </td> <td>An entity-ID can also be given using the <code>eid=</code> argument. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P395 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">string</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>edit</b>|Q55|P395}}</code><br /> <dl><dd>↓<br /></dd> <dd>NL<span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q55?uselang=bg#P395" title="Редактиране в Уикиданни"><img alt="Редактиране в Уикиданни" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></dd></dl> </td> <td>Adds a clickable icon that may be used to edit the returned value on Wikidata. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P395 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">string</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>edit@end</b>|Q55|P395}}</code><br /> <dl><dd>↓<br /></dd> <dd>NL<span style="float:right"><span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q55?uselang=bg#P395" title="Редактиране в Уикиданни"><img alt="Редактиране в Уикиданни" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></span></dd></dl> </td> <td>Places the edit icon at the end of the line. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P1082" class="extiw" title="d:Property:P1082">P1082</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|<b>property</b>|<b>normal+</b>|Q55|P1082}}</code><br /> <dl><dd>↓<br /></dd> <dd>17 942 942</dd></dl> </td> <td>Gets a single property value from claims with a 'normal' rank or higher. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|<b>properties</b>|normal+|Q55|P1082}}</code><br /> <dl><dd>↓<br /></dd> <dd>17 942 942, 17 590 672, 17 407 585, 17 282 163, 17 181 084, 17 081 507, 17 000 000, 16 829 289, 16 779 575, 10 026 773</dd></dl> </td> <td>Gets multiple property values from claims with a 'normal' rank or higher. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Property:P585" class="extiw" title="d:Property:P585">P585</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>qualifier</b>|normal+|Q55|P1082|<b>P585</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>17 942 942 <span style="font-size:85%">(1 януари 2024 г.)</span>, 17 590 672 <span style="font-size:85%">(1 януари 2022 г.)</span>, 17 407 585 <span style="font-size:85%">(1 януари 2020 г.)</span>, 17 282 163 <span style="font-size:85%">(1 януари 2019 г.)</span>, 17 181 084 <span style="font-size:85%">(1 януари 2018 г.)</span>, 17 081 507 <span style="font-size:85%">(1 януари 2017 г.)</span>, 17 000 000 <span style="font-size:85%">(21 март 2016 г.)</span>, 16 829 289 <span style="font-size:85%">(26 август 2014 г.)</span>, 16 779 575 <span style="font-size:85%">(2013 г.)</span>, 10 026 773 <span style="font-size:85%">(1950 г.)</span></dd></dl> </td> <td>Gets a single qualifier value for each claim, additional to the property value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">time</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifier|<b>references</b>|normal+|Q55|P1082|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd>17 942 942 <span style="font-size:85%">(1 януари 2024 г.)</span>,<sup id="cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-0" class="reference"><a href="#cite_note-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6-4"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> 17 590 672 <span style="font-size:85%">(1 януари 2022 г.)</span>,<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-0" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> 17 407 585 <span style="font-size:85%">(1 януари 2020 г.)</span>,<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-1" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> 17 282 163 <span style="font-size:85%">(1 януари 2019 г.)</span>,<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-2" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> 17 181 084 <span style="font-size:85%">(1 януари 2018 г.)</span>,<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-3" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> 17 081 507 <span style="font-size:85%">(1 януари 2017 г.)</span>,<sup id="cite_ref-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6_6-0" class="reference"><a href="#cite_note-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6-6"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> 17 000 000 <span style="font-size:85%">(21 март 2016 г.)</span>,<sup id="cite_ref-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6_7-0" class="reference"><a href="#cite_note-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6-7"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> 16 829 289 <span style="font-size:85%">(26 август 2014 г.)</span>,<sup id="cite_ref-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6_8-0" class="reference"><a href="#cite_note-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6-8"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> 16 779 575 <span style="font-size:85%">(2013 г.)</span>,<sup id="cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-0" class="reference"><a href="#cite_note-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6-9"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> 10 026 773 <span style="font-size:85%">(1950 г.)</span><sup id="cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-1" class="reference"><a href="#cite_note-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6-9"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></dd></dl> </td> <td>Gets references for each claim. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>A total of <code>{{#invoke:wd|property|references|Q55|P1082}}</code> people live in the Netherlands.</code><br /> <dl><dd>↓<br /></dd> <dd>A total of 17 942 942<sup id="cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-1" class="reference"><a href="#cite_note-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6-4"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> people live in the Netherlands.</dd></dl> </td> <td>Gets a property with its references. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>The Netherlands has a population of <code>{{#invoke:wd|property|references|Q55|P1082|<b>punc=.</b>}}</code></code> <dl><dd>↓<br /></dd> <dd>The Netherlands has a population of 17 942 942.<sup id="cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-2" class="reference"><a href="#cite_note-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6-4"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></dd></dl> </td> <td>Adds a punctuation mark at the end of the output, in front of the references. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">time</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code><b><ul></b><code>{{#invoke:wd|properties|qualifier|references|normal+|Q55|P1082|P585|<b>format=<li>%p[%r][<ul><li>%q</li></ul>]</li></b>}}</code><b></ul></b></code><br /> <dl><dd>↓<br /></dd></dl> <ul><li>17 942 942<sup id="cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-3" class="reference"><a href="#cite_note-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6-4"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2024 г.</li></ul></li> <li>17 590 672<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-4" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2022 г.</li></ul></li> <li>17 407 585<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-5" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2020 г.</li></ul></li> <li>17 282 163<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-6" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2019 г.</li></ul></li> <li>17 181 084<sup id="cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-7" class="reference"><a href="#cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2018 г.</li></ul></li> <li>17 081 507<sup id="cite_ref-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6_6-1" class="reference"><a href="#cite_note-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6-6"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><ul><li>1 януари 2017 г.</li></ul></li> <li>17 000 000<sup id="cite_ref-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6_7-1" class="reference"><a href="#cite_note-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6-7"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><ul><li>21 март 2016 г.</li></ul></li> <li>16 829 289<sup id="cite_ref-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6_8-1" class="reference"><a href="#cite_note-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6-8"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><ul><li>26 август 2014 г.</li></ul></li> <li>16 779 575<sup id="cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-2" class="reference"><a href="#cite_note-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6-9"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><ul><li>2013 г.</li></ul></li> <li>10 026 773<sup id="cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-3" class="reference"><a href="#cite_note-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6-9"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><ul><li>1950 г.</li></ul></li></ul> </td> <td>Returns the output in a custom format. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|<b>qualifier</b>|normal+|Q55|P1082|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd>1 януари 2024 г.; 1 януари 2022 г.; 1 януари 2020 г.; 1 януари 2019 г.; 1 януари 2018 г.; 1 януари 2017 г.; 21 март 2016 г.; 26 август 2014 г.; 2013 г.; 1950 г.</dd></dl> </td> <td>Gets a single qualifier per claim, by default for multiple matching claims. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|qualifier|normal+|<b>single</b>|Q55|P1082|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd>1 януари 2024 г.</dd></dl> </td> <td>To get a single qualifier for only a single claim, give the <code>single</code> flag too so that only a single claim will be accessed. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|qualifier|Q55|P1082|<b>17590672</b>|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets a qualifier from claims for which the (raw) property value matches a given literal value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|qualifier|<b>mdy</b>|Q55|P1082|17590672|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets dates in month-day-year order. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd", P585 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|qualifier|<b>raw</b>|Q55|P1082|17590672|P585}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets a raw date value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>{{#invoke:wd|<b>references</b>|Q55|P1082|<b>17590672</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets the references from a particular claim. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1082 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>{{#invoke:wd|<b>references</b>|<b>raw</b>|Q55|P1082|<b>17590672</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets references from a particular claim in their raw form. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P1081" class="extiw" title="d:Property:P1081">P1081</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>references</b>|normal+|Q55|P1081}}</code><br /> <dl><dd>↓<br /></dd> <dd>0,931,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-0" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,928,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-1" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,926,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-2" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,924,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-3" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,922,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-0" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,923,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-4" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,92,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-1" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,921,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-5" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,92,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-2" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,921,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-6" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,919,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-3" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,91,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-7" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,909,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-4" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,906,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-8" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,906,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-9" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,904,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-10" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,897,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-11" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,891,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-12" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,886,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-13" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,883,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-14" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,878,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-15" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,879,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-16" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,877,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-5" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,876,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-17" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,87,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-18" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,867,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-19" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,865,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-20" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,866,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-21" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,861,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-22" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,864,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-23" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,839,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-24" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,835,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-25" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,834,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-26" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,829,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-6" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-27" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,799, 0,787</dd></dl> </td> <td>Gets properties from each claim with any references they have. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1081 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">reference</span>] </p> </td> <td><code>{{#invoke:wd|properties|references|normal+|<b>sourced</b>|Q55|P1081}}</code><br /> <dl><dd>↓<br /></dd> <dd>0,931,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-28" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,928,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-29" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,926,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-30" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,924,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-31" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,922,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-7" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,923,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-32" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,92,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-8" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,921,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-33" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,92,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-9" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,921,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-34" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,919,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-10" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,91,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-35" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,909,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-11" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,906,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-36" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,906,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-37" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,904,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-38" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,897,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-39" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,891,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-40" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,886,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-41" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,883,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-42" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,878,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-43" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,879,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-44" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,877,<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-12" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> 0,876,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-45" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,87,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-46" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,867,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-47" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,865,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-48" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,866,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-49" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,861,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-50" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,864,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-51" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,839,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-52" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,835,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-53" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,834,<sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-54" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> 0,829<sup id="cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-13" class="reference"><a href="#cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-55" class="reference"><a href="#cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></dd></dl> </td> <td>Only gets properties from claims that have at least one reference. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P2855" class="extiw" title="d:Property:P2855">P2855</a> = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Property:P518" class="extiw" title="d:Property:P518">P518</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|<b>qualifier</b>|Q55|P2855|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>храна</dd></dl> </td> <td>Gets a single qualifier value (for each matching claim). </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2855 = "Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|<b>qualifiers</b>|Q55|P2855|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>храна, Лекарство, Технически помощни средства, списание, книга, изкуство, Антика, фризьор, Хотел, Отдих, спорт, вода</dd></dl> </td> <td>Gets multiple qualifier values (for each matching claim). </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2855 = "Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|<b>properties</b>|qualifiers|Q55|P2855|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>21%, 6% <span style="font-size:85%">(храна, Лекарство, Технически помощни средства, списание, книга, изкуство, Антика, фризьор, Хотел, Отдих, спорт, вода)</span></dd></dl> </td> <td>Gets multiple property values along with multiple qualifier values. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2855 = "Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>], [<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifiers|Q55|P2855|P518|<b>sep=_+_</b>|<b>sep%s=</b>|<b>sep%q=_/_</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>21% + 6% <span style="font-size:85%">(храна / Лекарство / Технически помощни средства / списание / книга / изкуство / Антика / фризьор / Хотел / Отдих / спорт / вода)</span></dd></dl> </td> <td>Returns the output with custom separators. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P35" class="extiw" title="d:Property:P35">P35</a> = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Property:P580" class="extiw" title="d:Property:P580">P580</a> = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Property:P582" class="extiw" title="d:Property:P582">P582</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>qualifier</b>|<b>qualifier</b>|normal+|Q55|P35|<b>P580</b>|<b>P582</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>Вилем-Александър Орански <span style="font-size:85%">(30 април 2013 г.)</span>, Беатрикс Нидерландска <span style="font-size:85%">(30 април 1980 г.; 30 април 2013 г.)</span>, Юлиана Нидерландска <span style="font-size:85%">(4 септември 1948 г.; 30 април 1980 г.)</span>, Вилхелмина Нидерландска <span style="font-size:85%">(23 ноември 1890 г.; 4 септември 1948 г.)</span>, Вилем III <span style="font-size:85%">(17 март 1849 г.; 23 ноември 1890 г.)</span>, Вилхелм II Нидерландски <span style="font-size:85%">(7 октомври 1840 г.; 17 март 1849 г.)</span>, Вилем I (Нидерландия) <span style="font-size:85%">(16 март 1815 г.; 7 октомври 1840 г.)</span></dd></dl> </td> <td>Gets two different qualifier values for each claim. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P35 = "Модул:Wd", P580 = "Модул:Wd", P582 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|<b>sep%q=_–_</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>Вилем-Александър Орански <span style="font-size:85%">(30 април 2013 г.)</span>, Беатрикс Нидерландска <span style="font-size:85%">(30 април 1980 г. – 30 април 2013 г.)</span>, Юлиана Нидерландска <span style="font-size:85%">(4 септември 1948 г. – 30 април 1980 г.)</span>, Вилхелмина Нидерландска <span style="font-size:85%">(23 ноември 1890 г. – 4 септември 1948 г.)</span>, Вилем III <span style="font-size:85%">(17 март 1849 г. – 23 ноември 1890 г.)</span>, Вилхелм II Нидерландски <span style="font-size:85%">(7 октомври 1840 г. – 17 март 1849 г.)</span>, Вилем I (Нидерландия) <span style="font-size:85%">(16 март 1815 г. – 7 октомври 1840 г.)</span></dd></dl> </td> <td>Returns the output with a custom separator. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P35 = "Модул:Wd", P580 = "Модул:Wd", P582 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|<b>format=%p[ <span style="font-size:85\%">(%q1[ – %q2])</span>][%s][%r]</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>Вилем-Александър Орански <span style="font-size:85%">(30 април 2013 г.)</span>, Беатрикс Нидерландска <span style="font-size:85%">(30 април 1980 г. – 30 април 2013 г.)</span>, Юлиана Нидерландска <span style="font-size:85%">(4 септември 1948 г. – 30 април 1980 г.)</span>, Вилхелмина Нидерландска <span style="font-size:85%">(23 ноември 1890 г. – 4 септември 1948 г.)</span>, Вилем III <span style="font-size:85%">(17 март 1849 г. – 23 ноември 1890 г.)</span>, Вилхелм II Нидерландски <span style="font-size:85%">(7 октомври 1840 г. – 17 март 1849 г.)</span>, Вилем I (Нидерландия) <span style="font-size:85%">(16 март 1815 г. – 7 октомври 1840 г.)</span></dd></dl> </td> <td>Returns the output in a custom format instead of with a custom separator. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P35 = "Модул:Wd", P580 = "Модул:Wd", P582 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ <span style="font-size:85\%">(<b>[<![]--%q2]since [%q2--[]>]</b>%q1[ – %q2])</span>][%s][%r]}}</code><br /> <dl><dd>↓<br /></dd> <dd>Вилем-Александър Орански <span style="font-size:85%">(since 30 април 2013 г.)</span>, Беатрикс Нидерландска <span style="font-size:85%">(30 април 1980 г. – 30 април 2013 г.)</span>, Юлиана Нидерландска <span style="font-size:85%">(4 септември 1948 г. – 30 април 1980 г.)</span>, Вилхелмина Нидерландска <span style="font-size:85%">(23 ноември 1890 г. – 4 септември 1948 г.)</span>, Вилем III <span style="font-size:85%">(17 март 1849 г. – 23 ноември 1890 г.)</span>, Вилхелм II Нидерландски <span style="font-size:85%">(7 октомври 1840 г. – 17 март 1849 г.)</span>, Вилем I (Нидерландия) <span style="font-size:85%">(16 март 1815 г. – 7 октомври 1840 г.)</span></dd></dl> </td> <td>To add text only when a certain value is not present, like adding the word <i>since</i> if there is no end time, wrap it in between two optional blocks containing HTML comment tags and the relevant parameter (this also prevents the text from being added to the page source). </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P35 = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Q29574" class="extiw" title="d:Q29574">Q29574</a> = "Беатрикс Нидерландска", P580 = "Модул:Wd", P582 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>], [<span style="font-variant: small-caps">time</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifier|<b>raw</b>|qualifier|normal+|Q55|P35|<b>Q29574</b>|P580|P582|format=%p[ <span style="font-size:85\%">(%q1[ – %q2])</span>][%s][%r]}}</code><br /> <dl><dd>↓<br /></dd> <dd>Беатрикс Нидерландска <span style="font-size:85%">(1980-04-30 – 30 април 2013 г.)</span></dd></dl> </td> <td>Gets a property with qualifiers from claims for which the property matches a given Q-identifier, with one of the qualifier values in its raw form. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P38" class="extiw" title="d:Property:P38">P38</a> = "Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifiers|normal+|<b>current</b>|Q55|P38|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>евро, щатски долар <span style="font-size:85%">(Карибска Нидерландия)</span></dd></dl> </td> <td>Gets claims that are currently valid. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>linked</b>|qualifiers|normal+|current|Q55|P38|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%95%D0%B2%D1%80%D0%BE" title="Евро">евро</a>, <a href="/wiki/%D0%A9%D0%B0%D1%82%D1%81%D0%BA%D0%B8_%D0%B4%D0%BE%D0%BB%D0%B0%D1%80" title="Щатски долар">щатски долар</a> <span style="font-size:85%">(Карибска Нидерландия)</span></dd></dl> </td> <td>Gets claims with linked property values. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|qualifiers|<b>linked</b>|normal+|current|Q55|P38|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>евро, щатски долар <span style="font-size:85%">(Карибска Нидерландия)</span></dd></dl> </td> <td>Gets claims with linked qualifier values. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>linked</b>|<b>short</b>|qualifiers|<b>linked</b>|normal+|current|Q55|P38|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%95%D0%B2%D1%80%D0%BE" title="Евро">евро</a>, <a href="/wiki/%D0%A9%D0%B0%D1%82%D1%81%D0%BA%D0%B8_%D0%B4%D0%BE%D0%BB%D0%B0%D1%80" title="Щатски долар">щ.д.</a> <span style="font-size:85%">(Карибска Нидерландия)</span></dd></dl> </td> <td>Gets claims with linked property and qualifier values, with short property values wherever available. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd", <a href="https://www.wikidata.org/wiki/Q4917" class="extiw" title="d:Q4917">Q4917</a> = "щатски долар", P518 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|qualifiers|normal+|current|Q55|P38|<b>Q4917</b>|P518}}</code><br /> <dl><dd>↓<br /></dd> <dd>Карибска Нидерландия</dd></dl> </td> <td>Gets qualifiers from claims for which the (raw) property value matches a given Q-identifier. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd", P518 = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Q27561" class="extiw" title="d:Q27561">Q27561</a> = "Карибска Нидерландия"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|normal+|current|Q55|P38|<b>P518=Q27561</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>щатски долар</dd></dl> </td> <td>Gets properties from claims for which a (raw) qualifier value matches a given Q-identifier. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|normal+|<b>former</b>|Q55|P38}}</code><br /> <dl><dd>↓<br /></dd> <dd>Нидерландски гулден</dd></dl> </td> <td>Gets claims that were valid in the past. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|<b>raw</b>|normal+|former|Q55|P38}}</code><br /> <dl><dd>↓<br /></dd> <dd>Q788472</dd></dl> </td> <td>Gets raw property values. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P38 = Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|properties|raw|<b>linked</b>|normal+|former|Q55|P38}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="https://www.wikidata.org/wiki/Q788472" class="extiw" title="d:Q788472">Q788472</a></dd></dl> </td> <td>Gets raw property values that are linked to Wikidata. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P1549" class="extiw" title="d:Property:P1549">P1549</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">monolingual text</span>] </p> </td> <td><code>{{#invoke:wd|property|Q55|P1549}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets a monolingual text value in the current wiki's language. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P1549 = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Property:P407" class="extiw" title="d:Property:P407">P407</a> = "Модул:Wd", <a href="https://www.wikidata.org/wiki/Q36846" class="extiw" title="d:Q36846">Q36846</a> = "токи пона"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">monolingual text</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>multilanguage</b>|Q55|P1549|P407=Q36846}}</code><br /> <dl><dd>↓<br /></dd> <dd></dd></dl> </td> <td>Gets a monolingual text value in any available language. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P2884" class="extiw" title="d:Property:P2884">P2884</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|property|Q55|P2884}}</code><br /> <dl><dd>↓<br /></dd> <dd>230 V</dd></dl> </td> <td>Gets a quantity value with its associated unit of measurement. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2884 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>linked</b>|Q55|P2884}}</code><br /> <dl><dd>↓<br /></dd> <dd>230 <a href="/wiki/%D0%92%D0%BE%D0%BB%D1%82" title="Волт">V</a></dd></dl> </td> <td>Gets a quantity value with a linked unit of measurement. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2884 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>raw</b>|Q55|P2884}}</code><br /> <dl><dd>↓<br /></dd> <dd>230</dd></dl> </td> <td>Gets a raw quantity value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2884 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>unit</b>|Q55|P2884}}</code><br /> <dl><dd>↓<br /></dd> <dd>V</dd></dl> </td> <td>Gets only the unit of measurement. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P2884 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">quantity</span>] </p> </td> <td><code>{{#invoke:wd|property|unit|<b>raw</b>|Q55|P2884}}</code><br /> <dl><dd>↓<br /></dd> <dd>V</dd></dl> </td> <td>Gets the raw unit of measurement. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P625" class="extiw" title="d:Property:P625">P625</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">globe coordinate</span>] </p> </td> <td><code>{{#invoke:wd|property|Q55|P625}}</code><br /> <dl><dd>↓<br /></dd> <dd>52°19'N, 5°33'E</dd></dl> </td> <td>Gets a globe coordinate value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P625 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">globe coordinate</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>linked</b>|Q55|P625}}</code><br /> <dl><dd>↓<br /></dd> <dd><a class="external text" href="https://tools.wmflabs.org/geohack/geohack.php?language=bg&params=52_19_N_5_33_E_globe:earth">52°19'N, 5°33'E</a></dd></dl> </td> <td>Gets a linked globe coordinate value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P625 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">globe coordinate</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>raw</b>|Q55|P625}}</code><br /> <dl><dd>↓<br /></dd> <dd>52/19/N/5/33/E</dd></dl> </td> <td>Gets a raw globe coordinate value. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P625 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">globe coordinate</span>] </p> </td> <td><code>{{#invoke:wd|property|Q55|<b>coord</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>52°19'N, 5°33'E</dd></dl> </td> <td>A property alias can be used instead of the P-identifier. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", <a href="https://www.wikidata.org/wiki/Property:P41" class="extiw" title="d:Property:P41">P41</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">commons media</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>linked</b>|Q55|P41}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="https://commons.wikimedia.org/wiki/File:Flag_of_the_Netherlands.svg" class="extiw" title="c:File:Flag of the Netherlands.svg">Flag of the Netherlands.svg</a></dd></dl> </td> <td>Gets a media file name and links to it on Commons. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия", P41 = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">commons media</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>raw</b>|Q55|P41|<b>format=\[\[File:%p {{!}} thumb {{!}} left\]\]</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd><figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Flag_of_the_Netherlands.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/220px-Flag_of_the_Netherlands.svg.png" decoding="async" width="220" height="147" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/330px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/440px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></a><figcaption></figcaption></figure></dd></dl> </td> <td>A Commons media file can be included on the page as-is by omitting the <code>linked</code> and <code>raw</code> flags, but by using the <code>raw</code> flag it can be freely formatted. </td></tr> <tr> <td style="color:#777;font-size:small;"><a href="https://www.wikidata.org/wiki/Q915684" class="extiw" title="d:Q915684">Q915684</a> = "", <a href="https://www.wikidata.org/wiki/Property:P2534" class="extiw" title="d:Property:P2534">P2534</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">math</span>] </p> </td> <td><code>{{#invoke:wd|property|Q915684|P2534}}</code><br /> <dl><dd>↓<br /></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {n^{2}-1}{n^{2}+2}}={\frac {4\pi }{3}}N\alpha }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mrow> <msup> <mi>n</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>−<!-- − --></mo> <mn>1</mn> </mrow> <mrow> <msup> <mi>n</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>+</mo> <mn>2</mn> </mrow> </mfrac> </mrow> <mo>=</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mrow> <mn>4</mn> <mi>π<!-- π --></mi> </mrow> <mn>3</mn> </mfrac> </mrow> <mi>N</mi> <mi>α<!-- α --></mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle {\frac {n^{2}-1}{n^{2}+2}}={\frac {4\pi }{3}}N\alpha }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d13095c802df3c9bff3581ecc3f26b1dd3c1a547" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.338ex; width:17.268ex; height:6.176ex;" alt="{\displaystyle {\frac {n^{2}-1}{n^{2}+2}}={\frac {4\pi }{3}}N\alpha }"></span></dd></dl> </td> <td>Gets a mathematical expression. </td></tr> <tr> <td style="color:#777;font-size:small;"><a href="https://www.wikidata.org/wiki/Q6256" class="extiw" title="d:Q6256">Q6256</a> = "страна", <a href="https://www.wikidata.org/wiki/Property:P3896" class="extiw" title="d:Property:P3896">P3896</a> = "Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">geographic shape</span>] </p> </td> <td><code>{{#invoke:wd|property|<b>linked</b>|Q6256|P3896}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="https://commons.wikimedia.org/wiki/Data:Naturalearthdata.com/admin-0-countries-no-antarctica.map" class="extiw" title="c:Data:Naturalearthdata.com/admin-0-countries-no-antarctica.map">Data:Naturalearthdata.com/admin-0-countries-no-antarctica.map</a></dd></dl> </td> <td>Gets a geographic shape data file name and links to it on Commons. </td></tr> <tr> <td style="color:#777;font-size:small;">Q4917 = "щатски долар"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|<b>label</b>|Q4917}}</code><br /> <dl><dd>↓<br /></dd> <dd>щатски долар</dd></dl> </td> <td>Gets an item's label. </td></tr> <tr> <td style="color:#777;font-size:small;">Q4917 = "щатски долар"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|<b>short</b>|<b>linked</b>|Q4917}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%A9%D0%B0%D1%82%D1%81%D0%BA%D0%B8_%D0%B4%D0%BE%D0%BB%D0%B0%D1%80" title="Щатски долар">щ.д.</a></dd></dl> </td> <td>Gets an item's short and linked label. </td></tr> <tr> <td style="color:#777;font-size:small;">P38 = Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|P38}}</code><br /> <dl><dd>↓<br /></dd> <dd>Модул:Wd</dd></dl> </td> <td>Gets a property's label. </td></tr> <tr> <td style="color:#777;font-size:small;">P38 = Модул:Wd"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|<b>linked</b>|P38}}</code><br /> <dl><dd>↓<br /></dd> <dd><a class="mw-selflink selflink">Модул:Wd</a></dd></dl> </td> <td>Gets a property's label that is linked to Wikidata. </td></tr> <tr> <td style="color:#777;font-size:small;"><a href="https://www.wikidata.org/wiki/Q776" class="extiw" title="d:Q776">Q776</a> = "Утрехт"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|Q776}}</code><br /> <dl><dd>↓<br /></dd> <dd>Утрехт</dd></dl> </td> <td>Gets an item's label. </td></tr> <tr> <td style="color:#777;font-size:small;">Q776 = "Утрехт"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|<b>linked</b>|Q776}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%A3%D1%82%D1%80%D0%B5%D1%85%D1%82_(%D0%BF%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F)" title="Утрехт (провинция)">Утрехт</a></dd></dl> </td> <td>Gets an item's linked label. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label}}</code><br /> <dl><dd>↓<br /></dd> <dd>Утрехт</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%A3%D1%82%D1%80%D0%B5%D1%85%D1%82_(%D0%BF%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F)" title="Утрехт (провинция)">Утрехт (провинция)</a> page (which is linked to Q776), then the <code>Q776</code> can be omitted. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity label</span>] </p> </td> <td><code>{{#invoke:wd|label|<b>raw</b>}}</code><br /> <dl><dd>↓<br /></dd> <dd>Q776</dd></dl> </td> <td>If just the <code>label</code> command with the <code>raw</code> flag is given, then the Q-identifier of the item connected to the current page is returned. </td></tr> <tr> <td style="color:#777;font-size:small;">Q776 = "Утрехт"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page title</span>] </p> </td> <td><code>{{#invoke:wd|<b>title</b>|Q776}}</code><br /> <dl><dd>↓<br /></dd> <dd>Утрехт (провинция)</dd></dl> </td> <td>Gets the title of the page on the current wiki that is linked to the given item. </td></tr> <tr> <td style="color:#777;font-size:small;">Q776 = "Утрехт"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page title</span>] </p> </td> <td><code>{{#invoke:wd|title|<b>linked</b>|Q776}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%A3%D1%82%D1%80%D0%B5%D1%85%D1%82_(%D0%BF%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F)" title="Утрехт (провинция)">Утрехт (провинция)</a></dd></dl> </td> <td>Gets the linked title of the page on the current wiki that is linked to the given item. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page title</span>] </p> </td> <td><code>{{#invoke:wd|title}}</code><br /> <dl><dd>↓<br /></dd> <dd>Утрехт (провинция)</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%A3%D1%82%D1%80%D0%B5%D1%85%D1%82_(%D0%BF%D1%80%D0%BE%D0%B2%D0%B8%D0%BD%D1%86%D0%B8%D1%8F)" title="Утрехт (провинция)">Утрехт (провинция)</a> page (which is linked to Q776), then the <code>Q776</code> can be omitted. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity description</span>] </p> </td> <td><code>{{#invoke:wd|<b>description</b>|Q55}}</code><br /> <dl><dd>↓<br /></dd> <dd>държава в Западна Европа</dd></dl> </td> <td>Gets an item's description. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity description</span>] </p> </td> <td><code>{{#invoke:wd|description}}</code><br /> <dl><dd>↓<br /></dd> <dd>държава в Западна Европа</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%B8%D1%8F" title="Нидерландия">Нидерландия</a> page (which is linked to Q55), then the <code>Q55</code> can be omitted. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity alias</span>] </p> </td> <td><code>{{#invoke:wd|<b>alias</b>|Q55}}</code><br /> <dl><dd>↓<br /></dd> <dd>Кралство Нидерландия</dd></dl> </td> <td>Gets one of an item's aliases. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity alias</span>] </p> </td> <td><code>{{#invoke:wd|<b>aliases</b>|Q55}}</code><br /> <dl><dd>↓<br /></dd> <dd>Кралство Нидерландия, Холандия</dd></dl> </td> <td>Gets all of an item's aliases. </td></tr> <tr> <td style="color:#777;font-size:small;">Q55 = "Нидерландия"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity alias</span>] </p> </td> <td><code>{{#invoke:wd|alias|<b>linked</b>|Q55}}</code><br /> <dl><dd>↓<br /></dd> <dd><a href="/wiki/%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%B8%D1%8F" title="Нидерландия">Кралство Нидерландия</a></dd></dl> </td> <td>Gets a linked alias from an item. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">entity alias</span>] </p> </td> <td><code>{{#invoke:wd|alias}}</code><br /> <dl><dd>↓<br /></dd> <dd>Кралство Нидерландия</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%B8%D1%8F" title="Нидерландия">Нидерландия</a> page (which is linked to Q55), then the <code>Q55</code> can be omitted. </td></tr> <tr> <td style="color:#777;font-size:small;"><a href="https://www.wikidata.org/wiki/Q2" class="extiw" title="d:Q2">Q2</a> = "Земя"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page badge</span>] </p> </td> <td><code>{{#invoke:wd|<b>badges</b>|Q2}}</code><br /> <dl><dd>↓<br /></dd> <dd>Избрана статия</dd></dl> </td> <td>Gets the badges for the page on the current wiki that is linked to the given item. </td></tr> <tr> <td style="color:#777;font-size:small;">Q2 = "Земя"<br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page badge</span>] </p> </td> <td><code>{{#invoke:wd|badges|<b>raw</b>|Q2}}</code><br /> <dl><dd>↓<br /></dd> <dd>Q17437796</dd></dl> </td> <td>Gets the raw badges for the page on the current wiki that is linked to the given item. </td></tr> <tr> <td style="color:#777;font-size:small;"><br /> <dl><dd>↓<br /></dd></dl> <p>[<span style="font-variant: small-caps">page badge</span>] </p> </td> <td><code>{{#invoke:wd|badges}}</code><br /> <dl><dd>↓<br /></dd> <dd>Избрана статия</dd></dl> </td> <td>If the модул is transcluded on the <a href="/wiki/%D0%97%D0%B5%D0%BC%D1%8F" title="Земя">Земя</a> page (which is linked to Q2), then the <code>Q2</code> can be omitted. </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Example_references">Example references</h3></div> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6-4"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-2"><sup><i><b>в</b></i></sup></a> <a href="#cite_ref-wikidata-749cb702c62b89cd8868fb5c496cfa82218dae87-v6_4-3"><sup><i><b>г</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://opendata.cbs.nl/statline/#/CBS/nl/dataset/85496NED/table?ts=1724328667989"><span lang="nl" dir="ltr">Bevolking; kerncijfers (1950-2024)</span></a> //   Посетен на 22 август 2024 г.</cite></span> </li> <li id="cite_note-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6-5"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-2"><sup><i><b>в</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-3"><sup><i><b>г</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-4"><sup><i><b>д</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-5"><sup><i><b>е</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-6"><sup><i><b>ж</b></i></sup></a> <a href="#cite_ref-wikidata-3abcb661cd2d0629bbc49088fa86f8b016fa3525-v6_5-7"><sup><i><b>з</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://opendata.cbs.nl/statline/#/CBS/nl/dataset/37296ned/table?ts=1560596956049"><span lang="nl" dir="ltr">Bevolking; kerncijfers, 1950-2022</span></a></cite></span> </li> <li id="cite_note-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6-6"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6_6-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-4f58fc69480f96aaec74e771792854a11428895e-v6_6-1"><sup><i><b>б</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://opendata.cbs.nl/statline/#/CBS/nl/dataset/37296ned/table?ts=1560596956049"><span lang="nl" dir="ltr">Bevolking; kerncijfers, 1950-2022</span></a> //   Посетен на 18 март 2023 г.</cite></span> </li> <li id="cite_note-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6-7"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6_7-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-08fbc9797078849d8dc7b4754ad2109020d16f96-v6_7-1"><sup><i><b>б</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREF21_март_2016 г." class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://www.cbs.nl/nl-NL/menu/themas/bevolking/publicaties/artikelen/archief/2016/nederland-telt-17-miljoen-inwoners.htm"><span lang="nl" dir="ltr">Nederland telt 17 miljoen inwoners</span></a> //   21 март 2016 г.</cite></span> </li> <li id="cite_note-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6-8"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6_8-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-475c2999c451e2e418b275ef9b087583a2db7228-v6_8-1"><sup><i><b>б</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140903082344/http://statline.cbs.nl/StatWeb/publication/?VW=T&DM=SLNL&PA=37296ned&LA=NL"><span lang="nl" dir="ltr">CBS StatLine - Bevolking; kerncijfers</span></a> //    Архивиран от <a rel="nofollow" class="external text" href="https://statline.cbs.nl/StatWeb/publication/?VW=T&DM=SLNL&PA=37296ned&LA=NL">оригинала</a> на 3 септември 2014 г. Посетен на 26 август 2014 г.</cite></span> </li> <li id="cite_note-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6-9"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-2"><sup><i><b>в</b></i></sup></a> <a href="#cite_ref-wikidata-cb4c9d92a7876cfdfafdaf4b92634cba9063dac1-v6_9-3"><sup><i><b>г</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150827042738/http://statline.cbs.nl/StatWeb/publication/?VW=T&DM=SLNL&PA=37296ned&D1=a&D2=0,10,20,30,40,50,60,(l-1),l&HD=130605-0924&HDR=G1&STB=T"><span lang="nl" dir="ltr">CBS StatLine - Bevolking; kerncijfers</span></a> //    Архивиран от <a rel="nofollow" class="external text" href="https://statline.cbs.nl/StatWeb/publication/?VW=T&DM=SLNL&PA=37296ned&D1=a&D2=0,10,20,30,40,50,60,(l-1),l&HD=130605-0924&HDR=G1&STB=T">оригинала</a> на 27 август 2015 г. Посетен на 22 август 2015 г.</cite></span> </li> <li id="cite_note-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6-10"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-2"><sup><i><b>в</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-3"><sup><i><b>г</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-4"><sup><i><b>д</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-5"><sup><i><b>е</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-6"><sup><i><b>ж</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-7"><sup><i><b>з</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-8"><sup><i><b>и</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-9"><sup><i><b>к</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-10"><sup><i><b>л</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-11"><sup><i><b>м</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-12"><sup><i><b>н</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-13"><sup><i><b>о</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-14"><sup><i><b>п</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-15"><sup><i><b>р</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-16"><sup><i><b>с</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-17"><sup><i><b>т</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-18"><sup><i><b>у</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-19"><sup><i><b>ф</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-20"><sup><i><b>х</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-21"><sup><i><b>ц</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-22"><sup><i><b>ч</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-23"><sup><i><b>ш</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-24"><sup><i><b>щ</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-25"><sup><i><b>ю</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-26"><sup><i><b>я</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-27"><sup><i><b>аа</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-28"><sup><i><b>аб</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-29"><sup><i><b>ав</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-30"><sup><i><b>аг</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-31"><sup><i><b>ад</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-32"><sup><i><b>ае</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-33"><sup><i><b>аж</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-34"><sup><i><b>аз</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-35"><sup><i><b>аи</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-36"><sup><i><b>ак</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-37"><sup><i><b>ал</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-38"><sup><i><b>ам</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-39"><sup><i><b>ан</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-40"><sup><i><b>ао</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-41"><sup><i><b>ап</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-42"><sup><i><b>ар</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-43"><sup><i><b>ас</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-44"><sup><i><b>ат</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-45"><sup><i><b>ау</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-46"><sup><i><b>аф</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-47"><sup><i><b>ах</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-48"><sup><i><b>ац</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-49"><sup><i><b>ач</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-50"><sup><i><b>аш</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-51"><sup><i><b>ащ</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-52"><sup><i><b>аю</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-53"><sup><i><b>ая</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-54"><sup><i><b>ба</b></i></sup></a> <a href="#cite_ref-wikidata-f5c4249c74a1deaf99aa1ce9def008283983d0a1-v6_10-55"><sup><i><b>бб</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20181230181123/http://hdr.undp.org/en/data"><span lang="en" dir="ltr">Human Development Data (1990-2017)</span></a> //    Архивиран от <a rel="nofollow" class="external text" href="http://hdr.undp.org/en/data">оригинала</a> на 30 декември 2018 г.</cite></span> </li> <li id="cite_note-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6-11"><span class="mw-cite-backlink">↑ <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-1"><sup><i><b>б</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-2"><sup><i><b>в</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-3"><sup><i><b>г</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-4"><sup><i><b>д</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-5"><sup><i><b>е</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-6"><sup><i><b>ж</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-7"><sup><i><b>з</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-8"><sup><i><b>и</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-9"><sup><i><b>к</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-10"><sup><i><b>л</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-11"><sup><i><b>м</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-12"><sup><i><b>н</b></i></sup></a> <a href="#cite_ref-wikidata-9775e828e0f16e6a1b32ff4b6293321469548907-v6_11-13"><sup><i><b>о</b></i></sup></a></span> <span class="reference-text"><cite class="book" style="font-style:normal"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20170202193023/http://hdr.undp.org/en/countries/profiles/NLD"><span lang="en" dir="ltr">Netherlands</span></a> //    Архивиран от <a rel="nofollow" class="external text" href="http://hdr.undp.org/en/countries/profiles/NLD">оригинала</a> на 2 февруари 2017 г.</cite></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="Вижте_също"><span id=".D0.92.D0.B8.D0.B6.D1.82.D0.B5_.D1.81.D1.8A.D1.89.D0.BE"></span>Вижте също</h2></div> <ul><li><span class="wp-templatelink">{{</span><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Wikidata" class="mw-redirect" title="Шаблон:Wikidata">Wikidata</a><span class="wp-templatelink">}}</span>, a user-friendly wrapper template for this module.</li> <li><span class="wp-templatelink">{{</span><a href="/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:WikidataOI&action=edit&redlink=1" class="new" title="Шаблон:WikidataOI (страницата не съществува)">WikidataOI</a><span class="wp-templatelink">}}</span>, a wrapper template for this module that adds an opt-in toggle.</li> <li><span class="wp-templatelink">{{</span><a href="/w/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Pageid_to_title&action=edit&redlink=1" class="new" title="Шаблон:Pageid to title (страницата не съществува)">Pageid to title</a><span class="wp-templatelink">}}</span>, to get a page title using its local page id, rather than Wikidata</li></ul> <hr /><div class="mw-highlight mw-highlight-lang-lua mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos" data-line="1"></span></a><span class="c1">-- Original module located at [[:en:Module:Wd]], [[:en:Module:Wd/i18n]] and [[:en:Module:Wd/aliasesP]].</span> </span><span id="L-2"><a href="#L-2"><span class="linenos" data-line="2"></span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos" data-line="3"></span></a><span class="kd">local</span> <span class="n">p</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-4"><a href="#L-4"><span class="linenos" data-line="4"></span></a><span class="kd">local</span> <span class="n">arg</span> <span class="o">=</span> <span class="p">...</span> </span><span id="L-5"><a href="#L-5"><span class="linenos" data-line="5"></span></a><span class="kd">local</span> <span class="n">i18n</span> </span><span id="L-6"><a href="#L-6"><span class="linenos" data-line="6"></span></a> </span><span id="L-7"><a href="#L-7"><span class="linenos" data-line="7"></span></a><span class="kr">function</span> <span class="nf">loadSubmodules</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a> <span class="kd">local</span> <span class="n">title</span> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a> <span class="kr">if</span> <span class="n">frame</span> <span class="kr">then</span> </span><span id="L-11"><a href="#L-11"><span class="linenos" data-line="11"></span></a> <span class="c1">-- current module invoked by page/template, get its title from frame</span> </span><span id="L-12"><a href="#L-12"><span class="linenos" data-line="12"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">frame</span><span class="p">:</span><span class="n">getTitle</span><span class="p">()</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a> <span class="kr">else</span> </span><span id="L-14"><a href="#L-14"><span class="linenos" data-line="14"></span></a> <span class="c1">-- current module included by other module, get its title from ...</span> </span><span id="L-15"><a href="#L-15"><span class="linenos" data-line="15"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">arg</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a> <span class="kr">end</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a> <span class="n">i18n</span> <span class="o">=</span> <span class="n">i18n</span> <span class="ow">or</span> <span class="nb">require</span><span class="p">(</span><span class="n">title</span> <span class="o">..</span> <span class="s2">"/i18n"</span><span class="p">)</span> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="n">title</span> <span class="o">..</span> <span class="s2">"/aliasesP"</span><span class="p">)</span> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a><span class="kr">end</span> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></span></a><span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a> <span class="n">property</span> <span class="o">=</span> <span class="s2">"property"</span><span class="p">,</span> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a> <span class="n">properties</span> <span class="o">=</span> <span class="s2">"properties"</span><span class="p">,</span> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></span></a> <span class="n">qualifier</span> <span class="o">=</span> <span class="s2">"qualifier"</span><span class="p">,</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a> <span class="n">qualifiers</span> <span class="o">=</span> <span class="s2">"qualifiers"</span><span class="p">,</span> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a> <span class="n">reference</span> <span class="o">=</span> <span class="s2">"reference"</span><span class="p">,</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a> <span class="n">references</span> <span class="o">=</span> <span class="s2">"references"</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a><span class="p">}</span> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a><span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="s2">"label"</span><span class="p">,</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="s2">"title"</span><span class="p">,</span> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a> <span class="n">description</span> <span class="o">=</span> <span class="s2">"description"</span><span class="p">,</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">"alias"</span><span class="p">,</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a> <span class="n">aliases</span> <span class="o">=</span> <span class="s2">"aliases"</span><span class="p">,</span> </span><span id="L-37"><a href="#L-37"><span class="linenos" data-line="37"></span></a> <span class="n">badge</span> <span class="o">=</span> <span class="s2">"badge"</span><span class="p">,</span> </span><span id="L-38"><a href="#L-38"><span class="linenos" data-line="38"></span></a> <span class="n">badges</span> <span class="o">=</span> <span class="s2">"badges"</span> </span><span id="L-39"><a href="#L-39"><span class="linenos" data-line="39"></span></a><span class="p">}</span> </span><span id="L-40"><a href="#L-40"><span class="linenos" data-line="40"></span></a> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a><span class="n">p</span><span class="p">.</span><span class="n">flags</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a> <span class="n">linked</span> <span class="o">=</span> <span class="s2">"linked"</span><span class="p">,</span> </span><span id="L-43"><a href="#L-43"><span class="linenos" data-line="43"></span></a> <span class="n">lat_only</span> <span class="o">=</span> <span class="s2">"latitude"</span><span class="p">,</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> <span class="n">lon_only</span> <span class="o">=</span> <span class="s2">"longitude"</span><span class="p">,</span> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a> <span class="n">short</span> <span class="o">=</span> <span class="s2">"short"</span><span class="p">,</span> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a> <span class="n">raw</span> <span class="o">=</span> <span class="s2">"raw"</span><span class="p">,</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a> <span class="n">multilanguage</span> <span class="o">=</span> <span class="s2">"multilanguage"</span><span class="p">,</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a> <span class="n">unit</span> <span class="o">=</span> <span class="s2">"unit"</span><span class="p">,</span> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a> <span class="c1">-------------</span> </span><span id="L-50"><a href="#L-50"><span class="linenos" data-line="50"></span></a> <span class="n">preferred</span> <span class="o">=</span> <span class="s2">"preferred"</span><span class="p">,</span> </span><span id="L-51"><a href="#L-51"><span class="linenos" data-line="51"></span></a> <span class="n">normal</span> <span class="o">=</span> <span class="s2">"normal"</span><span class="p">,</span> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a> <span class="n">deprecated</span> <span class="o">=</span> <span class="s2">"deprecated"</span><span class="p">,</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a> <span class="n">best</span> <span class="o">=</span> <span class="s2">"best"</span><span class="p">,</span> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a> <span class="n">future</span> <span class="o">=</span> <span class="s2">"future"</span><span class="p">,</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a> <span class="n">current</span> <span class="o">=</span> <span class="s2">"current"</span><span class="p">,</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a> <span class="n">former</span> <span class="o">=</span> <span class="s2">"former"</span><span class="p">,</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a> <span class="n">edit</span> <span class="o">=</span> <span class="s2">"edit"</span><span class="p">,</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a> <span class="n">editAtEnd</span> <span class="o">=</span> <span class="s2">"edit@end"</span><span class="p">,</span> </span><span id="L-59"><a href="#L-59"><span class="linenos" data-line="59"></span></a> <span class="n">mdy</span> <span class="o">=</span> <span class="s2">"mdy"</span><span class="p">,</span> </span><span id="L-60"><a href="#L-60"><span class="linenos" data-line="60"></span></a> <span class="n">single</span> <span class="o">=</span> <span class="s2">"single"</span><span class="p">,</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a> <span class="n">sourced</span> <span class="o">=</span> <span class="s2">"sourced"</span> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a><span class="p">}</span> </span><span id="L-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a><span class="n">p</span><span class="p">.</span><span class="n">args</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a> <span class="n">eid</span> <span class="o">=</span> <span class="s2">"eid"</span><span class="p">,</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a> <span class="n">date</span> <span class="o">=</span> <span class="s2">"date"</span> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a><span class="p">}</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a><span class="kd">local</span> <span class="n">aliasesQ</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a> <span class="n">arcminute</span> <span class="o">=</span> <span class="s2">"Q209426"</span><span class="p">,</span> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a> <span class="n">arcsecond</span> <span class="o">=</span> <span class="s2">"Q829073"</span><span class="p">,</span> </span><span id="L-72"><a href="#L-72"><span class="linenos" data-line="72"></span></a> <span class="n">cite</span> <span class="o">=</span> <span class="s2">"Q6925554"</span><span class="p">,</span> </span><span id="L-73"><a href="#L-73"><span class="linenos" data-line="73"></span></a> <span class="n">degree</span> <span class="o">=</span> <span class="s2">"Q28390"</span><span class="p">,</span> </span><span id="L-74"><a href="#L-74"><span class="linenos" data-line="74"></span></a> <span class="n">percentage</span> <span class="o">=</span> <span class="s2">"Q11229"</span><span class="p">,</span> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a> <span class="n">permill</span> <span class="o">=</span> <span class="s2">"Q181011"</span><span class="p">,</span> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="n">prolepticJulianCalendar</span> <span class="o">=</span> <span class="s2">"Q1985786"</span><span class="p">,</span> </span><span id="L-77"><a href="#L-77"><span class="linenos" data-line="77"></span></a><span class="p">}</span> </span><span id="L-78"><a href="#L-78"><span class="linenos" data-line="78"></span></a> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a><span class="kd">local</span> <span class="n">parameters</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a> <span class="n">property</span> <span class="o">=</span> <span class="s2">"%p"</span><span class="p">,</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> <span class="n">qualifier</span> <span class="o">=</span> <span class="s2">"%q"</span><span class="p">,</span> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></span></a> <span class="n">reference</span> <span class="o">=</span> <span class="s2">"%r"</span><span class="p">,</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">"%a"</span><span class="p">,</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a> <span class="n">badge</span> <span class="o">=</span> <span class="s2">"%b"</span><span class="p">,</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a> <span class="n">separator</span> <span class="o">=</span> <span class="s2">"%s"</span><span class="p">,</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a> <span class="n">general</span> <span class="o">=</span> <span class="s2">"%x"</span> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a><span class="p">}</span> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a><span class="kd">local</span> <span class="n">formats</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a> <span class="n">property</span> <span class="o">=</span> <span class="s2">"%p[%s][%r]"</span><span class="p">,</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a> <span class="n">qualifier</span> <span class="o">=</span> <span class="s2">"%q[%s][%r]"</span><span class="p">,</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> <span class="n">reference</span> <span class="o">=</span> <span class="s2">"%r"</span><span class="p">,</span> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a> <span class="n">propertyWithQualifier</span> <span class="o">=</span> <span class="s2">"%p[ <span style=</span><span class="se">\"</span><span class="s2">font-size:85</span><span class="se">\\</span><span class="s2">%</span><span class="se">\"</span><span class="s2">>(%q)</span>][%s][%r]"</span><span class="p">,</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">"%a[%s]"</span><span class="p">,</span> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a> <span class="n">badge</span> <span class="o">=</span> <span class="s2">"%b[%s]"</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a><span class="p">}</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> </span><span id="L-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a><span class="kd">local</span> <span class="n">hookNames</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">-- {level_1, level_2}</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getProperty"</span><span class="p">},</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getReferences"</span><span class="p">,</span> <span class="s2">"getReference"</span><span class="p">},</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getAllQualifiers"</span><span class="p">},</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="s2">"</span><span class="se">\\</span><span class="s2">d"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getQualifiers"</span><span class="p">,</span> <span class="s2">"getQualifier"</span><span class="p">},</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getAlias"</span><span class="p">},</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">badge</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"getBadge"</span><span class="p">}</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a><span class="p">}</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a><span class="c1">-- default value objects, should NOT be mutated but instead copied</span> </span><span id="L-108"><a href="#L-108"><span class="linenos" data-line="108"></span></a><span class="kd">local</span> <span class="n">defaultSeparators</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a> <span class="p">[</span><span class="s2">"sep"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">" "</span><span class="p">},</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> <span class="p">[</span><span class="s2">"sep%s"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">","</span><span class="p">},</span> </span><span id="L-111"><a href="#L-111"><span class="linenos" data-line="111"></span></a> <span class="p">[</span><span class="s2">"sep%q"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"; "</span><span class="p">},</span> </span><span id="L-112"><a href="#L-112"><span class="linenos" data-line="112"></span></a> <span class="p">[</span><span class="s2">"sep%q</span><span class="se">\\</span><span class="s2">d"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">", "</span><span class="p">},</span> </span><span id="L-113"><a href="#L-113"><span class="linenos" data-line="113"></span></a> <span class="p">[</span><span class="s2">"sep%r"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="c1">-- none</span> </span><span id="L-114"><a href="#L-114"><span class="linenos" data-line="114"></span></a> <span class="p">[</span><span class="s2">"punc"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> <span class="c1">-- none</span> </span><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a><span class="p">}</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a><span class="kd">local</span> <span class="n">rankTable</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a> <span class="p">[</span><span class="s2">"preferred"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></span></a> <span class="p">[</span><span class="s2">"normal"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a> <span class="p">[</span><span class="s2">"deprecated"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">3</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a><span class="p">}</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a><span class="kd">local</span> <span class="n">Config</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-124"><a href="#L-124"><span class="linenos" data-line="124"></span></a><span class="n">Config</span><span class="p">.</span><span class="n">__index</span> <span class="o">=</span> <span class="n">Config</span> </span><span id="L-125"><a href="#L-125"><span class="linenos" data-line="125"></span></a> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a><span class="c1">-- allows for recursive calls</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">.</span><span class="nf">new</span><span class="p">()</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a> <span class="kd">local</span> <span class="n">cfg</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></span></a> <span class="nb">setmetatable</span><span class="p">(</span><span class="n">cfg</span><span class="p">,</span> <span class="n">Config</span><span class="p">)</span> </span><span id="L-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">separators</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a> <span class="c1">-- single value objects wrapped in arrays so that we can pass by reference</span> </span><span id="L-133"><a href="#L-133"><span class="linenos" data-line="133"></span></a> <span class="p">[</span><span class="s2">"sep"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"sep"</span><span class="p">])},</span> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a> <span class="p">[</span><span class="s2">"sep%s"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"sep%s"</span><span class="p">])},</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></span></a> <span class="p">[</span><span class="s2">"sep%q"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"sep%q"</span><span class="p">])},</span> </span><span id="L-136"><a href="#L-136"><span class="linenos" data-line="136"></span></a> <span class="p">[</span><span class="s2">"sep%r"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"sep%r"</span><span class="p">])},</span> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a> <span class="p">[</span><span class="s2">"punc"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"punc"</span><span class="p">])}</span> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a> <span class="p">}</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">entity</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-142"><a href="#L-142"><span class="linenos" data-line="142"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">propertyID</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">qualifierIDs</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-145"><a href="#L-145"><span class="linenos" data-line="145"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">qualifierIDsAndValues</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">bestRank</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">ranks</span> <span class="o">=</span> <span class="p">{</span><span class="kc">true</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">false</span><span class="p">}</span> <span class="c1">-- preferred = true, normal = true, deprecated = false</span> </span><span id="L-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">foundRank</span> <span class="o">=</span> <span class="o">#</span><span class="n">cfg</span><span class="p">.</span><span class="n">ranks</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">flagBest</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">flagRank</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-152"><a href="#L-152"><span class="linenos" data-line="152"></span></a> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">periods</span> <span class="o">=</span> <span class="p">{</span><span class="kc">true</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">true</span><span class="p">}</span> <span class="c1">-- future = true, current = true, former = true</span> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">flagPeriod</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">atDate</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">mdyDate</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">singleClaim</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">sourcedOnly</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">editable</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">editAtEnd</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">inSitelinks</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">tracking</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">langCode</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">().</span><span class="n">code</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">langName</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">fetchLanguageName</span><span class="p">(</span><span class="n">cfg</span><span class="p">.</span><span class="n">langCode</span><span class="p">,</span> <span class="n">cfg</span><span class="p">.</span><span class="n">langCode</span><span class="p">)</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">langObj</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">cfg</span><span class="p">.</span><span class="n">langCode</span><span class="p">)</span> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">siteID</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getGlobalSiteId</span><span class="p">()</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">states</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">curState</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a> <span class="n">cfg</span><span class="p">.</span><span class="n">prefetchedRefs</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> <span class="kr">return</span> <span class="n">cfg</span> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a><span class="kr">end</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a><span class="kd">local</span> <span class="n">State</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a><span class="n">State</span><span class="p">.</span><span class="n">__index</span> <span class="o">=</span> <span class="n">State</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">cfg</span><span class="p">)</span> </span><span id="L-186"><a href="#L-186"><span class="linenos" data-line="186"></span></a> <span class="kd">local</span> <span class="n">stt</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a> <span class="nb">setmetatable</span><span class="p">(</span><span class="n">stt</span><span class="p">,</span> <span class="n">State</span><span class="p">)</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">conf</span> <span class="o">=</span> <span class="n">cfg</span> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">results</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">parsedFormat</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">separator</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">movSeparator</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">puncMark</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">linked</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">lat_only</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">lon_only</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">rawValue</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">shortName</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">anyLanguage</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">unitOnly</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a> <span class="n">stt</span><span class="p">.</span><span class="n">singleValue</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a> </span><span id="L-207"><a href="#L-207"><span class="linenos" data-line="207"></span></a> <span class="kr">return</span> <span class="n">stt</span> </span><span id="L-208"><a href="#L-208"><span class="linenos" data-line="208"></span></a><span class="kr">end</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a><span class="kr">function</span> <span class="nf">replaceAlias</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a> <span class="kr">if</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">[</span><span class="n">id</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">[</span><span class="n">id</span><span class="p">]</span> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a> <span class="kr">end</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a> </span><span id="L-215"><a href="#L-215"><span class="linenos" data-line="215"></span></a> <span class="kr">return</span> <span class="n">id</span> </span><span id="L-216"><a href="#L-216"><span class="linenos" data-line="216"></span></a><span class="kr">end</span> </span><span id="L-217"><a href="#L-217"><span class="linenos" data-line="217"></span></a> </span><span id="L-218"><a href="#L-218"><span class="linenos" data-line="218"></span></a><span class="kr">function</span> <span class="nf">errorText</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a> <span class="kd">local</span> <span class="n">text</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s2">"errors"</span><span class="p">][</span><span class="n">code</span><span class="p">]</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a> <span class="kr">if</span> <span class="n">param</span> <span class="kr">then</span> <span class="n">text</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s2">"$1"</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span> <span class="kr">end</span> </span><span id="L-221"><a href="#L-221"><span class="linenos" data-line="221"></span></a> <span class="kr">return</span> <span class="n">text</span> </span><span id="L-222"><a href="#L-222"><span class="linenos" data-line="222"></span></a><span class="kr">end</span> </span><span id="L-223"><a href="#L-223"><span class="linenos" data-line="223"></span></a> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a><span class="kr">function</span> <span class="nf">throwError</span><span class="p">(</span><span class="n">errorMessage</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a> <span class="nb">error</span><span class="p">(</span><span class="n">errorText</span><span class="p">(</span><span class="n">errorMessage</span><span class="p">,</span> <span class="n">param</span><span class="p">))</span> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a><span class="kr">end</span> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a><span class="kr">function</span> <span class="nf">replaceDecimalMark</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="s2">"[.]"</span><span class="p">,</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'numeric'</span><span class="p">][</span><span class="s1">'decimal-mark'</span><span class="p">],</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a><span class="kr">end</span> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a><span class="kr">function</span> <span class="nf">padZeros</span><span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="n">numDigits</span><span class="p">)</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a> <span class="kd">local</span> <span class="n">numZeros</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a> <span class="kd">local</span> <span class="n">negative</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a> <span class="kr">if</span> <span class="n">num</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a> <span class="n">negative</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a> <span class="n">num</span> <span class="o">=</span> <span class="n">num</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a> <span class="kr">end</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a> <span class="n">num</span> <span class="o">=</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a> <span class="n">numZeros</span> <span class="o">=</span> <span class="n">numDigits</span> <span class="o">-</span> <span class="n">num</span><span class="p">:</span><span class="n">len</span><span class="p">()</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">numZeros</span> <span class="kr">do</span> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="n">num</span> <span class="o">=</span> <span class="s2">"0"</span><span class="o">..</span><span class="n">num</span> </span><span id="L-246"><a href="#L-246"><span class="linenos" data-line="246"></span></a> <span class="kr">end</span> </span><span id="L-247"><a href="#L-247"><span class="linenos" data-line="247"></span></a> </span><span id="L-248"><a href="#L-248"><span class="linenos" data-line="248"></span></a> <span class="kr">if</span> <span class="n">negative</span> <span class="kr">then</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a> <span class="n">num</span> <span class="o">=</span> <span class="s2">"-"</span><span class="o">..</span><span class="n">num</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a> <span class="kr">end</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a> <span class="kr">return</span> <span class="n">num</span> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a><span class="kr">end</span> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a><span class="kr">function</span> <span class="nf">replaceSpecialChar</span><span class="p">(</span><span class="n">chr</span><span class="p">)</span> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a> <span class="kr">if</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">'_'</span> <span class="kr">then</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a> <span class="c1">-- replace underscores with spaces</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a> <span class="kr">return</span> <span class="s1">' '</span> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a> <span class="kr">else</span> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> <span class="kr">return</span> <span class="n">chr</span> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a> <span class="kr">end</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a><span class="kr">end</span> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a><span class="kr">function</span> <span class="nf">replaceSpecialChars</span><span class="p">(</span><span class="n">str</span><span class="p">)</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a> <span class="kd">local</span> <span class="n">chr</span> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a> <span class="kd">local</span> <span class="n">esc</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-267"><a href="#L-267"><span class="linenos" data-line="267"></span></a> <span class="kd">local</span> <span class="n">strOut</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-268"><a href="#L-268"><span class="linenos" data-line="268"></span></a> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">#</span><span class="n">str</span> <span class="kr">do</span> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a> <span class="n">chr</span> <span class="o">=</span> <span class="n">str</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">i</span><span class="p">)</span> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">esc</span> <span class="kr">then</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> <span class="kr">if</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span> <span class="kr">then</span> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a> <span class="n">esc</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-275"><a href="#L-275"><span class="linenos" data-line="275"></span></a> <span class="kr">else</span> </span><span id="L-276"><a href="#L-276"><span class="linenos" data-line="276"></span></a> <span class="n">strOut</span> <span class="o">=</span> <span class="n">strOut</span> <span class="o">..</span> <span class="n">replaceSpecialChar</span><span class="p">(</span><span class="n">chr</span><span class="p">)</span> </span><span id="L-277"><a href="#L-277"><span class="linenos" data-line="277"></span></a> <span class="kr">end</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> <span class="kr">else</span> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></span></a> <span class="n">strOut</span> <span class="o">=</span> <span class="n">strOut</span> <span class="o">..</span> <span class="n">chr</span> </span><span id="L-280"><a href="#L-280"><span class="linenos" data-line="280"></span></a> <span class="n">esc</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-281"><a href="#L-281"><span class="linenos" data-line="281"></span></a> <span class="kr">end</span> </span><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kr">end</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="kr">return</span> <span class="n">strOut</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a><span class="kr">end</span> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a><span class="kr">function</span> <span class="nf">buildWikilink</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">label</span><span class="p">)</span> </span><span id="L-288"><a href="#L-288"><span class="linenos" data-line="288"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">label</span> <span class="ow">or</span> <span class="n">target</span> <span class="o">==</span> <span class="n">label</span> <span class="kr">then</span> </span><span id="L-289"><a href="#L-289"><span class="linenos" data-line="289"></span></a> <span class="kr">return</span> <span class="s2">"[["</span> <span class="o">..</span> <span class="n">target</span> <span class="o">..</span> <span class="s2">"]]"</span> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="kr">else</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a> <span class="kr">return</span> <span class="s2">"[["</span> <span class="o">..</span> <span class="n">target</span> <span class="o">..</span> <span class="s2">"|"</span> <span class="o">..</span> <span class="n">label</span> <span class="o">..</span> <span class="s2">"]]"</span> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> <span class="kr">end</span> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a><span class="kr">end</span> </span><span id="L-294"><a href="#L-294"><span class="linenos" data-line="294"></span></a> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a><span class="c1">-- used to make frame.args mutable, to replace #frame.args (which is always 0)</span> </span><span id="L-296"><a href="#L-296"><span class="linenos" data-line="296"></span></a><span class="c1">-- with the actual amount and to simply copy tables</span> </span><span id="L-297"><a href="#L-297"><span class="linenos" data-line="297"></span></a><span class="kr">function</span> <span class="nf">copyTable</span><span class="p">(</span><span class="n">tIn</span><span class="p">)</span> </span><span id="L-298"><a href="#L-298"><span class="linenos" data-line="298"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">tIn</span> <span class="kr">then</span> </span><span id="L-299"><a href="#L-299"><span class="linenos" data-line="299"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-300"><a href="#L-300"><span class="linenos" data-line="300"></span></a> <span class="kr">end</span> </span><span id="L-301"><a href="#L-301"><span class="linenos" data-line="301"></span></a> </span><span id="L-302"><a href="#L-302"><span class="linenos" data-line="302"></span></a> <span class="kd">local</span> <span class="n">tOut</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-303"><a href="#L-303"><span class="linenos" data-line="303"></span></a> </span><span id="L-304"><a href="#L-304"><span class="linenos" data-line="304"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">tIn</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-305"><a href="#L-305"><span class="linenos" data-line="305"></span></a> <span class="n">tOut</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-306"><a href="#L-306"><span class="linenos" data-line="306"></span></a> <span class="kr">end</span> </span><span id="L-307"><a href="#L-307"><span class="linenos" data-line="307"></span></a> </span><span id="L-308"><a href="#L-308"><span class="linenos" data-line="308"></span></a> <span class="kr">return</span> <span class="n">tOut</span> </span><span id="L-309"><a href="#L-309"><span class="linenos" data-line="309"></span></a><span class="kr">end</span> </span><span id="L-310"><a href="#L-310"><span class="linenos" data-line="310"></span></a> </span><span id="L-311"><a href="#L-311"><span class="linenos" data-line="311"></span></a><span class="c1">-- used to merge output arrays together;</span> </span><span id="L-312"><a href="#L-312"><span class="linenos" data-line="312"></span></a><span class="c1">-- note that it currently mutates the first input array</span> </span><span id="L-313"><a href="#L-313"><span class="linenos" data-line="313"></span></a><span class="kr">function</span> <span class="nf">mergeArrays</span><span class="p">(</span><span class="n">a1</span><span class="p">,</span> <span class="n">a2</span><span class="p">)</span> </span><span id="L-314"><a href="#L-314"><span class="linenos" data-line="314"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">#</span><span class="n">a2</span> <span class="kr">do</span> </span><span id="L-315"><a href="#L-315"><span class="linenos" data-line="315"></span></a> <span class="n">a1</span><span class="p">[</span><span class="o">#</span><span class="n">a1</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">a2</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> </span><span id="L-316"><a href="#L-316"><span class="linenos" data-line="316"></span></a> <span class="kr">end</span> </span><span id="L-317"><a href="#L-317"><span class="linenos" data-line="317"></span></a> </span><span id="L-318"><a href="#L-318"><span class="linenos" data-line="318"></span></a> <span class="kr">return</span> <span class="n">a1</span> </span><span id="L-319"><a href="#L-319"><span class="linenos" data-line="319"></span></a><span class="kr">end</span> </span><span id="L-320"><a href="#L-320"><span class="linenos" data-line="320"></span></a> </span><span id="L-321"><a href="#L-321"><span class="linenos" data-line="321"></span></a><span class="kr">function</span> <span class="nf">split</span><span class="p">(</span><span class="n">str</span><span class="p">,</span> <span class="n">del</span><span class="p">)</span> </span><span id="L-322"><a href="#L-322"><span class="linenos" data-line="322"></span></a> <span class="kd">local</span> <span class="n">out</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-323"><a href="#L-323"><span class="linenos" data-line="323"></span></a> <span class="kd">local</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">=</span> <span class="n">str</span><span class="p">:</span><span class="n">find</span><span class="p">(</span><span class="n">del</span><span class="p">)</span> </span><span id="L-324"><a href="#L-324"><span class="linenos" data-line="324"></span></a> </span><span id="L-325"><a href="#L-325"><span class="linenos" data-line="325"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="ow">and</span> <span class="n">j</span> <span class="kr">then</span> </span><span id="L-326"><a href="#L-326"><span class="linenos" data-line="326"></span></a> <span class="n">out</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">str</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-327"><a href="#L-327"><span class="linenos" data-line="327"></span></a> <span class="n">out</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">str</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-328"><a href="#L-328"><span class="linenos" data-line="328"></span></a> <span class="kr">else</span> </span><span id="L-329"><a href="#L-329"><span class="linenos" data-line="329"></span></a> <span class="n">out</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">str</span> </span><span id="L-330"><a href="#L-330"><span class="linenos" data-line="330"></span></a> <span class="kr">end</span> </span><span id="L-331"><a href="#L-331"><span class="linenos" data-line="331"></span></a> </span><span id="L-332"><a href="#L-332"><span class="linenos" data-line="332"></span></a> <span class="kr">return</span> <span class="n">out</span> </span><span id="L-333"><a href="#L-333"><span class="linenos" data-line="333"></span></a><span class="kr">end</span> </span><span id="L-334"><a href="#L-334"><span class="linenos" data-line="334"></span></a> </span><span id="L-335"><a href="#L-335"><span class="linenos" data-line="335"></span></a><span class="kr">function</span> <span class="nf">parseWikidataURL</span><span class="p">(</span><span class="n">url</span><span class="p">)</span> </span><span id="L-336"><a href="#L-336"><span class="linenos" data-line="336"></span></a> <span class="kd">local</span> <span class="n">id</span> </span><span id="L-337"><a href="#L-337"><span class="linenos" data-line="337"></span></a> </span><span id="L-338"><a href="#L-338"><span class="linenos" data-line="338"></span></a> <span class="kr">if</span> <span class="n">url</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'^http[s]?://'</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-339"><a href="#L-339"><span class="linenos" data-line="339"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">split</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="s2">"Q"</span><span class="p">)</span> </span><span id="L-340"><a href="#L-340"><span class="linenos" data-line="340"></span></a> </span><span id="L-341"><a href="#L-341"><span class="linenos" data-line="341"></span></a> <span class="kr">if</span> <span class="n">id</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-342"><a href="#L-342"><span class="linenos" data-line="342"></span></a> <span class="kr">return</span> <span class="s2">"Q"</span> <span class="o">..</span> <span class="n">id</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> </span><span id="L-343"><a href="#L-343"><span class="linenos" data-line="343"></span></a> <span class="kr">end</span> </span><span id="L-344"><a href="#L-344"><span class="linenos" data-line="344"></span></a> <span class="kr">end</span> </span><span id="L-345"><a href="#L-345"><span class="linenos" data-line="345"></span></a> </span><span id="L-346"><a href="#L-346"><span class="linenos" data-line="346"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-347"><a href="#L-347"><span class="linenos" data-line="347"></span></a><span class="kr">end</span> </span><span id="L-348"><a href="#L-348"><span class="linenos" data-line="348"></span></a> </span><span id="L-349"><a href="#L-349"><span class="linenos" data-line="349"></span></a><span class="kr">function</span> <span class="nf">parseDate</span><span class="p">(</span><span class="n">dateStr</span><span class="p">,</span> <span class="n">precision</span><span class="p">)</span> </span><span id="L-350"><a href="#L-350"><span class="linenos" data-line="350"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">precision</span> <span class="ow">or</span> <span class="s2">"d"</span> </span><span id="L-351"><a href="#L-351"><span class="linenos" data-line="351"></span></a> </span><span id="L-352"><a href="#L-352"><span class="linenos" data-line="352"></span></a> <span class="kd">local</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">ptr</span> </span><span id="L-353"><a href="#L-353"><span class="linenos" data-line="353"></span></a> <span class="kd">local</span> <span class="n">parts</span> <span class="o">=</span> <span class="p">{</span><span class="kc">nil</span><span class="p">,</span> <span class="kc">nil</span><span class="p">,</span> <span class="kc">nil</span><span class="p">}</span> </span><span id="L-354"><a href="#L-354"><span class="linenos" data-line="354"></span></a> </span><span id="L-355"><a href="#L-355"><span class="linenos" data-line="355"></span></a> <span class="kr">if</span> <span class="n">dateStr</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-356"><a href="#L-356"><span class="linenos" data-line="356"></span></a> <span class="kr">return</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="c1">-- year, month, day</span> </span><span id="L-357"><a href="#L-357"><span class="linenos" data-line="357"></span></a> <span class="kr">end</span> </span><span id="L-358"><a href="#L-358"><span class="linenos" data-line="358"></span></a> </span><span id="L-359"><a href="#L-359"><span class="linenos" data-line="359"></span></a> <span class="c1">-- 'T' for snak values, '/' for outputs with '/Julian' attached</span> </span><span id="L-360"><a href="#L-360"><span class="linenos" data-line="360"></span></a> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">=</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">find</span><span class="p">(</span><span class="s2">"[T/]"</span><span class="p">)</span> </span><span id="L-361"><a href="#L-361"><span class="linenos" data-line="361"></span></a> </span><span id="L-362"><a href="#L-362"><span class="linenos" data-line="362"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="kr">then</span> </span><span id="L-363"><a href="#L-363"><span class="linenos" data-line="363"></span></a> <span class="n">dateStr</span> <span class="o">=</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> </span><span id="L-364"><a href="#L-364"><span class="linenos" data-line="364"></span></a> <span class="kr">end</span> </span><span id="L-365"><a href="#L-365"><span class="linenos" data-line="365"></span></a> </span><span id="L-366"><a href="#L-366"><span class="linenos" data-line="366"></span></a> <span class="kd">local</span> <span class="n">from</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-367"><a href="#L-367"><span class="linenos" data-line="367"></span></a> </span><span id="L-368"><a href="#L-368"><span class="linenos" data-line="368"></span></a> <span class="kr">if</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="kr">then</span> </span><span id="L-369"><a href="#L-369"><span class="linenos" data-line="369"></span></a> <span class="c1">-- this is a negative number, look further ahead</span> </span><span id="L-370"><a href="#L-370"><span class="linenos" data-line="370"></span></a> <span class="n">from</span> <span class="o">=</span> <span class="mi">2</span> </span><span id="L-371"><a href="#L-371"><span class="linenos" data-line="371"></span></a> <span class="kr">end</span> </span><span id="L-372"><a href="#L-372"><span class="linenos" data-line="372"></span></a> </span><span id="L-373"><a href="#L-373"><span class="linenos" data-line="373"></span></a> <span class="n">index</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-374"><a href="#L-374"><span class="linenos" data-line="374"></span></a> <span class="n">ptr</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-375"><a href="#L-375"><span class="linenos" data-line="375"></span></a> </span><span id="L-376"><a href="#L-376"><span class="linenos" data-line="376"></span></a> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">=</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">find</span><span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="n">from</span><span class="p">)</span> </span><span id="L-377"><a href="#L-377"><span class="linenos" data-line="377"></span></a> </span><span id="L-378"><a href="#L-378"><span class="linenos" data-line="378"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="kr">then</span> </span><span id="L-379"><a href="#L-379"><span class="linenos" data-line="379"></span></a> <span class="c1">-- year</span> </span><span id="L-380"><a href="#L-380"><span class="linenos" data-line="380"></span></a> <span class="n">parts</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="s2">"^%+(.+)$"</span><span class="p">,</span> <span class="s2">"%1"</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="c1">-- remove '+' sign (explicitly give base 10 to prevent error)</span> </span><span id="L-381"><a href="#L-381"><span class="linenos" data-line="381"></span></a> </span><span id="L-382"><a href="#L-382"><span class="linenos" data-line="382"></span></a> <span class="kr">if</span> <span class="n">parts</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">==</span> <span class="o">-</span><span class="mi">0</span> <span class="kr">then</span> </span><span id="L-383"><a href="#L-383"><span class="linenos" data-line="383"></span></a> <span class="n">parts</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span> <span class="c1">-- for some reason, 'parts[index] = 0' may actually store '-0', so parse from string instead</span> </span><span id="L-384"><a href="#L-384"><span class="linenos" data-line="384"></span></a> <span class="kr">end</span> </span><span id="L-385"><a href="#L-385"><span class="linenos" data-line="385"></span></a> </span><span id="L-386"><a href="#L-386"><span class="linenos" data-line="386"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="s2">"y"</span> <span class="kr">then</span> </span><span id="L-387"><a href="#L-387"><span class="linenos" data-line="387"></span></a> <span class="c1">-- we're done</span> </span><span id="L-388"><a href="#L-388"><span class="linenos" data-line="388"></span></a> <span class="kr">return</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="c1">-- year, month, day</span> </span><span id="L-389"><a href="#L-389"><span class="linenos" data-line="389"></span></a> <span class="kr">end</span> </span><span id="L-390"><a href="#L-390"><span class="linenos" data-line="390"></span></a> </span><span id="L-391"><a href="#L-391"><span class="linenos" data-line="391"></span></a> <span class="n">index</span> <span class="o">=</span> <span class="n">index</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-392"><a href="#L-392"><span class="linenos" data-line="392"></span></a> <span class="n">ptr</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-393"><a href="#L-393"><span class="linenos" data-line="393"></span></a> </span><span id="L-394"><a href="#L-394"><span class="linenos" data-line="394"></span></a> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">=</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">find</span><span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="n">ptr</span><span class="p">)</span> </span><span id="L-395"><a href="#L-395"><span class="linenos" data-line="395"></span></a> </span><span id="L-396"><a href="#L-396"><span class="linenos" data-line="396"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="kr">then</span> </span><span id="L-397"><a href="#L-397"><span class="linenos" data-line="397"></span></a> <span class="c1">-- month</span> </span><span id="L-398"><a href="#L-398"><span class="linenos" data-line="398"></span></a> <span class="n">parts</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">ptr</span><span class="p">,</span> <span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> </span><span id="L-399"><a href="#L-399"><span class="linenos" data-line="399"></span></a> </span><span id="L-400"><a href="#L-400"><span class="linenos" data-line="400"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="s2">"m"</span> <span class="kr">then</span> </span><span id="L-401"><a href="#L-401"><span class="linenos" data-line="401"></span></a> <span class="c1">-- we're done</span> </span><span id="L-402"><a href="#L-402"><span class="linenos" data-line="402"></span></a> <span class="kr">return</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="c1">-- year, month, day</span> </span><span id="L-403"><a href="#L-403"><span class="linenos" data-line="403"></span></a> <span class="kr">end</span> </span><span id="L-404"><a href="#L-404"><span class="linenos" data-line="404"></span></a> </span><span id="L-405"><a href="#L-405"><span class="linenos" data-line="405"></span></a> <span class="n">index</span> <span class="o">=</span> <span class="n">index</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-406"><a href="#L-406"><span class="linenos" data-line="406"></span></a> <span class="n">ptr</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-407"><a href="#L-407"><span class="linenos" data-line="407"></span></a> <span class="kr">end</span> </span><span id="L-408"><a href="#L-408"><span class="linenos" data-line="408"></span></a> <span class="kr">end</span> </span><span id="L-409"><a href="#L-409"><span class="linenos" data-line="409"></span></a> </span><span id="L-410"><a href="#L-410"><span class="linenos" data-line="410"></span></a> <span class="kr">if</span> <span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">ptr</span><span class="p">)</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-411"><a href="#L-411"><span class="linenos" data-line="411"></span></a> <span class="c1">-- day if we have month, month if we have year, or year</span> </span><span id="L-412"><a href="#L-412"><span class="linenos" data-line="412"></span></a> <span class="n">parts</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">dateStr</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">ptr</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> </span><span id="L-413"><a href="#L-413"><span class="linenos" data-line="413"></span></a> <span class="kr">end</span> </span><span id="L-414"><a href="#L-414"><span class="linenos" data-line="414"></span></a> </span><span id="L-415"><a href="#L-415"><span class="linenos" data-line="415"></span></a> <span class="kr">return</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="c1">-- year, month, day</span> </span><span id="L-416"><a href="#L-416"><span class="linenos" data-line="416"></span></a><span class="kr">end</span> </span><span id="L-417"><a href="#L-417"><span class="linenos" data-line="417"></span></a> </span><span id="L-418"><a href="#L-418"><span class="linenos" data-line="418"></span></a><span class="kr">function</span> <span class="nf">datePrecedesDate</span><span class="p">(</span><span class="n">aY</span><span class="p">,</span> <span class="n">aM</span><span class="p">,</span> <span class="n">aD</span><span class="p">,</span> <span class="n">bY</span><span class="p">,</span> <span class="n">bM</span><span class="p">,</span> <span class="n">bD</span><span class="p">)</span> </span><span id="L-419"><a href="#L-419"><span class="linenos" data-line="419"></span></a> <span class="kr">if</span> <span class="n">aY</span> <span class="o">==</span> <span class="kc">nil</span> <span class="ow">or</span> <span class="n">bY</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-420"><a href="#L-420"><span class="linenos" data-line="420"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-421"><a href="#L-421"><span class="linenos" data-line="421"></span></a> <span class="kr">end</span> </span><span id="L-422"><a href="#L-422"><span class="linenos" data-line="422"></span></a> <span class="n">aM</span> <span class="o">=</span> <span class="n">aM</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-423"><a href="#L-423"><span class="linenos" data-line="423"></span></a> <span class="n">aD</span> <span class="o">=</span> <span class="n">aD</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-424"><a href="#L-424"><span class="linenos" data-line="424"></span></a> <span class="n">bM</span> <span class="o">=</span> <span class="n">bM</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-425"><a href="#L-425"><span class="linenos" data-line="425"></span></a> <span class="n">bD</span> <span class="o">=</span> <span class="n">bD</span> <span class="ow">or</span> <span class="mi">1</span> </span><span id="L-426"><a href="#L-426"><span class="linenos" data-line="426"></span></a> </span><span id="L-427"><a href="#L-427"><span class="linenos" data-line="427"></span></a> <span class="kr">if</span> <span class="n">aY</span> <span class="o"><</span> <span class="n">bY</span> <span class="kr">then</span> </span><span id="L-428"><a href="#L-428"><span class="linenos" data-line="428"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-429"><a href="#L-429"><span class="linenos" data-line="429"></span></a> <span class="kr">end</span> </span><span id="L-430"><a href="#L-430"><span class="linenos" data-line="430"></span></a> </span><span id="L-431"><a href="#L-431"><span class="linenos" data-line="431"></span></a> <span class="kr">if</span> <span class="n">aY</span> <span class="o">></span> <span class="n">bY</span> <span class="kr">then</span> </span><span id="L-432"><a href="#L-432"><span class="linenos" data-line="432"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-433"><a href="#L-433"><span class="linenos" data-line="433"></span></a> <span class="kr">end</span> </span><span id="L-434"><a href="#L-434"><span class="linenos" data-line="434"></span></a> </span><span id="L-435"><a href="#L-435"><span class="linenos" data-line="435"></span></a> <span class="kr">if</span> <span class="n">aM</span> <span class="o"><</span> <span class="n">bM</span> <span class="kr">then</span> </span><span id="L-436"><a href="#L-436"><span class="linenos" data-line="436"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-437"><a href="#L-437"><span class="linenos" data-line="437"></span></a> <span class="kr">end</span> </span><span id="L-438"><a href="#L-438"><span class="linenos" data-line="438"></span></a> </span><span id="L-439"><a href="#L-439"><span class="linenos" data-line="439"></span></a> <span class="kr">if</span> <span class="n">aM</span> <span class="o">></span> <span class="n">bM</span> <span class="kr">then</span> </span><span id="L-440"><a href="#L-440"><span class="linenos" data-line="440"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-441"><a href="#L-441"><span class="linenos" data-line="441"></span></a> <span class="kr">end</span> </span><span id="L-442"><a href="#L-442"><span class="linenos" data-line="442"></span></a> </span><span id="L-443"><a href="#L-443"><span class="linenos" data-line="443"></span></a> <span class="kr">if</span> <span class="n">aD</span> <span class="o"><</span> <span class="n">bD</span> <span class="kr">then</span> </span><span id="L-444"><a href="#L-444"><span class="linenos" data-line="444"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-445"><a href="#L-445"><span class="linenos" data-line="445"></span></a> <span class="kr">end</span> </span><span id="L-446"><a href="#L-446"><span class="linenos" data-line="446"></span></a> </span><span id="L-447"><a href="#L-447"><span class="linenos" data-line="447"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-448"><a href="#L-448"><span class="linenos" data-line="448"></span></a><span class="kr">end</span> </span><span id="L-449"><a href="#L-449"><span class="linenos" data-line="449"></span></a> </span><span id="L-450"><a href="#L-450"><span class="linenos" data-line="450"></span></a><span class="kr">function</span> <span class="nf">getHookName</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span> </span><span id="L-451"><a href="#L-451"><span class="linenos" data-line="451"></span></a> <span class="kr">if</span> <span class="n">hookNames</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-452"><a href="#L-452"><span class="linenos" data-line="452"></span></a> <span class="kr">return</span> <span class="n">hookNames</span><span class="p">[</span><span class="n">param</span><span class="p">][</span><span class="n">index</span><span class="p">]</span> </span><span id="L-453"><a href="#L-453"><span class="linenos" data-line="453"></span></a> <span class="kr">elseif</span> <span class="n">param</span><span class="p">:</span><span class="n">len</span><span class="p">()</span> <span class="o">></span> <span class="mi">2</span> <span class="kr">then</span> </span><span id="L-454"><a href="#L-454"><span class="linenos" data-line="454"></span></a> <span class="kr">return</span> <span class="n">hookNames</span><span class="p">[</span><span class="n">param</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span><span class="o">..</span><span class="s2">"</span><span class="se">\\</span><span class="s2">d"</span><span class="p">][</span><span class="n">index</span><span class="p">]</span> </span><span id="L-455"><a href="#L-455"><span class="linenos" data-line="455"></span></a> <span class="kr">else</span> </span><span id="L-456"><a href="#L-456"><span class="linenos" data-line="456"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-457"><a href="#L-457"><span class="linenos" data-line="457"></span></a> <span class="kr">end</span> </span><span id="L-458"><a href="#L-458"><span class="linenos" data-line="458"></span></a><span class="kr">end</span> </span><span id="L-459"><a href="#L-459"><span class="linenos" data-line="459"></span></a> </span><span id="L-460"><a href="#L-460"><span class="linenos" data-line="460"></span></a><span class="kr">function</span> <span class="nf">alwaysTrue</span><span class="p">()</span> </span><span id="L-461"><a href="#L-461"><span class="linenos" data-line="461"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-462"><a href="#L-462"><span class="linenos" data-line="462"></span></a><span class="kr">end</span> </span><span id="L-463"><a href="#L-463"><span class="linenos" data-line="463"></span></a> </span><span id="L-464"><a href="#L-464"><span class="linenos" data-line="464"></span></a><span class="c1">-- The following function parses a format string.</span> </span><span id="L-465"><a href="#L-465"><span class="linenos" data-line="465"></span></a><span class="c1">--</span> </span><span id="L-466"><a href="#L-466"><span class="linenos" data-line="466"></span></a><span class="c1">-- The example below shows how a parsed string is structured in memory.</span> </span><span id="L-467"><a href="#L-467"><span class="linenos" data-line="467"></span></a><span class="c1">-- Variables other than 'str' and 'child' are left out for clarity's sake.</span> </span><span id="L-468"><a href="#L-468"><span class="linenos" data-line="468"></span></a><span class="c1">--</span> </span><span id="L-469"><a href="#L-469"><span class="linenos" data-line="469"></span></a><span class="c1">-- Example:</span> </span><span id="L-470"><a href="#L-470"><span class="linenos" data-line="470"></span></a><span class="c1">-- "A %p B [%s[%q1]] C [%r] D"</span> </span><span id="L-471"><a href="#L-471"><span class="linenos" data-line="471"></span></a><span class="c1">--</span> </span><span id="L-472"><a href="#L-472"><span class="linenos" data-line="472"></span></a><span class="c1">-- Structure:</span> </span><span id="L-473"><a href="#L-473"><span class="linenos" data-line="473"></span></a><span class="c1">-- [</span> </span><span id="L-474"><a href="#L-474"><span class="linenos" data-line="474"></span></a><span class="c1">-- {</span> </span><span id="L-475"><a href="#L-475"><span class="linenos" data-line="475"></span></a><span class="c1">-- str = "A "</span> </span><span id="L-476"><a href="#L-476"><span class="linenos" data-line="476"></span></a><span class="c1">-- },</span> </span><span id="L-477"><a href="#L-477"><span class="linenos" data-line="477"></span></a><span class="c1">-- {</span> </span><span id="L-478"><a href="#L-478"><span class="linenos" data-line="478"></span></a><span class="c1">-- str = "%p"</span> </span><span id="L-479"><a href="#L-479"><span class="linenos" data-line="479"></span></a><span class="c1">-- },</span> </span><span id="L-480"><a href="#L-480"><span class="linenos" data-line="480"></span></a><span class="c1">-- {</span> </span><span id="L-481"><a href="#L-481"><span class="linenos" data-line="481"></span></a><span class="c1">-- str = " B ",</span> </span><span id="L-482"><a href="#L-482"><span class="linenos" data-line="482"></span></a><span class="c1">-- child =</span> </span><span id="L-483"><a href="#L-483"><span class="linenos" data-line="483"></span></a><span class="c1">-- [</span> </span><span id="L-484"><a href="#L-484"><span class="linenos" data-line="484"></span></a><span class="c1">-- {</span> </span><span id="L-485"><a href="#L-485"><span class="linenos" data-line="485"></span></a><span class="c1">-- str = "%s",</span> </span><span id="L-486"><a href="#L-486"><span class="linenos" data-line="486"></span></a><span class="c1">-- child =</span> </span><span id="L-487"><a href="#L-487"><span class="linenos" data-line="487"></span></a><span class="c1">-- [</span> </span><span id="L-488"><a href="#L-488"><span class="linenos" data-line="488"></span></a><span class="c1">-- {</span> </span><span id="L-489"><a href="#L-489"><span class="linenos" data-line="489"></span></a><span class="c1">-- str = "%q1"</span> </span><span id="L-490"><a href="#L-490"><span class="linenos" data-line="490"></span></a><span class="c1">-- }</span> </span><span id="L-491"><a href="#L-491"><span class="linenos" data-line="491"></span></a><span class="c1">-- ]</span> </span><span id="L-492"><a href="#L-492"><span class="linenos" data-line="492"></span></a><span class="c1">-- }</span> </span><span id="L-493"><a href="#L-493"><span class="linenos" data-line="493"></span></a><span class="c1">-- ]</span> </span><span id="L-494"><a href="#L-494"><span class="linenos" data-line="494"></span></a><span class="c1">-- },</span> </span><span id="L-495"><a href="#L-495"><span class="linenos" data-line="495"></span></a><span class="c1">-- {</span> </span><span id="L-496"><a href="#L-496"><span class="linenos" data-line="496"></span></a><span class="c1">-- str = " C ",</span> </span><span id="L-497"><a href="#L-497"><span class="linenos" data-line="497"></span></a><span class="c1">-- child =</span> </span><span id="L-498"><a href="#L-498"><span class="linenos" data-line="498"></span></a><span class="c1">-- [</span> </span><span id="L-499"><a href="#L-499"><span class="linenos" data-line="499"></span></a><span class="c1">-- {</span> </span><span id="L-500"><a href="#L-500"><span class="linenos" data-line="500"></span></a><span class="c1">-- str = "%r"</span> </span><span id="L-501"><a href="#L-501"><span class="linenos" data-line="501"></span></a><span class="c1">-- }</span> </span><span id="L-502"><a href="#L-502"><span class="linenos" data-line="502"></span></a><span class="c1">-- ]</span> </span><span id="L-503"><a href="#L-503"><span class="linenos" data-line="503"></span></a><span class="c1">-- },</span> </span><span id="L-504"><a href="#L-504"><span class="linenos" data-line="504"></span></a><span class="c1">-- {</span> </span><span id="L-505"><a href="#L-505"><span class="linenos" data-line="505"></span></a><span class="c1">-- str = " D"</span> </span><span id="L-506"><a href="#L-506"><span class="linenos" data-line="506"></span></a><span class="c1">-- }</span> </span><span id="L-507"><a href="#L-507"><span class="linenos" data-line="507"></span></a><span class="c1">-- ]</span> </span><span id="L-508"><a href="#L-508"><span class="linenos" data-line="508"></span></a><span class="c1">--</span> </span><span id="L-509"><a href="#L-509"><span class="linenos" data-line="509"></span></a><span class="kr">function</span> <span class="nf">parseFormat</span><span class="p">(</span><span class="n">str</span><span class="p">)</span> </span><span id="L-510"><a href="#L-510"><span class="linenos" data-line="510"></span></a> <span class="kd">local</span> <span class="n">chr</span><span class="p">,</span> <span class="n">esc</span><span class="p">,</span> <span class="n">param</span><span class="p">,</span> <span class="n">root</span><span class="p">,</span> <span class="n">cur</span><span class="p">,</span> <span class="n">prev</span><span class="p">,</span> <span class="n">new</span> </span><span id="L-511"><a href="#L-511"><span class="linenos" data-line="511"></span></a> <span class="kd">local</span> <span class="n">params</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-512"><a href="#L-512"><span class="linenos" data-line="512"></span></a> </span><span id="L-513"><a href="#L-513"><span class="linenos" data-line="513"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">newObject</span><span class="p">(</span><span class="n">array</span><span class="p">)</span> </span><span id="L-514"><a href="#L-514"><span class="linenos" data-line="514"></span></a> <span class="kd">local</span> <span class="n">obj</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- new object</span> </span><span id="L-515"><a href="#L-515"><span class="linenos" data-line="515"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">str</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-516"><a href="#L-516"><span class="linenos" data-line="516"></span></a> </span><span id="L-517"><a href="#L-517"><span class="linenos" data-line="517"></span></a> <span class="n">array</span><span class="p">[</span><span class="o">#</span><span class="n">array</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">obj</span> <span class="c1">-- array{object}</span> </span><span id="L-518"><a href="#L-518"><span class="linenos" data-line="518"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">array</span> </span><span id="L-519"><a href="#L-519"><span class="linenos" data-line="519"></span></a> </span><span id="L-520"><a href="#L-520"><span class="linenos" data-line="520"></span></a> <span class="kr">return</span> <span class="n">obj</span> </span><span id="L-521"><a href="#L-521"><span class="linenos" data-line="521"></span></a> <span class="kr">end</span> </span><span id="L-522"><a href="#L-522"><span class="linenos" data-line="522"></span></a> </span><span id="L-523"><a href="#L-523"><span class="linenos" data-line="523"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">endParam</span><span class="p">()</span> </span><span id="L-524"><a href="#L-524"><span class="linenos" data-line="524"></span></a> <span class="kr">if</span> <span class="n">param</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-525"><a href="#L-525"><span class="linenos" data-line="525"></span></a> <span class="kr">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-526"><a href="#L-526"><span class="linenos" data-line="526"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">=</span> <span class="s2">"%"</span><span class="o">..</span><span class="n">cur</span><span class="p">.</span><span class="n">str</span> </span><span id="L-527"><a href="#L-527"><span class="linenos" data-line="527"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">param</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-528"><a href="#L-528"><span class="linenos" data-line="528"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">cur</span><span class="p">.</span><span class="n">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-529"><a href="#L-529"><span class="linenos" data-line="529"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">.</span><span class="n">req</span><span class="p">[</span><span class="n">cur</span><span class="p">.</span><span class="n">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-530"><a href="#L-530"><span class="linenos" data-line="530"></span></a> <span class="n">prev</span> <span class="o">=</span> <span class="n">cur</span> </span><span id="L-531"><a href="#L-531"><span class="linenos" data-line="531"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">newObject</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">)</span> </span><span id="L-532"><a href="#L-532"><span class="linenos" data-line="532"></span></a> <span class="kr">end</span> </span><span id="L-533"><a href="#L-533"><span class="linenos" data-line="533"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-534"><a href="#L-534"><span class="linenos" data-line="534"></span></a> <span class="kr">end</span> </span><span id="L-535"><a href="#L-535"><span class="linenos" data-line="535"></span></a> <span class="kr">end</span> </span><span id="L-536"><a href="#L-536"><span class="linenos" data-line="536"></span></a> </span><span id="L-537"><a href="#L-537"><span class="linenos" data-line="537"></span></a> <span class="n">root</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- array</span> </span><span id="L-538"><a href="#L-538"><span class="linenos" data-line="538"></span></a> <span class="n">root</span><span class="p">.</span><span class="n">req</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-539"><a href="#L-539"><span class="linenos" data-line="539"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">newObject</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> </span><span id="L-540"><a href="#L-540"><span class="linenos" data-line="540"></span></a> <span class="n">prev</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-541"><a href="#L-541"><span class="linenos" data-line="541"></span></a> </span><span id="L-542"><a href="#L-542"><span class="linenos" data-line="542"></span></a> <span class="n">esc</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-543"><a href="#L-543"><span class="linenos" data-line="543"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-544"><a href="#L-544"><span class="linenos" data-line="544"></span></a> </span><span id="L-545"><a href="#L-545"><span class="linenos" data-line="545"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">#</span><span class="n">str</span> <span class="kr">do</span> </span><span id="L-546"><a href="#L-546"><span class="linenos" data-line="546"></span></a> <span class="n">chr</span> <span class="o">=</span> <span class="n">str</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">i</span><span class="p">)</span> </span><span id="L-547"><a href="#L-547"><span class="linenos" data-line="547"></span></a> </span><span id="L-548"><a href="#L-548"><span class="linenos" data-line="548"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">esc</span> <span class="kr">then</span> </span><span id="L-549"><a href="#L-549"><span class="linenos" data-line="549"></span></a> <span class="kr">if</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span> <span class="kr">then</span> </span><span id="L-550"><a href="#L-550"><span class="linenos" data-line="550"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-551"><a href="#L-551"><span class="linenos" data-line="551"></span></a> <span class="n">esc</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-552"><a href="#L-552"><span class="linenos" data-line="552"></span></a> <span class="kr">elseif</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">'%'</span> <span class="kr">then</span> </span><span id="L-553"><a href="#L-553"><span class="linenos" data-line="553"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-554"><a href="#L-554"><span class="linenos" data-line="554"></span></a> <span class="kr">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-555"><a href="#L-555"><span class="linenos" data-line="555"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">newObject</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">)</span> </span><span id="L-556"><a href="#L-556"><span class="linenos" data-line="556"></span></a> <span class="kr">end</span> </span><span id="L-557"><a href="#L-557"><span class="linenos" data-line="557"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="mi">2</span> </span><span id="L-558"><a href="#L-558"><span class="linenos" data-line="558"></span></a> <span class="kr">elseif</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">'['</span> <span class="kr">then</span> </span><span id="L-559"><a href="#L-559"><span class="linenos" data-line="559"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-560"><a href="#L-560"><span class="linenos" data-line="560"></span></a> <span class="kr">if</span> <span class="n">prev</span> <span class="ow">and</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-561"><a href="#L-561"><span class="linenos" data-line="561"></span></a> <span class="nb">table.remove</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">)</span> </span><span id="L-562"><a href="#L-562"><span class="linenos" data-line="562"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">prev</span> </span><span id="L-563"><a href="#L-563"><span class="linenos" data-line="563"></span></a> <span class="kr">end</span> </span><span id="L-564"><a href="#L-564"><span class="linenos" data-line="564"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">child</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- new array</span> </span><span id="L-565"><a href="#L-565"><span class="linenos" data-line="565"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">child</span><span class="p">.</span><span class="n">req</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-566"><a href="#L-566"><span class="linenos" data-line="566"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">child</span><span class="p">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">cur</span> </span><span id="L-567"><a href="#L-567"><span class="linenos" data-line="567"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">newObject</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">child</span><span class="p">)</span> </span><span id="L-568"><a href="#L-568"><span class="linenos" data-line="568"></span></a> <span class="kr">elseif</span> <span class="n">chr</span> <span class="o">==</span> <span class="s1">']'</span> <span class="kr">then</span> </span><span id="L-569"><a href="#L-569"><span class="linenos" data-line="569"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-570"><a href="#L-570"><span class="linenos" data-line="570"></span></a> <span class="kr">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">.</span><span class="n">parent</span> <span class="kr">then</span> </span><span id="L-571"><a href="#L-571"><span class="linenos" data-line="571"></span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">newObject</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">.</span><span class="n">parent</span><span class="p">.</span><span class="n">parent</span><span class="p">)</span> </span><span id="L-572"><a href="#L-572"><span class="linenos" data-line="572"></span></a> <span class="kr">if</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-573"><a href="#L-573"><span class="linenos" data-line="573"></span></a> <span class="nb">table.remove</span><span class="p">(</span><span class="n">cur</span><span class="p">.</span><span class="n">parent</span><span class="p">)</span> </span><span id="L-574"><a href="#L-574"><span class="linenos" data-line="574"></span></a> <span class="kr">end</span> </span><span id="L-575"><a href="#L-575"><span class="linenos" data-line="575"></span></a> <span class="n">cur</span> <span class="o">=</span> <span class="n">new</span> </span><span id="L-576"><a href="#L-576"><span class="linenos" data-line="576"></span></a> <span class="kr">end</span> </span><span id="L-577"><a href="#L-577"><span class="linenos" data-line="577"></span></a> <span class="kr">else</span> </span><span id="L-578"><a href="#L-578"><span class="linenos" data-line="578"></span></a> <span class="kr">if</span> <span class="n">param</span> <span class="o">></span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-579"><a href="#L-579"><span class="linenos" data-line="579"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="n">param</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-580"><a href="#L-580"><span class="linenos" data-line="580"></span></a> <span class="kr">elseif</span> <span class="n">param</span> <span class="o">==</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-581"><a href="#L-581"><span class="linenos" data-line="581"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">chr</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'%d'</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-582"><a href="#L-582"><span class="linenos" data-line="582"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-583"><a href="#L-583"><span class="linenos" data-line="583"></span></a> <span class="kr">end</span> </span><span id="L-584"><a href="#L-584"><span class="linenos" data-line="584"></span></a> <span class="kr">end</span> </span><span id="L-585"><a href="#L-585"><span class="linenos" data-line="585"></span></a> </span><span id="L-586"><a href="#L-586"><span class="linenos" data-line="586"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">..</span> <span class="n">replaceSpecialChar</span><span class="p">(</span><span class="n">chr</span><span class="p">)</span> </span><span id="L-587"><a href="#L-587"><span class="linenos" data-line="587"></span></a> <span class="kr">end</span> </span><span id="L-588"><a href="#L-588"><span class="linenos" data-line="588"></span></a> <span class="kr">else</span> </span><span id="L-589"><a href="#L-589"><span class="linenos" data-line="589"></span></a> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">=</span> <span class="n">cur</span><span class="p">.</span><span class="n">str</span> <span class="o">..</span> <span class="n">chr</span> </span><span id="L-590"><a href="#L-590"><span class="linenos" data-line="590"></span></a> <span class="n">esc</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-591"><a href="#L-591"><span class="linenos" data-line="591"></span></a> <span class="kr">end</span> </span><span id="L-592"><a href="#L-592"><span class="linenos" data-line="592"></span></a> </span><span id="L-593"><a href="#L-593"><span class="linenos" data-line="593"></span></a> <span class="n">prev</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-594"><a href="#L-594"><span class="linenos" data-line="594"></span></a> <span class="kr">end</span> </span><span id="L-595"><a href="#L-595"><span class="linenos" data-line="595"></span></a> </span><span id="L-596"><a href="#L-596"><span class="linenos" data-line="596"></span></a> <span class="n">endParam</span><span class="p">()</span> </span><span id="L-597"><a href="#L-597"><span class="linenos" data-line="597"></span></a> </span><span id="L-598"><a href="#L-598"><span class="linenos" data-line="598"></span></a> <span class="c1">-- make sure that at least one required parameter has been defined</span> </span><span id="L-599"><a href="#L-599"><span class="linenos" data-line="599"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="nb">next</span><span class="p">(</span><span class="n">root</span><span class="p">.</span><span class="n">req</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-600"><a href="#L-600"><span class="linenos" data-line="600"></span></a> <span class="n">throwError</span><span class="p">(</span><span class="s2">"missing-required-parameter"</span><span class="p">)</span> </span><span id="L-601"><a href="#L-601"><span class="linenos" data-line="601"></span></a> <span class="kr">end</span> </span><span id="L-602"><a href="#L-602"><span class="linenos" data-line="602"></span></a> </span><span id="L-603"><a href="#L-603"><span class="linenos" data-line="603"></span></a> <span class="c1">-- make sure that the separator parameter "%s" is not amongst the required parameters</span> </span><span id="L-604"><a href="#L-604"><span class="linenos" data-line="604"></span></a> <span class="kr">if</span> <span class="n">root</span><span class="p">.</span><span class="n">req</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-605"><a href="#L-605"><span class="linenos" data-line="605"></span></a> <span class="n">throwError</span><span class="p">(</span><span class="s2">"extra-required-parameter"</span><span class="p">,</span> <span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">)</span> </span><span id="L-606"><a href="#L-606"><span class="linenos" data-line="606"></span></a> <span class="kr">end</span> </span><span id="L-607"><a href="#L-607"><span class="linenos" data-line="607"></span></a> </span><span id="L-608"><a href="#L-608"><span class="linenos" data-line="608"></span></a> <span class="kr">return</span> <span class="n">root</span><span class="p">,</span> <span class="n">params</span> </span><span id="L-609"><a href="#L-609"><span class="linenos" data-line="609"></span></a><span class="kr">end</span> </span><span id="L-610"><a href="#L-610"><span class="linenos" data-line="610"></span></a> </span><span id="L-611"><a href="#L-611"><span class="linenos" data-line="611"></span></a><span class="kr">function</span> <span class="nf">sortOnRank</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">specialFlags</span><span class="p">)</span> </span><span id="L-612"><a href="#L-612"><span class="linenos" data-line="612"></span></a> <span class="kd">local</span> <span class="n">rankPos</span> </span><span id="L-613"><a href="#L-613"><span class="linenos" data-line="613"></span></a> <span class="kd">local</span> <span class="n">ranks</span> <span class="o">=</span> <span class="p">{{},</span> <span class="p">{},</span> <span class="p">{},</span> <span class="p">{}}</span> <span class="c1">-- preferred, normal, deprecated, (default)</span> </span><span id="L-614"><a href="#L-614"><span class="linenos" data-line="614"></span></a> <span class="kd">local</span> <span class="n">acceptable</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-615"><a href="#L-615"><span class="linenos" data-line="615"></span></a> </span><span id="L-616"><a href="#L-616"><span class="linenos" data-line="616"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-617"><a href="#L-617"><span class="linenos" data-line="617"></span></a> <span class="n">rankPos</span> <span class="o">=</span> <span class="n">rankTable</span><span class="p">[</span><span class="n">v</span><span class="p">.</span><span class="n">rank</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">4</span> </span><span id="L-618"><a href="#L-618"><span class="linenos" data-line="618"></span></a> <span class="n">ranks</span><span class="p">[</span><span class="n">rankPos</span><span class="p">][</span><span class="o">#</span><span class="n">ranks</span><span class="p">[</span><span class="n">rankPos</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-619"><a href="#L-619"><span class="linenos" data-line="619"></span></a> <span class="kr">if</span> <span class="n">v</span><span class="p">.</span><span class="n">mainsnak</span> <span class="ow">and</span> <span class="n">v</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">.</span><span class="n">datavalue</span> <span class="ow">and</span> <span class="n">v</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'monolingualtext'</span> <span class="kr">then</span> </span><span id="L-620"><a href="#L-620"><span class="linenos" data-line="620"></span></a> <span class="n">acceptable</span> <span class="o">=</span> <span class="kc">false</span> <span class="c1">-- multilanguage values are exception</span> </span><span id="L-621"><a href="#L-621"><span class="linenos" data-line="621"></span></a> <span class="kr">end</span> </span><span id="L-622"><a href="#L-622"><span class="linenos" data-line="622"></span></a> <span class="kr">end</span> </span><span id="L-623"><a href="#L-623"><span class="linenos" data-line="623"></span></a> </span><span id="L-624"><a href="#L-624"><span class="linenos" data-line="624"></span></a> <span class="c1">-- return values of highest (best) rank when available and when no special flags were given</span> </span><span id="L-625"><a href="#L-625"><span class="linenos" data-line="625"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">ranks</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">specialFlags</span> <span class="ow">and</span> <span class="n">acceptable</span> <span class="kr">then</span> </span><span id="L-626"><a href="#L-626"><span class="linenos" data-line="626"></span></a> <span class="kr">return</span> <span class="n">ranks</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-627"><a href="#L-627"><span class="linenos" data-line="627"></span></a> <span class="kr">end</span> </span><span id="L-628"><a href="#L-628"><span class="linenos" data-line="628"></span></a> </span><span id="L-629"><a href="#L-629"><span class="linenos" data-line="629"></span></a> <span class="kd">local</span> <span class="n">sorted</span> <span class="o">=</span> <span class="n">ranks</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-630"><a href="#L-630"><span class="linenos" data-line="630"></span></a> <span class="n">sorted</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">sorted</span><span class="p">,</span> <span class="n">ranks</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> </span><span id="L-631"><a href="#L-631"><span class="linenos" data-line="631"></span></a> <span class="n">sorted</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">sorted</span><span class="p">,</span> <span class="n">ranks</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> </span><span id="L-632"><a href="#L-632"><span class="linenos" data-line="632"></span></a> </span><span id="L-633"><a href="#L-633"><span class="linenos" data-line="633"></span></a> <span class="kr">return</span> <span class="n">sorted</span> </span><span id="L-634"><a href="#L-634"><span class="linenos" data-line="634"></span></a><span class="kr">end</span> </span><span id="L-635"><a href="#L-635"><span class="linenos" data-line="635"></span></a> </span><span id="L-636"><a href="#L-636"><span class="linenos" data-line="636"></span></a><span class="c1">-- if id == nil then item connected to current page is used</span> </span><span id="L-637"><a href="#L-637"><span class="linenos" data-line="637"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">getLabel</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">)</span> </span><span id="L-638"><a href="#L-638"><span class="linenos" data-line="638"></span></a> <span class="kd">local</span> <span class="n">label</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-639"><a href="#L-639"><span class="linenos" data-line="639"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-640"><a href="#L-640"><span class="linenos" data-line="640"></span></a> <span class="kd">local</span> <span class="n">prefix</span><span class="o">=</span> <span class="s2">""</span> </span><span id="L-641"><a href="#L-641"><span class="linenos" data-line="641"></span></a> </span><span id="L-642"><a href="#L-642"><span class="linenos" data-line="642"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">id</span> <span class="kr">then</span> </span><span id="L-643"><a href="#L-643"><span class="linenos" data-line="643"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> </span><span id="L-644"><a href="#L-644"><span class="linenos" data-line="644"></span></a> </span><span id="L-645"><a href="#L-645"><span class="linenos" data-line="645"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">id</span> <span class="kr">then</span> </span><span id="L-646"><a href="#L-646"><span class="linenos" data-line="646"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-647"><a href="#L-647"><span class="linenos" data-line="647"></span></a> <span class="kr">end</span> </span><span id="L-648"><a href="#L-648"><span class="linenos" data-line="648"></span></a> <span class="kr">end</span> </span><span id="L-649"><a href="#L-649"><span class="linenos" data-line="649"></span></a> </span><span id="L-650"><a href="#L-650"><span class="linenos" data-line="650"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">id</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> <span class="c1">-- just to be sure</span> </span><span id="L-651"><a href="#L-651"><span class="linenos" data-line="651"></span></a> </span><span id="L-652"><a href="#L-652"><span class="linenos" data-line="652"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-653"><a href="#L-653"><span class="linenos" data-line="653"></span></a> <span class="c1">-- check if given id actually exists</span> </span><span id="L-654"><a href="#L-654"><span class="linenos" data-line="654"></span></a> <span class="kr">if</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">isValidEntityId</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">entityExists</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-655"><a href="#L-655"><span class="linenos" data-line="655"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="n">id</span> </span><span id="L-656"><a href="#L-656"><span class="linenos" data-line="656"></span></a> </span><span id="L-657"><a href="#L-657"><span class="linenos" data-line="657"></span></a> <span class="kr">if</span> <span class="n">id</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"P"</span> <span class="kr">then</span> </span><span id="L-658"><a href="#L-658"><span class="linenos" data-line="658"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">"Property:"</span> </span><span id="L-659"><a href="#L-659"><span class="linenos" data-line="659"></span></a> <span class="kr">end</span> </span><span id="L-660"><a href="#L-660"><span class="linenos" data-line="660"></span></a> <span class="kr">end</span> </span><span id="L-661"><a href="#L-661"><span class="linenos" data-line="661"></span></a> </span><span id="L-662"><a href="#L-662"><span class="linenos" data-line="662"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">"d:"</span> <span class="o">..</span> <span class="n">prefix</span> </span><span id="L-663"><a href="#L-663"><span class="linenos" data-line="663"></span></a> </span><span id="L-664"><a href="#L-664"><span class="linenos" data-line="664"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">label</span> <span class="c1">-- may be nil</span> </span><span id="L-665"><a href="#L-665"><span class="linenos" data-line="665"></span></a> <span class="kr">else</span> </span><span id="L-666"><a href="#L-666"><span class="linenos" data-line="666"></span></a> <span class="c1">-- try short name first if requested</span> </span><span id="L-667"><a href="#L-667"><span class="linenos" data-line="667"></span></a> <span class="kr">if</span> <span class="n">short</span> <span class="kr">then</span> </span><span id="L-668"><a href="#L-668"><span class="linenos" data-line="668"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_property</span><span class="p">{</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">shortName</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">id</span><span class="p">}</span> <span class="c1">-- get short name</span> </span><span id="L-669"><a href="#L-669"><span class="linenos" data-line="669"></span></a> </span><span id="L-670"><a href="#L-670"><span class="linenos" data-line="670"></span></a> <span class="kr">if</span> <span class="n">label</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-671"><a href="#L-671"><span class="linenos" data-line="671"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-672"><a href="#L-672"><span class="linenos" data-line="672"></span></a> <span class="kr">end</span> </span><span id="L-673"><a href="#L-673"><span class="linenos" data-line="673"></span></a> <span class="kr">end</span> </span><span id="L-674"><a href="#L-674"><span class="linenos" data-line="674"></span></a> </span><span id="L-675"><a href="#L-675"><span class="linenos" data-line="675"></span></a> <span class="c1">-- get label</span> </span><span id="L-676"><a href="#L-676"><span class="linenos" data-line="676"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">label</span> <span class="kr">then</span> </span><span id="L-677"><a href="#L-677"><span class="linenos" data-line="677"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getLabelByLang</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">langCode</span><span class="p">)</span> </span><span id="L-678"><a href="#L-678"><span class="linenos" data-line="678"></span></a> <span class="kr">end</span> </span><span id="L-679"><a href="#L-679"><span class="linenos" data-line="679"></span></a> <span class="kr">end</span> </span><span id="L-680"><a href="#L-680"><span class="linenos" data-line="680"></span></a> </span><span id="L-681"><a href="#L-681"><span class="linenos" data-line="681"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">label</span> <span class="kr">then</span> </span><span id="L-682"><a href="#L-682"><span class="linenos" data-line="682"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-683"><a href="#L-683"><span class="linenos" data-line="683"></span></a> <span class="kr">elseif</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-684"><a href="#L-684"><span class="linenos" data-line="684"></span></a> <span class="c1">-- build a link if requested</span> </span><span id="L-685"><a href="#L-685"><span class="linenos" data-line="685"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">title</span> <span class="kr">then</span> </span><span id="L-686"><a href="#L-686"><span class="linenos" data-line="686"></span></a> <span class="kr">if</span> <span class="n">id</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"Q"</span> <span class="kr">then</span> </span><span id="L-687"><a href="#L-687"><span class="linenos" data-line="687"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">sitelink</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> </span><span id="L-688"><a href="#L-688"><span class="linenos" data-line="688"></span></a> <span class="kr">elseif</span> <span class="n">id</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"P"</span> <span class="kr">then</span> </span><span id="L-689"><a href="#L-689"><span class="linenos" data-line="689"></span></a> <span class="c1">-- properties have no sitelink, link to Wikidata instead</span> </span><span id="L-690"><a href="#L-690"><span class="linenos" data-line="690"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">id</span> </span><span id="L-691"><a href="#L-691"><span class="linenos" data-line="691"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">"d:Property:"</span> </span><span id="L-692"><a href="#L-692"><span class="linenos" data-line="692"></span></a> <span class="kr">end</span> </span><span id="L-693"><a href="#L-693"><span class="linenos" data-line="693"></span></a> <span class="kr">end</span> </span><span id="L-694"><a href="#L-694"><span class="linenos" data-line="694"></span></a> </span><span id="L-695"><a href="#L-695"><span class="linenos" data-line="695"></span></a> <span class="kr">if</span> <span class="n">title</span> <span class="kr">then</span> </span><span id="L-696"><a href="#L-696"><span class="linenos" data-line="696"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="n">prefix</span> <span class="o">..</span> <span class="n">title</span><span class="p">,</span> <span class="n">label</span><span class="p">)</span> </span><span id="L-697"><a href="#L-697"><span class="linenos" data-line="697"></span></a> <span class="kr">end</span> </span><span id="L-698"><a href="#L-698"><span class="linenos" data-line="698"></span></a> <span class="kr">end</span> </span><span id="L-699"><a href="#L-699"><span class="linenos" data-line="699"></span></a> </span><span id="L-700"><a href="#L-700"><span class="linenos" data-line="700"></span></a> <span class="kr">return</span> <span class="n">label</span> </span><span id="L-701"><a href="#L-701"><span class="linenos" data-line="701"></span></a><span class="kr">end</span> </span><span id="L-702"><a href="#L-702"><span class="linenos" data-line="702"></span></a> </span><span id="L-703"><a href="#L-703"><span class="linenos" data-line="703"></span></a><span class="c1">-- if id == nil then item connected to current page is used</span> </span><span id="L-704"><a href="#L-704"><span class="linenos" data-line="704"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">getUnitSymbol</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">)</span> </span><span id="L-705"><a href="#L-705"><span class="linenos" data-line="705"></span></a> <span class="kd">local</span> <span class="n">symbol</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-706"><a href="#L-706"><span class="linenos" data-line="706"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-707"><a href="#L-707"><span class="linenos" data-line="707"></span></a> <span class="kd">local</span> <span class="n">bool</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-708"><a href="#L-708"><span class="linenos" data-line="708"></span></a> </span><span id="L-709"><a href="#L-709"><span class="linenos" data-line="709"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">id</span> <span class="kr">then</span> </span><span id="L-710"><a href="#L-710"><span class="linenos" data-line="710"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> </span><span id="L-711"><a href="#L-711"><span class="linenos" data-line="711"></span></a> </span><span id="L-712"><a href="#L-712"><span class="linenos" data-line="712"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">id</span> <span class="kr">then</span> </span><span id="L-713"><a href="#L-713"><span class="linenos" data-line="713"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-714"><a href="#L-714"><span class="linenos" data-line="714"></span></a> <span class="kr">end</span> </span><span id="L-715"><a href="#L-715"><span class="linenos" data-line="715"></span></a> <span class="kr">end</span> </span><span id="L-716"><a href="#L-716"><span class="linenos" data-line="716"></span></a> </span><span id="L-717"><a href="#L-717"><span class="linenos" data-line="717"></span></a> <span class="n">id</span> <span class="o">=</span> <span class="n">id</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> <span class="c1">-- just to be sure</span> </span><span id="L-718"><a href="#L-718"><span class="linenos" data-line="718"></span></a> </span><span id="L-719"><a href="#L-719"><span class="linenos" data-line="719"></span></a> <span class="c1">-- if there is a short command, try short name first</span> </span><span id="L-720"><a href="#L-720"><span class="linenos" data-line="720"></span></a> <span class="kr">if</span> <span class="n">short</span> <span class="kr">then</span> </span><span id="L-721"><a href="#L-721"><span class="linenos" data-line="721"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_property</span><span class="p">({</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">shortName</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">id</span><span class="p">})</span> <span class="c1">-- get short symbol</span> </span><span id="L-722"><a href="#L-722"><span class="linenos" data-line="722"></span></a> <span class="kr">end</span> </span><span id="L-723"><a href="#L-723"><span class="linenos" data-line="723"></span></a> </span><span id="L-724"><a href="#L-724"><span class="linenos" data-line="724"></span></a> <span class="c1">-- otherwise try unit symbol</span> </span><span id="L-725"><a href="#L-725"><span class="linenos" data-line="725"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">symbol</span> <span class="ow">or</span> <span class="n">symbol</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-726"><a href="#L-726"><span class="linenos" data-line="726"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_property</span><span class="p">({</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">unitSymbol</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">id</span><span class="p">})</span> <span class="c1">-- get unit symbol in local language</span> </span><span id="L-727"><a href="#L-727"><span class="linenos" data-line="727"></span></a> <span class="kr">if</span> <span class="n">symbol</span> <span class="o">==</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-728"><a href="#L-728"><span class="linenos" data-line="728"></span></a> <span class="kd">local</span> <span class="n">mul</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_properties</span><span class="p">({</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">multilanguage</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">unitSymbol</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">id</span><span class="p">})</span> </span><span id="L-729"><a href="#L-729"><span class="linenos" data-line="729"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">mul</span><span class="p">,</span> <span class="s1">'<span[^<>]-lang="mul"[^<>]*>(.-)</span>'</span><span class="p">)</span> <span class="c1">-- get multilanguage unit symbol</span> </span><span id="L-730"><a href="#L-730"><span class="linenos" data-line="730"></span></a> <span class="kr">end</span> </span><span id="L-731"><a href="#L-731"><span class="linenos" data-line="731"></span></a> <span class="kr">end</span> </span><span id="L-732"><a href="#L-732"><span class="linenos" data-line="732"></span></a> </span><span id="L-733"><a href="#L-733"><span class="linenos" data-line="733"></span></a> <span class="kr">if</span> <span class="n">symbol</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-734"><a href="#L-734"><span class="linenos" data-line="734"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-735"><a href="#L-735"><span class="linenos" data-line="735"></span></a> <span class="n">bool</span> <span class="o">=</span> <span class="kc">false</span> <span class="c1">-- not a short name or a symbol</span> </span><span id="L-736"><a href="#L-736"><span class="linenos" data-line="736"></span></a> <span class="kr">end</span> </span><span id="L-737"><a href="#L-737"><span class="linenos" data-line="737"></span></a> </span><span id="L-738"><a href="#L-738"><span class="linenos" data-line="738"></span></a> <span class="c1">-- get label</span> </span><span id="L-739"><a href="#L-739"><span class="linenos" data-line="739"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">symbol</span> <span class="kr">then</span> </span><span id="L-740"><a href="#L-740"><span class="linenos" data-line="740"></span></a> <span class="n">symbol</span><span class="p">,</span> <span class="n">lang</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getLabelWithLang</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> </span><span id="L-741"><a href="#L-741"><span class="linenos" data-line="741"></span></a> </span><span id="L-742"><a href="#L-742"><span class="linenos" data-line="742"></span></a> <span class="c1">-- don't allow language fallback</span> </span><span id="L-743"><a href="#L-743"><span class="linenos" data-line="743"></span></a> <span class="kr">if</span> <span class="n">lang</span> <span class="o">~=</span> <span class="n">self</span><span class="p">.</span><span class="n">langCode</span> <span class="kr">then</span> </span><span id="L-744"><a href="#L-744"><span class="linenos" data-line="744"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-745"><a href="#L-745"><span class="linenos" data-line="745"></span></a> <span class="kr">end</span> </span><span id="L-746"><a href="#L-746"><span class="linenos" data-line="746"></span></a> <span class="kr">end</span> </span><span id="L-747"><a href="#L-747"><span class="linenos" data-line="747"></span></a> </span><span id="L-748"><a href="#L-748"><span class="linenos" data-line="748"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">symbol</span> <span class="kr">then</span> </span><span id="L-749"><a href="#L-749"><span class="linenos" data-line="749"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-750"><a href="#L-750"><span class="linenos" data-line="750"></span></a> <span class="kr">elseif</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-751"><a href="#L-751"><span class="linenos" data-line="751"></span></a> <span class="c1">-- build a link if requested</span> </span><span id="L-752"><a href="#L-752"><span class="linenos" data-line="752"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">title</span> <span class="kr">then</span> </span><span id="L-753"><a href="#L-753"><span class="linenos" data-line="753"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">sitelink</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> </span><span id="L-754"><a href="#L-754"><span class="linenos" data-line="754"></span></a> <span class="kr">end</span> </span><span id="L-755"><a href="#L-755"><span class="linenos" data-line="755"></span></a> </span><span id="L-756"><a href="#L-756"><span class="linenos" data-line="756"></span></a> <span class="kr">if</span> <span class="n">title</span> <span class="kr">then</span> </span><span id="L-757"><a href="#L-757"><span class="linenos" data-line="757"></span></a> <span class="n">symbol</span> <span class="o">=</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">symbol</span><span class="p">)</span> </span><span id="L-758"><a href="#L-758"><span class="linenos" data-line="758"></span></a> <span class="kr">end</span> </span><span id="L-759"><a href="#L-759"><span class="linenos" data-line="759"></span></a> <span class="kr">end</span> </span><span id="L-760"><a href="#L-760"><span class="linenos" data-line="760"></span></a> </span><span id="L-761"><a href="#L-761"><span class="linenos" data-line="761"></span></a> <span class="kr">return</span> <span class="n">symbol</span><span class="p">,</span> <span class="n">bool</span> </span><span id="L-762"><a href="#L-762"><span class="linenos" data-line="762"></span></a><span class="kr">end</span> </span><span id="L-763"><a href="#L-763"><span class="linenos" data-line="763"></span></a> </span><span id="L-764"><a href="#L-764"><span class="linenos" data-line="764"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">getEditIcon</span><span class="p">()</span> </span><span id="L-765"><a href="#L-765"><span class="linenos" data-line="765"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-766"><a href="#L-766"><span class="linenos" data-line="766"></span></a> <span class="kd">local</span> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-767"><a href="#L-767"><span class="linenos" data-line="767"></span></a> <span class="kd">local</span> <span class="n">front</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-768"><a href="#L-768"><span class="linenos" data-line="768"></span></a> <span class="kd">local</span> <span class="n">back</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-769"><a href="#L-769"><span class="linenos" data-line="769"></span></a> </span><span id="L-770"><a href="#L-770"><span class="linenos" data-line="770"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">entityID</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"P"</span> <span class="kr">then</span> </span><span id="L-771"><a href="#L-771"><span class="linenos" data-line="771"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">"Property:"</span> </span><span id="L-772"><a href="#L-772"><span class="linenos" data-line="772"></span></a> <span class="kr">end</span> </span><span id="L-773"><a href="#L-773"><span class="linenos" data-line="773"></span></a> </span><span id="L-774"><a href="#L-774"><span class="linenos" data-line="774"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">editAtEnd</span> <span class="kr">then</span> </span><span id="L-775"><a href="#L-775"><span class="linenos" data-line="775"></span></a> <span class="n">front</span> <span class="o">=</span> <span class="s1">'<span style="float:'</span> </span><span id="L-776"><a href="#L-776"><span class="linenos" data-line="776"></span></a> </span><span id="L-777"><a href="#L-777"><span class="linenos" data-line="777"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">langObj</span><span class="p">:</span><span class="n">isRTL</span><span class="p">()</span> <span class="kr">then</span> </span><span id="L-778"><a href="#L-778"><span class="linenos" data-line="778"></span></a> <span class="n">front</span> <span class="o">=</span> <span class="n">front</span> <span class="o">..</span> <span class="s1">'left'</span> </span><span id="L-779"><a href="#L-779"><span class="linenos" data-line="779"></span></a> <span class="kr">else</span> </span><span id="L-780"><a href="#L-780"><span class="linenos" data-line="780"></span></a> <span class="n">front</span> <span class="o">=</span> <span class="n">front</span> <span class="o">..</span> <span class="s1">'right'</span> </span><span id="L-781"><a href="#L-781"><span class="linenos" data-line="781"></span></a> <span class="kr">end</span> </span><span id="L-782"><a href="#L-782"><span class="linenos" data-line="782"></span></a> </span><span id="L-783"><a href="#L-783"><span class="linenos" data-line="783"></span></a> <span class="n">front</span> <span class="o">=</span> <span class="n">front</span> <span class="o">..</span> <span class="s1">'">'</span> </span><span id="L-784"><a href="#L-784"><span class="linenos" data-line="784"></span></a> <span class="n">back</span> <span class="o">=</span> <span class="s1">'</span>'</span> </span><span id="L-785"><a href="#L-785"><span class="linenos" data-line="785"></span></a> <span class="kr">end</span> </span><span id="L-786"><a href="#L-786"><span class="linenos" data-line="786"></span></a> </span><span id="L-787"><a href="#L-787"><span class="linenos" data-line="787"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s2">"[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt="</span> <span class="o">..</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'info'</span><span class="p">][</span><span class="s1">'edit-on-wikidata'</span><span class="p">]</span> <span class="o">..</span> <span class="s2">"|link=https://www.wikidata.org/wiki/"</span> <span class="o">..</span> <span class="n">prefix</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">entityID</span> <span class="o">..</span> <span class="s2">"?uselang="</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">langCode</span> </span><span id="L-788"><a href="#L-788"><span class="linenos" data-line="788"></span></a> </span><span id="L-789"><a href="#L-789"><span class="linenos" data-line="789"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">propertyID</span> <span class="kr">then</span> </span><span id="L-790"><a href="#L-790"><span class="linenos" data-line="790"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s2">"#"</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">propertyID</span> </span><span id="L-791"><a href="#L-791"><span class="linenos" data-line="791"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">inSitelinks</span> <span class="kr">then</span> </span><span id="L-792"><a href="#L-792"><span class="linenos" data-line="792"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s2">"#sitelinks-wikipedia"</span> </span><span id="L-793"><a href="#L-793"><span class="linenos" data-line="793"></span></a> <span class="kr">end</span> </span><span id="L-794"><a href="#L-794"><span class="linenos" data-line="794"></span></a> </span><span id="L-795"><a href="#L-795"><span class="linenos" data-line="795"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s2">"|"</span> <span class="o">..</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'info'</span><span class="p">][</span><span class="s1">'edit-on-wikidata'</span><span class="p">]</span> <span class="o">..</span> <span class="s2">"]]"</span> </span><span id="L-796"><a href="#L-796"><span class="linenos" data-line="796"></span></a> </span><span id="L-797"><a href="#L-797"><span class="linenos" data-line="797"></span></a> <span class="kr">return</span> <span class="n">front</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">back</span> </span><span id="L-798"><a href="#L-798"><span class="linenos" data-line="798"></span></a><span class="kr">end</span> </span><span id="L-799"><a href="#L-799"><span class="linenos" data-line="799"></span></a> </span><span id="L-800"><a href="#L-800"><span class="linenos" data-line="800"></span></a><span class="c1">-- used to create the final output string when it's all done, so that for references the</span> </span><span id="L-801"><a href="#L-801"><span class="linenos" data-line="801"></span></a><span class="c1">-- function extensionTag("ref", ...) is only called when they really ended up in the final output</span> </span><span id="L-802"><a href="#L-802"><span class="linenos" data-line="802"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">concatValues</span><span class="p">(</span><span class="n">valuesArray</span><span class="p">)</span> </span><span id="L-803"><a href="#L-803"><span class="linenos" data-line="803"></span></a> <span class="kd">local</span> <span class="n">outString</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-804"><a href="#L-804"><span class="linenos" data-line="804"></span></a> <span class="kd">local</span> <span class="n">j</span><span class="p">,</span> <span class="n">skip</span> </span><span id="L-805"><a href="#L-805"><span class="linenos" data-line="805"></span></a> </span><span id="L-806"><a href="#L-806"><span class="linenos" data-line="806"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">#</span><span class="n">valuesArray</span> <span class="kr">do</span> </span><span id="L-807"><a href="#L-807"><span class="linenos" data-line="807"></span></a> <span class="c1">-- check if this is a reference</span> </span><span id="L-808"><a href="#L-808"><span class="linenos" data-line="808"></span></a> <span class="kr">if</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">refHash</span> <span class="kr">then</span> </span><span id="L-809"><a href="#L-809"><span class="linenos" data-line="809"></span></a> <span class="n">j</span> <span class="o">=</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-810"><a href="#L-810"><span class="linenos" data-line="810"></span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-811"><a href="#L-811"><span class="linenos" data-line="811"></span></a> </span><span id="L-812"><a href="#L-812"><span class="linenos" data-line="812"></span></a> <span class="c1">-- skip this reference if it is part of a continuous row of references that already contains the exact same reference</span> </span><span id="L-813"><a href="#L-813"><span class="linenos" data-line="813"></span></a> <span class="kr">while</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="ow">and</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">j</span><span class="p">].</span><span class="n">refHash</span> <span class="kr">do</span> </span><span id="L-814"><a href="#L-814"><span class="linenos" data-line="814"></span></a> <span class="kr">if</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">refHash</span> <span class="o">==</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">j</span><span class="p">].</span><span class="n">refHash</span> <span class="kr">then</span> </span><span id="L-815"><a href="#L-815"><span class="linenos" data-line="815"></span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-816"><a href="#L-816"><span class="linenos" data-line="816"></span></a> <span class="kr">break</span> </span><span id="L-817"><a href="#L-817"><span class="linenos" data-line="817"></span></a> <span class="kr">end</span> </span><span id="L-818"><a href="#L-818"><span class="linenos" data-line="818"></span></a> <span class="n">j</span> <span class="o">=</span> <span class="n">j</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-819"><a href="#L-819"><span class="linenos" data-line="819"></span></a> <span class="kr">end</span> </span><span id="L-820"><a href="#L-820"><span class="linenos" data-line="820"></span></a> </span><span id="L-821"><a href="#L-821"><span class="linenos" data-line="821"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">skip</span> <span class="kr">then</span> </span><span id="L-822"><a href="#L-822"><span class="linenos" data-line="822"></span></a> <span class="c1">-- add <ref> tag with the reference's hash as its name (to deduplicate references)</span> </span><span id="L-823"><a href="#L-823"><span class="linenos" data-line="823"></span></a> <span class="n">outString</span> <span class="o">=</span> <span class="n">outString</span> <span class="o">..</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">extensionTag</span><span class="p">(</span><span class="s2">"ref"</span><span class="p">,</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="p">{</span><span class="n">name</span> <span class="o">=</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">refHash</span><span class="p">})</span> </span><span id="L-824"><a href="#L-824"><span class="linenos" data-line="824"></span></a> <span class="kr">end</span> </span><span id="L-825"><a href="#L-825"><span class="linenos" data-line="825"></span></a> <span class="kr">else</span> </span><span id="L-826"><a href="#L-826"><span class="linenos" data-line="826"></span></a> <span class="n">outString</span> <span class="o">=</span> <span class="n">outString</span> <span class="o">..</span> <span class="n">valuesArray</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-827"><a href="#L-827"><span class="linenos" data-line="827"></span></a> <span class="kr">end</span> </span><span id="L-828"><a href="#L-828"><span class="linenos" data-line="828"></span></a> <span class="kr">end</span> </span><span id="L-829"><a href="#L-829"><span class="linenos" data-line="829"></span></a> </span><span id="L-830"><a href="#L-830"><span class="linenos" data-line="830"></span></a> <span class="kr">return</span> <span class="n">outString</span> </span><span id="L-831"><a href="#L-831"><span class="linenos" data-line="831"></span></a><span class="kr">end</span> </span><span id="L-832"><a href="#L-832"><span class="linenos" data-line="832"></span></a> </span><span id="L-833"><a href="#L-833"><span class="linenos" data-line="833"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">convertUnit</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">,</span> <span class="n">unitOnly</span><span class="p">)</span> </span><span id="L-834"><a href="#L-834"><span class="linenos" data-line="834"></span></a> <span class="kd">local</span> <span class="n">space</span> <span class="o">=</span> <span class="s2">" "</span> </span><span id="L-835"><a href="#L-835"><span class="linenos" data-line="835"></span></a> <span class="kd">local</span> <span class="n">label</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-836"><a href="#L-836"><span class="linenos" data-line="836"></span></a> <span class="kd">local</span> <span class="n">bool</span> </span><span id="L-837"><a href="#L-837"><span class="linenos" data-line="837"></span></a> </span><span id="L-838"><a href="#L-838"><span class="linenos" data-line="838"></span></a> <span class="kr">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">""</span> <span class="ow">or</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"1"</span> <span class="kr">then</span> </span><span id="L-839"><a href="#L-839"><span class="linenos" data-line="839"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-840"><a href="#L-840"><span class="linenos" data-line="840"></span></a> <span class="kr">end</span> </span><span id="L-841"><a href="#L-841"><span class="linenos" data-line="841"></span></a> </span><span id="L-842"><a href="#L-842"><span class="linenos" data-line="842"></span></a> <span class="n">itemID</span> <span class="o">=</span> <span class="n">parseWikidataURL</span><span class="p">(</span><span class="n">unit</span><span class="p">)</span> </span><span id="L-843"><a href="#L-843"><span class="linenos" data-line="843"></span></a> </span><span id="L-844"><a href="#L-844"><span class="linenos" data-line="844"></span></a> <span class="kr">if</span> <span class="n">itemID</span> <span class="kr">then</span> </span><span id="L-845"><a href="#L-845"><span class="linenos" data-line="845"></span></a> <span class="n">label</span><span class="p">,</span> <span class="n">bool</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getUnitSymbol</span><span class="p">(</span><span class="n">itemID</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">)</span> </span><span id="L-846"><a href="#L-846"><span class="linenos" data-line="846"></span></a> </span><span id="L-847"><a href="#L-847"><span class="linenos" data-line="847"></span></a> <span class="kr">if</span> <span class="n">unitOnly</span> </span><span id="L-848"><a href="#L-848"><span class="linenos" data-line="848"></span></a> <span class="ow">or</span> <span class="n">itemID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">percentage</span> </span><span id="L-849"><a href="#L-849"><span class="linenos" data-line="849"></span></a> <span class="ow">or</span> <span class="n">itemID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">permill</span> </span><span id="L-850"><a href="#L-850"><span class="linenos" data-line="850"></span></a> <span class="ow">or</span> <span class="n">itemID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">degree</span> </span><span id="L-851"><a href="#L-851"><span class="linenos" data-line="851"></span></a> <span class="ow">or</span> <span class="n">itemID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">arcminute</span> </span><span id="L-852"><a href="#L-852"><span class="linenos" data-line="852"></span></a> <span class="ow">or</span> <span class="n">itemID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">arcsecond</span> <span class="kr">then</span> </span><span id="L-853"><a href="#L-853"><span class="linenos" data-line="853"></span></a> <span class="n">space</span> <span class="o">=</span> <span class="s1">''</span> </span><span id="L-854"><a href="#L-854"><span class="linenos" data-line="854"></span></a> <span class="kr">elseif</span> <span class="n">bool</span> <span class="kr">then</span> </span><span id="L-855"><a href="#L-855"><span class="linenos" data-line="855"></span></a> <span class="n">space</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'numeric'</span><span class="p">][</span><span class="s1">'delimiter'</span><span class="p">]</span> </span><span id="L-856"><a href="#L-856"><span class="linenos" data-line="856"></span></a> <span class="kr">end</span> </span><span id="L-857"><a href="#L-857"><span class="linenos" data-line="857"></span></a> </span><span id="L-858"><a href="#L-858"><span class="linenos" data-line="858"></span></a> <span class="kr">return</span> <span class="n">space</span> <span class="o">..</span> <span class="n">label</span> </span><span id="L-859"><a href="#L-859"><span class="linenos" data-line="859"></span></a> <span class="kr">end</span> </span><span id="L-860"><a href="#L-860"><span class="linenos" data-line="860"></span></a> </span><span id="L-861"><a href="#L-861"><span class="linenos" data-line="861"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-862"><a href="#L-862"><span class="linenos" data-line="862"></span></a><span class="kr">end</span> </span><span id="L-863"><a href="#L-863"><span class="linenos" data-line="863"></span></a> </span><span id="L-864"><a href="#L-864"><span class="linenos" data-line="864"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">getValue</span><span class="p">(</span><span class="n">snak</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">lat_only</span><span class="p">,</span> <span class="n">lon_only</span><span class="p">,</span> <span class="n">short</span><span class="p">,</span> <span class="n">anyLang</span><span class="p">,</span> <span class="n">unitOnly</span><span class="p">,</span> <span class="n">noSpecial</span><span class="p">)</span> </span><span id="L-865"><a href="#L-865"><span class="linenos" data-line="865"></span></a> <span class="kr">if</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'value'</span> <span class="kr">then</span> </span><span id="L-866"><a href="#L-866"><span class="linenos" data-line="866"></span></a> <span class="kd">local</span> <span class="n">datatype</span> <span class="o">=</span> <span class="n">snak</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="nb">type</span> </span><span id="L-867"><a href="#L-867"><span class="linenos" data-line="867"></span></a> <span class="kd">local</span> <span class="n">subtype</span> <span class="o">=</span> <span class="n">snak</span><span class="p">.</span><span class="n">datatype</span> </span><span id="L-868"><a href="#L-868"><span class="linenos" data-line="868"></span></a> <span class="kd">local</span> <span class="n">datavalue</span> <span class="o">=</span> <span class="n">snak</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> </span><span id="L-869"><a href="#L-869"><span class="linenos" data-line="869"></span></a> </span><span id="L-870"><a href="#L-870"><span class="linenos" data-line="870"></span></a> <span class="kr">if</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'string'</span> <span class="kr">then</span> </span><span id="L-871"><a href="#L-871"><span class="linenos" data-line="871"></span></a> <span class="kr">if</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'url'</span> <span class="ow">and</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-872"><a href="#L-872"><span class="linenos" data-line="872"></span></a> <span class="c1">-- create link explicitly</span> </span><span id="L-873"><a href="#L-873"><span class="linenos" data-line="873"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-874"><a href="#L-874"><span class="linenos" data-line="874"></span></a> <span class="c1">-- will render as a linked number like [1]</span> </span><span id="L-875"><a href="#L-875"><span class="linenos" data-line="875"></span></a> <span class="kr">return</span> <span class="s2">"["</span> <span class="o">..</span> <span class="n">datavalue</span> <span class="o">..</span> <span class="s2">"]"</span> </span><span id="L-876"><a href="#L-876"><span class="linenos" data-line="876"></span></a> <span class="kr">else</span> </span><span id="L-877"><a href="#L-877"><span class="linenos" data-line="877"></span></a> <span class="kr">return</span> <span class="s2">"["</span> <span class="o">..</span> <span class="n">datavalue</span> <span class="o">..</span> <span class="s2">" "</span> <span class="o">..</span> <span class="n">datavalue</span> <span class="o">..</span> <span class="s2">"]"</span> </span><span id="L-878"><a href="#L-878"><span class="linenos" data-line="878"></span></a> <span class="kr">end</span> </span><span id="L-879"><a href="#L-879"><span class="linenos" data-line="879"></span></a> <span class="kr">elseif</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'commonsMedia'</span> <span class="kr">then</span> </span><span id="L-880"><a href="#L-880"><span class="linenos" data-line="880"></span></a> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-881"><a href="#L-881"><span class="linenos" data-line="881"></span></a> <span class="kr">return</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="s2">"c:File:"</span> <span class="o">..</span> <span class="n">datavalue</span><span class="p">,</span> <span class="n">datavalue</span><span class="p">)</span> </span><span id="L-882"><a href="#L-882"><span class="linenos" data-line="882"></span></a> <span class="kr">elseif</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-883"><a href="#L-883"><span class="linenos" data-line="883"></span></a> <span class="kr">return</span> <span class="s2">"[[File:"</span> <span class="o">..</span> <span class="n">datavalue</span> <span class="o">..</span> <span class="s2">"]]"</span> </span><span id="L-884"><a href="#L-884"><span class="linenos" data-line="884"></span></a> <span class="kr">else</span> </span><span id="L-885"><a href="#L-885"><span class="linenos" data-line="885"></span></a> <span class="kr">return</span> <span class="n">datavalue</span> </span><span id="L-886"><a href="#L-886"><span class="linenos" data-line="886"></span></a> <span class="kr">end</span> </span><span id="L-887"><a href="#L-887"><span class="linenos" data-line="887"></span></a> <span class="kr">elseif</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'geo-shape'</span> <span class="ow">and</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-888"><a href="#L-888"><span class="linenos" data-line="888"></span></a> <span class="kr">return</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="s2">"c:"</span> <span class="o">..</span> <span class="n">datavalue</span><span class="p">,</span> <span class="n">datavalue</span><span class="p">)</span> </span><span id="L-889"><a href="#L-889"><span class="linenos" data-line="889"></span></a> <span class="kr">elseif</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'math'</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-890"><a href="#L-890"><span class="linenos" data-line="890"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">extensionTag</span><span class="p">(</span><span class="s2">"math"</span><span class="p">,</span> <span class="n">datavalue</span><span class="p">)</span> </span><span id="L-891"><a href="#L-891"><span class="linenos" data-line="891"></span></a> <span class="kr">elseif</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'external-id'</span> <span class="ow">and</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-892"><a href="#L-892"><span class="linenos" data-line="892"></span></a> <span class="kd">local</span> <span class="n">url</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_property</span><span class="p">{</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">formatterURL</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">snak</span><span class="p">.</span><span class="n">property</span><span class="p">}</span> <span class="c1">-- get formatter URL</span> </span><span id="L-893"><a href="#L-893"><span class="linenos" data-line="893"></span></a> </span><span id="L-894"><a href="#L-894"><span class="linenos" data-line="894"></span></a> <span class="kr">if</span> <span class="n">url</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-895"><a href="#L-895"><span class="linenos" data-line="895"></span></a> <span class="n">url</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="s2">"$1"</span><span class="p">,</span> <span class="n">datavalue</span><span class="p">)</span> </span><span id="L-896"><a href="#L-896"><span class="linenos" data-line="896"></span></a> <span class="kr">return</span> <span class="s2">"["</span> <span class="o">..</span> <span class="n">url</span> <span class="o">..</span> <span class="s2">" "</span> <span class="o">..</span> <span class="n">datavalue</span> <span class="o">..</span> <span class="s2">"]"</span> </span><span id="L-897"><a href="#L-897"><span class="linenos" data-line="897"></span></a> <span class="kr">else</span> </span><span id="L-898"><a href="#L-898"><span class="linenos" data-line="898"></span></a> <span class="kr">return</span> <span class="n">datavalue</span> </span><span id="L-899"><a href="#L-899"><span class="linenos" data-line="899"></span></a> <span class="kr">end</span> </span><span id="L-900"><a href="#L-900"><span class="linenos" data-line="900"></span></a> <span class="kr">else</span> </span><span id="L-901"><a href="#L-901"><span class="linenos" data-line="901"></span></a> <span class="kr">return</span> <span class="n">datavalue</span> </span><span id="L-902"><a href="#L-902"><span class="linenos" data-line="902"></span></a> <span class="kr">end</span> </span><span id="L-903"><a href="#L-903"><span class="linenos" data-line="903"></span></a> <span class="kr">elseif</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'monolingualtext'</span> <span class="kr">then</span> </span><span id="L-904"><a href="#L-904"><span class="linenos" data-line="904"></span></a> <span class="kr">if</span> <span class="n">anyLang</span> <span class="kr">then</span> </span><span id="L-905"><a href="#L-905"><span class="linenos" data-line="905"></span></a> <span class="kr">return</span> <span class="n">i18n</span><span class="p">.</span><span class="n">formatMultilanguageText</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'text'</span><span class="p">],</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'language'</span><span class="p">],</span> <span class="n">self</span><span class="p">.</span><span class="n">langCode</span><span class="p">)</span> </span><span id="L-906"><a href="#L-906"><span class="linenos" data-line="906"></span></a> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'language'</span><span class="p">]</span> <span class="o">==</span> <span class="n">self</span><span class="p">.</span><span class="n">langCode</span> <span class="kr">then</span> </span><span id="L-907"><a href="#L-907"><span class="linenos" data-line="907"></span></a> <span class="kr">return</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'text'</span><span class="p">]</span> </span><span id="L-908"><a href="#L-908"><span class="linenos" data-line="908"></span></a> <span class="kr">else</span> </span><span id="L-909"><a href="#L-909"><span class="linenos" data-line="909"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-910"><a href="#L-910"><span class="linenos" data-line="910"></span></a> <span class="kr">end</span> </span><span id="L-911"><a href="#L-911"><span class="linenos" data-line="911"></span></a> <span class="kr">elseif</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'quantity'</span> <span class="kr">then</span> </span><span id="L-912"><a href="#L-912"><span class="linenos" data-line="912"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-913"><a href="#L-913"><span class="linenos" data-line="913"></span></a> <span class="kd">local</span> <span class="n">unit</span> </span><span id="L-914"><a href="#L-914"><span class="linenos" data-line="914"></span></a> </span><span id="L-915"><a href="#L-915"><span class="linenos" data-line="915"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">unitOnly</span> <span class="kr">then</span> </span><span id="L-916"><a href="#L-916"><span class="linenos" data-line="916"></span></a> <span class="c1">-- get value and strip + signs from front</span> </span><span id="L-917"><a href="#L-917"><span class="linenos" data-line="917"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'amount'</span><span class="p">],</span> <span class="s2">"^%+(.+)$"</span><span class="p">,</span> <span class="s2">"%1"</span><span class="p">)</span> </span><span id="L-918"><a href="#L-918"><span class="linenos" data-line="918"></span></a> </span><span id="L-919"><a href="#L-919"><span class="linenos" data-line="919"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-920"><a href="#L-920"><span class="linenos" data-line="920"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-921"><a href="#L-921"><span class="linenos" data-line="921"></span></a> <span class="kr">end</span> </span><span id="L-922"><a href="#L-922"><span class="linenos" data-line="922"></span></a> </span><span id="L-923"><a href="#L-923"><span class="linenos" data-line="923"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">.</span><span class="n">formatQuantity</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">short</span><span class="p">)</span> </span><span id="L-924"><a href="#L-924"><span class="linenos" data-line="924"></span></a> <span class="kr">end</span> </span><span id="L-925"><a href="#L-925"><span class="linenos" data-line="925"></span></a> </span><span id="L-926"><a href="#L-926"><span class="linenos" data-line="926"></span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">convertUnit</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'unit'</span><span class="p">],</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">,</span> <span class="n">unitOnly</span><span class="p">)</span> </span><span id="L-927"><a href="#L-927"><span class="linenos" data-line="927"></span></a> </span><span id="L-928"><a href="#L-928"><span class="linenos" data-line="928"></span></a> <span class="kr">if</span> <span class="n">unit</span> <span class="kr">then</span> </span><span id="L-929"><a href="#L-929"><span class="linenos" data-line="929"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="n">unit</span> </span><span id="L-930"><a href="#L-930"><span class="linenos" data-line="930"></span></a> <span class="kr">end</span> </span><span id="L-931"><a href="#L-931"><span class="linenos" data-line="931"></span></a> </span><span id="L-932"><a href="#L-932"><span class="linenos" data-line="932"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-933"><a href="#L-933"><span class="linenos" data-line="933"></span></a> <span class="kr">elseif</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'time'</span> <span class="kr">then</span> </span><span id="L-934"><a href="#L-934"><span class="linenos" data-line="934"></span></a> <span class="kd">local</span> <span class="n">y</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">yDiv</span><span class="p">,</span> <span class="n">yRound</span><span class="p">,</span> <span class="n">yFull</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">calendarID</span><span class="p">,</span> <span class="n">dateStr</span> </span><span id="L-935"><a href="#L-935"><span class="linenos" data-line="935"></span></a> <span class="kd">local</span> <span class="n">yFactor</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-936"><a href="#L-936"><span class="linenos" data-line="936"></span></a> <span class="kd">local</span> <span class="n">sign</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-937"><a href="#L-937"><span class="linenos" data-line="937"></span></a> <span class="kd">local</span> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-938"><a href="#L-938"><span class="linenos" data-line="938"></span></a> <span class="kd">local</span> <span class="n">suffix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-939"><a href="#L-939"><span class="linenos" data-line="939"></span></a> <span class="kd">local</span> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-940"><a href="#L-940"><span class="linenos" data-line="940"></span></a> <span class="kd">local</span> <span class="n">mayAddCalendar</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-941"><a href="#L-941"><span class="linenos" data-line="941"></span></a> <span class="kd">local</span> <span class="n">calendar</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-942"><a href="#L-942"><span class="linenos" data-line="942"></span></a> <span class="kd">local</span> <span class="n">precision</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'precision'</span><span class="p">]</span> </span><span id="L-943"><a href="#L-943"><span class="linenos" data-line="943"></span></a> </span><span id="L-944"><a href="#L-944"><span class="linenos" data-line="944"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">11</span> <span class="kr">then</span> </span><span id="L-945"><a href="#L-945"><span class="linenos" data-line="945"></span></a> <span class="n">p</span> <span class="o">=</span> <span class="s2">"d"</span> </span><span id="L-946"><a href="#L-946"><span class="linenos" data-line="946"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> </span><span id="L-947"><a href="#L-947"><span class="linenos" data-line="947"></span></a> <span class="n">p</span> <span class="o">=</span> <span class="s2">"m"</span> </span><span id="L-948"><a href="#L-948"><span class="linenos" data-line="948"></span></a> <span class="kr">else</span> </span><span id="L-949"><a href="#L-949"><span class="linenos" data-line="949"></span></a> <span class="n">p</span> <span class="o">=</span> <span class="s2">"y"</span> </span><span id="L-950"><a href="#L-950"><span class="linenos" data-line="950"></span></a> <span class="n">yFactor</span> <span class="o">=</span> <span class="mi">10</span><span class="o">^</span><span class="p">(</span><span class="mi">9</span><span class="o">-</span><span class="n">precision</span><span class="p">)</span> </span><span id="L-951"><a href="#L-951"><span class="linenos" data-line="951"></span></a> <span class="kr">end</span> </span><span id="L-952"><a href="#L-952"><span class="linenos" data-line="952"></span></a> </span><span id="L-953"><a href="#L-953"><span class="linenos" data-line="953"></span></a> <span class="n">y</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">d</span> <span class="o">=</span> <span class="n">parseDate</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'time'</span><span class="p">],</span> <span class="n">p</span><span class="p">)</span> </span><span id="L-954"><a href="#L-954"><span class="linenos" data-line="954"></span></a> </span><span id="L-955"><a href="#L-955"><span class="linenos" data-line="955"></span></a> <span class="kr">if</span> <span class="n">y</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-956"><a href="#L-956"><span class="linenos" data-line="956"></span></a> <span class="n">sign</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> </span><span id="L-957"><a href="#L-957"><span class="linenos" data-line="957"></span></a> <span class="n">y</span> <span class="o">=</span> <span class="n">y</span> <span class="o">*</span> <span class="n">sign</span> </span><span id="L-958"><a href="#L-958"><span class="linenos" data-line="958"></span></a> <span class="kr">end</span> </span><span id="L-959"><a href="#L-959"><span class="linenos" data-line="959"></span></a> </span><span id="L-960"><a href="#L-960"><span class="linenos" data-line="960"></span></a> <span class="c1">-- if precision is tens/hundreds/thousands/millions/billions of years</span> </span><span id="L-961"><a href="#L-961"><span class="linenos" data-line="961"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">8</span> <span class="kr">then</span> </span><span id="L-962"><a href="#L-962"><span class="linenos" data-line="962"></span></a> <span class="n">yDiv</span> <span class="o">=</span> <span class="n">y</span> <span class="o">/</span> <span class="n">yFactor</span> </span><span id="L-963"><a href="#L-963"><span class="linenos" data-line="963"></span></a> </span><span id="L-964"><a href="#L-964"><span class="linenos" data-line="964"></span></a> <span class="c1">-- if precision is tens/hundreds/thousands of years</span> </span><span id="L-965"><a href="#L-965"><span class="linenos" data-line="965"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">6</span> <span class="kr">then</span> </span><span id="L-966"><a href="#L-966"><span class="linenos" data-line="966"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">7</span> <span class="kr">then</span> </span><span id="L-967"><a href="#L-967"><span class="linenos" data-line="967"></span></a> <span class="c1">-- round centuries/millenniums up (e.g. 20th century or 3rd millennium)</span> </span><span id="L-968"><a href="#L-968"><span class="linenos" data-line="968"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="nb">math.ceil</span><span class="p">(</span><span class="n">yDiv</span><span class="p">)</span> </span><span id="L-969"><a href="#L-969"><span class="linenos" data-line="969"></span></a> </span><span id="L-970"><a href="#L-970"><span class="linenos" data-line="970"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-971"><a href="#L-971"><span class="linenos" data-line="971"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">6</span> <span class="kr">then</span> </span><span id="L-972"><a href="#L-972"><span class="linenos" data-line="972"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'millennium'</span><span class="p">]</span> </span><span id="L-973"><a href="#L-973"><span class="linenos" data-line="973"></span></a> <span class="kr">else</span> </span><span id="L-974"><a href="#L-974"><span class="linenos" data-line="974"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'century'</span><span class="p">]</span> </span><span id="L-975"><a href="#L-975"><span class="linenos" data-line="975"></span></a> <span class="kr">end</span> </span><span id="L-976"><a href="#L-976"><span class="linenos" data-line="976"></span></a> <span class="kr">else</span> </span><span id="L-977"><a href="#L-977"><span class="linenos" data-line="977"></span></a> <span class="c1">-- if not verbose, take the first year of the century/millennium</span> </span><span id="L-978"><a href="#L-978"><span class="linenos" data-line="978"></span></a> <span class="c1">-- (e.g. 1901 for 20th century or 2001 for 3rd millennium)</span> </span><span id="L-979"><a href="#L-979"><span class="linenos" data-line="979"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="p">(</span><span class="n">yRound</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">yFactor</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-980"><a href="#L-980"><span class="linenos" data-line="980"></span></a> <span class="kr">end</span> </span><span id="L-981"><a href="#L-981"><span class="linenos" data-line="981"></span></a> <span class="kr">else</span> </span><span id="L-982"><a href="#L-982"><span class="linenos" data-line="982"></span></a> <span class="c1">-- precision == 8</span> </span><span id="L-983"><a href="#L-983"><span class="linenos" data-line="983"></span></a> <span class="c1">-- round decades down (e.g. 2010s)</span> </span><span id="L-984"><a href="#L-984"><span class="linenos" data-line="984"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">yDiv</span><span class="p">)</span> <span class="o">*</span> <span class="n">yFactor</span> </span><span id="L-985"><a href="#L-985"><span class="linenos" data-line="985"></span></a> </span><span id="L-986"><a href="#L-986"><span class="linenos" data-line="986"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-987"><a href="#L-987"><span class="linenos" data-line="987"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'prefixes'</span><span class="p">][</span><span class="s1">'decade-period'</span><span class="p">]</span> </span><span id="L-988"><a href="#L-988"><span class="linenos" data-line="988"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'decade-period'</span><span class="p">]</span> </span><span id="L-989"><a href="#L-989"><span class="linenos" data-line="989"></span></a> <span class="kr">end</span> </span><span id="L-990"><a href="#L-990"><span class="linenos" data-line="990"></span></a> <span class="kr">end</span> </span><span id="L-991"><a href="#L-991"><span class="linenos" data-line="991"></span></a> </span><span id="L-992"><a href="#L-992"><span class="linenos" data-line="992"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="ow">and</span> <span class="n">sign</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-993"><a href="#L-993"><span class="linenos" data-line="993"></span></a> <span class="c1">-- if BCE then compensate for "counting backwards"</span> </span><span id="L-994"><a href="#L-994"><span class="linenos" data-line="994"></span></a> <span class="c1">-- (e.g. -2019 for 2010s BCE, -2000 for 20th century BCE or -3000 for 3rd millennium BCE)</span> </span><span id="L-995"><a href="#L-995"><span class="linenos" data-line="995"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yRound</span> <span class="o">+</span> <span class="n">yFactor</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-996"><a href="#L-996"><span class="linenos" data-line="996"></span></a> <span class="kr">end</span> </span><span id="L-997"><a href="#L-997"><span class="linenos" data-line="997"></span></a> <span class="kr">else</span> </span><span id="L-998"><a href="#L-998"><span class="linenos" data-line="998"></span></a> <span class="kd">local</span> <span class="n">yReFactor</span><span class="p">,</span> <span class="n">yReDiv</span><span class="p">,</span> <span class="n">yReRound</span> </span><span id="L-999"><a href="#L-999"><span class="linenos" data-line="999"></span></a> </span><span id="L-1000"><a href="#L-1000"><span class="linenos" data-line="1000"></span></a> <span class="c1">-- round to nearest for tens of thousands of years or more</span> </span><span id="L-1001"><a href="#L-1001"><span class="linenos" data-line="1001"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">yDiv</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> </span><span id="L-1002"><a href="#L-1002"><span class="linenos" data-line="1002"></span></a> </span><span id="L-1003"><a href="#L-1003"><span class="linenos" data-line="1003"></span></a> <span class="kr">if</span> <span class="n">yRound</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1004"><a href="#L-1004"><span class="linenos" data-line="1004"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">2</span> <span class="ow">and</span> <span class="n">y</span> <span class="o">~=</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1005"><a href="#L-1005"><span class="linenos" data-line="1005"></span></a> <span class="n">yReFactor</span> <span class="o">=</span> <span class="mf">1e6</span> </span><span id="L-1006"><a href="#L-1006"><span class="linenos" data-line="1006"></span></a> <span class="n">yReDiv</span> <span class="o">=</span> <span class="n">y</span> <span class="o">/</span> <span class="n">yReFactor</span> </span><span id="L-1007"><a href="#L-1007"><span class="linenos" data-line="1007"></span></a> <span class="n">yReRound</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">yReDiv</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> </span><span id="L-1008"><a href="#L-1008"><span class="linenos" data-line="1008"></span></a> </span><span id="L-1009"><a href="#L-1009"><span class="linenos" data-line="1009"></span></a> <span class="kr">if</span> <span class="n">yReDiv</span> <span class="o">==</span> <span class="n">yReRound</span> <span class="kr">then</span> </span><span id="L-1010"><a href="#L-1010"><span class="linenos" data-line="1010"></span></a> <span class="c1">-- change precision to millions of years only if we have a whole number of them</span> </span><span id="L-1011"><a href="#L-1011"><span class="linenos" data-line="1011"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">3</span> </span><span id="L-1012"><a href="#L-1012"><span class="linenos" data-line="1012"></span></a> <span class="n">yFactor</span> <span class="o">=</span> <span class="n">yReFactor</span> </span><span id="L-1013"><a href="#L-1013"><span class="linenos" data-line="1013"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yReRound</span> </span><span id="L-1014"><a href="#L-1014"><span class="linenos" data-line="1014"></span></a> <span class="kr">end</span> </span><span id="L-1015"><a href="#L-1015"><span class="linenos" data-line="1015"></span></a> <span class="kr">end</span> </span><span id="L-1016"><a href="#L-1016"><span class="linenos" data-line="1016"></span></a> </span><span id="L-1017"><a href="#L-1017"><span class="linenos" data-line="1017"></span></a> <span class="kr">if</span> <span class="n">yRound</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1018"><a href="#L-1018"><span class="linenos" data-line="1018"></span></a> <span class="c1">-- otherwise, take the unrounded (original) number of years</span> </span><span id="L-1019"><a href="#L-1019"><span class="linenos" data-line="1019"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">5</span> </span><span id="L-1020"><a href="#L-1020"><span class="linenos" data-line="1020"></span></a> <span class="n">yFactor</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-1021"><a href="#L-1021"><span class="linenos" data-line="1021"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">y</span> </span><span id="L-1022"><a href="#L-1022"><span class="linenos" data-line="1022"></span></a> <span class="kr">end</span> </span><span id="L-1023"><a href="#L-1023"><span class="linenos" data-line="1023"></span></a> <span class="kr">end</span> </span><span id="L-1024"><a href="#L-1024"><span class="linenos" data-line="1024"></span></a> </span><span id="L-1025"><a href="#L-1025"><span class="linenos" data-line="1025"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">y</span> <span class="o">~=</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1026"><a href="#L-1026"><span class="linenos" data-line="1026"></span></a> <span class="n">yFull</span> <span class="o">=</span> <span class="n">yRound</span> <span class="o">*</span> <span class="n">yFactor</span> </span><span id="L-1027"><a href="#L-1027"><span class="linenos" data-line="1027"></span></a> </span><span id="L-1028"><a href="#L-1028"><span class="linenos" data-line="1028"></span></a> <span class="n">yReFactor</span> <span class="o">=</span> <span class="mf">1e9</span> </span><span id="L-1029"><a href="#L-1029"><span class="linenos" data-line="1029"></span></a> <span class="n">yReDiv</span> <span class="o">=</span> <span class="n">yFull</span> <span class="o">/</span> <span class="n">yReFactor</span> </span><span id="L-1030"><a href="#L-1030"><span class="linenos" data-line="1030"></span></a> <span class="n">yReRound</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">yReDiv</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> </span><span id="L-1031"><a href="#L-1031"><span class="linenos" data-line="1031"></span></a> </span><span id="L-1032"><a href="#L-1032"><span class="linenos" data-line="1032"></span></a> <span class="kr">if</span> <span class="n">yReDiv</span> <span class="o">==</span> <span class="n">yReRound</span> <span class="kr">then</span> </span><span id="L-1033"><a href="#L-1033"><span class="linenos" data-line="1033"></span></a> <span class="c1">-- change precision to billions of years if we're in that range</span> </span><span id="L-1034"><a href="#L-1034"><span class="linenos" data-line="1034"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">0</span> </span><span id="L-1035"><a href="#L-1035"><span class="linenos" data-line="1035"></span></a> <span class="n">yFactor</span> <span class="o">=</span> <span class="n">yReFactor</span> </span><span id="L-1036"><a href="#L-1036"><span class="linenos" data-line="1036"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yReRound</span> </span><span id="L-1037"><a href="#L-1037"><span class="linenos" data-line="1037"></span></a> <span class="kr">else</span> </span><span id="L-1038"><a href="#L-1038"><span class="linenos" data-line="1038"></span></a> <span class="n">yReFactor</span> <span class="o">=</span> <span class="mf">1e6</span> </span><span id="L-1039"><a href="#L-1039"><span class="linenos" data-line="1039"></span></a> <span class="n">yReDiv</span> <span class="o">=</span> <span class="n">yFull</span> <span class="o">/</span> <span class="n">yReFactor</span> </span><span id="L-1040"><a href="#L-1040"><span class="linenos" data-line="1040"></span></a> <span class="n">yReRound</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">yReDiv</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> </span><span id="L-1041"><a href="#L-1041"><span class="linenos" data-line="1041"></span></a> </span><span id="L-1042"><a href="#L-1042"><span class="linenos" data-line="1042"></span></a> <span class="kr">if</span> <span class="n">yReDiv</span> <span class="o">==</span> <span class="n">yReRound</span> <span class="kr">then</span> </span><span id="L-1043"><a href="#L-1043"><span class="linenos" data-line="1043"></span></a> <span class="c1">-- change precision to millions of years if we're in that range</span> </span><span id="L-1044"><a href="#L-1044"><span class="linenos" data-line="1044"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">3</span> </span><span id="L-1045"><a href="#L-1045"><span class="linenos" data-line="1045"></span></a> <span class="n">yFactor</span> <span class="o">=</span> <span class="n">yReFactor</span> </span><span id="L-1046"><a href="#L-1046"><span class="linenos" data-line="1046"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yReRound</span> </span><span id="L-1047"><a href="#L-1047"><span class="linenos" data-line="1047"></span></a> <span class="kr">end</span> </span><span id="L-1048"><a href="#L-1048"><span class="linenos" data-line="1048"></span></a> <span class="kr">end</span> </span><span id="L-1049"><a href="#L-1049"><span class="linenos" data-line="1049"></span></a> <span class="kr">end</span> </span><span id="L-1050"><a href="#L-1050"><span class="linenos" data-line="1050"></span></a> </span><span id="L-1051"><a href="#L-1051"><span class="linenos" data-line="1051"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1052"><a href="#L-1052"><span class="linenos" data-line="1052"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">3</span> <span class="kr">then</span> </span><span id="L-1053"><a href="#L-1053"><span class="linenos" data-line="1053"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'million-years'</span><span class="p">]</span> </span><span id="L-1054"><a href="#L-1054"><span class="linenos" data-line="1054"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">suffix</span> </span><span id="L-1055"><a href="#L-1055"><span class="linenos" data-line="1055"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1056"><a href="#L-1056"><span class="linenos" data-line="1056"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'billion-years'</span><span class="p">]</span> </span><span id="L-1057"><a href="#L-1057"><span class="linenos" data-line="1057"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">suffix</span> </span><span id="L-1058"><a href="#L-1058"><span class="linenos" data-line="1058"></span></a> <span class="kr">else</span> </span><span id="L-1059"><a href="#L-1059"><span class="linenos" data-line="1059"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yRound</span> <span class="o">*</span> <span class="n">yFactor</span> </span><span id="L-1060"><a href="#L-1060"><span class="linenos" data-line="1060"></span></a> <span class="kr">if</span> <span class="p">(</span><span class="n">yRound</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">short</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1061"><a href="#L-1061"><span class="linenos" data-line="1061"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'year'</span><span class="p">]</span> </span><span id="L-1062"><a href="#L-1062"><span class="linenos" data-line="1062"></span></a> <span class="kr">else</span> </span><span id="L-1063"><a href="#L-1063"><span class="linenos" data-line="1063"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'years'</span><span class="p">]</span> </span><span id="L-1064"><a href="#L-1064"><span class="linenos" data-line="1064"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">suffix</span> </span><span id="L-1065"><a href="#L-1065"><span class="linenos" data-line="1065"></span></a> <span class="kr">end</span> </span><span id="L-1066"><a href="#L-1066"><span class="linenos" data-line="1066"></span></a> <span class="kr">end</span> </span><span id="L-1067"><a href="#L-1067"><span class="linenos" data-line="1067"></span></a> <span class="kr">else</span> </span><span id="L-1068"><a href="#L-1068"><span class="linenos" data-line="1068"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">yRound</span> <span class="o">*</span> <span class="n">yFactor</span> </span><span id="L-1069"><a href="#L-1069"><span class="linenos" data-line="1069"></span></a> <span class="kr">end</span> </span><span id="L-1070"><a href="#L-1070"><span class="linenos" data-line="1070"></span></a> <span class="kr">end</span> </span><span id="L-1071"><a href="#L-1071"><span class="linenos" data-line="1071"></span></a> <span class="kr">else</span> </span><span id="L-1072"><a href="#L-1072"><span class="linenos" data-line="1072"></span></a> <span class="n">yRound</span> <span class="o">=</span> <span class="n">y</span> </span><span id="L-1073"><a href="#L-1073"><span class="linenos" data-line="1073"></span></a> <span class="n">mayAddCalendar</span> <span class="o">=</span> <span class="p">(</span><span class="n">yRound</span><span class="o">*</span><span class="n">sign</span> <span class="o">>=</span> <span class="mi">1583</span><span class="p">)</span> <span class="c1">-- show Julian calendar only after introduction of Gregorian calendar</span> </span><span id="L-1074"><a href="#L-1074"><span class="linenos" data-line="1074"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">short</span> <span class="kr">then</span> </span><span id="L-1075"><a href="#L-1075"><span class="linenos" data-line="1075"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'suffixes'</span><span class="p">][</span><span class="s1">'year'</span><span class="p">]</span> </span><span id="L-1076"><a href="#L-1076"><span class="linenos" data-line="1076"></span></a> <span class="kr">end</span> </span><span id="L-1077"><a href="#L-1077"><span class="linenos" data-line="1077"></span></a> <span class="kr">end</span> </span><span id="L-1078"><a href="#L-1078"><span class="linenos" data-line="1078"></span></a> </span><span id="L-1079"><a href="#L-1079"><span class="linenos" data-line="1079"></span></a> <span class="kr">if</span> <span class="n">mayAddCalendar</span> <span class="kr">then</span> </span><span id="L-1080"><a href="#L-1080"><span class="linenos" data-line="1080"></span></a> <span class="n">calendarID</span> <span class="o">=</span> <span class="n">parseWikidataURL</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'calendarmodel'</span><span class="p">])</span> </span><span id="L-1081"><a href="#L-1081"><span class="linenos" data-line="1081"></span></a> </span><span id="L-1082"><a href="#L-1082"><span class="linenos" data-line="1082"></span></a> <span class="kr">if</span> <span class="n">calendarID</span> <span class="ow">and</span> <span class="n">calendarID</span> <span class="o">==</span> <span class="n">aliasesQ</span><span class="p">.</span><span class="n">prolepticJulianCalendar</span> <span class="kr">then</span> </span><span id="L-1083"><a href="#L-1083"><span class="linenos" data-line="1083"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1084"><a href="#L-1084"><span class="linenos" data-line="1084"></span></a> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-1085"><a href="#L-1085"><span class="linenos" data-line="1085"></span></a> <span class="n">calendar</span> <span class="o">=</span> <span class="s2">" <sup>("</span><span class="o">..</span><span class="n">buildWikilink</span><span class="p">(</span><span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'julian-calendar'</span><span class="p">],</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'julian'</span><span class="p">])</span><span class="o">..</span><span class="s2">")</sup>"</span> </span><span id="L-1086"><a href="#L-1086"><span class="linenos" data-line="1086"></span></a> <span class="kr">else</span> </span><span id="L-1087"><a href="#L-1087"><span class="linenos" data-line="1087"></span></a> <span class="n">calendar</span> <span class="o">=</span> <span class="s2">" <sup>("</span><span class="o">..</span><span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'julian'</span><span class="p">]</span><span class="o">..</span><span class="s2">")</sup>"</span> </span><span id="L-1088"><a href="#L-1088"><span class="linenos" data-line="1088"></span></a> <span class="kr">end</span> </span><span id="L-1089"><a href="#L-1089"><span class="linenos" data-line="1089"></span></a> <span class="kr">else</span> </span><span id="L-1090"><a href="#L-1090"><span class="linenos" data-line="1090"></span></a> <span class="n">calendar</span> <span class="o">=</span> <span class="s2">"/"</span><span class="o">..</span><span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'julian'</span><span class="p">]</span> </span><span id="L-1091"><a href="#L-1091"><span class="linenos" data-line="1091"></span></a> <span class="kr">end</span> </span><span id="L-1092"><a href="#L-1092"><span class="linenos" data-line="1092"></span></a> <span class="kr">end</span> </span><span id="L-1093"><a href="#L-1093"><span class="linenos" data-line="1093"></span></a> <span class="kr">end</span> </span><span id="L-1094"><a href="#L-1094"><span class="linenos" data-line="1094"></span></a> </span><span id="L-1095"><a href="#L-1095"><span class="linenos" data-line="1095"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1096"><a href="#L-1096"><span class="linenos" data-line="1096"></span></a> <span class="kd">local</span> <span class="n">ce</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1097"><a href="#L-1097"><span class="linenos" data-line="1097"></span></a> </span><span id="L-1098"><a href="#L-1098"><span class="linenos" data-line="1098"></span></a> <span class="kr">if</span> <span class="n">sign</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1099"><a href="#L-1099"><span class="linenos" data-line="1099"></span></a> <span class="n">ce</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'BCE'</span><span class="p">]</span> </span><span id="L-1100"><a href="#L-1100"><span class="linenos" data-line="1100"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">5</span> <span class="kr">then</span> </span><span id="L-1101"><a href="#L-1101"><span class="linenos" data-line="1101"></span></a> <span class="n">ce</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'datetime'</span><span class="p">][</span><span class="s1">'CE'</span><span class="p">]</span> </span><span id="L-1102"><a href="#L-1102"><span class="linenos" data-line="1102"></span></a> <span class="kr">end</span> </span><span id="L-1103"><a href="#L-1103"><span class="linenos" data-line="1103"></span></a> </span><span id="L-1104"><a href="#L-1104"><span class="linenos" data-line="1104"></span></a> <span class="kr">if</span> <span class="n">ce</span> <span class="kr">then</span> </span><span id="L-1105"><a href="#L-1105"><span class="linenos" data-line="1105"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">suffix</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">ce</span> </span><span id="L-1106"><a href="#L-1106"><span class="linenos" data-line="1106"></span></a> <span class="n">linkSuffix</span> <span class="o">=</span> <span class="n">linkSuffix</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">ce</span> </span><span id="L-1107"><a href="#L-1107"><span class="linenos" data-line="1107"></span></a> <span class="kr">end</span> </span><span id="L-1108"><a href="#L-1108"><span class="linenos" data-line="1108"></span></a> </span><span id="L-1109"><a href="#L-1109"><span class="linenos" data-line="1109"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">yRound</span><span class="p">)</span> </span><span id="L-1110"><a href="#L-1110"><span class="linenos" data-line="1110"></span></a> </span><span id="L-1111"><a href="#L-1111"><span class="linenos" data-line="1111"></span></a> <span class="kd">local</span> <span class="n">romanNumerals</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-1112"><a href="#L-1112"><span class="linenos" data-line="1112"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1113"><a href="#L-1113"><span class="linenos" data-line="1113"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">8</span> <span class="kr">then</span> </span><span id="L-1114"><a href="#L-1114"><span class="linenos" data-line="1114"></span></a> <span class="kd">local</span> <span class="n">century</span><span class="p">,</span> <span class="n">decade</span> </span><span id="L-1115"><a href="#L-1115"><span class="linenos" data-line="1115"></span></a> <span class="kr">if</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">></span> <span class="mi">99</span> <span class="kr">then</span> </span><span id="L-1116"><a href="#L-1116"><span class="linenos" data-line="1116"></span></a> <span class="n">century</span><span class="p">,</span> <span class="n">decade</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">'^(%d?%d)(%d0)$'</span><span class="p">)</span> </span><span id="L-1117"><a href="#L-1117"><span class="linenos" data-line="1117"></span></a> <span class="kr">else</span> </span><span id="L-1118"><a href="#L-1118"><span class="linenos" data-line="1118"></span></a> <span class="n">decade</span> <span class="o">=</span> <span class="n">value</span> </span><span id="L-1119"><a href="#L-1119"><span class="linenos" data-line="1119"></span></a> <span class="kr">end</span> </span><span id="L-1120"><a href="#L-1120"><span class="linenos" data-line="1120"></span></a> <span class="n">century</span> <span class="o">=</span> <span class="p">(</span><span class="nb">tonumber</span><span class="p">(</span><span class="n">century</span><span class="p">)</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-1121"><a href="#L-1121"><span class="linenos" data-line="1121"></span></a> <span class="n">decade</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">decade</span><span class="p">)</span> </span><span id="L-1122"><a href="#L-1122"><span class="linenos" data-line="1122"></span></a> <span class="kr">if</span> <span class="n">decade</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1123"><a href="#L-1123"><span class="linenos" data-line="1123"></span></a> <span class="n">decade</span> <span class="o">=</span> <span class="s1">'началото'</span> </span><span id="L-1124"><a href="#L-1124"><span class="linenos" data-line="1124"></span></a> <span class="kr">else</span> </span><span id="L-1125"><a href="#L-1125"><span class="linenos" data-line="1125"></span></a> <span class="n">decade</span> <span class="o">=</span> <span class="n">decade</span> <span class="o">..</span> <span class="s1">'-те години'</span> </span><span id="L-1126"><a href="#L-1126"><span class="linenos" data-line="1126"></span></a> <span class="kr">end</span> </span><span id="L-1127"><a href="#L-1127"><span class="linenos" data-line="1127"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">decade</span> <span class="o">..</span> <span class="s1">' на '</span> <span class="o">..</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">expandTemplate</span><span class="p">{</span><span class="n">title</span> <span class="o">=</span> <span class="s1">'Римска цифра'</span><span class="p">,</span> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">century</span><span class="p">}}</span> <span class="o">..</span> <span class="s1">' век'</span> </span><span id="L-1128"><a href="#L-1128"><span class="linenos" data-line="1128"></span></a> <span class="kr">if</span> <span class="n">ce</span> <span class="kr">then</span> <span class="n">suffix</span> <span class="o">=</span> <span class="n">suffix</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">ce</span> <span class="kr">end</span> </span><span id="L-1129"><a href="#L-1129"><span class="linenos" data-line="1129"></span></a> <span class="n">romanNumerals</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1130"><a href="#L-1130"><span class="linenos" data-line="1130"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">7</span> <span class="ow">or</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">6</span> <span class="kr">then</span> </span><span id="L-1131"><a href="#L-1131"><span class="linenos" data-line="1131"></span></a> <span class="n">suffix</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">expandTemplate</span><span class="p">{</span><span class="n">title</span> <span class="o">=</span> <span class="s1">'Римска цифра'</span><span class="p">,</span> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">value</span><span class="p">}}</span> <span class="o">..</span> <span class="n">linkSuffix</span> </span><span id="L-1132"><a href="#L-1132"><span class="linenos" data-line="1132"></span></a> <span class="n">romanNumerals</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1133"><a href="#L-1133"><span class="linenos" data-line="1133"></span></a> <span class="kr">end</span> </span><span id="L-1134"><a href="#L-1134"><span class="linenos" data-line="1134"></span></a> <span class="kr">end</span> </span><span id="L-1135"><a href="#L-1135"><span class="linenos" data-line="1135"></span></a> </span><span id="L-1136"><a href="#L-1136"><span class="linenos" data-line="1136"></span></a> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-1137"><a href="#L-1137"><span class="linenos" data-line="1137"></span></a> <span class="kr">if</span> <span class="n">suffix</span> <span class="o">==</span> <span class="n">linkSuffix</span> <span class="kr">then</span> </span><span id="L-1138"><a href="#L-1138"><span class="linenos" data-line="1138"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s1">'[['</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">suffix</span> <span class="o">..</span> <span class="s1">']]'</span> </span><span id="L-1139"><a href="#L-1139"><span class="linenos" data-line="1139"></span></a> <span class="kr">elseif</span> <span class="n">romanNumerals</span> <span class="kr">then</span> </span><span id="L-1140"><a href="#L-1140"><span class="linenos" data-line="1140"></span></a> <span class="c1">-- because of mass pages with old and incorrect format</span> </span><span id="L-1141"><a href="#L-1141"><span class="linenos" data-line="1141"></span></a> <span class="c1">-- to be removed when all the pages begin to follow proper naming format (e.g. "X век" rather than "10 век")</span> </span><span id="L-1142"><a href="#L-1142"><span class="linenos" data-line="1142"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s1">'[['</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">linkSuffix</span> <span class="o">..</span> <span class="s1">'|'</span> <span class="o">..</span> <span class="n">suffix</span> <span class="o">..</span> <span class="s1">']]'</span> </span><span id="L-1143"><a href="#L-1143"><span class="linenos" data-line="1143"></span></a> <span class="kr">else</span> </span><span id="L-1144"><a href="#L-1144"><span class="linenos" data-line="1144"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s1">'[['</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">linkSuffix</span> <span class="o">..</span> <span class="s1">'|'</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="s1">']]'</span> <span class="o">..</span> <span class="n">suffix</span> </span><span id="L-1145"><a href="#L-1145"><span class="linenos" data-line="1145"></span></a> <span class="kr">end</span> </span><span id="L-1146"><a href="#L-1146"><span class="linenos" data-line="1146"></span></a> <span class="kr">else</span> </span><span id="L-1147"><a href="#L-1147"><span class="linenos" data-line="1147"></span></a> <span class="kr">if</span> <span class="n">romanNumerals</span> <span class="kr">then</span> </span><span id="L-1148"><a href="#L-1148"><span class="linenos" data-line="1148"></span></a> <span class="c1">-- very basic workaround so Module:Person can properly assign birth/death year categories with old and incorrect format</span> </span><span id="L-1149"><a href="#L-1149"><span class="linenos" data-line="1149"></span></a> <span class="c1">-- to be removed when all the categories begin to follow proper naming format (e.g. "Родени през X век" rather than "Родени през 10 век")</span> </span><span id="L-1150"><a href="#L-1150"><span class="linenos" data-line="1150"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s1">'<!-- '</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">linkSuffix</span> <span class="o">..</span> <span class="s1">' -->'</span> <span class="o">..</span> <span class="n">suffix</span> </span><span id="L-1151"><a href="#L-1151"><span class="linenos" data-line="1151"></span></a> <span class="kr">else</span> </span><span id="L-1152"><a href="#L-1152"><span class="linenos" data-line="1152"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="n">suffix</span> </span><span id="L-1153"><a href="#L-1153"><span class="linenos" data-line="1153"></span></a> <span class="kr">end</span> </span><span id="L-1154"><a href="#L-1154"><span class="linenos" data-line="1154"></span></a> <span class="kr">end</span> </span><span id="L-1155"><a href="#L-1155"><span class="linenos" data-line="1155"></span></a> </span><span id="L-1156"><a href="#L-1156"><span class="linenos" data-line="1156"></span></a> <span class="kr">if</span> <span class="n">m</span> <span class="kr">then</span> </span><span id="L-1157"><a href="#L-1157"><span class="linenos" data-line="1157"></span></a> <span class="n">dateStr</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">langObj</span><span class="p">:</span><span class="n">formatDate</span><span class="p">(</span><span class="s2">"F"</span><span class="p">,</span> <span class="s2">"1-"</span><span class="o">..</span><span class="n">m</span><span class="o">..</span><span class="s2">"-1"</span><span class="p">)</span> </span><span id="L-1158"><a href="#L-1158"><span class="linenos" data-line="1158"></span></a> </span><span id="L-1159"><a href="#L-1159"><span class="linenos" data-line="1159"></span></a> <span class="kr">if</span> <span class="n">d</span> <span class="kr">then</span> </span><span id="L-1160"><a href="#L-1160"><span class="linenos" data-line="1160"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">mdyDate</span> <span class="kr">then</span> </span><span id="L-1161"><a href="#L-1161"><span class="linenos" data-line="1161"></span></a> <span class="n">dateStr</span> <span class="o">=</span> <span class="n">dateStr</span> <span class="o">..</span> <span class="s2">" "</span> <span class="o">..</span> <span class="n">d</span> <span class="o">..</span> <span class="s2">","</span> </span><span id="L-1162"><a href="#L-1162"><span class="linenos" data-line="1162"></span></a> <span class="kr">else</span> </span><span id="L-1163"><a href="#L-1163"><span class="linenos" data-line="1163"></span></a> <span class="n">dateStr</span> <span class="o">=</span> <span class="n">d</span> <span class="o">..</span> <span class="s2">" "</span> <span class="o">..</span> <span class="n">dateStr</span> </span><span id="L-1164"><a href="#L-1164"><span class="linenos" data-line="1164"></span></a> <span class="kr">end</span> </span><span id="L-1165"><a href="#L-1165"><span class="linenos" data-line="1165"></span></a> <span class="kr">end</span> </span><span id="L-1166"><a href="#L-1166"><span class="linenos" data-line="1166"></span></a> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-1167"><a href="#L-1167"><span class="linenos" data-line="1167"></span></a> <span class="n">dateStr</span> <span class="o">=</span> <span class="s1">'[['</span> <span class="o">..</span> <span class="n">dateStr</span> <span class="o">..</span> <span class="s1">']]'</span> </span><span id="L-1168"><a href="#L-1168"><span class="linenos" data-line="1168"></span></a> <span class="kr">end</span> </span><span id="L-1169"><a href="#L-1169"><span class="linenos" data-line="1169"></span></a> </span><span id="L-1170"><a href="#L-1170"><span class="linenos" data-line="1170"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">dateStr</span> <span class="o">..</span> <span class="s2">" "</span> <span class="o">..</span> <span class="n">value</span> </span><span id="L-1171"><a href="#L-1171"><span class="linenos" data-line="1171"></span></a> <span class="kr">end</span> </span><span id="L-1172"><a href="#L-1172"><span class="linenos" data-line="1172"></span></a> </span><span id="L-1173"><a href="#L-1173"><span class="linenos" data-line="1173"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="n">calendar</span> </span><span id="L-1174"><a href="#L-1174"><span class="linenos" data-line="1174"></span></a> <span class="kr">else</span> </span><span id="L-1175"><a href="#L-1175"><span class="linenos" data-line="1175"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">padZeros</span><span class="p">(</span><span class="n">yRound</span> <span class="o">*</span> <span class="n">sign</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> </span><span id="L-1176"><a href="#L-1176"><span class="linenos" data-line="1176"></span></a> </span><span id="L-1177"><a href="#L-1177"><span class="linenos" data-line="1177"></span></a> <span class="kr">if</span> <span class="n">m</span> <span class="kr">then</span> </span><span id="L-1178"><a href="#L-1178"><span class="linenos" data-line="1178"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s2">"-"</span> <span class="o">..</span> <span class="n">padZeros</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> </span><span id="L-1179"><a href="#L-1179"><span class="linenos" data-line="1179"></span></a> </span><span id="L-1180"><a href="#L-1180"><span class="linenos" data-line="1180"></span></a> <span class="kr">if</span> <span class="n">d</span> <span class="kr">then</span> </span><span id="L-1181"><a href="#L-1181"><span class="linenos" data-line="1181"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s2">"-"</span> <span class="o">..</span> <span class="n">padZeros</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> </span><span id="L-1182"><a href="#L-1182"><span class="linenos" data-line="1182"></span></a> <span class="kr">end</span> </span><span id="L-1183"><a href="#L-1183"><span class="linenos" data-line="1183"></span></a> <span class="kr">end</span> </span><span id="L-1184"><a href="#L-1184"><span class="linenos" data-line="1184"></span></a> </span><span id="L-1185"><a href="#L-1185"><span class="linenos" data-line="1185"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="n">calendar</span> </span><span id="L-1186"><a href="#L-1186"><span class="linenos" data-line="1186"></span></a> <span class="kr">end</span> </span><span id="L-1187"><a href="#L-1187"><span class="linenos" data-line="1187"></span></a> </span><span id="L-1188"><a href="#L-1188"><span class="linenos" data-line="1188"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-1189"><a href="#L-1189"><span class="linenos" data-line="1189"></span></a> <span class="kr">elseif</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'globecoordinate'</span> <span class="kr">then</span> </span><span id="L-1190"><a href="#L-1190"><span class="linenos" data-line="1190"></span></a> <span class="c1">-- logic from https://github.com/DataValues/Geo (v4.0.1)</span> </span><span id="L-1191"><a href="#L-1191"><span class="linenos" data-line="1191"></span></a> </span><span id="L-1192"><a href="#L-1192"><span class="linenos" data-line="1192"></span></a> <span class="kd">local</span> <span class="n">precision</span><span class="p">,</span> <span class="n">unitsPerDegree</span><span class="p">,</span> <span class="n">numDigits</span><span class="p">,</span> <span class="n">strFormat</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">globe</span> </span><span id="L-1193"><a href="#L-1193"><span class="linenos" data-line="1193"></span></a> <span class="kd">local</span> <span class="n">latitude</span><span class="p">,</span> <span class="n">latConv</span><span class="p">,</span> <span class="n">latValue</span><span class="p">,</span> <span class="n">latLink</span> </span><span id="L-1194"><a href="#L-1194"><span class="linenos" data-line="1194"></span></a> <span class="kd">local</span> <span class="n">longitude</span><span class="p">,</span> <span class="n">lonConv</span><span class="p">,</span> <span class="n">lonValue</span><span class="p">,</span> <span class="n">lonLink</span> </span><span id="L-1195"><a href="#L-1195"><span class="linenos" data-line="1195"></span></a> <span class="kd">local</span> <span class="n">latDirection</span><span class="p">,</span> <span class="n">latDirectionN</span><span class="p">,</span> <span class="n">latDirectionS</span><span class="p">,</span> <span class="n">latDirectionEN</span> </span><span id="L-1196"><a href="#L-1196"><span class="linenos" data-line="1196"></span></a> <span class="kd">local</span> <span class="n">lonDirection</span><span class="p">,</span> <span class="n">lonDirectionE</span><span class="p">,</span> <span class="n">lonDirectionW</span><span class="p">,</span> <span class="n">lonDirectionEN</span> </span><span id="L-1197"><a href="#L-1197"><span class="linenos" data-line="1197"></span></a> </span><span id="L-1198"><a href="#L-1198"><span class="linenos" data-line="1198"></span></a> <span class="kd">local</span> <span class="n">latDegrees</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1199"><a href="#L-1199"><span class="linenos" data-line="1199"></span></a> <span class="kd">local</span> <span class="n">latMinutes</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1200"><a href="#L-1200"><span class="linenos" data-line="1200"></span></a> <span class="kd">local</span> <span class="n">latSeconds</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1201"><a href="#L-1201"><span class="linenos" data-line="1201"></span></a> <span class="kd">local</span> <span class="n">lonDegrees</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1202"><a href="#L-1202"><span class="linenos" data-line="1202"></span></a> <span class="kd">local</span> <span class="n">lonMinutes</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1203"><a href="#L-1203"><span class="linenos" data-line="1203"></span></a> <span class="kd">local</span> <span class="n">lonSeconds</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1204"><a href="#L-1204"><span class="linenos" data-line="1204"></span></a> </span><span id="L-1205"><a href="#L-1205"><span class="linenos" data-line="1205"></span></a> <span class="kd">local</span> <span class="n">latDegSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1206"><a href="#L-1206"><span class="linenos" data-line="1206"></span></a> <span class="kd">local</span> <span class="n">latMinSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1207"><a href="#L-1207"><span class="linenos" data-line="1207"></span></a> <span class="kd">local</span> <span class="n">latSecSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1208"><a href="#L-1208"><span class="linenos" data-line="1208"></span></a> <span class="kd">local</span> <span class="n">lonDegSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1209"><a href="#L-1209"><span class="linenos" data-line="1209"></span></a> <span class="kd">local</span> <span class="n">lonMinSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1210"><a href="#L-1210"><span class="linenos" data-line="1210"></span></a> <span class="kd">local</span> <span class="n">lonSecSym</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1211"><a href="#L-1211"><span class="linenos" data-line="1211"></span></a> </span><span id="L-1212"><a href="#L-1212"><span class="linenos" data-line="1212"></span></a> <span class="kd">local</span> <span class="n">latDirectionEN_N</span> <span class="o">=</span> <span class="s2">"N"</span> </span><span id="L-1213"><a href="#L-1213"><span class="linenos" data-line="1213"></span></a> <span class="kd">local</span> <span class="n">latDirectionEN_S</span> <span class="o">=</span> <span class="s2">"S"</span> </span><span id="L-1214"><a href="#L-1214"><span class="linenos" data-line="1214"></span></a> <span class="kd">local</span> <span class="n">lonDirectionEN_E</span> <span class="o">=</span> <span class="s2">"E"</span> </span><span id="L-1215"><a href="#L-1215"><span class="linenos" data-line="1215"></span></a> <span class="kd">local</span> <span class="n">lonDirectionEN_W</span> <span class="o">=</span> <span class="s2">"W"</span> </span><span id="L-1216"><a href="#L-1216"><span class="linenos" data-line="1216"></span></a> </span><span id="L-1217"><a href="#L-1217"><span class="linenos" data-line="1217"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1218"><a href="#L-1218"><span class="linenos" data-line="1218"></span></a> <span class="n">latDirectionN</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'latitude-north'</span><span class="p">]</span> </span><span id="L-1219"><a href="#L-1219"><span class="linenos" data-line="1219"></span></a> <span class="n">latDirectionS</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'latitude-south'</span><span class="p">]</span> </span><span id="L-1220"><a href="#L-1220"><span class="linenos" data-line="1220"></span></a> <span class="n">lonDirectionE</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'longitude-east'</span><span class="p">]</span> </span><span id="L-1221"><a href="#L-1221"><span class="linenos" data-line="1221"></span></a> <span class="n">lonDirectionW</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'longitude-west'</span><span class="p">]</span> </span><span id="L-1222"><a href="#L-1222"><span class="linenos" data-line="1222"></span></a> </span><span id="L-1223"><a href="#L-1223"><span class="linenos" data-line="1223"></span></a> <span class="n">degSymbol</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'degrees'</span><span class="p">]</span> </span><span id="L-1224"><a href="#L-1224"><span class="linenos" data-line="1224"></span></a> <span class="n">minSymbol</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'minutes'</span><span class="p">]</span> </span><span id="L-1225"><a href="#L-1225"><span class="linenos" data-line="1225"></span></a> <span class="n">secSymbol</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'seconds'</span><span class="p">]</span> </span><span id="L-1226"><a href="#L-1226"><span class="linenos" data-line="1226"></span></a> <span class="n">separator</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'coord'</span><span class="p">][</span><span class="s1">'separator'</span><span class="p">]</span> </span><span id="L-1227"><a href="#L-1227"><span class="linenos" data-line="1227"></span></a> <span class="kr">else</span> </span><span id="L-1228"><a href="#L-1228"><span class="linenos" data-line="1228"></span></a> <span class="n">latDirectionN</span> <span class="o">=</span> <span class="n">latDirectionEN_N</span> </span><span id="L-1229"><a href="#L-1229"><span class="linenos" data-line="1229"></span></a> <span class="n">latDirectionS</span> <span class="o">=</span> <span class="n">latDirectionEN_S</span> </span><span id="L-1230"><a href="#L-1230"><span class="linenos" data-line="1230"></span></a> <span class="n">lonDirectionE</span> <span class="o">=</span> <span class="n">lonDirectionEN_E</span> </span><span id="L-1231"><a href="#L-1231"><span class="linenos" data-line="1231"></span></a> <span class="n">lonDirectionW</span> <span class="o">=</span> <span class="n">lonDirectionEN_W</span> </span><span id="L-1232"><a href="#L-1232"><span class="linenos" data-line="1232"></span></a> </span><span id="L-1233"><a href="#L-1233"><span class="linenos" data-line="1233"></span></a> <span class="n">degSymbol</span> <span class="o">=</span> <span class="s2">"/"</span> </span><span id="L-1234"><a href="#L-1234"><span class="linenos" data-line="1234"></span></a> <span class="n">minSymbol</span> <span class="o">=</span> <span class="s2">"/"</span> </span><span id="L-1235"><a href="#L-1235"><span class="linenos" data-line="1235"></span></a> <span class="n">secSymbol</span> <span class="o">=</span> <span class="s2">"/"</span> </span><span id="L-1236"><a href="#L-1236"><span class="linenos" data-line="1236"></span></a> <span class="n">separator</span> <span class="o">=</span> <span class="s2">"/"</span> </span><span id="L-1237"><a href="#L-1237"><span class="linenos" data-line="1237"></span></a> <span class="kr">end</span> </span><span id="L-1238"><a href="#L-1238"><span class="linenos" data-line="1238"></span></a> </span><span id="L-1239"><a href="#L-1239"><span class="linenos" data-line="1239"></span></a> <span class="n">latitude</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'latitude'</span><span class="p">]</span> </span><span id="L-1240"><a href="#L-1240"><span class="linenos" data-line="1240"></span></a> <span class="n">longitude</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'longitude'</span><span class="p">]</span> </span><span id="L-1241"><a href="#L-1241"><span class="linenos" data-line="1241"></span></a> </span><span id="L-1242"><a href="#L-1242"><span class="linenos" data-line="1242"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'precision'</span><span class="p">]</span> </span><span id="L-1243"><a href="#L-1243"><span class="linenos" data-line="1243"></span></a> </span><span id="L-1244"><a href="#L-1244"><span class="linenos" data-line="1244"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">precision</span> <span class="ow">or</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1245"><a href="#L-1245"><span class="linenos" data-line="1245"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="mi">3600</span> <span class="c1">-- precision not set (correctly), set to arcsecond</span> </span><span id="L-1246"><a href="#L-1246"><span class="linenos" data-line="1246"></span></a> <span class="kr">end</span> </span><span id="L-1247"><a href="#L-1247"><span class="linenos" data-line="1247"></span></a> <span class="c1">-- remove insignificant detail</span> </span><span id="L-1248"><a href="#L-1248"><span class="linenos" data-line="1248"></span></a> <span class="c1">-- feature disabled: a lot of entities in Wikidata have unreasonably high precision values; example: [[Бахово]]</span> </span><span id="L-1249"><a href="#L-1249"><span class="linenos" data-line="1249"></span></a> <span class="c1">-- latitude = math.floor(latitude / precision + 0.5) * precision</span> </span><span id="L-1250"><a href="#L-1250"><span class="linenos" data-line="1250"></span></a> <span class="c1">-- longitude = math.floor(longitude / precision + 0.5) * precision</span> </span><span id="L-1251"><a href="#L-1251"><span class="linenos" data-line="1251"></span></a> </span><span id="L-1252"><a href="#L-1252"><span class="linenos" data-line="1252"></span></a> <span class="kr">if</span> <span class="n">lat_only</span> <span class="kr">then</span> </span><span id="L-1253"><a href="#L-1253"><span class="linenos" data-line="1253"></span></a> <span class="kr">return</span> <span class="n">latitude</span> </span><span id="L-1254"><a href="#L-1254"><span class="linenos" data-line="1254"></span></a> <span class="kr">elseif</span> <span class="n">lon_only</span> <span class="kr">then</span> </span><span id="L-1255"><a href="#L-1255"><span class="linenos" data-line="1255"></span></a> <span class="kr">return</span> <span class="n">longitude</span> </span><span id="L-1256"><a href="#L-1256"><span class="linenos" data-line="1256"></span></a> <span class="kr">end</span> </span><span id="L-1257"><a href="#L-1257"><span class="linenos" data-line="1257"></span></a> </span><span id="L-1258"><a href="#L-1258"><span class="linenos" data-line="1258"></span></a> <span class="kr">if</span> <span class="n">latitude</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1259"><a href="#L-1259"><span class="linenos" data-line="1259"></span></a> <span class="n">latDirection</span> <span class="o">=</span> <span class="n">latDirectionS</span> </span><span id="L-1260"><a href="#L-1260"><span class="linenos" data-line="1260"></span></a> <span class="n">latDirectionEN</span> <span class="o">=</span> <span class="n">latDirectionEN_S</span> </span><span id="L-1261"><a href="#L-1261"><span class="linenos" data-line="1261"></span></a> <span class="n">latitude</span> <span class="o">=</span> <span class="nb">math.abs</span><span class="p">(</span><span class="n">latitude</span><span class="p">)</span> </span><span id="L-1262"><a href="#L-1262"><span class="linenos" data-line="1262"></span></a> <span class="kr">else</span> </span><span id="L-1263"><a href="#L-1263"><span class="linenos" data-line="1263"></span></a> <span class="n">latDirection</span> <span class="o">=</span> <span class="n">latDirectionN</span> </span><span id="L-1264"><a href="#L-1264"><span class="linenos" data-line="1264"></span></a> <span class="n">latDirectionEN</span> <span class="o">=</span> <span class="n">latDirectionEN_N</span> </span><span id="L-1265"><a href="#L-1265"><span class="linenos" data-line="1265"></span></a> <span class="kr">end</span> </span><span id="L-1266"><a href="#L-1266"><span class="linenos" data-line="1266"></span></a> </span><span id="L-1267"><a href="#L-1267"><span class="linenos" data-line="1267"></span></a> <span class="kr">if</span> <span class="n">longitude</span> <span class="o"><</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1268"><a href="#L-1268"><span class="linenos" data-line="1268"></span></a> <span class="n">lonDirection</span> <span class="o">=</span> <span class="n">lonDirectionW</span> </span><span id="L-1269"><a href="#L-1269"><span class="linenos" data-line="1269"></span></a> <span class="n">lonDirectionEN</span> <span class="o">=</span> <span class="n">lonDirectionEN_W</span> </span><span id="L-1270"><a href="#L-1270"><span class="linenos" data-line="1270"></span></a> <span class="n">longitude</span> <span class="o">=</span> <span class="nb">math.abs</span><span class="p">(</span><span class="n">longitude</span><span class="p">)</span> </span><span id="L-1271"><a href="#L-1271"><span class="linenos" data-line="1271"></span></a> <span class="kr">else</span> </span><span id="L-1272"><a href="#L-1272"><span class="linenos" data-line="1272"></span></a> <span class="n">lonDirection</span> <span class="o">=</span> <span class="n">lonDirectionE</span> </span><span id="L-1273"><a href="#L-1273"><span class="linenos" data-line="1273"></span></a> <span class="n">lonDirectionEN</span> <span class="o">=</span> <span class="n">lonDirectionEN_E</span> </span><span id="L-1274"><a href="#L-1274"><span class="linenos" data-line="1274"></span></a> <span class="kr">end</span> </span><span id="L-1275"><a href="#L-1275"><span class="linenos" data-line="1275"></span></a> </span><span id="L-1276"><a href="#L-1276"><span class="linenos" data-line="1276"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="ow">and</span> <span class="n">precision</span> <span class="o"><</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-1277"><a href="#L-1277"><span class="linenos" data-line="1277"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-1278"><a href="#L-1278"><span class="linenos" data-line="1278"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">3600</span><span class="p">)</span> <span class="ow">and</span> <span class="n">precision</span> <span class="o"><</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1279"><a href="#L-1279"><span class="linenos" data-line="1279"></span></a> <span class="n">precision</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span> </span><span id="L-1280"><a href="#L-1280"><span class="linenos" data-line="1280"></span></a> <span class="kr">end</span> </span><span id="L-1281"><a href="#L-1281"><span class="linenos" data-line="1281"></span></a> </span><span id="L-1282"><a href="#L-1282"><span class="linenos" data-line="1282"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-1283"><a href="#L-1283"><span class="linenos" data-line="1283"></span></a> <span class="n">unitsPerDegree</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-1284"><a href="#L-1284"><span class="linenos" data-line="1284"></span></a> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1285"><a href="#L-1285"><span class="linenos" data-line="1285"></span></a> <span class="n">unitsPerDegree</span> <span class="o">=</span> <span class="mi">60</span> </span><span id="L-1286"><a href="#L-1286"><span class="linenos" data-line="1286"></span></a> <span class="kr">else</span> </span><span id="L-1287"><a href="#L-1287"><span class="linenos" data-line="1287"></span></a> <span class="n">unitsPerDegree</span> <span class="o">=</span> <span class="mi">3600</span> </span><span id="L-1288"><a href="#L-1288"><span class="linenos" data-line="1288"></span></a> <span class="kr">end</span> </span><span id="L-1289"><a href="#L-1289"><span class="linenos" data-line="1289"></span></a> </span><span id="L-1290"><a href="#L-1290"><span class="linenos" data-line="1290"></span></a> <span class="n">numDigits</span> <span class="o">=</span> <span class="nb">math.ceil</span><span class="p">(</span><span class="o">-</span><span class="n">math</span><span class="p">.</span><span class="n">log10</span><span class="p">(</span><span class="n">unitsPerDegree</span> <span class="o">*</span> <span class="n">precision</span><span class="p">))</span> </span><span id="L-1291"><a href="#L-1291"><span class="linenos" data-line="1291"></span></a> </span><span id="L-1292"><a href="#L-1292"><span class="linenos" data-line="1292"></span></a> <span class="kr">if</span> <span class="n">numDigits</span> <span class="o"><=</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1293"><a href="#L-1293"><span class="linenos" data-line="1293"></span></a> <span class="n">numDigits</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span> <span class="c1">-- for some reason, 'numDigits = 0' may actually store '-0', so parse from string instead</span> </span><span id="L-1294"><a href="#L-1294"><span class="linenos" data-line="1294"></span></a> <span class="kr">end</span> </span><span id="L-1295"><a href="#L-1295"><span class="linenos" data-line="1295"></span></a> </span><span id="L-1296"><a href="#L-1296"><span class="linenos" data-line="1296"></span></a> <span class="n">strFormat</span> <span class="o">=</span> <span class="s2">"%."</span> <span class="o">..</span> <span class="n">numDigits</span> <span class="o">..</span> <span class="s2">"f"</span> </span><span id="L-1297"><a href="#L-1297"><span class="linenos" data-line="1297"></span></a> </span><span id="L-1298"><a href="#L-1298"><span class="linenos" data-line="1298"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-1299"><a href="#L-1299"><span class="linenos" data-line="1299"></span></a> <span class="n">latDegrees</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">latitude</span><span class="p">)</span> </span><span id="L-1300"><a href="#L-1300"><span class="linenos" data-line="1300"></span></a> <span class="n">lonDegrees</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">longitude</span><span class="p">)</span> </span><span id="L-1301"><a href="#L-1301"><span class="linenos" data-line="1301"></span></a> </span><span id="L-1302"><a href="#L-1302"><span class="linenos" data-line="1302"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1303"><a href="#L-1303"><span class="linenos" data-line="1303"></span></a> <span class="n">latDegSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">latDegrees</span><span class="p">)</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1304"><a href="#L-1304"><span class="linenos" data-line="1304"></span></a> <span class="n">lonDegSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">lonDegrees</span><span class="p">)</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1305"><a href="#L-1305"><span class="linenos" data-line="1305"></span></a> <span class="kr">else</span> </span><span id="L-1306"><a href="#L-1306"><span class="linenos" data-line="1306"></span></a> <span class="n">latDegSym</span> <span class="o">=</span> <span class="n">latDegrees</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1307"><a href="#L-1307"><span class="linenos" data-line="1307"></span></a> <span class="n">lonDegSym</span> <span class="o">=</span> <span class="n">lonDegrees</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1308"><a href="#L-1308"><span class="linenos" data-line="1308"></span></a> <span class="kr">end</span> </span><span id="L-1309"><a href="#L-1309"><span class="linenos" data-line="1309"></span></a> <span class="kr">else</span> </span><span id="L-1310"><a href="#L-1310"><span class="linenos" data-line="1310"></span></a> <span class="n">latConv</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">latitude</span> <span class="o">*</span> <span class="n">unitsPerDegree</span> <span class="o">*</span> <span class="mi">10</span><span class="o">^</span><span class="n">numDigits</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> <span class="o">/</span> <span class="mi">10</span><span class="o">^</span><span class="n">numDigits</span> </span><span id="L-1311"><a href="#L-1311"><span class="linenos" data-line="1311"></span></a> <span class="n">lonConv</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">longitude</span> <span class="o">*</span> <span class="n">unitsPerDegree</span> <span class="o">*</span> <span class="mi">10</span><span class="o">^</span><span class="n">numDigits</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> <span class="o">/</span> <span class="mi">10</span><span class="o">^</span><span class="n">numDigits</span> </span><span id="L-1312"><a href="#L-1312"><span class="linenos" data-line="1312"></span></a> </span><span id="L-1313"><a href="#L-1313"><span class="linenos" data-line="1313"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1314"><a href="#L-1314"><span class="linenos" data-line="1314"></span></a> <span class="n">latMinutes</span> <span class="o">=</span> <span class="n">latConv</span> </span><span id="L-1315"><a href="#L-1315"><span class="linenos" data-line="1315"></span></a> <span class="n">lonMinutes</span> <span class="o">=</span> <span class="n">lonConv</span> </span><span id="L-1316"><a href="#L-1316"><span class="linenos" data-line="1316"></span></a> <span class="kr">else</span> </span><span id="L-1317"><a href="#L-1317"><span class="linenos" data-line="1317"></span></a> <span class="n">latSeconds</span> <span class="o">=</span> <span class="n">latConv</span> </span><span id="L-1318"><a href="#L-1318"><span class="linenos" data-line="1318"></span></a> <span class="n">lonSeconds</span> <span class="o">=</span> <span class="n">lonConv</span> </span><span id="L-1319"><a href="#L-1319"><span class="linenos" data-line="1319"></span></a> </span><span id="L-1320"><a href="#L-1320"><span class="linenos" data-line="1320"></span></a> <span class="n">latMinutes</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">latSeconds</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1321"><a href="#L-1321"><span class="linenos" data-line="1321"></span></a> <span class="n">lonMinutes</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">lonSeconds</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1322"><a href="#L-1322"><span class="linenos" data-line="1322"></span></a> </span><span id="L-1323"><a href="#L-1323"><span class="linenos" data-line="1323"></span></a> <span class="n">latSeconds</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">latSeconds</span> <span class="o">-</span> <span class="p">(</span><span class="n">latMinutes</span> <span class="o">*</span> <span class="mi">60</span><span class="p">))</span> </span><span id="L-1324"><a href="#L-1324"><span class="linenos" data-line="1324"></span></a> <span class="n">lonSeconds</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">lonSeconds</span> <span class="o">-</span> <span class="p">(</span><span class="n">lonMinutes</span> <span class="o">*</span> <span class="mi">60</span><span class="p">))</span> </span><span id="L-1325"><a href="#L-1325"><span class="linenos" data-line="1325"></span></a> </span><span id="L-1326"><a href="#L-1326"><span class="linenos" data-line="1326"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1327"><a href="#L-1327"><span class="linenos" data-line="1327"></span></a> <span class="n">latSecSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">latSeconds</span><span class="p">)</span> <span class="o">..</span> <span class="n">secSymbol</span> </span><span id="L-1328"><a href="#L-1328"><span class="linenos" data-line="1328"></span></a> <span class="n">lonSecSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">lonSeconds</span><span class="p">)</span> <span class="o">..</span> <span class="n">secSymbol</span> </span><span id="L-1329"><a href="#L-1329"><span class="linenos" data-line="1329"></span></a> <span class="kr">else</span> </span><span id="L-1330"><a href="#L-1330"><span class="linenos" data-line="1330"></span></a> <span class="n">latSecSym</span> <span class="o">=</span> <span class="n">latSeconds</span> <span class="o">..</span> <span class="n">secSymbol</span> </span><span id="L-1331"><a href="#L-1331"><span class="linenos" data-line="1331"></span></a> <span class="n">lonSecSym</span> <span class="o">=</span> <span class="n">lonSeconds</span> <span class="o">..</span> <span class="n">secSymbol</span> </span><span id="L-1332"><a href="#L-1332"><span class="linenos" data-line="1332"></span></a> <span class="kr">end</span> </span><span id="L-1333"><a href="#L-1333"><span class="linenos" data-line="1333"></span></a> <span class="kr">end</span> </span><span id="L-1334"><a href="#L-1334"><span class="linenos" data-line="1334"></span></a> </span><span id="L-1335"><a href="#L-1335"><span class="linenos" data-line="1335"></span></a> <span class="n">latDegrees</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">latMinutes</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1336"><a href="#L-1336"><span class="linenos" data-line="1336"></span></a> <span class="n">lonDegrees</span> <span class="o">=</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">lonMinutes</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1337"><a href="#L-1337"><span class="linenos" data-line="1337"></span></a> </span><span id="L-1338"><a href="#L-1338"><span class="linenos" data-line="1338"></span></a> <span class="n">latDegSym</span> <span class="o">=</span> <span class="n">latDegrees</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1339"><a href="#L-1339"><span class="linenos" data-line="1339"></span></a> <span class="n">lonDegSym</span> <span class="o">=</span> <span class="n">lonDegrees</span> <span class="o">..</span> <span class="n">degSymbol</span> </span><span id="L-1340"><a href="#L-1340"><span class="linenos" data-line="1340"></span></a> </span><span id="L-1341"><a href="#L-1341"><span class="linenos" data-line="1341"></span></a> <span class="n">latMinutes</span> <span class="o">=</span> <span class="n">latMinutes</span> <span class="o">-</span> <span class="p">(</span><span class="n">latDegrees</span> <span class="o">*</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1342"><a href="#L-1342"><span class="linenos" data-line="1342"></span></a> <span class="n">lonMinutes</span> <span class="o">=</span> <span class="n">lonMinutes</span> <span class="o">-</span> <span class="p">(</span><span class="n">lonDegrees</span> <span class="o">*</span> <span class="mi">60</span><span class="p">)</span> </span><span id="L-1343"><a href="#L-1343"><span class="linenos" data-line="1343"></span></a> </span><span id="L-1344"><a href="#L-1344"><span class="linenos" data-line="1344"></span></a> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">60</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1345"><a href="#L-1345"><span class="linenos" data-line="1345"></span></a> <span class="n">latMinutes</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">latMinutes</span><span class="p">)</span> </span><span id="L-1346"><a href="#L-1346"><span class="linenos" data-line="1346"></span></a> <span class="n">lonMinutes</span> <span class="o">=</span> <span class="n">strFormat</span><span class="p">:</span><span class="n">format</span><span class="p">(</span><span class="n">lonMinutes</span><span class="p">)</span> </span><span id="L-1347"><a href="#L-1347"><span class="linenos" data-line="1347"></span></a> </span><span id="L-1348"><a href="#L-1348"><span class="linenos" data-line="1348"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1349"><a href="#L-1349"><span class="linenos" data-line="1349"></span></a> <span class="n">latMinSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">latMinutes</span><span class="p">)</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1350"><a href="#L-1350"><span class="linenos" data-line="1350"></span></a> <span class="n">lonMinSym</span> <span class="o">=</span> <span class="n">replaceDecimalMark</span><span class="p">(</span><span class="n">lonMinutes</span><span class="p">)</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1351"><a href="#L-1351"><span class="linenos" data-line="1351"></span></a> <span class="kr">else</span> </span><span id="L-1352"><a href="#L-1352"><span class="linenos" data-line="1352"></span></a> <span class="n">latMinSym</span> <span class="o">=</span> <span class="n">latMinutes</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1353"><a href="#L-1353"><span class="linenos" data-line="1353"></span></a> <span class="n">lonMinSym</span> <span class="o">=</span> <span class="n">lonMinutes</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1354"><a href="#L-1354"><span class="linenos" data-line="1354"></span></a> <span class="kr">end</span> </span><span id="L-1355"><a href="#L-1355"><span class="linenos" data-line="1355"></span></a> <span class="kr">else</span> </span><span id="L-1356"><a href="#L-1356"><span class="linenos" data-line="1356"></span></a> <span class="n">latMinSym</span> <span class="o">=</span> <span class="n">latMinutes</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1357"><a href="#L-1357"><span class="linenos" data-line="1357"></span></a> <span class="n">lonMinSym</span> <span class="o">=</span> <span class="n">lonMinutes</span> <span class="o">..</span> <span class="n">minSymbol</span> </span><span id="L-1358"><a href="#L-1358"><span class="linenos" data-line="1358"></span></a> <span class="kr">end</span> </span><span id="L-1359"><a href="#L-1359"><span class="linenos" data-line="1359"></span></a> <span class="kr">end</span> </span><span id="L-1360"><a href="#L-1360"><span class="linenos" data-line="1360"></span></a> </span><span id="L-1361"><a href="#L-1361"><span class="linenos" data-line="1361"></span></a> <span class="n">latValue</span> <span class="o">=</span> <span class="n">latDegSym</span> <span class="o">..</span> <span class="n">latMinSym</span> <span class="o">..</span> <span class="n">latSecSym</span> <span class="o">..</span> <span class="n">latDirection</span> </span><span id="L-1362"><a href="#L-1362"><span class="linenos" data-line="1362"></span></a> <span class="n">lonValue</span> <span class="o">=</span> <span class="n">lonDegSym</span> <span class="o">..</span> <span class="n">lonMinSym</span> <span class="o">..</span> <span class="n">lonSecSym</span> <span class="o">..</span> <span class="n">lonDirection</span> </span><span id="L-1363"><a href="#L-1363"><span class="linenos" data-line="1363"></span></a> </span><span id="L-1364"><a href="#L-1364"><span class="linenos" data-line="1364"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">latValue</span> <span class="o">..</span> <span class="n">separator</span> <span class="o">..</span> <span class="n">lonValue</span> </span><span id="L-1365"><a href="#L-1365"><span class="linenos" data-line="1365"></span></a> </span><span id="L-1366"><a href="#L-1366"><span class="linenos" data-line="1366"></span></a> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> </span><span id="L-1367"><a href="#L-1367"><span class="linenos" data-line="1367"></span></a> <span class="n">globe</span> <span class="o">=</span> <span class="n">parseWikidataURL</span><span class="p">(</span><span class="n">datavalue</span><span class="p">[</span><span class="s1">'globe'</span><span class="p">])</span> </span><span id="L-1368"><a href="#L-1368"><span class="linenos" data-line="1368"></span></a> </span><span id="L-1369"><a href="#L-1369"><span class="linenos" data-line="1369"></span></a> <span class="kr">if</span> <span class="n">globe</span> <span class="kr">then</span> </span><span id="L-1370"><a href="#L-1370"><span class="linenos" data-line="1370"></span></a> <span class="n">globe</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntity</span><span class="p">(</span><span class="n">globe</span><span class="p">):</span><span class="n">getLabel</span><span class="p">(</span><span class="s2">"en"</span><span class="p">):</span><span class="n">lower</span><span class="p">()</span> </span><span id="L-1371"><a href="#L-1371"><span class="linenos" data-line="1371"></span></a> <span class="kr">else</span> </span><span id="L-1372"><a href="#L-1372"><span class="linenos" data-line="1372"></span></a> <span class="n">globe</span> <span class="o">=</span> <span class="s2">"earth"</span> </span><span id="L-1373"><a href="#L-1373"><span class="linenos" data-line="1373"></span></a> <span class="kr">end</span> </span><span id="L-1374"><a href="#L-1374"><span class="linenos" data-line="1374"></span></a> </span><span id="L-1375"><a href="#L-1375"><span class="linenos" data-line="1375"></span></a> <span class="n">latLink</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">({</span><span class="n">latDegrees</span><span class="p">,</span> <span class="n">latMinutes</span><span class="p">,</span> <span class="n">latSeconds</span><span class="p">},</span> <span class="s2">"_"</span><span class="p">)</span> </span><span id="L-1376"><a href="#L-1376"><span class="linenos" data-line="1376"></span></a> <span class="n">lonLink</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">({</span><span class="n">lonDegrees</span><span class="p">,</span> <span class="n">lonMinutes</span><span class="p">,</span> <span class="n">lonSeconds</span><span class="p">},</span> <span class="s2">"_"</span><span class="p">)</span> </span><span id="L-1377"><a href="#L-1377"><span class="linenos" data-line="1377"></span></a> </span><span id="L-1378"><a href="#L-1378"><span class="linenos" data-line="1378"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s2">"[https://tools.wmflabs.org/geohack/geohack.php?language="</span><span class="o">..</span><span class="n">self</span><span class="p">.</span><span class="n">langCode</span><span class="o">..</span><span class="s2">"&params="</span><span class="o">..</span><span class="n">latLink</span><span class="o">..</span><span class="s2">"_"</span><span class="o">..</span><span class="n">latDirectionEN</span><span class="o">..</span><span class="s2">"_"</span><span class="o">..</span><span class="n">lonLink</span><span class="o">..</span><span class="s2">"_"</span><span class="o">..</span><span class="n">lonDirectionEN</span><span class="o">..</span><span class="s2">"_globe:"</span><span class="o">..</span><span class="n">globe</span><span class="o">..</span><span class="s2">" "</span><span class="o">..</span><span class="n">value</span><span class="o">..</span><span class="s2">"]"</span> </span><span id="L-1379"><a href="#L-1379"><span class="linenos" data-line="1379"></span></a> <span class="kr">end</span> </span><span id="L-1380"><a href="#L-1380"><span class="linenos" data-line="1380"></span></a> </span><span id="L-1381"><a href="#L-1381"><span class="linenos" data-line="1381"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-1382"><a href="#L-1382"><span class="linenos" data-line="1382"></span></a> <span class="kr">elseif</span> <span class="n">datatype</span> <span class="o">==</span> <span class="s1">'wikibase-entityid'</span> <span class="kr">then</span> </span><span id="L-1383"><a href="#L-1383"><span class="linenos" data-line="1383"></span></a> <span class="kd">local</span> <span class="n">label</span> </span><span id="L-1384"><a href="#L-1384"><span class="linenos" data-line="1384"></span></a> <span class="kd">local</span> <span class="n">itemID</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">[</span><span class="s1">'numeric-id'</span><span class="p">]</span> </span><span id="L-1385"><a href="#L-1385"><span class="linenos" data-line="1385"></span></a> </span><span id="L-1386"><a href="#L-1386"><span class="linenos" data-line="1386"></span></a> <span class="kr">if</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'wikibase-item'</span> <span class="kr">then</span> </span><span id="L-1387"><a href="#L-1387"><span class="linenos" data-line="1387"></span></a> <span class="n">itemID</span> <span class="o">=</span> <span class="s2">"Q"</span> <span class="o">..</span> <span class="n">itemID</span> </span><span id="L-1388"><a href="#L-1388"><span class="linenos" data-line="1388"></span></a> <span class="kr">elseif</span> <span class="n">subtype</span> <span class="o">==</span> <span class="s1">'wikibase-property'</span> <span class="kr">then</span> </span><span id="L-1389"><a href="#L-1389"><span class="linenos" data-line="1389"></span></a> <span class="n">itemID</span> <span class="o">=</span> <span class="s2">"P"</span> <span class="o">..</span> <span class="n">itemID</span> </span><span id="L-1390"><a href="#L-1390"><span class="linenos" data-line="1390"></span></a> <span class="kr">else</span> </span><span id="L-1391"><a href="#L-1391"><span class="linenos" data-line="1391"></span></a> <span class="kr">return</span> <span class="s1">'<strong class="error">'</span> <span class="o">..</span> <span class="n">errorText</span><span class="p">(</span><span class="s1">'unknown-data-type'</span><span class="p">,</span> <span class="n">subtype</span><span class="p">)</span> <span class="o">..</span> <span class="s1">'</strong>'</span> </span><span id="L-1392"><a href="#L-1392"><span class="linenos" data-line="1392"></span></a> <span class="kr">end</span> </span><span id="L-1393"><a href="#L-1393"><span class="linenos" data-line="1393"></span></a> </span><span id="L-1394"><a href="#L-1394"><span class="linenos" data-line="1394"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getLabel</span><span class="p">(</span><span class="n">itemID</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">short</span><span class="p">)</span> </span><span id="L-1395"><a href="#L-1395"><span class="linenos" data-line="1395"></span></a> </span><span id="L-1396"><a href="#L-1396"><span class="linenos" data-line="1396"></span></a> <span class="kr">if</span> <span class="n">label</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-1397"><a href="#L-1397"><span class="linenos" data-line="1397"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">tracking</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1398"><a href="#L-1398"><span class="linenos" data-line="1398"></span></a> <span class="n">label</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1399"><a href="#L-1399"><span class="linenos" data-line="1399"></span></a> <span class="kr">end</span> </span><span id="L-1400"><a href="#L-1400"><span class="linenos" data-line="1400"></span></a> </span><span id="L-1401"><a href="#L-1401"><span class="linenos" data-line="1401"></span></a> <span class="kr">return</span> <span class="n">label</span> </span><span id="L-1402"><a href="#L-1402"><span class="linenos" data-line="1402"></span></a> <span class="kr">else</span> </span><span id="L-1403"><a href="#L-1403"><span class="linenos" data-line="1403"></span></a> <span class="kr">return</span> <span class="s1">'<strong class="error">'</span> <span class="o">..</span> <span class="n">errorText</span><span class="p">(</span><span class="s1">'unknown-data-type'</span><span class="p">,</span> <span class="n">datatype</span><span class="p">)</span> <span class="o">..</span> <span class="s1">'</strong>'</span> </span><span id="L-1404"><a href="#L-1404"><span class="linenos" data-line="1404"></span></a> <span class="kr">end</span> </span><span id="L-1405"><a href="#L-1405"><span class="linenos" data-line="1405"></span></a> <span class="kr">elseif</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'somevalue'</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">noSpecial</span> <span class="kr">then</span> </span><span id="L-1406"><a href="#L-1406"><span class="linenos" data-line="1406"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1407"><a href="#L-1407"><span class="linenos" data-line="1407"></span></a> <span class="kr">return</span> <span class="s2">" "</span> <span class="c1">-- single space represents 'somevalue'</span> </span><span id="L-1408"><a href="#L-1408"><span class="linenos" data-line="1408"></span></a> <span class="kr">else</span> </span><span id="L-1409"><a href="#L-1409"><span class="linenos" data-line="1409"></span></a> <span class="kr">return</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'values'</span><span class="p">][</span><span class="s1">'unknown'</span><span class="p">]</span> </span><span id="L-1410"><a href="#L-1410"><span class="linenos" data-line="1410"></span></a> <span class="kr">end</span> </span><span id="L-1411"><a href="#L-1411"><span class="linenos" data-line="1411"></span></a> <span class="kr">elseif</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'novalue'</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">noSpecial</span> <span class="kr">then</span> </span><span id="L-1412"><a href="#L-1412"><span class="linenos" data-line="1412"></span></a> <span class="kr">if</span> <span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1413"><a href="#L-1413"><span class="linenos" data-line="1413"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- empty string represents 'novalue'</span> </span><span id="L-1414"><a href="#L-1414"><span class="linenos" data-line="1414"></span></a> <span class="kr">else</span> </span><span id="L-1415"><a href="#L-1415"><span class="linenos" data-line="1415"></span></a> <span class="kr">return</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'values'</span><span class="p">][</span><span class="s1">'none'</span><span class="p">]</span> </span><span id="L-1416"><a href="#L-1416"><span class="linenos" data-line="1416"></span></a> <span class="kr">end</span> </span><span id="L-1417"><a href="#L-1417"><span class="linenos" data-line="1417"></span></a> <span class="kr">else</span> </span><span id="L-1418"><a href="#L-1418"><span class="linenos" data-line="1418"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-1419"><a href="#L-1419"><span class="linenos" data-line="1419"></span></a> <span class="kr">end</span> </span><span id="L-1420"><a href="#L-1420"><span class="linenos" data-line="1420"></span></a><span class="kr">end</span> </span><span id="L-1421"><a href="#L-1421"><span class="linenos" data-line="1421"></span></a> </span><span id="L-1422"><a href="#L-1422"><span class="linenos" data-line="1422"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">getSingleRawQualifier</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">qualifierID</span><span class="p">)</span> </span><span id="L-1423"><a href="#L-1423"><span class="linenos" data-line="1423"></span></a> <span class="kd">local</span> <span class="n">qualifiers</span> </span><span id="L-1424"><a href="#L-1424"><span class="linenos" data-line="1424"></span></a> </span><span id="L-1425"><a href="#L-1425"><span class="linenos" data-line="1425"></span></a> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="kr">then</span> <span class="n">qualifiers</span> <span class="o">=</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">qualifierID</span><span class="p">]</span> <span class="kr">end</span> </span><span id="L-1426"><a href="#L-1426"><span class="linenos" data-line="1426"></span></a> </span><span id="L-1427"><a href="#L-1427"><span class="linenos" data-line="1427"></span></a> <span class="kr">if</span> <span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">qualifiers</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1428"><a href="#L-1428"><span class="linenos" data-line="1428"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">qualifiers</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- raw = true</span> </span><span id="L-1429"><a href="#L-1429"><span class="linenos" data-line="1429"></span></a> <span class="kr">else</span> </span><span id="L-1430"><a href="#L-1430"><span class="linenos" data-line="1430"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-1431"><a href="#L-1431"><span class="linenos" data-line="1431"></span></a> <span class="kr">end</span> </span><span id="L-1432"><a href="#L-1432"><span class="linenos" data-line="1432"></span></a><span class="kr">end</span> </span><span id="L-1433"><a href="#L-1433"><span class="linenos" data-line="1433"></span></a> </span><span id="L-1434"><a href="#L-1434"><span class="linenos" data-line="1434"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">snakEqualsValue</span><span class="p">(</span><span class="n">snak</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> </span><span id="L-1435"><a href="#L-1435"><span class="linenos" data-line="1435"></span></a> <span class="kd">local</span> <span class="n">snakValue</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">snak</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- raw = true</span> </span><span id="L-1436"><a href="#L-1436"><span class="linenos" data-line="1436"></span></a> </span><span id="L-1437"><a href="#L-1437"><span class="linenos" data-line="1437"></span></a> <span class="kr">if</span> <span class="n">snakValue</span> <span class="ow">and</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'value'</span> <span class="ow">and</span> <span class="n">snak</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="nb">type</span> <span class="o">==</span> <span class="s1">'wikibase-entityid'</span> <span class="kr">then</span> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> <span class="kr">end</span> </span><span id="L-1438"><a href="#L-1438"><span class="linenos" data-line="1438"></span></a> </span><span id="L-1439"><a href="#L-1439"><span class="linenos" data-line="1439"></span></a> <span class="kr">return</span> <span class="n">snakValue</span> <span class="o">==</span> <span class="n">value</span> </span><span id="L-1440"><a href="#L-1440"><span class="linenos" data-line="1440"></span></a><span class="kr">end</span> </span><span id="L-1441"><a href="#L-1441"><span class="linenos" data-line="1441"></span></a> </span><span id="L-1442"><a href="#L-1442"><span class="linenos" data-line="1442"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">setRank</span><span class="p">(</span><span class="n">rank</span><span class="p">)</span> </span><span id="L-1443"><a href="#L-1443"><span class="linenos" data-line="1443"></span></a> <span class="kd">local</span> <span class="n">rankPos</span> </span><span id="L-1444"><a href="#L-1444"><span class="linenos" data-line="1444"></span></a> </span><span id="L-1445"><a href="#L-1445"><span class="linenos" data-line="1445"></span></a> <span class="kr">if</span> <span class="n">rank</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">best</span> <span class="kr">then</span> </span><span id="L-1446"><a href="#L-1446"><span class="linenos" data-line="1446"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">bestRank</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1447"><a href="#L-1447"><span class="linenos" data-line="1447"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">flagBest</span> <span class="o">=</span> <span class="kc">true</span> <span class="c1">-- mark that 'best' flag was given</span> </span><span id="L-1448"><a href="#L-1448"><span class="linenos" data-line="1448"></span></a> <span class="kr">return</span> </span><span id="L-1449"><a href="#L-1449"><span class="linenos" data-line="1449"></span></a> <span class="kr">end</span> </span><span id="L-1450"><a href="#L-1450"><span class="linenos" data-line="1450"></span></a> </span><span id="L-1451"><a href="#L-1451"><span class="linenos" data-line="1451"></span></a> <span class="kr">if</span> <span class="n">rank</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">9</span><span class="p">)</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">preferred</span> <span class="kr">then</span> </span><span id="L-1452"><a href="#L-1452"><span class="linenos" data-line="1452"></span></a> <span class="n">rankPos</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-1453"><a href="#L-1453"><span class="linenos" data-line="1453"></span></a> <span class="kr">elseif</span> <span class="n">rank</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">6</span><span class="p">)</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">normal</span> <span class="kr">then</span> </span><span id="L-1454"><a href="#L-1454"><span class="linenos" data-line="1454"></span></a> <span class="n">rankPos</span> <span class="o">=</span> <span class="mi">2</span> </span><span id="L-1455"><a href="#L-1455"><span class="linenos" data-line="1455"></span></a> <span class="kr">elseif</span> <span class="n">rank</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">deprecated</span> <span class="kr">then</span> </span><span id="L-1456"><a href="#L-1456"><span class="linenos" data-line="1456"></span></a> <span class="n">rankPos</span> <span class="o">=</span> <span class="mi">3</span> </span><span id="L-1457"><a href="#L-1457"><span class="linenos" data-line="1457"></span></a> <span class="kr">else</span> </span><span id="L-1458"><a href="#L-1458"><span class="linenos" data-line="1458"></span></a> <span class="kr">return</span> </span><span id="L-1459"><a href="#L-1459"><span class="linenos" data-line="1459"></span></a> <span class="kr">end</span> </span><span id="L-1460"><a href="#L-1460"><span class="linenos" data-line="1460"></span></a> </span><span id="L-1461"><a href="#L-1461"><span class="linenos" data-line="1461"></span></a> <span class="c1">-- one of the rank flags was given, check if another one was given before</span> </span><span id="L-1462"><a href="#L-1462"><span class="linenos" data-line="1462"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">self</span><span class="p">.</span><span class="n">flagRank</span> <span class="kr">then</span> </span><span id="L-1463"><a href="#L-1463"><span class="linenos" data-line="1463"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">ranks</span> <span class="o">=</span> <span class="p">{</span><span class="kc">false</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="kc">false</span><span class="p">}</span> <span class="c1">-- no other rank flag given before, so unset ranks</span> </span><span id="L-1464"><a href="#L-1464"><span class="linenos" data-line="1464"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">bestRank</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">flagBest</span> <span class="c1">-- unsets bestRank only if 'best' flag was not given before</span> </span><span id="L-1465"><a href="#L-1465"><span class="linenos" data-line="1465"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">flagRank</span> <span class="o">=</span> <span class="kc">true</span> <span class="c1">-- mark that a rank flag was given</span> </span><span id="L-1466"><a href="#L-1466"><span class="linenos" data-line="1466"></span></a> <span class="kr">end</span> </span><span id="L-1467"><a href="#L-1467"><span class="linenos" data-line="1467"></span></a> </span><span id="L-1468"><a href="#L-1468"><span class="linenos" data-line="1468"></span></a> <span class="kr">if</span> <span class="n">rank</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"+"</span> <span class="kr">then</span> </span><span id="L-1469"><a href="#L-1469"><span class="linenos" data-line="1469"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="n">rankPos</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span> <span class="kr">do</span> </span><span id="L-1470"><a href="#L-1470"><span class="linenos" data-line="1470"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">ranks</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1471"><a href="#L-1471"><span class="linenos" data-line="1471"></span></a> <span class="kr">end</span> </span><span id="L-1472"><a href="#L-1472"><span class="linenos" data-line="1472"></span></a> <span class="kr">elseif</span> <span class="n">rank</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="kr">then</span> </span><span id="L-1473"><a href="#L-1473"><span class="linenos" data-line="1473"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="n">rankPos</span><span class="p">,</span> <span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">ranks</span> <span class="kr">do</span> </span><span id="L-1474"><a href="#L-1474"><span class="linenos" data-line="1474"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">ranks</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1475"><a href="#L-1475"><span class="linenos" data-line="1475"></span></a> <span class="kr">end</span> </span><span id="L-1476"><a href="#L-1476"><span class="linenos" data-line="1476"></span></a> <span class="kr">else</span> </span><span id="L-1477"><a href="#L-1477"><span class="linenos" data-line="1477"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">ranks</span><span class="p">[</span><span class="n">rankPos</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1478"><a href="#L-1478"><span class="linenos" data-line="1478"></span></a> <span class="kr">end</span> </span><span id="L-1479"><a href="#L-1479"><span class="linenos" data-line="1479"></span></a><span class="kr">end</span> </span><span id="L-1480"><a href="#L-1480"><span class="linenos" data-line="1480"></span></a> </span><span id="L-1481"><a href="#L-1481"><span class="linenos" data-line="1481"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">setPeriod</span><span class="p">(</span><span class="n">period</span><span class="p">)</span> </span><span id="L-1482"><a href="#L-1482"><span class="linenos" data-line="1482"></span></a> <span class="kd">local</span> <span class="n">periodPos</span> </span><span id="L-1483"><a href="#L-1483"><span class="linenos" data-line="1483"></span></a> </span><span id="L-1484"><a href="#L-1484"><span class="linenos" data-line="1484"></span></a> <span class="kr">if</span> <span class="n">period</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">future</span> <span class="kr">then</span> </span><span id="L-1485"><a href="#L-1485"><span class="linenos" data-line="1485"></span></a> <span class="n">periodPos</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-1486"><a href="#L-1486"><span class="linenos" data-line="1486"></span></a> <span class="kr">elseif</span> <span class="n">period</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">current</span> <span class="kr">then</span> </span><span id="L-1487"><a href="#L-1487"><span class="linenos" data-line="1487"></span></a> <span class="n">periodPos</span> <span class="o">=</span> <span class="mi">2</span> </span><span id="L-1488"><a href="#L-1488"><span class="linenos" data-line="1488"></span></a> <span class="kr">elseif</span> <span class="n">period</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">former</span> <span class="kr">then</span> </span><span id="L-1489"><a href="#L-1489"><span class="linenos" data-line="1489"></span></a> <span class="n">periodPos</span> <span class="o">=</span> <span class="mi">3</span> </span><span id="L-1490"><a href="#L-1490"><span class="linenos" data-line="1490"></span></a> <span class="kr">else</span> </span><span id="L-1491"><a href="#L-1491"><span class="linenos" data-line="1491"></span></a> <span class="kr">return</span> </span><span id="L-1492"><a href="#L-1492"><span class="linenos" data-line="1492"></span></a> <span class="kr">end</span> </span><span id="L-1493"><a href="#L-1493"><span class="linenos" data-line="1493"></span></a> </span><span id="L-1494"><a href="#L-1494"><span class="linenos" data-line="1494"></span></a> <span class="c1">-- one of the period flags was given, check if another one was given before</span> </span><span id="L-1495"><a href="#L-1495"><span class="linenos" data-line="1495"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">self</span><span class="p">.</span><span class="n">flagPeriod</span> <span class="kr">then</span> </span><span id="L-1496"><a href="#L-1496"><span class="linenos" data-line="1496"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">periods</span> <span class="o">=</span> <span class="p">{</span><span class="kc">false</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="kc">false</span><span class="p">}</span> <span class="c1">-- no other period flag given before, so unset periods</span> </span><span id="L-1497"><a href="#L-1497"><span class="linenos" data-line="1497"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">flagPeriod</span> <span class="o">=</span> <span class="kc">true</span> <span class="c1">-- mark that a period flag was given</span> </span><span id="L-1498"><a href="#L-1498"><span class="linenos" data-line="1498"></span></a> <span class="kr">end</span> </span><span id="L-1499"><a href="#L-1499"><span class="linenos" data-line="1499"></span></a> </span><span id="L-1500"><a href="#L-1500"><span class="linenos" data-line="1500"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="n">periodPos</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1501"><a href="#L-1501"><span class="linenos" data-line="1501"></span></a><span class="kr">end</span> </span><span id="L-1502"><a href="#L-1502"><span class="linenos" data-line="1502"></span></a> </span><span id="L-1503"><a href="#L-1503"><span class="linenos" data-line="1503"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">qualifierMatches</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">id</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> </span><span id="L-1504"><a href="#L-1504"><span class="linenos" data-line="1504"></span></a> <span class="kd">local</span> <span class="n">qualifiers</span> </span><span id="L-1505"><a href="#L-1505"><span class="linenos" data-line="1505"></span></a> </span><span id="L-1506"><a href="#L-1506"><span class="linenos" data-line="1506"></span></a> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="kr">then</span> <span class="n">qualifiers</span> <span class="o">=</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">id</span><span class="p">]</span> <span class="kr">end</span> </span><span id="L-1507"><a href="#L-1507"><span class="linenos" data-line="1507"></span></a> <span class="kr">if</span> <span class="n">qualifiers</span> <span class="kr">then</span> </span><span id="L-1508"><a href="#L-1508"><span class="linenos" data-line="1508"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">qualifiers</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1509"><a href="#L-1509"><span class="linenos" data-line="1509"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">:</span><span class="n">snakEqualsValue</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1510"><a href="#L-1510"><span class="linenos" data-line="1510"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1511"><a href="#L-1511"><span class="linenos" data-line="1511"></span></a> <span class="kr">end</span> </span><span id="L-1512"><a href="#L-1512"><span class="linenos" data-line="1512"></span></a> <span class="kr">end</span> </span><span id="L-1513"><a href="#L-1513"><span class="linenos" data-line="1513"></span></a> <span class="kr">elseif</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-1514"><a href="#L-1514"><span class="linenos" data-line="1514"></span></a> <span class="c1">-- if the qualifier is not present then treat it the same as the special value 'novalue'</span> </span><span id="L-1515"><a href="#L-1515"><span class="linenos" data-line="1515"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1516"><a href="#L-1516"><span class="linenos" data-line="1516"></span></a> <span class="kr">end</span> </span><span id="L-1517"><a href="#L-1517"><span class="linenos" data-line="1517"></span></a> </span><span id="L-1518"><a href="#L-1518"><span class="linenos" data-line="1518"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1519"><a href="#L-1519"><span class="linenos" data-line="1519"></span></a><span class="kr">end</span> </span><span id="L-1520"><a href="#L-1520"><span class="linenos" data-line="1520"></span></a> </span><span id="L-1521"><a href="#L-1521"><span class="linenos" data-line="1521"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">rankMatches</span><span class="p">(</span><span class="n">rankPos</span><span class="p">)</span> </span><span id="L-1522"><a href="#L-1522"><span class="linenos" data-line="1522"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">bestRank</span> <span class="kr">then</span> </span><span id="L-1523"><a href="#L-1523"><span class="linenos" data-line="1523"></span></a> <span class="kr">return</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">ranks</span><span class="p">[</span><span class="n">rankPos</span><span class="p">]</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">foundRank</span> <span class="o">>=</span> <span class="n">rankPos</span><span class="p">)</span> </span><span id="L-1524"><a href="#L-1524"><span class="linenos" data-line="1524"></span></a> <span class="kr">else</span> </span><span id="L-1525"><a href="#L-1525"><span class="linenos" data-line="1525"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">ranks</span><span class="p">[</span><span class="n">rankPos</span><span class="p">]</span> </span><span id="L-1526"><a href="#L-1526"><span class="linenos" data-line="1526"></span></a> <span class="kr">end</span> </span><span id="L-1527"><a href="#L-1527"><span class="linenos" data-line="1527"></span></a><span class="kr">end</span> </span><span id="L-1528"><a href="#L-1528"><span class="linenos" data-line="1528"></span></a> </span><span id="L-1529"><a href="#L-1529"><span class="linenos" data-line="1529"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">timeMatches</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1530"><a href="#L-1530"><span class="linenos" data-line="1530"></span></a> <span class="kd">local</span> <span class="n">startTime</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1531"><a href="#L-1531"><span class="linenos" data-line="1531"></span></a> <span class="kd">local</span> <span class="n">startTimeY</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1532"><a href="#L-1532"><span class="linenos" data-line="1532"></span></a> <span class="kd">local</span> <span class="n">startTimeM</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1533"><a href="#L-1533"><span class="linenos" data-line="1533"></span></a> <span class="kd">local</span> <span class="n">startTimeD</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1534"><a href="#L-1534"><span class="linenos" data-line="1534"></span></a> <span class="kd">local</span> <span class="n">endTime</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1535"><a href="#L-1535"><span class="linenos" data-line="1535"></span></a> <span class="kd">local</span> <span class="n">endTimeY</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1536"><a href="#L-1536"><span class="linenos" data-line="1536"></span></a> <span class="kd">local</span> <span class="n">endTimeM</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1537"><a href="#L-1537"><span class="linenos" data-line="1537"></span></a> <span class="kd">local</span> <span class="n">endTimeD</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1538"><a href="#L-1538"><span class="linenos" data-line="1538"></span></a> </span><span id="L-1539"><a href="#L-1539"><span class="linenos" data-line="1539"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1540"><a href="#L-1540"><span class="linenos" data-line="1540"></span></a> <span class="c1">-- any time</span> </span><span id="L-1541"><a href="#L-1541"><span class="linenos" data-line="1541"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1542"><a href="#L-1542"><span class="linenos" data-line="1542"></span></a> <span class="kr">end</span> </span><span id="L-1543"><a href="#L-1543"><span class="linenos" data-line="1543"></span></a> </span><span id="L-1544"><a href="#L-1544"><span class="linenos" data-line="1544"></span></a> <span class="kd">local</span> <span class="n">now</span> <span class="o">=</span> <span class="nb">os.date</span><span class="p">(</span><span class="s1">'!*t'</span><span class="p">)</span> </span><span id="L-1545"><a href="#L-1545"><span class="linenos" data-line="1545"></span></a> <span class="kd">local</span> <span class="n">atYear</span><span class="p">,</span> <span class="n">atMonth</span><span class="p">,</span> <span class="n">atDay</span> <span class="o">=</span> <span class="n">parseDate</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">atDate</span><span class="p">)</span> </span><span id="L-1546"><a href="#L-1546"><span class="linenos" data-line="1546"></span></a> <span class="kr">if</span> <span class="n">atYear</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-1547"><a href="#L-1547"><span class="linenos" data-line="1547"></span></a> <span class="n">atYear</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'year'</span><span class="p">]</span> </span><span id="L-1548"><a href="#L-1548"><span class="linenos" data-line="1548"></span></a> <span class="kr">end</span> </span><span id="L-1549"><a href="#L-1549"><span class="linenos" data-line="1549"></span></a> <span class="kr">if</span> <span class="n">atMonth</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-1550"><a href="#L-1550"><span class="linenos" data-line="1550"></span></a> <span class="n">atMonth</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'month'</span><span class="p">]</span> </span><span id="L-1551"><a href="#L-1551"><span class="linenos" data-line="1551"></span></a> <span class="kr">end</span> </span><span id="L-1552"><a href="#L-1552"><span class="linenos" data-line="1552"></span></a> <span class="kr">if</span> <span class="n">atDay</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-1553"><a href="#L-1553"><span class="linenos" data-line="1553"></span></a> <span class="n">atDay</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'day'</span><span class="p">]</span> </span><span id="L-1554"><a href="#L-1554"><span class="linenos" data-line="1554"></span></a> <span class="kr">end</span> </span><span id="L-1555"><a href="#L-1555"><span class="linenos" data-line="1555"></span></a> </span><span id="L-1556"><a href="#L-1556"><span class="linenos" data-line="1556"></span></a> <span class="n">startTime</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getSingleRawQualifier</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">startTime</span><span class="p">)</span> </span><span id="L-1557"><a href="#L-1557"><span class="linenos" data-line="1557"></span></a> <span class="kr">if</span> <span class="n">startTime</span> <span class="ow">and</span> <span class="n">startTime</span> <span class="o">~=</span> <span class="s2">""</span> <span class="ow">and</span> <span class="n">startTime</span> <span class="o">~=</span> <span class="s2">" "</span> <span class="kr">then</span> </span><span id="L-1558"><a href="#L-1558"><span class="linenos" data-line="1558"></span></a> <span class="n">startTimeY</span><span class="p">,</span> <span class="n">startTimeM</span><span class="p">,</span> <span class="n">startTimeD</span> <span class="o">=</span> <span class="n">parseDate</span><span class="p">(</span><span class="n">startTime</span><span class="p">)</span> </span><span id="L-1559"><a href="#L-1559"><span class="linenos" data-line="1559"></span></a> <span class="kr">end</span> </span><span id="L-1560"><a href="#L-1560"><span class="linenos" data-line="1560"></span></a> </span><span id="L-1561"><a href="#L-1561"><span class="linenos" data-line="1561"></span></a> <span class="n">endTime</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getSingleRawQualifier</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">endTime</span><span class="p">)</span> </span><span id="L-1562"><a href="#L-1562"><span class="linenos" data-line="1562"></span></a> <span class="kr">if</span> <span class="n">endTime</span> <span class="ow">and</span> <span class="n">endTime</span> <span class="o">~=</span> <span class="s2">""</span> <span class="ow">and</span> <span class="n">endTime</span> <span class="o">~=</span> <span class="s2">" "</span> <span class="kr">then</span> </span><span id="L-1563"><a href="#L-1563"><span class="linenos" data-line="1563"></span></a> <span class="n">endTimeY</span><span class="p">,</span> <span class="n">endTimeM</span><span class="p">,</span> <span class="n">endTimeD</span> <span class="o">=</span> <span class="n">parseDate</span><span class="p">(</span><span class="n">endTime</span><span class="p">)</span> </span><span id="L-1564"><a href="#L-1564"><span class="linenos" data-line="1564"></span></a> <span class="kr">elseif</span> <span class="n">endTime</span> <span class="o">==</span> <span class="s2">" "</span> <span class="kr">then</span> </span><span id="L-1565"><a href="#L-1565"><span class="linenos" data-line="1565"></span></a> <span class="c1">-- end time is 'unknown', assume it is somewhere in the past;</span> </span><span id="L-1566"><a href="#L-1566"><span class="linenos" data-line="1566"></span></a> <span class="c1">-- we can do this by taking the current date as a placeholder for the end time</span> </span><span id="L-1567"><a href="#L-1567"><span class="linenos" data-line="1567"></span></a> <span class="n">endTimeY</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'year'</span><span class="p">]</span> </span><span id="L-1568"><a href="#L-1568"><span class="linenos" data-line="1568"></span></a> <span class="n">endTimeM</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'month'</span><span class="p">]</span> </span><span id="L-1569"><a href="#L-1569"><span class="linenos" data-line="1569"></span></a> <span class="n">endTimeD</span> <span class="o">=</span> <span class="n">now</span><span class="p">[</span><span class="s1">'day'</span><span class="p">]</span> </span><span id="L-1570"><a href="#L-1570"><span class="linenos" data-line="1570"></span></a> <span class="kr">end</span> </span><span id="L-1571"><a href="#L-1571"><span class="linenos" data-line="1571"></span></a> </span><span id="L-1572"><a href="#L-1572"><span class="linenos" data-line="1572"></span></a> <span class="kr">if</span> <span class="n">startTimeY</span> <span class="o">~=</span> <span class="kc">nil</span> <span class="ow">and</span> <span class="n">endTimeY</span> <span class="o">~=</span> <span class="kc">nil</span> <span class="ow">and</span> <span class="n">datePrecedesDate</span><span class="p">(</span><span class="n">endTimeY</span><span class="p">,</span> <span class="n">endTimeM</span><span class="p">,</span> <span class="n">endTimeD</span><span class="p">,</span> <span class="n">startTimeY</span><span class="p">,</span> <span class="n">startTimeM</span><span class="p">,</span> <span class="n">startTimeD</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1573"><a href="#L-1573"><span class="linenos" data-line="1573"></span></a> <span class="c1">-- invalidate end time if it precedes start time</span> </span><span id="L-1574"><a href="#L-1574"><span class="linenos" data-line="1574"></span></a> <span class="n">endTimeY</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1575"><a href="#L-1575"><span class="linenos" data-line="1575"></span></a> <span class="n">endTimeM</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1576"><a href="#L-1576"><span class="linenos" data-line="1576"></span></a> <span class="n">endTimeD</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1577"><a href="#L-1577"><span class="linenos" data-line="1577"></span></a> <span class="kr">end</span> </span><span id="L-1578"><a href="#L-1578"><span class="linenos" data-line="1578"></span></a> </span><span id="L-1579"><a href="#L-1579"><span class="linenos" data-line="1579"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1580"><a href="#L-1580"><span class="linenos" data-line="1580"></span></a> <span class="c1">-- future</span> </span><span id="L-1581"><a href="#L-1581"><span class="linenos" data-line="1581"></span></a> <span class="kr">if</span> <span class="n">startTimeY</span> <span class="ow">and</span> <span class="n">datePrecedesDate</span><span class="p">(</span><span class="n">atYear</span><span class="p">,</span> <span class="n">atMonth</span><span class="p">,</span> <span class="n">atDay</span><span class="p">,</span> <span class="n">startTimeY</span><span class="p">,</span> <span class="n">startTimeM</span><span class="p">,</span> <span class="n">startTimeD</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1582"><a href="#L-1582"><span class="linenos" data-line="1582"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1583"><a href="#L-1583"><span class="linenos" data-line="1583"></span></a> <span class="kr">end</span> </span><span id="L-1584"><a href="#L-1584"><span class="linenos" data-line="1584"></span></a> <span class="kr">end</span> </span><span id="L-1585"><a href="#L-1585"><span class="linenos" data-line="1585"></span></a> </span><span id="L-1586"><a href="#L-1586"><span class="linenos" data-line="1586"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1587"><a href="#L-1587"><span class="linenos" data-line="1587"></span></a> <span class="c1">-- current</span> </span><span id="L-1588"><a href="#L-1588"><span class="linenos" data-line="1588"></span></a> <span class="kr">if</span> <span class="p">(</span><span class="n">startTimeY</span> <span class="o">==</span> <span class="kc">nil</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">datePrecedesDate</span><span class="p">(</span><span class="n">atYear</span><span class="p">,</span> <span class="n">atMonth</span><span class="p">,</span> <span class="n">atDay</span><span class="p">,</span> <span class="n">startTimeY</span><span class="p">,</span> <span class="n">startTimeM</span><span class="p">,</span> <span class="n">startTimeD</span><span class="p">))</span> <span class="ow">and</span> </span><span id="L-1589"><a href="#L-1589"><span class="linenos" data-line="1589"></span></a> <span class="p">(</span><span class="n">endTimeY</span> <span class="o">==</span> <span class="kc">nil</span> <span class="ow">or</span> <span class="n">datePrecedesDate</span><span class="p">(</span><span class="n">atYear</span><span class="p">,</span> <span class="n">atMonth</span><span class="p">,</span> <span class="n">atDay</span><span class="p">,</span> <span class="n">endTimeY</span><span class="p">,</span> <span class="n">endTimeM</span><span class="p">,</span> <span class="n">endTimeD</span><span class="p">))</span> <span class="kr">then</span> </span><span id="L-1590"><a href="#L-1590"><span class="linenos" data-line="1590"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1591"><a href="#L-1591"><span class="linenos" data-line="1591"></span></a> <span class="kr">end</span> </span><span id="L-1592"><a href="#L-1592"><span class="linenos" data-line="1592"></span></a> <span class="kr">end</span> </span><span id="L-1593"><a href="#L-1593"><span class="linenos" data-line="1593"></span></a> </span><span id="L-1594"><a href="#L-1594"><span class="linenos" data-line="1594"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">periods</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1595"><a href="#L-1595"><span class="linenos" data-line="1595"></span></a> <span class="c1">-- former</span> </span><span id="L-1596"><a href="#L-1596"><span class="linenos" data-line="1596"></span></a> <span class="kr">if</span> <span class="n">endTimeY</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">datePrecedesDate</span><span class="p">(</span><span class="n">atYear</span><span class="p">,</span> <span class="n">atMonth</span><span class="p">,</span> <span class="n">atDay</span><span class="p">,</span> <span class="n">endTimeY</span><span class="p">,</span> <span class="n">endTimeM</span><span class="p">,</span> <span class="n">endTimeD</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1597"><a href="#L-1597"><span class="linenos" data-line="1597"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1598"><a href="#L-1598"><span class="linenos" data-line="1598"></span></a> <span class="kr">end</span> </span><span id="L-1599"><a href="#L-1599"><span class="linenos" data-line="1599"></span></a> <span class="kr">end</span> </span><span id="L-1600"><a href="#L-1600"><span class="linenos" data-line="1600"></span></a> </span><span id="L-1601"><a href="#L-1601"><span class="linenos" data-line="1601"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1602"><a href="#L-1602"><span class="linenos" data-line="1602"></span></a><span class="kr">end</span> </span><span id="L-1603"><a href="#L-1603"><span class="linenos" data-line="1603"></span></a> </span><span id="L-1604"><a href="#L-1604"><span class="linenos" data-line="1604"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">processFlag</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span> </span><span id="L-1605"><a href="#L-1605"><span class="linenos" data-line="1605"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">flag</span> <span class="kr">then</span> </span><span id="L-1606"><a href="#L-1606"><span class="linenos" data-line="1606"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1607"><a href="#L-1607"><span class="linenos" data-line="1607"></span></a> <span class="kr">end</span> </span><span id="L-1608"><a href="#L-1608"><span class="linenos" data-line="1608"></span></a> </span><span id="L-1609"><a href="#L-1609"><span class="linenos" data-line="1609"></span></a> <span class="kr">if</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">lat_only</span> <span class="kr">then</span> </span><span id="L-1610"><a href="#L-1610"><span class="linenos" data-line="1610"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">lat_only</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1611"><a href="#L-1611"><span class="linenos" data-line="1611"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1612"><a href="#L-1612"><span class="linenos" data-line="1612"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">lon_only</span> <span class="kr">then</span> </span><span id="L-1613"><a href="#L-1613"><span class="linenos" data-line="1613"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">lon_only</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1614"><a href="#L-1614"><span class="linenos" data-line="1614"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1615"><a href="#L-1615"><span class="linenos" data-line="1615"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">linked</span> <span class="kr">then</span> </span><span id="L-1616"><a href="#L-1616"><span class="linenos" data-line="1616"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">linked</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1617"><a href="#L-1617"><span class="linenos" data-line="1617"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1618"><a href="#L-1618"><span class="linenos" data-line="1618"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">raw</span> <span class="kr">then</span> </span><span id="L-1619"><a href="#L-1619"><span class="linenos" data-line="1619"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">rawValue</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1620"><a href="#L-1620"><span class="linenos" data-line="1620"></span></a> </span><span id="L-1621"><a href="#L-1621"><span class="linenos" data-line="1621"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">curState</span> <span class="o">==</span> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1622"><a href="#L-1622"><span class="linenos" data-line="1622"></span></a> <span class="c1">-- raw reference values end with periods and require a separator (other than none)</span> </span><span id="L-1623"><a href="#L-1623"><span class="linenos" data-line="1623"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep%r"</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">" "</span><span class="p">}</span> </span><span id="L-1624"><a href="#L-1624"><span class="linenos" data-line="1624"></span></a> <span class="kr">end</span> </span><span id="L-1625"><a href="#L-1625"><span class="linenos" data-line="1625"></span></a> </span><span id="L-1626"><a href="#L-1626"><span class="linenos" data-line="1626"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1627"><a href="#L-1627"><span class="linenos" data-line="1627"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">short</span> <span class="kr">then</span> </span><span id="L-1628"><a href="#L-1628"><span class="linenos" data-line="1628"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">shortName</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1629"><a href="#L-1629"><span class="linenos" data-line="1629"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1630"><a href="#L-1630"><span class="linenos" data-line="1630"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">multilanguage</span> <span class="kr">then</span> </span><span id="L-1631"><a href="#L-1631"><span class="linenos" data-line="1631"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">anyLanguage</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1632"><a href="#L-1632"><span class="linenos" data-line="1632"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1633"><a href="#L-1633"><span class="linenos" data-line="1633"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">unit</span> <span class="kr">then</span> </span><span id="L-1634"><a href="#L-1634"><span class="linenos" data-line="1634"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">unitOnly</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1635"><a href="#L-1635"><span class="linenos" data-line="1635"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1636"><a href="#L-1636"><span class="linenos" data-line="1636"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">mdy</span> <span class="kr">then</span> </span><span id="L-1637"><a href="#L-1637"><span class="linenos" data-line="1637"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">mdyDate</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1638"><a href="#L-1638"><span class="linenos" data-line="1638"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1639"><a href="#L-1639"><span class="linenos" data-line="1639"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">single</span> <span class="kr">then</span> </span><span id="L-1640"><a href="#L-1640"><span class="linenos" data-line="1640"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">singleClaim</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1641"><a href="#L-1641"><span class="linenos" data-line="1641"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1642"><a href="#L-1642"><span class="linenos" data-line="1642"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">sourced</span> <span class="kr">then</span> </span><span id="L-1643"><a href="#L-1643"><span class="linenos" data-line="1643"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">sourcedOnly</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1644"><a href="#L-1644"><span class="linenos" data-line="1644"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1645"><a href="#L-1645"><span class="linenos" data-line="1645"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">edit</span> <span class="kr">then</span> </span><span id="L-1646"><a href="#L-1646"><span class="linenos" data-line="1646"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">editable</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1647"><a href="#L-1647"><span class="linenos" data-line="1647"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1648"><a href="#L-1648"><span class="linenos" data-line="1648"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">editAtEnd</span> <span class="kr">then</span> </span><span id="L-1649"><a href="#L-1649"><span class="linenos" data-line="1649"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">editable</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1650"><a href="#L-1650"><span class="linenos" data-line="1650"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">editAtEnd</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1651"><a href="#L-1651"><span class="linenos" data-line="1651"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1652"><a href="#L-1652"><span class="linenos" data-line="1652"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">best</span> <span class="ow">or</span> <span class="n">flag</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'^'</span><span class="o">..</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">preferred</span><span class="o">..</span><span class="s1">'[+-]?$'</span><span class="p">)</span> <span class="ow">or</span> <span class="n">flag</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'^'</span><span class="o">..</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">normal</span><span class="o">..</span><span class="s1">'[+-]?$'</span><span class="p">)</span> <span class="ow">or</span> <span class="n">flag</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'^'</span><span class="o">..</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">deprecated</span><span class="o">..</span><span class="s1">'[+-]?$'</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-1653"><a href="#L-1653"><span class="linenos" data-line="1653"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">setRank</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span> </span><span id="L-1654"><a href="#L-1654"><span class="linenos" data-line="1654"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1655"><a href="#L-1655"><span class="linenos" data-line="1655"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">future</span> <span class="ow">or</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">current</span> <span class="ow">or</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">former</span> <span class="kr">then</span> </span><span id="L-1656"><a href="#L-1656"><span class="linenos" data-line="1656"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">setPeriod</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span> </span><span id="L-1657"><a href="#L-1657"><span class="linenos" data-line="1657"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1658"><a href="#L-1658"><span class="linenos" data-line="1658"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-1659"><a href="#L-1659"><span class="linenos" data-line="1659"></span></a> <span class="c1">-- ignore empty flags and carry on</span> </span><span id="L-1660"><a href="#L-1660"><span class="linenos" data-line="1660"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1661"><a href="#L-1661"><span class="linenos" data-line="1661"></span></a> <span class="kr">else</span> </span><span id="L-1662"><a href="#L-1662"><span class="linenos" data-line="1662"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1663"><a href="#L-1663"><span class="linenos" data-line="1663"></span></a> <span class="kr">end</span> </span><span id="L-1664"><a href="#L-1664"><span class="linenos" data-line="1664"></span></a><span class="kr">end</span> </span><span id="L-1665"><a href="#L-1665"><span class="linenos" data-line="1665"></span></a> </span><span id="L-1666"><a href="#L-1666"><span class="linenos" data-line="1666"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">processFlagOrCommand</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span> </span><span id="L-1667"><a href="#L-1667"><span class="linenos" data-line="1667"></span></a> <span class="kd">local</span> <span class="n">param</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-1668"><a href="#L-1668"><span class="linenos" data-line="1668"></span></a> </span><span id="L-1669"><a href="#L-1669"><span class="linenos" data-line="1669"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">flag</span> <span class="kr">then</span> </span><span id="L-1670"><a href="#L-1670"><span class="linenos" data-line="1670"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1671"><a href="#L-1671"><span class="linenos" data-line="1671"></span></a> <span class="kr">end</span> </span><span id="L-1672"><a href="#L-1672"><span class="linenos" data-line="1672"></span></a> </span><span id="L-1673"><a href="#L-1673"><span class="linenos" data-line="1673"></span></a> <span class="kr">if</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">property</span> <span class="ow">or</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">properties</span> <span class="kr">then</span> </span><span id="L-1674"><a href="#L-1674"><span class="linenos" data-line="1674"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="n">parameters</span><span class="p">.</span><span class="n">property</span> </span><span id="L-1675"><a href="#L-1675"><span class="linenos" data-line="1675"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">qualifier</span> <span class="ow">or</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">qualifiers</span> <span class="kr">then</span> </span><span id="L-1676"><a href="#L-1676"><span class="linenos" data-line="1676"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-1677"><a href="#L-1677"><span class="linenos" data-line="1677"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> </span><span id="L-1678"><a href="#L-1678"><span class="linenos" data-line="1678"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">param</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">copyTable</span><span class="p">(</span><span class="n">defaultSeparators</span><span class="p">[</span><span class="s2">"sep%q</span><span class="se">\\</span><span class="s2">d"</span><span class="p">])}</span> </span><span id="L-1679"><a href="#L-1679"><span class="linenos" data-line="1679"></span></a> <span class="kr">elseif</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">reference</span> <span class="ow">or</span> <span class="n">flag</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">references</span> <span class="kr">then</span> </span><span id="L-1680"><a href="#L-1680"><span class="linenos" data-line="1680"></span></a> <span class="n">param</span> <span class="o">=</span> <span class="n">parameters</span><span class="p">.</span><span class="n">reference</span> </span><span id="L-1681"><a href="#L-1681"><span class="linenos" data-line="1681"></span></a> <span class="kr">else</span> </span><span id="L-1682"><a href="#L-1682"><span class="linenos" data-line="1682"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">:</span><span class="n">processFlag</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span> </span><span id="L-1683"><a href="#L-1683"><span class="linenos" data-line="1683"></span></a> <span class="kr">end</span> </span><span id="L-1684"><a href="#L-1684"><span class="linenos" data-line="1684"></span></a> </span><span id="L-1685"><a href="#L-1685"><span class="linenos" data-line="1685"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1686"><a href="#L-1686"><span class="linenos" data-line="1686"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-1687"><a href="#L-1687"><span class="linenos" data-line="1687"></span></a> <span class="kr">end</span> </span><span id="L-1688"><a href="#L-1688"><span class="linenos" data-line="1688"></span></a> </span><span id="L-1689"><a href="#L-1689"><span class="linenos" data-line="1689"></span></a> <span class="c1">-- create a new state for each command</span> </span><span id="L-1690"><a href="#L-1690"><span class="linenos" data-line="1690"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="o">=</span> <span class="n">State</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">self</span><span class="p">)</span> </span><span id="L-1691"><a href="#L-1691"><span class="linenos" data-line="1691"></span></a> </span><span id="L-1692"><a href="#L-1692"><span class="linenos" data-line="1692"></span></a> <span class="c1">-- use "%x" as the general parameter name</span> </span><span id="L-1693"><a href="#L-1693"><span class="linenos" data-line="1693"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">].</span><span class="n">parsedFormat</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">parameters</span><span class="p">.</span><span class="n">general</span><span class="p">)</span> <span class="c1">-- will be overwritten for param=="%p"</span> </span><span id="L-1694"><a href="#L-1694"><span class="linenos" data-line="1694"></span></a> </span><span id="L-1695"><a href="#L-1695"><span class="linenos" data-line="1695"></span></a> <span class="c1">-- set the separator</span> </span><span id="L-1696"><a href="#L-1696"><span class="linenos" data-line="1696"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">].</span><span class="n">separator</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">param</span><span class="p">]</span> <span class="c1">-- will be nil for param=="%p", which will be set separately</span> </span><span id="L-1697"><a href="#L-1697"><span class="linenos" data-line="1697"></span></a> </span><span id="L-1698"><a href="#L-1698"><span class="linenos" data-line="1698"></span></a> <span class="kr">if</span> <span class="n">flag</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">~=</span> <span class="s1">'s'</span> <span class="kr">then</span> </span><span id="L-1699"><a href="#L-1699"><span class="linenos" data-line="1699"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">].</span><span class="n">singleValue</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1700"><a href="#L-1700"><span class="linenos" data-line="1700"></span></a> <span class="kr">end</span> </span><span id="L-1701"><a href="#L-1701"><span class="linenos" data-line="1701"></span></a> </span><span id="L-1702"><a href="#L-1702"><span class="linenos" data-line="1702"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">curState</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> </span><span id="L-1703"><a href="#L-1703"><span class="linenos" data-line="1703"></span></a> </span><span id="L-1704"><a href="#L-1704"><span class="linenos" data-line="1704"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-1705"><a href="#L-1705"><span class="linenos" data-line="1705"></span></a><span class="kr">end</span> </span><span id="L-1706"><a href="#L-1706"><span class="linenos" data-line="1706"></span></a> </span><span id="L-1707"><a href="#L-1707"><span class="linenos" data-line="1707"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">processSeparators</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-1708"><a href="#L-1708"><span class="linenos" data-line="1708"></span></a> <span class="kd">local</span> <span class="n">sep</span> </span><span id="L-1709"><a href="#L-1709"><span class="linenos" data-line="1709"></span></a> </span><span id="L-1710"><a href="#L-1710"><span class="linenos" data-line="1710"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1711"><a href="#L-1711"><span class="linenos" data-line="1711"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1712"><a href="#L-1712"><span class="linenos" data-line="1712"></span></a> <span class="n">sep</span> <span class="o">=</span> <span class="n">replaceSpecialChars</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> </span><span id="L-1713"><a href="#L-1713"><span class="linenos" data-line="1713"></span></a> </span><span id="L-1714"><a href="#L-1714"><span class="linenos" data-line="1714"></span></a> <span class="kr">if</span> <span class="n">sep</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-1715"><a href="#L-1715"><span class="linenos" data-line="1715"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">sep</span><span class="p">}</span> </span><span id="L-1716"><a href="#L-1716"><span class="linenos" data-line="1716"></span></a> <span class="kr">else</span> </span><span id="L-1717"><a href="#L-1717"><span class="linenos" data-line="1717"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1718"><a href="#L-1718"><span class="linenos" data-line="1718"></span></a> <span class="kr">end</span> </span><span id="L-1719"><a href="#L-1719"><span class="linenos" data-line="1719"></span></a> <span class="kr">end</span> </span><span id="L-1720"><a href="#L-1720"><span class="linenos" data-line="1720"></span></a> <span class="kr">end</span> </span><span id="L-1721"><a href="#L-1721"><span class="linenos" data-line="1721"></span></a><span class="kr">end</span> </span><span id="L-1722"><a href="#L-1722"><span class="linenos" data-line="1722"></span></a> </span><span id="L-1723"><a href="#L-1723"><span class="linenos" data-line="1723"></span></a><span class="kr">function</span> <span class="nc">Config</span><span class="p">:</span><span class="nf">setFormatAndSeparators</span><span class="p">(</span><span class="n">state</span><span class="p">,</span> <span class="n">parsedFormat</span><span class="p">)</span> </span><span id="L-1724"><a href="#L-1724"><span class="linenos" data-line="1724"></span></a> <span class="n">state</span><span class="p">.</span><span class="n">parsedFormat</span> <span class="o">=</span> <span class="n">parsedFormat</span> </span><span id="L-1725"><a href="#L-1725"><span class="linenos" data-line="1725"></span></a> <span class="n">state</span><span class="p">.</span><span class="n">separator</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="p">]</span> </span><span id="L-1726"><a href="#L-1726"><span class="linenos" data-line="1726"></span></a> <span class="n">state</span><span class="p">.</span><span class="n">movSeparator</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">]</span> </span><span id="L-1727"><a href="#L-1727"><span class="linenos" data-line="1727"></span></a> <span class="n">state</span><span class="p">.</span><span class="n">puncMark</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"punc"</span><span class="p">]</span> </span><span id="L-1728"><a href="#L-1728"><span class="linenos" data-line="1728"></span></a><span class="kr">end</span> </span><span id="L-1729"><a href="#L-1729"><span class="linenos" data-line="1729"></span></a> </span><span id="L-1730"><a href="#L-1730"><span class="linenos" data-line="1730"></span></a><span class="c1">-- determines if a claim has references by prefetching them from the claim using getReferences,</span> </span><span id="L-1731"><a href="#L-1731"><span class="linenos" data-line="1731"></span></a><span class="c1">-- which applies some filtering that determines if a reference is actually returned,</span> </span><span id="L-1732"><a href="#L-1732"><span class="linenos" data-line="1732"></span></a><span class="c1">-- and caches the references for later use</span> </span><span id="L-1733"><a href="#L-1733"><span class="linenos" data-line="1733"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">isSourced</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1734"><a href="#L-1734"><span class="linenos" data-line="1734"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">prefetchedRefs</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getReferences</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1735"><a href="#L-1735"><span class="linenos" data-line="1735"></span></a> <span class="kr">return</span> <span class="p">(</span><span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">prefetchedRefs</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> </span><span id="L-1736"><a href="#L-1736"><span class="linenos" data-line="1736"></span></a><span class="kr">end</span> </span><span id="L-1737"><a href="#L-1737"><span class="linenos" data-line="1737"></span></a> </span><span id="L-1738"><a href="#L-1738"><span class="linenos" data-line="1738"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">resetCaches</span><span class="p">()</span> </span><span id="L-1739"><a href="#L-1739"><span class="linenos" data-line="1739"></span></a> <span class="c1">-- any prefetched references of the previous claim must not be used</span> </span><span id="L-1740"><a href="#L-1740"><span class="linenos" data-line="1740"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">prefetchedRefs</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1741"><a href="#L-1741"><span class="linenos" data-line="1741"></span></a><span class="kr">end</span> </span><span id="L-1742"><a href="#L-1742"><span class="linenos" data-line="1742"></span></a> </span><span id="L-1743"><a href="#L-1743"><span class="linenos" data-line="1743"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">claimMatches</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1744"><a href="#L-1744"><span class="linenos" data-line="1744"></span></a> <span class="kd">local</span> <span class="n">matches</span><span class="p">,</span> <span class="n">rankPos</span> </span><span id="L-1745"><a href="#L-1745"><span class="linenos" data-line="1745"></span></a> </span><span id="L-1746"><a href="#L-1746"><span class="linenos" data-line="1746"></span></a> <span class="c1">-- first of all, reset any cached values used for the previous claim</span> </span><span id="L-1747"><a href="#L-1747"><span class="linenos" data-line="1747"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">resetCaches</span><span class="p">()</span> </span><span id="L-1748"><a href="#L-1748"><span class="linenos" data-line="1748"></span></a> </span><span id="L-1749"><a href="#L-1749"><span class="linenos" data-line="1749"></span></a> <span class="c1">-- if a property value was given, check if it matches the claim's property value</span> </span><span id="L-1750"><a href="#L-1750"><span class="linenos" data-line="1750"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">propertyValue</span> <span class="kr">then</span> </span><span id="L-1751"><a href="#L-1751"><span class="linenos" data-line="1751"></span></a> <span class="n">matches</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">snakEqualsValue</span><span class="p">(</span><span class="n">claim</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">propertyValue</span><span class="p">)</span> </span><span id="L-1752"><a href="#L-1752"><span class="linenos" data-line="1752"></span></a> <span class="kr">else</span> </span><span id="L-1753"><a href="#L-1753"><span class="linenos" data-line="1753"></span></a> <span class="n">matches</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-1754"><a href="#L-1754"><span class="linenos" data-line="1754"></span></a> <span class="kr">end</span> </span><span id="L-1755"><a href="#L-1755"><span class="linenos" data-line="1755"></span></a> </span><span id="L-1756"><a href="#L-1756"><span class="linenos" data-line="1756"></span></a> <span class="c1">-- if any qualifier values were given, check if each matches one of the claim's qualifier values</span> </span><span id="L-1757"><a href="#L-1757"><span class="linenos" data-line="1757"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">qualifierIDsAndValues</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1758"><a href="#L-1758"><span class="linenos" data-line="1758"></span></a> <span class="n">matches</span> <span class="o">=</span> <span class="p">(</span><span class="n">matches</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">qualifierMatches</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span><span class="p">))</span> </span><span id="L-1759"><a href="#L-1759"><span class="linenos" data-line="1759"></span></a> <span class="kr">end</span> </span><span id="L-1760"><a href="#L-1760"><span class="linenos" data-line="1760"></span></a> </span><span id="L-1761"><a href="#L-1761"><span class="linenos" data-line="1761"></span></a> <span class="c1">-- check if the claim's rank and time period match</span> </span><span id="L-1762"><a href="#L-1762"><span class="linenos" data-line="1762"></span></a> <span class="n">rankPos</span> <span class="o">=</span> <span class="n">rankTable</span><span class="p">[</span><span class="n">claim</span><span class="p">.</span><span class="n">rank</span><span class="p">]</span> <span class="ow">or</span> <span class="mi">4</span> </span><span id="L-1763"><a href="#L-1763"><span class="linenos" data-line="1763"></span></a> <span class="n">matches</span> <span class="o">=</span> <span class="p">(</span><span class="n">matches</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">rankMatches</span><span class="p">(</span><span class="n">rankPos</span><span class="p">)</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">timeMatches</span><span class="p">(</span><span class="n">claim</span><span class="p">))</span> </span><span id="L-1764"><a href="#L-1764"><span class="linenos" data-line="1764"></span></a> </span><span id="L-1765"><a href="#L-1765"><span class="linenos" data-line="1765"></span></a> <span class="c1">-- if only claims with references must be returned, check if this one has any</span> </span><span id="L-1766"><a href="#L-1766"><span class="linenos" data-line="1766"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">sourcedOnly</span> <span class="kr">then</span> </span><span id="L-1767"><a href="#L-1767"><span class="linenos" data-line="1767"></span></a> <span class="n">matches</span> <span class="o">=</span> <span class="p">(</span><span class="n">matches</span> <span class="ow">and</span> <span class="n">self</span><span class="p">:</span><span class="n">isSourced</span><span class="p">(</span><span class="n">claim</span><span class="p">))</span> <span class="c1">-- prefetches and caches references</span> </span><span id="L-1768"><a href="#L-1768"><span class="linenos" data-line="1768"></span></a> <span class="kr">end</span> </span><span id="L-1769"><a href="#L-1769"><span class="linenos" data-line="1769"></span></a> </span><span id="L-1770"><a href="#L-1770"><span class="linenos" data-line="1770"></span></a> <span class="kr">return</span> <span class="n">matches</span><span class="p">,</span> <span class="n">rankPos</span> </span><span id="L-1771"><a href="#L-1771"><span class="linenos" data-line="1771"></span></a><span class="kr">end</span> </span><span id="L-1772"><a href="#L-1772"><span class="linenos" data-line="1772"></span></a> </span><span id="L-1773"><a href="#L-1773"><span class="linenos" data-line="1773"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">out</span><span class="p">()</span> </span><span id="L-1774"><a href="#L-1774"><span class="linenos" data-line="1774"></span></a> <span class="kd">local</span> <span class="n">result</span> <span class="c1">-- collection of arrays with value objects</span> </span><span id="L-1775"><a href="#L-1775"><span class="linenos" data-line="1775"></span></a> <span class="kd">local</span> <span class="n">valuesArray</span> <span class="c1">-- array with value objects</span> </span><span id="L-1776"><a href="#L-1776"><span class="linenos" data-line="1776"></span></a> <span class="kd">local</span> <span class="n">sep</span> <span class="o">=</span> <span class="kc">nil</span> <span class="c1">-- value object</span> </span><span id="L-1777"><a href="#L-1777"><span class="linenos" data-line="1777"></span></a> <span class="kd">local</span> <span class="n">out</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- array with value objects</span> </span><span id="L-1778"><a href="#L-1778"><span class="linenos" data-line="1778"></span></a> </span><span id="L-1779"><a href="#L-1779"><span class="linenos" data-line="1779"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">walk</span><span class="p">(</span><span class="n">formatTable</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> </span><span id="L-1780"><a href="#L-1780"><span class="linenos" data-line="1780"></span></a> <span class="kd">local</span> <span class="n">valuesArray</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- array with value objects</span> </span><span id="L-1781"><a href="#L-1781"><span class="linenos" data-line="1781"></span></a> </span><span id="L-1782"><a href="#L-1782"><span class="linenos" data-line="1782"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">formatTable</span><span class="p">.</span><span class="n">req</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1783"><a href="#L-1783"><span class="linenos" data-line="1783"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1784"><a href="#L-1784"><span class="linenos" data-line="1784"></span></a> <span class="c1">-- we've got no result for a parameter that is required on this level,</span> </span><span id="L-1785"><a href="#L-1785"><span class="linenos" data-line="1785"></span></a> <span class="c1">-- so skip this level (and its children) by returning an empty result</span> </span><span id="L-1786"><a href="#L-1786"><span class="linenos" data-line="1786"></span></a> <span class="kr">return</span> <span class="p">{}</span> </span><span id="L-1787"><a href="#L-1787"><span class="linenos" data-line="1787"></span></a> <span class="kr">end</span> </span><span id="L-1788"><a href="#L-1788"><span class="linenos" data-line="1788"></span></a> <span class="kr">end</span> </span><span id="L-1789"><a href="#L-1789"><span class="linenos" data-line="1789"></span></a> </span><span id="L-1790"><a href="#L-1790"><span class="linenos" data-line="1790"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">formatTable</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1791"><a href="#L-1791"><span class="linenos" data-line="1791"></span></a> <span class="kr">if</span> <span class="n">v</span><span class="p">.</span><span class="n">param</span> <span class="kr">then</span> </span><span id="L-1792"><a href="#L-1792"><span class="linenos" data-line="1792"></span></a> <span class="n">valuesArray</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">valuesArray</span><span class="p">,</span> <span class="n">result</span><span class="p">[</span><span class="n">v</span><span class="p">.</span><span class="n">str</span><span class="p">])</span> </span><span id="L-1793"><a href="#L-1793"><span class="linenos" data-line="1793"></span></a> <span class="kr">elseif</span> <span class="n">v</span><span class="p">.</span><span class="n">str</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-1794"><a href="#L-1794"><span class="linenos" data-line="1794"></span></a> <span class="n">valuesArray</span><span class="p">[</span><span class="o">#</span><span class="n">valuesArray</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">.</span><span class="n">str</span><span class="p">}</span> </span><span id="L-1795"><a href="#L-1795"><span class="linenos" data-line="1795"></span></a> <span class="kr">end</span> </span><span id="L-1796"><a href="#L-1796"><span class="linenos" data-line="1796"></span></a> </span><span id="L-1797"><a href="#L-1797"><span class="linenos" data-line="1797"></span></a> <span class="kr">if</span> <span class="n">v</span><span class="p">.</span><span class="n">child</span> <span class="kr">then</span> </span><span id="L-1798"><a href="#L-1798"><span class="linenos" data-line="1798"></span></a> <span class="n">valuesArray</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">valuesArray</span><span class="p">,</span> <span class="n">walk</span><span class="p">(</span><span class="n">v</span><span class="p">.</span><span class="n">child</span><span class="p">,</span> <span class="n">result</span><span class="p">))</span> </span><span id="L-1799"><a href="#L-1799"><span class="linenos" data-line="1799"></span></a> <span class="kr">end</span> </span><span id="L-1800"><a href="#L-1800"><span class="linenos" data-line="1800"></span></a> <span class="kr">end</span> </span><span id="L-1801"><a href="#L-1801"><span class="linenos" data-line="1801"></span></a> </span><span id="L-1802"><a href="#L-1802"><span class="linenos" data-line="1802"></span></a> <span class="kr">return</span> <span class="n">valuesArray</span> </span><span id="L-1803"><a href="#L-1803"><span class="linenos" data-line="1803"></span></a> <span class="kr">end</span> </span><span id="L-1804"><a href="#L-1804"><span class="linenos" data-line="1804"></span></a> </span><span id="L-1805"><a href="#L-1805"><span class="linenos" data-line="1805"></span></a> <span class="c1">-- iterate through the results from back to front, so that we know when to add separators</span> </span><span id="L-1806"><a href="#L-1806"><span class="linenos" data-line="1806"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">results</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span> <span class="kr">do</span> </span><span id="L-1807"><a href="#L-1807"><span class="linenos" data-line="1807"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">results</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> </span><span id="L-1808"><a href="#L-1808"><span class="linenos" data-line="1808"></span></a> </span><span id="L-1809"><a href="#L-1809"><span class="linenos" data-line="1809"></span></a> <span class="c1">-- if there is already some output, then add the separators</span> </span><span id="L-1810"><a href="#L-1810"><span class="linenos" data-line="1810"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">out</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1811"><a href="#L-1811"><span class="linenos" data-line="1811"></span></a> <span class="n">sep</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">separator</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1">-- fixed separator</span> </span><span id="L-1812"><a href="#L-1812"><span class="linenos" data-line="1812"></span></a> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">self</span><span class="p">.</span><span class="n">movSeparator</span><span class="p">[</span><span class="mi">1</span><span class="p">]}</span> <span class="c1">-- movable separator</span> </span><span id="L-1813"><a href="#L-1813"><span class="linenos" data-line="1813"></span></a> <span class="kr">else</span> </span><span id="L-1814"><a href="#L-1814"><span class="linenos" data-line="1814"></span></a> <span class="n">sep</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1815"><a href="#L-1815"><span class="linenos" data-line="1815"></span></a> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="n">self</span><span class="p">.</span><span class="n">puncMark</span><span class="p">[</span><span class="mi">1</span><span class="p">]}</span> <span class="c1">-- optional punctuation mark</span> </span><span id="L-1816"><a href="#L-1816"><span class="linenos" data-line="1816"></span></a> <span class="kr">end</span> </span><span id="L-1817"><a href="#L-1817"><span class="linenos" data-line="1817"></span></a> </span><span id="L-1818"><a href="#L-1818"><span class="linenos" data-line="1818"></span></a> <span class="n">valuesArray</span> <span class="o">=</span> <span class="n">walk</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">parsedFormat</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> </span><span id="L-1819"><a href="#L-1819"><span class="linenos" data-line="1819"></span></a> </span><span id="L-1820"><a href="#L-1820"><span class="linenos" data-line="1820"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">valuesArray</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1821"><a href="#L-1821"><span class="linenos" data-line="1821"></span></a> <span class="kr">if</span> <span class="n">sep</span> <span class="kr">then</span> </span><span id="L-1822"><a href="#L-1822"><span class="linenos" data-line="1822"></span></a> <span class="n">valuesArray</span><span class="p">[</span><span class="o">#</span><span class="n">valuesArray</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">sep</span> </span><span id="L-1823"><a href="#L-1823"><span class="linenos" data-line="1823"></span></a> <span class="kr">end</span> </span><span id="L-1824"><a href="#L-1824"><span class="linenos" data-line="1824"></span></a> </span><span id="L-1825"><a href="#L-1825"><span class="linenos" data-line="1825"></span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">valuesArray</span><span class="p">,</span> <span class="n">out</span><span class="p">)</span> </span><span id="L-1826"><a href="#L-1826"><span class="linenos" data-line="1826"></span></a> <span class="kr">end</span> </span><span id="L-1827"><a href="#L-1827"><span class="linenos" data-line="1827"></span></a> <span class="kr">end</span> </span><span id="L-1828"><a href="#L-1828"><span class="linenos" data-line="1828"></span></a> </span><span id="L-1829"><a href="#L-1829"><span class="linenos" data-line="1829"></span></a> <span class="c1">-- reset state before next iteration</span> </span><span id="L-1830"><a href="#L-1830"><span class="linenos" data-line="1830"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">results</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1831"><a href="#L-1831"><span class="linenos" data-line="1831"></span></a> </span><span id="L-1832"><a href="#L-1832"><span class="linenos" data-line="1832"></span></a> <span class="kr">return</span> <span class="n">out</span> </span><span id="L-1833"><a href="#L-1833"><span class="linenos" data-line="1833"></span></a><span class="kr">end</span> </span><span id="L-1834"><a href="#L-1834"><span class="linenos" data-line="1834"></span></a> </span><span id="L-1835"><a href="#L-1835"><span class="linenos" data-line="1835"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-1836"><a href="#L-1836"><span class="linenos" data-line="1836"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getProperty</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1837"><a href="#L-1837"><span class="linenos" data-line="1837"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="p">{</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">claim</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">rawValue</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">linked</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">lat_only</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">lon_only</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">shortName</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">anyLanguage</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">unitOnly</span><span class="p">)}</span> <span class="c1">-- create one value object</span> </span><span id="L-1838"><a href="#L-1838"><span class="linenos" data-line="1838"></span></a> </span><span id="L-1839"><a href="#L-1839"><span class="linenos" data-line="1839"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">value</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1840"><a href="#L-1840"><span class="linenos" data-line="1840"></span></a> <span class="kr">return</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- wrap the value object in an array and return it</span> </span><span id="L-1841"><a href="#L-1841"><span class="linenos" data-line="1841"></span></a> <span class="kr">else</span> </span><span id="L-1842"><a href="#L-1842"><span class="linenos" data-line="1842"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array if there was no value</span> </span><span id="L-1843"><a href="#L-1843"><span class="linenos" data-line="1843"></span></a> <span class="kr">end</span> </span><span id="L-1844"><a href="#L-1844"><span class="linenos" data-line="1844"></span></a><span class="kr">end</span> </span><span id="L-1845"><a href="#L-1845"><span class="linenos" data-line="1845"></span></a> </span><span id="L-1846"><a href="#L-1846"><span class="linenos" data-line="1846"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-1847"><a href="#L-1847"><span class="linenos" data-line="1847"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span> </span><span id="L-1848"><a href="#L-1848"><span class="linenos" data-line="1848"></span></a> <span class="kd">local</span> <span class="n">qualifiers</span> </span><span id="L-1849"><a href="#L-1849"><span class="linenos" data-line="1849"></span></a> </span><span id="L-1850"><a href="#L-1850"><span class="linenos" data-line="1850"></span></a> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="kr">then</span> <span class="n">qualifiers</span> <span class="o">=</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">qualifierIDs</span><span class="p">[</span><span class="n">param</span><span class="p">]]</span> <span class="kr">end</span> </span><span id="L-1851"><a href="#L-1851"><span class="linenos" data-line="1851"></span></a> <span class="kr">if</span> <span class="n">qualifiers</span> <span class="kr">then</span> </span><span id="L-1852"><a href="#L-1852"><span class="linenos" data-line="1852"></span></a> <span class="c1">-- iterate through claim's qualifier statements to collect their values;</span> </span><span id="L-1853"><a href="#L-1853"><span class="linenos" data-line="1853"></span></a> <span class="c1">-- return array with multiple value objects</span> </span><span id="L-1854"><a href="#L-1854"><span class="linenos" data-line="1854"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">param</span><span class="p">]:</span><span class="n">iterate</span><span class="p">(</span><span class="n">qualifiers</span><span class="p">,</span> <span class="p">{[</span><span class="n">parameters</span><span class="p">.</span><span class="n">general</span><span class="p">]</span> <span class="o">=</span> <span class="n">hookNames</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="s2">"</span><span class="se">\\</span><span class="s2">d"</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">1</span><span class="p">})</span> <span class="c1">-- pass qualifier state with level 2 hook</span> </span><span id="L-1855"><a href="#L-1855"><span class="linenos" data-line="1855"></span></a> <span class="kr">else</span> </span><span id="L-1856"><a href="#L-1856"><span class="linenos" data-line="1856"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array</span> </span><span id="L-1857"><a href="#L-1857"><span class="linenos" data-line="1857"></span></a> <span class="kr">end</span> </span><span id="L-1858"><a href="#L-1858"><span class="linenos" data-line="1858"></span></a><span class="kr">end</span> </span><span id="L-1859"><a href="#L-1859"><span class="linenos" data-line="1859"></span></a> </span><span id="L-1860"><a href="#L-1860"><span class="linenos" data-line="1860"></span></a><span class="c1">-- level 2 hook</span> </span><span id="L-1861"><a href="#L-1861"><span class="linenos" data-line="1861"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getQualifier</span><span class="p">(</span><span class="n">snak</span><span class="p">)</span> </span><span id="L-1862"><a href="#L-1862"><span class="linenos" data-line="1862"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="p">{</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">snak</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">rawValue</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">linked</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">lat_only</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">lon_only</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">shortName</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">anyLanguage</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">unitOnly</span><span class="p">)}</span> <span class="c1">-- create one value object</span> </span><span id="L-1863"><a href="#L-1863"><span class="linenos" data-line="1863"></span></a> </span><span id="L-1864"><a href="#L-1864"><span class="linenos" data-line="1864"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">value</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-1865"><a href="#L-1865"><span class="linenos" data-line="1865"></span></a> <span class="kr">return</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- wrap the value object in an array and return it</span> </span><span id="L-1866"><a href="#L-1866"><span class="linenos" data-line="1866"></span></a> <span class="kr">else</span> </span><span id="L-1867"><a href="#L-1867"><span class="linenos" data-line="1867"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array if there was no value</span> </span><span id="L-1868"><a href="#L-1868"><span class="linenos" data-line="1868"></span></a> <span class="kr">end</span> </span><span id="L-1869"><a href="#L-1869"><span class="linenos" data-line="1869"></span></a><span class="kr">end</span> </span><span id="L-1870"><a href="#L-1870"><span class="linenos" data-line="1870"></span></a> </span><span id="L-1871"><a href="#L-1871"><span class="linenos" data-line="1871"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-1872"><a href="#L-1872"><span class="linenos" data-line="1872"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getAllQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">param</span><span class="p">,</span> <span class="n">result</span><span class="p">,</span> <span class="n">hooks</span><span class="p">)</span> </span><span id="L-1873"><a href="#L-1873"><span class="linenos" data-line="1873"></span></a> <span class="kd">local</span> <span class="n">out</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- array with value objects</span> </span><span id="L-1874"><a href="#L-1874"><span class="linenos" data-line="1874"></span></a> <span class="kd">local</span> <span class="n">sep</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="c1">-- value object</span> </span><span id="L-1875"><a href="#L-1875"><span class="linenos" data-line="1875"></span></a> </span><span id="L-1876"><a href="#L-1876"><span class="linenos" data-line="1876"></span></a> <span class="c1">-- iterate through the output of the separate "qualifier(s)" commands</span> </span><span id="L-1877"><a href="#L-1877"><span class="linenos" data-line="1877"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="kr">do</span> </span><span id="L-1878"><a href="#L-1878"><span class="linenos" data-line="1878"></span></a> </span><span id="L-1879"><a href="#L-1879"><span class="linenos" data-line="1879"></span></a> <span class="c1">-- if a hook has not been called yet, call it now</span> </span><span id="L-1880"><a href="#L-1880"><span class="linenos" data-line="1880"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1881"><a href="#L-1881"><span class="linenos" data-line="1881"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">callHook</span><span class="p">(</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">,</span> <span class="n">hooks</span><span class="p">,</span> <span class="n">claim</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> </span><span id="L-1882"><a href="#L-1882"><span class="linenos" data-line="1882"></span></a> <span class="kr">end</span> </span><span id="L-1883"><a href="#L-1883"><span class="linenos" data-line="1883"></span></a> </span><span id="L-1884"><a href="#L-1884"><span class="linenos" data-line="1884"></span></a> <span class="c1">-- if there is output for this particular "qualifier(s)" command, then add it</span> </span><span id="L-1885"><a href="#L-1885"><span class="linenos" data-line="1885"></span></a> <span class="kr">if</span> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">]</span> <span class="ow">and</span> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1886"><a href="#L-1886"><span class="linenos" data-line="1886"></span></a> </span><span id="L-1887"><a href="#L-1887"><span class="linenos" data-line="1887"></span></a> <span class="c1">-- if there is already some output, then add the separator</span> </span><span id="L-1888"><a href="#L-1888"><span class="linenos" data-line="1888"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">out</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">sep</span> <span class="kr">then</span> </span><span id="L-1889"><a href="#L-1889"><span class="linenos" data-line="1889"></span></a> <span class="n">out</span><span class="p">[</span><span class="o">#</span><span class="n">out</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">sep</span> </span><span id="L-1890"><a href="#L-1890"><span class="linenos" data-line="1890"></span></a> <span class="kr">end</span> </span><span id="L-1891"><a href="#L-1891"><span class="linenos" data-line="1891"></span></a> </span><span id="L-1892"><a href="#L-1892"><span class="linenos" data-line="1892"></span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">mergeArrays</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">result</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">])</span> </span><span id="L-1893"><a href="#L-1893"><span class="linenos" data-line="1893"></span></a> <span class="kr">end</span> </span><span id="L-1894"><a href="#L-1894"><span class="linenos" data-line="1894"></span></a> <span class="kr">end</span> </span><span id="L-1895"><a href="#L-1895"><span class="linenos" data-line="1895"></span></a> </span><span id="L-1896"><a href="#L-1896"><span class="linenos" data-line="1896"></span></a> <span class="kr">return</span> <span class="n">out</span> </span><span id="L-1897"><a href="#L-1897"><span class="linenos" data-line="1897"></span></a><span class="kr">end</span> </span><span id="L-1898"><a href="#L-1898"><span class="linenos" data-line="1898"></span></a> </span><span id="L-1899"><a href="#L-1899"><span class="linenos" data-line="1899"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-1900"><a href="#L-1900"><span class="linenos" data-line="1900"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getReferences</span><span class="p">(</span><span class="n">claim</span><span class="p">)</span> </span><span id="L-1901"><a href="#L-1901"><span class="linenos" data-line="1901"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">prefetchedRefs</span> <span class="kr">then</span> </span><span id="L-1902"><a href="#L-1902"><span class="linenos" data-line="1902"></span></a> <span class="c1">-- return references that have been prefetched by isSourced</span> </span><span id="L-1903"><a href="#L-1903"><span class="linenos" data-line="1903"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">prefetchedRefs</span> </span><span id="L-1904"><a href="#L-1904"><span class="linenos" data-line="1904"></span></a> <span class="kr">end</span> </span><span id="L-1905"><a href="#L-1905"><span class="linenos" data-line="1905"></span></a> </span><span id="L-1906"><a href="#L-1906"><span class="linenos" data-line="1906"></span></a> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">references</span> <span class="kr">then</span> </span><span id="L-1907"><a href="#L-1907"><span class="linenos" data-line="1907"></span></a> <span class="c1">-- iterate through claim's reference statements to collect their values;</span> </span><span id="L-1908"><a href="#L-1908"><span class="linenos" data-line="1908"></span></a> <span class="c1">-- return array with multiple value objects</span> </span><span id="L-1909"><a href="#L-1909"><span class="linenos" data-line="1909"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]:</span><span class="n">iterate</span><span class="p">(</span><span class="n">claim</span><span class="p">.</span><span class="n">references</span><span class="p">,</span> <span class="p">{[</span><span class="n">parameters</span><span class="p">.</span><span class="n">general</span><span class="p">]</span> <span class="o">=</span> <span class="n">hookNames</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">1</span><span class="p">})</span> <span class="c1">-- pass reference state with level 2 hook</span> </span><span id="L-1910"><a href="#L-1910"><span class="linenos" data-line="1910"></span></a> <span class="kr">else</span> </span><span id="L-1911"><a href="#L-1911"><span class="linenos" data-line="1911"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array</span> </span><span id="L-1912"><a href="#L-1912"><span class="linenos" data-line="1912"></span></a> <span class="kr">end</span> </span><span id="L-1913"><a href="#L-1913"><span class="linenos" data-line="1913"></span></a><span class="kr">end</span> </span><span id="L-1914"><a href="#L-1914"><span class="linenos" data-line="1914"></span></a> </span><span id="L-1915"><a href="#L-1915"><span class="linenos" data-line="1915"></span></a><span class="c1">-- level 2 hook</span> </span><span id="L-1916"><a href="#L-1916"><span class="linenos" data-line="1916"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getReference</span><span class="p">(</span><span class="n">statement</span><span class="p">)</span> </span><span id="L-1917"><a href="#L-1917"><span class="linenos" data-line="1917"></span></a> <span class="kd">local</span> <span class="n">cite</span> <span class="o">=</span> <span class="n">split</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">sitelink</span><span class="p">(</span><span class="n">aliasesQ</span><span class="p">.</span><span class="n">cite</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">':'</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> </span><span id="L-1918"><a href="#L-1918"><span class="linenos" data-line="1918"></span></a> <span class="kd">local</span> <span class="n">params</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1919"><a href="#L-1919"><span class="linenos" data-line="1919"></span></a> <span class="kd">local</span> <span class="n">key</span> <span class="o">=</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'cite'</span><span class="p">]</span> </span><span id="L-1920"><a href="#L-1920"><span class="linenos" data-line="1920"></span></a> <span class="kd">local</span> <span class="n">authors</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1921"><a href="#L-1921"><span class="linenos" data-line="1921"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="s1">''</span> </span><span id="L-1922"><a href="#L-1922"><span class="linenos" data-line="1922"></span></a> <span class="kd">local</span> <span class="n">ref</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1923"><a href="#L-1923"><span class="linenos" data-line="1923"></span></a> <span class="kd">local</span> <span class="n">text</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span> </span><span id="L-1924"><a href="#L-1924"><span class="linenos" data-line="1924"></span></a> <span class="kd">local</span> <span class="n">version</span> <span class="o">=</span> <span class="mi">3</span> <span class="c1">-- increment this each time the below logic is changed to avoid conflict errors</span> </span><span id="L-1925"><a href="#L-1925"><span class="linenos" data-line="1925"></span></a> </span><span id="L-1926"><a href="#L-1926"><span class="linenos" data-line="1926"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span> <span class="kr">then</span> </span><span id="L-1927"><a href="#L-1927"><span class="linenos" data-line="1927"></span></a> <span class="c1">-- don't include "language" if it is equal to the local one</span> </span><span id="L-1928"><a href="#L-1928"><span class="linenos" data-line="1928"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">:</span><span class="n">getReferenceDetail</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">language</span><span class="p">)</span> <span class="o">==</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">langName</span> <span class="kr">then</span> </span><span id="L-1929"><a href="#L-1929"><span class="linenos" data-line="1929"></span></a> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">language</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-1930"><a href="#L-1930"><span class="linenos" data-line="1930"></span></a> <span class="kr">end</span> </span><span id="L-1931"><a href="#L-1931"><span class="linenos" data-line="1931"></span></a> </span><span id="L-1932"><a href="#L-1932"><span class="linenos" data-line="1932"></span></a> <span class="c1">-- when there is no "title" but "subject named as" is present, use it as a title</span> </span><span id="L-1933"><a href="#L-1933"><span class="linenos" data-line="1933"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">subjectNamedAs</span><span class="p">]</span> </span><span id="L-1934"><a href="#L-1934"><span class="linenos" data-line="1934"></span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1935"><a href="#L-1935"><span class="linenos" data-line="1935"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">subjectNamedAs</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-1936"><a href="#L-1936"><span class="linenos" data-line="1936"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">subjectNamedAs</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span> </span><span id="L-1937"><a href="#L-1937"><span class="linenos" data-line="1937"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">subjectNamedAs</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> <span class="kr">then</span> </span><span id="L-1938"><a href="#L-1938"><span class="linenos" data-line="1938"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]]</span> <span class="o">=</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">subjectNamedAs</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> </span><span id="L-1939"><a href="#L-1939"><span class="linenos" data-line="1939"></span></a> <span class="kr">end</span> </span><span id="L-1940"><a href="#L-1940"><span class="linenos" data-line="1940"></span></a> <span class="kr">end</span> </span><span id="L-1941"><a href="#L-1941"><span class="linenos" data-line="1941"></span></a> </span><span id="L-1942"><a href="#L-1942"><span class="linenos" data-line="1942"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">]</span> </span><span id="L-1943"><a href="#L-1943"><span class="linenos" data-line="1943"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-1944"><a href="#L-1944"><span class="linenos" data-line="1944"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span> </span><span id="L-1945"><a href="#L-1945"><span class="linenos" data-line="1945"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> <span class="kr">then</span> </span><span id="L-1946"><a href="#L-1946"><span class="linenos" data-line="1946"></span></a> <span class="c1">-- "stated in" was given but "reference URL" and/or "title" was not</span> </span><span id="L-1947"><a href="#L-1947"><span class="linenos" data-line="1947"></span></a> <span class="c1">-- get "Wikidata property" properties from the item in "stated in"</span> </span><span id="L-1948"><a href="#L-1948"><span class="linenos" data-line="1948"></span></a> <span class="c1">-- if any of the returned properties of the external-id datatype is in statement.snaks</span> </span><span id="L-1949"><a href="#L-1949"><span class="linenos" data-line="1949"></span></a> <span class="c1">-- and title is present, generate a URL from it and use as "reference URL"</span> </span><span id="L-1950"><a href="#L-1950"><span class="linenos" data-line="1950"></span></a> <span class="c1">-- otherwise use the generated URL as "title" when both "reference URL" and "title" are missing</span> </span><span id="L-1951"><a href="#L-1951"><span class="linenos" data-line="1951"></span></a> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">pid</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">text</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">_properties</span><span class="p">{</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">raw</span><span class="p">,</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">wikidataProperty</span><span class="p">,</span> <span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">false</span><span class="p">)},</span> <span class="s1">',%s+'</span><span class="p">))</span> <span class="kr">do</span> </span><span id="L-1952"><a href="#L-1952"><span class="linenos" data-line="1952"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">pid</span><span class="p">]</span> </span><span id="L-1953"><a href="#L-1953"><span class="linenos" data-line="1953"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">pid</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-1954"><a href="#L-1954"><span class="linenos" data-line="1954"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">pid</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datatype</span> <span class="o">==</span> <span class="s1">'external-id'</span> <span class="kr">then</span> </span><span id="L-1955"><a href="#L-1955"><span class="linenos" data-line="1955"></span></a> <span class="kd">local</span> <span class="n">link</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">pid</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="kc">false</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- not raw, linked</span> </span><span id="L-1956"><a href="#L-1956"><span class="linenos" data-line="1956"></span></a> <span class="kr">if</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">link</span><span class="p">,</span> <span class="s1">'^%[%S+%s+.*%]$'</span><span class="p">)</span> <span class="kr">then</span> <span class="c1">-- getValue returned an URL</span> </span><span id="L-1957"><a href="#L-1957"><span class="linenos" data-line="1957"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]</span> <span class="ow">or</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]])</span> </span><span id="L-1958"><a href="#L-1958"><span class="linenos" data-line="1958"></span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1959"><a href="#L-1959"><span class="linenos" data-line="1959"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]]</span> <span class="o">=</span> <span class="n">link</span> </span><span id="L-1960"><a href="#L-1960"><span class="linenos" data-line="1960"></span></a> <span class="kr">break</span> </span><span id="L-1961"><a href="#L-1961"><span class="linenos" data-line="1961"></span></a> <span class="kr">elseif</span> <span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]</span> <span class="ow">or</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]])</span> </span><span id="L-1962"><a href="#L-1962"><span class="linenos" data-line="1962"></span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1963"><a href="#L-1963"><span class="linenos" data-line="1963"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]]</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">link</span><span class="p">,</span> <span class="s1">'^%[(%S+)%s+.*%]$'</span><span class="p">,</span> <span class="s1">'%1'</span><span class="p">)</span> <span class="c1">-- the URL is in wiki markup, so strip the square brackets and the display text</span> </span><span id="L-1964"><a href="#L-1964"><span class="linenos" data-line="1964"></span></a> <span class="kr">break</span> </span><span id="L-1965"><a href="#L-1965"><span class="linenos" data-line="1965"></span></a> <span class="kr">end</span> </span><span id="L-1966"><a href="#L-1966"><span class="linenos" data-line="1966"></span></a> <span class="kr">end</span> </span><span id="L-1967"><a href="#L-1967"><span class="linenos" data-line="1967"></span></a> <span class="kr">end</span> </span><span id="L-1968"><a href="#L-1968"><span class="linenos" data-line="1968"></span></a> <span class="kr">end</span> </span><span id="L-1969"><a href="#L-1969"><span class="linenos" data-line="1969"></span></a> <span class="kr">end</span> </span><span id="L-1970"><a href="#L-1970"><span class="linenos" data-line="1970"></span></a> </span><span id="L-1971"><a href="#L-1971"><span class="linenos" data-line="1971"></span></a> <span class="c1">-- to fullworkURL when referenceURL is not present</span> </span><span id="L-1972"><a href="#L-1972"><span class="linenos" data-line="1972"></span></a> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">fullworkURL</span><span class="p">]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-1973"><a href="#L-1973"><span class="linenos" data-line="1973"></span></a> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]</span> <span class="o">=</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">fullworkURL</span><span class="p">]</span> </span><span id="L-1974"><a href="#L-1974"><span class="linenos" data-line="1974"></span></a> <span class="kr">end</span> </span><span id="L-1975"><a href="#L-1975"><span class="linenos" data-line="1975"></span></a> </span><span id="L-1976"><a href="#L-1976"><span class="linenos" data-line="1976"></span></a> <span class="c1">-- retrieve only those parameters that are useful in "cite" template</span> </span><span id="L-1977"><a href="#L-1977"><span class="linenos" data-line="1977"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-1978"><a href="#L-1978"><span class="linenos" data-line="1978"></span></a> <span class="kr">if</span> <span class="p">((</span><span class="n">key</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">i</span><span class="p">]])</span> <span class="ow">or</span> <span class="n">i</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">authorNameString</span><span class="p">)</span> </span><span id="L-1979"><a href="#L-1979"><span class="linenos" data-line="1979"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-1980"><a href="#L-1980"><span class="linenos" data-line="1980"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span> </span><span id="L-1981"><a href="#L-1981"><span class="linenos" data-line="1981"></span></a> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> <span class="kr">then</span> </span><span id="L-1982"><a href="#L-1982"><span class="linenos" data-line="1982"></span></a> <span class="kd">local</span> <span class="n">val</span> </span><span id="L-1983"><a href="#L-1983"><span class="linenos" data-line="1983"></span></a> </span><span id="L-1984"><a href="#L-1984"><span class="linenos" data-line="1984"></span></a> <span class="c1">-- multiple authors may be given</span> </span><span id="L-1985"><a href="#L-1985"><span class="linenos" data-line="1985"></span></a> <span class="kr">if</span> <span class="n">i</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">author</span> <span class="ow">or</span> <span class="n">i</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">authorNameString</span> <span class="kr">then</span> </span><span id="L-1986"><a href="#L-1986"><span class="linenos" data-line="1986"></span></a> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">author</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getReferenceDetails</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">linked</span><span class="p">,</span> <span class="kc">true</span><span class="p">))</span> <span class="kr">do</span> <span class="c1">-- link = true/false, anyLang = true</span> </span><span id="L-1987"><a href="#L-1987"><span class="linenos" data-line="1987"></span></a> <span class="kr">if</span> <span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">author</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">)</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-1988"><a href="#L-1988"><span class="linenos" data-line="1988"></span></a> <span class="n">authors</span><span class="p">[</span><span class="o">#</span><span class="n">authors</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">author</span><span class="p">)</span> </span><span id="L-1989"><a href="#L-1989"><span class="linenos" data-line="1989"></span></a> <span class="kr">end</span> </span><span id="L-1990"><a href="#L-1990"><span class="linenos" data-line="1990"></span></a> <span class="kr">end</span> </span><span id="L-1991"><a href="#L-1991"><span class="linenos" data-line="1991"></span></a> <span class="kr">elseif</span> <span class="n">i</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">language</span> <span class="kr">then</span> </span><span id="L-1992"><a href="#L-1992"><span class="linenos" data-line="1992"></span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_property</span><span class="p">({</span><span class="n">self</span><span class="p">:</span><span class="n">getReferenceDetail</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="kc">true</span><span class="p">),</span> <span class="s1">'P424'</span><span class="p">})</span> </span><span id="L-1993"><a href="#L-1993"><span class="linenos" data-line="1993"></span></a> <span class="kr">else</span> </span><span id="L-1994"><a href="#L-1994"><span class="linenos" data-line="1994"></span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getReferenceDetail</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">linked</span> <span class="ow">or</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">snaks</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="n">datatype</span> <span class="o">~=</span> <span class="s1">'url'</span><span class="p">),</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- link = true/false, anyLang = true</span> </span><span id="L-1995"><a href="#L-1995"><span class="linenos" data-line="1995"></span></a> <span class="kr">end</span> </span><span id="L-1996"><a href="#L-1996"><span class="linenos" data-line="1996"></span></a> </span><span id="L-1997"><a href="#L-1997"><span class="linenos" data-line="1997"></span></a> <span class="kr">if</span> <span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">val</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">)</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> </span><span id="L-1998"><a href="#L-1998"><span class="linenos" data-line="1998"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">val</span> </span><span id="L-1999"><a href="#L-1999"><span class="linenos" data-line="1999"></span></a> <span class="kr">end</span> </span><span id="L-2000"><a href="#L-2000"><span class="linenos" data-line="2000"></span></a> <span class="kr">end</span> </span><span id="L-2001"><a href="#L-2001"><span class="linenos" data-line="2001"></span></a> <span class="kr">end</span> </span><span id="L-2002"><a href="#L-2002"><span class="linenos" data-line="2002"></span></a> </span><span id="L-2003"><a href="#L-2003"><span class="linenos" data-line="2003"></span></a> <span class="c1">-- return an empty ref if the URL matches that of wikipedia</span> </span><span id="L-2004"><a href="#L-2004"><span class="linenos" data-line="2004"></span></a> <span class="kr">if</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]]</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'wikipedia%.org'</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-2005"><a href="#L-2005"><span class="linenos" data-line="2005"></span></a> <span class="kr">return</span> <span class="n">ref</span> </span><span id="L-2006"><a href="#L-2006"><span class="linenos" data-line="2006"></span></a> <span class="kr">end</span> </span><span id="L-2007"><a href="#L-2007"><span class="linenos" data-line="2007"></span></a> </span><span id="L-2008"><a href="#L-2008"><span class="linenos" data-line="2008"></span></a> <span class="c1">-- add authors to params</span> </span><span id="L-2009"><a href="#L-2009"><span class="linenos" data-line="2009"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">authors</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2010"><a href="#L-2010"><span class="linenos" data-line="2010"></span></a> <span class="c1">-- follow the logic of then "cite" template</span> </span><span id="L-2011"><a href="#L-2011"><span class="linenos" data-line="2011"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">authors</span> <span class="o"><</span> <span class="mi">4</span> <span class="kr">then</span> <span class="c1">-- 3 or less</span> </span><span id="L-2012"><a href="#L-2012"><span class="linenos" data-line="2012"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">author</span><span class="p">]]</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">authors</span><span class="p">,</span> <span class="s1">', '</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">#</span><span class="n">authors</span><span class="p">)</span> <span class="c1">-- get all in "author" param</span> </span><span id="L-2013"><a href="#L-2013"><span class="linenos" data-line="2013"></span></a> <span class="kr">else</span> <span class="c1">-- 4 or more authors</span> </span><span id="L-2014"><a href="#L-2014"><span class="linenos" data-line="2014"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">author</span><span class="p">]]</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">authors</span><span class="p">,</span> <span class="s1">', '</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="c1">-- get the first three in "author" param</span> </span><span id="L-2015"><a href="#L-2015"><span class="linenos" data-line="2015"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="s1">'coauthors'</span><span class="p">]]</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">authors</span><span class="p">,</span> <span class="s1">', '</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="o">#</span><span class="n">authors</span><span class="p">)</span> <span class="c1">-- and get all the others in "coauthors" param</span> </span><span id="L-2016"><a href="#L-2016"><span class="linenos" data-line="2016"></span></a> <span class="kr">end</span> </span><span id="L-2017"><a href="#L-2017"><span class="linenos" data-line="2017"></span></a> <span class="kr">end</span> </span><span id="L-2018"><a href="#L-2018"><span class="linenos" data-line="2018"></span></a> </span><span id="L-2019"><a href="#L-2019"><span class="linenos" data-line="2019"></span></a> <span class="c1">-- if url is present and title is not, add the domain of the url as a title</span> </span><span id="L-2020"><a href="#L-2020"><span class="linenos" data-line="2020"></span></a> <span class="kr">if</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]]</span> <span class="kr">then</span> </span><span id="L-2021"><a href="#L-2021"><span class="linenos" data-line="2021"></span></a> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]]</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]],</span> <span class="s1">'^%a+://([^/]+).*'</span><span class="p">,</span> <span class="s1">'%1'</span><span class="p">)</span> </span><span id="L-2022"><a href="#L-2022"><span class="linenos" data-line="2022"></span></a> <span class="kr">end</span> </span><span id="L-2023"><a href="#L-2023"><span class="linenos" data-line="2023"></span></a> </span><span id="L-2024"><a href="#L-2024"><span class="linenos" data-line="2024"></span></a> <span class="c1">-- in order to produce a meaningful citation</span> </span><span id="L-2025"><a href="#L-2025"><span class="linenos" data-line="2025"></span></a> <span class="c1">-- both cite and at least one param from params (either "url", "title" or "stated in")</span> </span><span id="L-2026"><a href="#L-2026"><span class="linenos" data-line="2026"></span></a> <span class="c1">-- should evaluate to true</span> </span><span id="L-2027"><a href="#L-2027"><span class="linenos" data-line="2027"></span></a> <span class="kr">if</span> <span class="n">cite</span> <span class="ow">and</span> <span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">referenceURL</span><span class="p">]]</span> <span class="ow">or</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">title</span><span class="p">]]</span> <span class="ow">or</span> <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">.</span><span class="n">statedIn</span><span class="p">]])</span> <span class="kr">then</span> </span><span id="L-2028"><a href="#L-2028"><span class="linenos" data-line="2028"></span></a> <span class="c1">-- if this module is being substituted then build a regular template call, otherwise expand the template</span> </span><span id="L-2029"><a href="#L-2029"><span class="linenos" data-line="2029"></span></a> <span class="kr">if</span> <span class="n">mw</span><span class="p">.</span><span class="n">isSubsting</span><span class="p">()</span> <span class="kr">then</span> </span><span id="L-2030"><a href="#L-2030"><span class="linenos" data-line="2030"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">params</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2031"><a href="#L-2031"><span class="linenos" data-line="2031"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="s1">' | '</span> <span class="o">..</span> <span class="n">k</span> <span class="o">..</span> <span class="s1">' = '</span> <span class="o">..</span> <span class="n">v</span> </span><span id="L-2032"><a href="#L-2032"><span class="linenos" data-line="2032"></span></a> <span class="kr">end</span> </span><span id="L-2033"><a href="#L-2033"><span class="linenos" data-line="2033"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="s1">'{{'</span> <span class="o">..</span> <span class="n">cite</span> <span class="o">..</span> <span class="n">value</span> <span class="o">..</span> <span class="s1">'}}'</span> </span><span id="L-2034"><a href="#L-2034"><span class="linenos" data-line="2034"></span></a> <span class="kr">else</span> </span><span id="L-2035"><a href="#L-2035"><span class="linenos" data-line="2035"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">expandTemplate</span><span class="p">{</span><span class="n">title</span><span class="o">=</span><span class="n">cite</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="n">params</span><span class="p">}</span> </span><span id="L-2036"><a href="#L-2036"><span class="linenos" data-line="2036"></span></a> <span class="kr">end</span> </span><span id="L-2037"><a href="#L-2037"><span class="linenos" data-line="2037"></span></a> <span class="kr">end</span> </span><span id="L-2038"><a href="#L-2038"><span class="linenos" data-line="2038"></span></a> </span><span id="L-2039"><a href="#L-2039"><span class="linenos" data-line="2039"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2040"><a href="#L-2040"><span class="linenos" data-line="2040"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- create one value object</span> </span><span id="L-2041"><a href="#L-2041"><span class="linenos" data-line="2041"></span></a> </span><span id="L-2042"><a href="#L-2042"><span class="linenos" data-line="2042"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">self</span><span class="p">.</span><span class="n">rawValue</span> <span class="kr">then</span> </span><span id="L-2043"><a href="#L-2043"><span class="linenos" data-line="2043"></span></a> <span class="c1">-- this should become a <ref> tag, so safe the reference's hash for later</span> </span><span id="L-2044"><a href="#L-2044"><span class="linenos" data-line="2044"></span></a> <span class="n">value</span><span class="p">.</span><span class="n">refHash</span> <span class="o">=</span> <span class="s2">"wikidata-"</span> <span class="o">..</span> <span class="n">statement</span><span class="p">.</span><span class="n">hash</span> <span class="o">..</span> <span class="s2">"-v"</span> <span class="o">..</span> <span class="p">(</span><span class="n">key</span><span class="p">[</span><span class="s1">'citeVersion'</span><span class="p">]</span> <span class="o">+</span> <span class="n">version</span><span class="p">)</span> </span><span id="L-2045"><a href="#L-2045"><span class="linenos" data-line="2045"></span></a> <span class="kr">end</span> </span><span id="L-2046"><a href="#L-2046"><span class="linenos" data-line="2046"></span></a> </span><span id="L-2047"><a href="#L-2047"><span class="linenos" data-line="2047"></span></a> <span class="n">ref</span> <span class="o">=</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- wrap the value object in an array</span> </span><span id="L-2048"><a href="#L-2048"><span class="linenos" data-line="2048"></span></a> <span class="kr">end</span> </span><span id="L-2049"><a href="#L-2049"><span class="linenos" data-line="2049"></span></a> <span class="kr">end</span> </span><span id="L-2050"><a href="#L-2050"><span class="linenos" data-line="2050"></span></a> </span><span id="L-2051"><a href="#L-2051"><span class="linenos" data-line="2051"></span></a> <span class="kr">return</span> <span class="n">ref</span> </span><span id="L-2052"><a href="#L-2052"><span class="linenos" data-line="2052"></span></a><span class="kr">end</span> </span><span id="L-2053"><a href="#L-2053"><span class="linenos" data-line="2053"></span></a> </span><span id="L-2054"><a href="#L-2054"><span class="linenos" data-line="2054"></span></a><span class="c1">-- gets a detail of one particular type for a reference</span> </span><span id="L-2055"><a href="#L-2055"><span class="linenos" data-line="2055"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getReferenceDetail</span><span class="p">(</span><span class="n">snaks</span><span class="p">,</span> <span class="n">dType</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">anyLang</span><span class="p">)</span> </span><span id="L-2056"><a href="#L-2056"><span class="linenos" data-line="2056"></span></a> <span class="kd">local</span> <span class="n">switchLang</span> <span class="o">=</span> <span class="n">anyLang</span> </span><span id="L-2057"><a href="#L-2057"><span class="linenos" data-line="2057"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2058"><a href="#L-2058"><span class="linenos" data-line="2058"></span></a> </span><span id="L-2059"><a href="#L-2059"><span class="linenos" data-line="2059"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">snaks</span><span class="p">[</span><span class="n">dType</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2060"><a href="#L-2060"><span class="linenos" data-line="2060"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-2061"><a href="#L-2061"><span class="linenos" data-line="2061"></span></a> <span class="kr">end</span> </span><span id="L-2062"><a href="#L-2062"><span class="linenos" data-line="2062"></span></a> </span><span id="L-2063"><a href="#L-2063"><span class="linenos" data-line="2063"></span></a> <span class="c1">-- if anyLang, first try the local language and otherwise any language</span> </span><span id="L-2064"><a href="#L-2064"><span class="linenos" data-line="2064"></span></a> <span class="kr">repeat</span> </span><span id="L-2065"><a href="#L-2065"><span class="linenos" data-line="2065"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">snaks</span><span class="p">[</span><span class="n">dType</span><span class="p">])</span> <span class="kr">do</span> </span><span id="L-2066"><a href="#L-2066"><span class="linenos" data-line="2066"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="n">anyLang</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">switchLang</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- noSpecial = true</span> </span><span id="L-2067"><a href="#L-2067"><span class="linenos" data-line="2067"></span></a> </span><span id="L-2068"><a href="#L-2068"><span class="linenos" data-line="2068"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="kr">then</span> </span><span id="L-2069"><a href="#L-2069"><span class="linenos" data-line="2069"></span></a> <span class="kr">break</span> </span><span id="L-2070"><a href="#L-2070"><span class="linenos" data-line="2070"></span></a> <span class="kr">end</span> </span><span id="L-2071"><a href="#L-2071"><span class="linenos" data-line="2071"></span></a> <span class="kr">end</span> </span><span id="L-2072"><a href="#L-2072"><span class="linenos" data-line="2072"></span></a> </span><span id="L-2073"><a href="#L-2073"><span class="linenos" data-line="2073"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">anyLang</span> <span class="kr">then</span> </span><span id="L-2074"><a href="#L-2074"><span class="linenos" data-line="2074"></span></a> <span class="kr">break</span> </span><span id="L-2075"><a href="#L-2075"><span class="linenos" data-line="2075"></span></a> <span class="kr">end</span> </span><span id="L-2076"><a href="#L-2076"><span class="linenos" data-line="2076"></span></a> </span><span id="L-2077"><a href="#L-2077"><span class="linenos" data-line="2077"></span></a> <span class="n">switchLang</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">switchLang</span> </span><span id="L-2078"><a href="#L-2078"><span class="linenos" data-line="2078"></span></a> <span class="kr">until</span> <span class="n">anyLang</span> <span class="ow">and</span> <span class="n">switchLang</span> </span><span id="L-2079"><a href="#L-2079"><span class="linenos" data-line="2079"></span></a> </span><span id="L-2080"><a href="#L-2080"><span class="linenos" data-line="2080"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-2081"><a href="#L-2081"><span class="linenos" data-line="2081"></span></a><span class="kr">end</span> </span><span id="L-2082"><a href="#L-2082"><span class="linenos" data-line="2082"></span></a> </span><span id="L-2083"><a href="#L-2083"><span class="linenos" data-line="2083"></span></a><span class="c1">-- gets the details of one particular type for a reference</span> </span><span id="L-2084"><a href="#L-2084"><span class="linenos" data-line="2084"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getReferenceDetails</span><span class="p">(</span><span class="n">snaks</span><span class="p">,</span> <span class="n">dType</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">anyLang</span><span class="p">)</span> </span><span id="L-2085"><a href="#L-2085"><span class="linenos" data-line="2085"></span></a> <span class="kd">local</span> <span class="n">values</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-2086"><a href="#L-2086"><span class="linenos" data-line="2086"></span></a> </span><span id="L-2087"><a href="#L-2087"><span class="linenos" data-line="2087"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">snaks</span><span class="p">[</span><span class="n">dType</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2088"><a href="#L-2088"><span class="linenos" data-line="2088"></span></a> <span class="kr">return</span> <span class="p">{}</span> </span><span id="L-2089"><a href="#L-2089"><span class="linenos" data-line="2089"></span></a> <span class="kr">end</span> </span><span id="L-2090"><a href="#L-2090"><span class="linenos" data-line="2090"></span></a> </span><span id="L-2091"><a href="#L-2091"><span class="linenos" data-line="2091"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">snaks</span><span class="p">[</span><span class="n">dType</span><span class="p">])</span> <span class="kr">do</span> </span><span id="L-2092"><a href="#L-2092"><span class="linenos" data-line="2092"></span></a> <span class="c1">-- if nil is returned then it will not be added to the table</span> </span><span id="L-2093"><a href="#L-2093"><span class="linenos" data-line="2093"></span></a> <span class="n">values</span><span class="p">[</span><span class="o">#</span><span class="n">values</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getValue</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">raw</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="n">anyLang</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="c1">-- noSpecial = true</span> </span><span id="L-2094"><a href="#L-2094"><span class="linenos" data-line="2094"></span></a> <span class="kr">end</span> </span><span id="L-2095"><a href="#L-2095"><span class="linenos" data-line="2095"></span></a> </span><span id="L-2096"><a href="#L-2096"><span class="linenos" data-line="2096"></span></a> <span class="kr">return</span> <span class="n">values</span> </span><span id="L-2097"><a href="#L-2097"><span class="linenos" data-line="2097"></span></a><span class="kr">end</span> </span><span id="L-2098"><a href="#L-2098"><span class="linenos" data-line="2098"></span></a> </span><span id="L-2099"><a href="#L-2099"><span class="linenos" data-line="2099"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-2100"><a href="#L-2100"><span class="linenos" data-line="2100"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getAlias</span><span class="p">(</span><span class="n">object</span><span class="p">)</span> </span><span id="L-2101"><a href="#L-2101"><span class="linenos" data-line="2101"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="n">object</span><span class="p">.</span><span class="n">value</span> </span><span id="L-2102"><a href="#L-2102"><span class="linenos" data-line="2102"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2103"><a href="#L-2103"><span class="linenos" data-line="2103"></span></a> </span><span id="L-2104"><a href="#L-2104"><span class="linenos" data-line="2104"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">linked</span> <span class="kr">then</span> </span><span id="L-2105"><a href="#L-2105"><span class="linenos" data-line="2105"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">entityID</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"Q"</span> <span class="kr">then</span> </span><span id="L-2106"><a href="#L-2106"><span class="linenos" data-line="2106"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">sitelink</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">entityID</span><span class="p">)</span> </span><span id="L-2107"><a href="#L-2107"><span class="linenos" data-line="2107"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">entityID</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"P"</span> <span class="kr">then</span> </span><span id="L-2108"><a href="#L-2108"><span class="linenos" data-line="2108"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="s2">"d:Property:"</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">entityID</span> </span><span id="L-2109"><a href="#L-2109"><span class="linenos" data-line="2109"></span></a> <span class="kr">end</span> </span><span id="L-2110"><a href="#L-2110"><span class="linenos" data-line="2110"></span></a> </span><span id="L-2111"><a href="#L-2111"><span class="linenos" data-line="2111"></span></a> <span class="kr">if</span> <span class="n">title</span> <span class="kr">then</span> </span><span id="L-2112"><a href="#L-2112"><span class="linenos" data-line="2112"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> </span><span id="L-2113"><a href="#L-2113"><span class="linenos" data-line="2113"></span></a> <span class="kr">end</span> </span><span id="L-2114"><a href="#L-2114"><span class="linenos" data-line="2114"></span></a> <span class="kr">end</span> </span><span id="L-2115"><a href="#L-2115"><span class="linenos" data-line="2115"></span></a> </span><span id="L-2116"><a href="#L-2116"><span class="linenos" data-line="2116"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- create one value object</span> </span><span id="L-2117"><a href="#L-2117"><span class="linenos" data-line="2117"></span></a> </span><span id="L-2118"><a href="#L-2118"><span class="linenos" data-line="2118"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">value</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2119"><a href="#L-2119"><span class="linenos" data-line="2119"></span></a> <span class="kr">return</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- wrap the value object in an array and return it</span> </span><span id="L-2120"><a href="#L-2120"><span class="linenos" data-line="2120"></span></a> <span class="kr">else</span> </span><span id="L-2121"><a href="#L-2121"><span class="linenos" data-line="2121"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array if there was no value</span> </span><span id="L-2122"><a href="#L-2122"><span class="linenos" data-line="2122"></span></a> <span class="kr">end</span> </span><span id="L-2123"><a href="#L-2123"><span class="linenos" data-line="2123"></span></a><span class="kr">end</span> </span><span id="L-2124"><a href="#L-2124"><span class="linenos" data-line="2124"></span></a> </span><span id="L-2125"><a href="#L-2125"><span class="linenos" data-line="2125"></span></a><span class="c1">-- level 1 hook</span> </span><span id="L-2126"><a href="#L-2126"><span class="linenos" data-line="2126"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">getBadge</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> </span><span id="L-2127"><a href="#L-2127"><span class="linenos" data-line="2127"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">:</span><span class="n">getLabel</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">rawValue</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">linked</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">shortName</span><span class="p">)</span> </span><span id="L-2128"><a href="#L-2128"><span class="linenos" data-line="2128"></span></a> </span><span id="L-2129"><a href="#L-2129"><span class="linenos" data-line="2129"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2130"><a href="#L-2130"><span class="linenos" data-line="2130"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2131"><a href="#L-2131"><span class="linenos" data-line="2131"></span></a> <span class="kr">end</span> </span><span id="L-2132"><a href="#L-2132"><span class="linenos" data-line="2132"></span></a> </span><span id="L-2133"><a href="#L-2133"><span class="linenos" data-line="2133"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- create one value object</span> </span><span id="L-2134"><a href="#L-2134"><span class="linenos" data-line="2134"></span></a> </span><span id="L-2135"><a href="#L-2135"><span class="linenos" data-line="2135"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">value</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2136"><a href="#L-2136"><span class="linenos" data-line="2136"></span></a> <span class="kr">return</span> <span class="p">{</span><span class="n">value</span><span class="p">}</span> <span class="c1">-- wrap the value object in an array and return it</span> </span><span id="L-2137"><a href="#L-2137"><span class="linenos" data-line="2137"></span></a> <span class="kr">else</span> </span><span id="L-2138"><a href="#L-2138"><span class="linenos" data-line="2138"></span></a> <span class="kr">return</span> <span class="p">{}</span> <span class="c1">-- return empty array if there was no value</span> </span><span id="L-2139"><a href="#L-2139"><span class="linenos" data-line="2139"></span></a> <span class="kr">end</span> </span><span id="L-2140"><a href="#L-2140"><span class="linenos" data-line="2140"></span></a><span class="kr">end</span> </span><span id="L-2141"><a href="#L-2141"><span class="linenos" data-line="2141"></span></a> </span><span id="L-2142"><a href="#L-2142"><span class="linenos" data-line="2142"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">callHook</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="n">hooks</span><span class="p">,</span> <span class="n">statement</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> </span><span id="L-2143"><a href="#L-2143"><span class="linenos" data-line="2143"></span></a> <span class="kd">local</span> <span class="n">valuesArray</span><span class="p">,</span> <span class="n">refHash</span> </span><span id="L-2144"><a href="#L-2144"><span class="linenos" data-line="2144"></span></a> </span><span id="L-2145"><a href="#L-2145"><span class="linenos" data-line="2145"></span></a> <span class="c1">-- call a parameter's hook if it has been defined and if it has not been called before</span> </span><span id="L-2146"><a href="#L-2146"><span class="linenos" data-line="2146"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">result</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="ow">and</span> <span class="n">hooks</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2147"><a href="#L-2147"><span class="linenos" data-line="2147"></span></a> <span class="n">valuesArray</span> <span class="o">=</span> <span class="n">self</span><span class="p">[</span><span class="n">hooks</span><span class="p">[</span><span class="n">param</span><span class="p">]](</span><span class="n">self</span><span class="p">,</span> <span class="n">statement</span><span class="p">,</span> <span class="n">param</span><span class="p">,</span> <span class="n">result</span><span class="p">,</span> <span class="n">hooks</span><span class="p">)</span> <span class="c1">-- array with value objects</span> </span><span id="L-2148"><a href="#L-2148"><span class="linenos" data-line="2148"></span></a> </span><span id="L-2149"><a href="#L-2149"><span class="linenos" data-line="2149"></span></a> <span class="c1">-- add to the result</span> </span><span id="L-2150"><a href="#L-2150"><span class="linenos" data-line="2150"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">valuesArray</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2151"><a href="#L-2151"><span class="linenos" data-line="2151"></span></a> <span class="n">result</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="o">=</span> <span class="n">valuesArray</span> </span><span id="L-2152"><a href="#L-2152"><span class="linenos" data-line="2152"></span></a> <span class="n">result</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">result</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2153"><a href="#L-2153"><span class="linenos" data-line="2153"></span></a> <span class="kr">else</span> </span><span id="L-2154"><a href="#L-2154"><span class="linenos" data-line="2154"></span></a> <span class="n">result</span><span class="p">[</span><span class="n">param</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-- an empty array to indicate that we've tried this hook already</span> </span><span id="L-2155"><a href="#L-2155"><span class="linenos" data-line="2155"></span></a> <span class="kr">return</span> <span class="kc">true</span> <span class="c1">-- miss == true</span> </span><span id="L-2156"><a href="#L-2156"><span class="linenos" data-line="2156"></span></a> <span class="kr">end</span> </span><span id="L-2157"><a href="#L-2157"><span class="linenos" data-line="2157"></span></a> <span class="kr">end</span> </span><span id="L-2158"><a href="#L-2158"><span class="linenos" data-line="2158"></span></a> </span><span id="L-2159"><a href="#L-2159"><span class="linenos" data-line="2159"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-2160"><a href="#L-2160"><span class="linenos" data-line="2160"></span></a><span class="kr">end</span> </span><span id="L-2161"><a href="#L-2161"><span class="linenos" data-line="2161"></span></a> </span><span id="L-2162"><a href="#L-2162"><span class="linenos" data-line="2162"></span></a><span class="c1">-- iterate through claims, claim's qualifiers or claim's references to collect values</span> </span><span id="L-2163"><a href="#L-2163"><span class="linenos" data-line="2163"></span></a><span class="kr">function</span> <span class="nc">State</span><span class="p">:</span><span class="nf">iterate</span><span class="p">(</span><span class="n">statements</span><span class="p">,</span> <span class="n">hooks</span><span class="p">,</span> <span class="n">matchHook</span><span class="p">)</span> </span><span id="L-2164"><a href="#L-2164"><span class="linenos" data-line="2164"></span></a> <span class="n">matchHook</span> <span class="o">=</span> <span class="n">matchHook</span> <span class="ow">or</span> <span class="n">alwaysTrue</span> </span><span id="L-2165"><a href="#L-2165"><span class="linenos" data-line="2165"></span></a> </span><span id="L-2166"><a href="#L-2166"><span class="linenos" data-line="2166"></span></a> <span class="kd">local</span> <span class="n">matches</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-2167"><a href="#L-2167"><span class="linenos" data-line="2167"></span></a> <span class="kd">local</span> <span class="n">rankPos</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2168"><a href="#L-2168"><span class="linenos" data-line="2168"></span></a> <span class="kd">local</span> <span class="n">result</span><span class="p">,</span> <span class="n">gotRequired</span> </span><span id="L-2169"><a href="#L-2169"><span class="linenos" data-line="2169"></span></a> </span><span id="L-2170"><a href="#L-2170"><span class="linenos" data-line="2170"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2171"><a href="#L-2171"><span class="linenos" data-line="2171"></span></a> <span class="c1">-- rankPos will be nil for non-claim statements (e.g. qualifiers, references, etc.)</span> </span><span id="L-2172"><a href="#L-2172"><span class="linenos" data-line="2172"></span></a> <span class="n">matches</span><span class="p">,</span> <span class="n">rankPos</span> <span class="o">=</span> <span class="n">matchHook</span><span class="p">(</span><span class="n">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> </span><span id="L-2173"><a href="#L-2173"><span class="linenos" data-line="2173"></span></a> </span><span id="L-2174"><a href="#L-2174"><span class="linenos" data-line="2174"></span></a> <span class="kr">if</span> <span class="n">matches</span> <span class="kr">then</span> </span><span id="L-2175"><a href="#L-2175"><span class="linenos" data-line="2175"></span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">}</span> <span class="c1">-- collection of arrays with value objects</span> </span><span id="L-2176"><a href="#L-2176"><span class="linenos" data-line="2176"></span></a> </span><span id="L-2177"><a href="#L-2177"><span class="linenos" data-line="2177"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">walk</span><span class="p">(</span><span class="n">formatTable</span><span class="p">)</span> </span><span id="L-2178"><a href="#L-2178"><span class="linenos" data-line="2178"></span></a> <span class="kd">local</span> <span class="n">miss</span> </span><span id="L-2179"><a href="#L-2179"><span class="linenos" data-line="2179"></span></a> </span><span id="L-2180"><a href="#L-2180"><span class="linenos" data-line="2180"></span></a> <span class="kr">for</span> <span class="n">i2</span><span class="p">,</span> <span class="n">v2</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">formatTable</span><span class="p">.</span><span class="n">req</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2181"><a href="#L-2181"><span class="linenos" data-line="2181"></span></a> <span class="c1">-- call a hook, adding its return value to the result</span> </span><span id="L-2182"><a href="#L-2182"><span class="linenos" data-line="2182"></span></a> <span class="n">miss</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">callHook</span><span class="p">(</span><span class="n">i2</span><span class="p">,</span> <span class="n">hooks</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> </span><span id="L-2183"><a href="#L-2183"><span class="linenos" data-line="2183"></span></a> </span><span id="L-2184"><a href="#L-2184"><span class="linenos" data-line="2184"></span></a> <span class="kr">if</span> <span class="n">miss</span> <span class="kr">then</span> </span><span id="L-2185"><a href="#L-2185"><span class="linenos" data-line="2185"></span></a> <span class="c1">-- we miss a required value for this level, so return false</span> </span><span id="L-2186"><a href="#L-2186"><span class="linenos" data-line="2186"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-2187"><a href="#L-2187"><span class="linenos" data-line="2187"></span></a> <span class="kr">end</span> </span><span id="L-2188"><a href="#L-2188"><span class="linenos" data-line="2188"></span></a> </span><span id="L-2189"><a href="#L-2189"><span class="linenos" data-line="2189"></span></a> <span class="kr">if</span> <span class="n">result</span><span class="p">.</span><span class="n">count</span> <span class="o">==</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="kr">then</span> </span><span id="L-2190"><a href="#L-2190"><span class="linenos" data-line="2190"></span></a> <span class="c1">-- we're done if all hooks have been called;</span> </span><span id="L-2191"><a href="#L-2191"><span class="linenos" data-line="2191"></span></a> <span class="c1">-- returning at this point breaks the loop</span> </span><span id="L-2192"><a href="#L-2192"><span class="linenos" data-line="2192"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-2193"><a href="#L-2193"><span class="linenos" data-line="2193"></span></a> <span class="kr">end</span> </span><span id="L-2194"><a href="#L-2194"><span class="linenos" data-line="2194"></span></a> <span class="kr">end</span> </span><span id="L-2195"><a href="#L-2195"><span class="linenos" data-line="2195"></span></a> </span><span id="L-2196"><a href="#L-2196"><span class="linenos" data-line="2196"></span></a> <span class="kr">for</span> <span class="n">i2</span><span class="p">,</span> <span class="n">v2</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">formatTable</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2197"><a href="#L-2197"><span class="linenos" data-line="2197"></span></a> <span class="kr">if</span> <span class="n">result</span><span class="p">.</span><span class="n">count</span> <span class="o">==</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="kr">then</span> </span><span id="L-2198"><a href="#L-2198"><span class="linenos" data-line="2198"></span></a> <span class="c1">-- we're done if all hooks have been called;</span> </span><span id="L-2199"><a href="#L-2199"><span class="linenos" data-line="2199"></span></a> <span class="c1">-- returning at this point prevents further childs from being processed</span> </span><span id="L-2200"><a href="#L-2200"><span class="linenos" data-line="2200"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-2201"><a href="#L-2201"><span class="linenos" data-line="2201"></span></a> <span class="kr">end</span> </span><span id="L-2202"><a href="#L-2202"><span class="linenos" data-line="2202"></span></a> </span><span id="L-2203"><a href="#L-2203"><span class="linenos" data-line="2203"></span></a> <span class="kr">if</span> <span class="n">v2</span><span class="p">.</span><span class="n">child</span> <span class="kr">then</span> </span><span id="L-2204"><a href="#L-2204"><span class="linenos" data-line="2204"></span></a> <span class="n">walk</span><span class="p">(</span><span class="n">v2</span><span class="p">.</span><span class="n">child</span><span class="p">)</span> </span><span id="L-2205"><a href="#L-2205"><span class="linenos" data-line="2205"></span></a> <span class="kr">end</span> </span><span id="L-2206"><a href="#L-2206"><span class="linenos" data-line="2206"></span></a> <span class="kr">end</span> </span><span id="L-2207"><a href="#L-2207"><span class="linenos" data-line="2207"></span></a> </span><span id="L-2208"><a href="#L-2208"><span class="linenos" data-line="2208"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-2209"><a href="#L-2209"><span class="linenos" data-line="2209"></span></a> <span class="kr">end</span> </span><span id="L-2210"><a href="#L-2210"><span class="linenos" data-line="2210"></span></a> <span class="n">gotRequired</span> <span class="o">=</span> <span class="n">walk</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">parsedFormat</span><span class="p">)</span> </span><span id="L-2211"><a href="#L-2211"><span class="linenos" data-line="2211"></span></a> </span><span id="L-2212"><a href="#L-2212"><span class="linenos" data-line="2212"></span></a> <span class="c1">-- only append the result if we got values for all required parameters on the root level</span> </span><span id="L-2213"><a href="#L-2213"><span class="linenos" data-line="2213"></span></a> <span class="kr">if</span> <span class="n">gotRequired</span> <span class="kr">then</span> </span><span id="L-2214"><a href="#L-2214"><span class="linenos" data-line="2214"></span></a> <span class="c1">-- if we have a rankPos (only with matchHook() for complete claims), then update the foundRank</span> </span><span id="L-2215"><a href="#L-2215"><span class="linenos" data-line="2215"></span></a> <span class="kr">if</span> <span class="n">rankPos</span> <span class="ow">and</span> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">foundRank</span> <span class="o">></span> <span class="n">rankPos</span> <span class="kr">then</span> </span><span id="L-2216"><a href="#L-2216"><span class="linenos" data-line="2216"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">conf</span><span class="p">.</span><span class="n">foundRank</span> <span class="o">=</span> <span class="n">rankPos</span> </span><span id="L-2217"><a href="#L-2217"><span class="linenos" data-line="2217"></span></a> <span class="kr">end</span> </span><span id="L-2218"><a href="#L-2218"><span class="linenos" data-line="2218"></span></a> </span><span id="L-2219"><a href="#L-2219"><span class="linenos" data-line="2219"></span></a> <span class="c1">-- append the result</span> </span><span id="L-2220"><a href="#L-2220"><span class="linenos" data-line="2220"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">results</span><span class="p">[</span><span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">results</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">result</span> </span><span id="L-2221"><a href="#L-2221"><span class="linenos" data-line="2221"></span></a> </span><span id="L-2222"><a href="#L-2222"><span class="linenos" data-line="2222"></span></a> <span class="c1">-- break if we only need a single value</span> </span><span id="L-2223"><a href="#L-2223"><span class="linenos" data-line="2223"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">singleValue</span> <span class="kr">then</span> </span><span id="L-2224"><a href="#L-2224"><span class="linenos" data-line="2224"></span></a> <span class="kr">break</span> </span><span id="L-2225"><a href="#L-2225"><span class="linenos" data-line="2225"></span></a> <span class="kr">end</span> </span><span id="L-2226"><a href="#L-2226"><span class="linenos" data-line="2226"></span></a> <span class="kr">end</span> </span><span id="L-2227"><a href="#L-2227"><span class="linenos" data-line="2227"></span></a> <span class="kr">end</span> </span><span id="L-2228"><a href="#L-2228"><span class="linenos" data-line="2228"></span></a> <span class="kr">end</span> </span><span id="L-2229"><a href="#L-2229"><span class="linenos" data-line="2229"></span></a> </span><span id="L-2230"><a href="#L-2230"><span class="linenos" data-line="2230"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">:</span><span class="n">out</span><span class="p">()</span> </span><span id="L-2231"><a href="#L-2231"><span class="linenos" data-line="2231"></span></a><span class="kr">end</span> </span><span id="L-2232"><a href="#L-2232"><span class="linenos" data-line="2232"></span></a> </span><span id="L-2233"><a href="#L-2233"><span class="linenos" data-line="2233"></span></a><span class="kr">function</span> <span class="nf">getEntityId</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">allowOmitPropPrefix</span><span class="p">)</span> </span><span id="L-2234"><a href="#L-2234"><span class="linenos" data-line="2234"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">arg</span> <span class="kr">then</span> </span><span id="L-2235"><a href="#L-2235"><span class="linenos" data-line="2235"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-2236"><a href="#L-2236"><span class="linenos" data-line="2236"></span></a> <span class="kr">elseif</span> <span class="n">arg</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">):</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"Q"</span> <span class="kr">then</span> </span><span id="L-2237"><a href="#L-2237"><span class="linenos" data-line="2237"></span></a> <span class="kr">return</span> <span class="n">arg</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> <span class="c1">-- entity ID of an item was given</span> </span><span id="L-2238"><a href="#L-2238"><span class="linenos" data-line="2238"></span></a> <span class="kr">elseif</span> <span class="n">arg</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">9</span><span class="p">):</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"property:"</span> <span class="kr">then</span> </span><span id="L-2239"><a href="#L-2239"><span class="linenos" data-line="2239"></span></a> <span class="kr">return</span> <span class="n">replaceAlias</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">arg</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">10</span><span class="p">))):</span><span class="n">upper</span><span class="p">()</span> <span class="c1">-- entity ID of a property was given</span> </span><span id="L-2240"><a href="#L-2240"><span class="linenos" data-line="2240"></span></a> <span class="kr">elseif</span> <span class="n">allowOmitPropPrefix</span> <span class="ow">and</span> <span class="n">arg</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2241"><a href="#L-2241"><span class="linenos" data-line="2241"></span></a> <span class="kr">return</span> <span class="n">replaceAlias</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span><span class="n">upper</span><span class="p">()</span> <span class="c1">-- could be an entity ID of a property without "Property:" prefix</span> </span><span id="L-2242"><a href="#L-2242"><span class="linenos" data-line="2242"></span></a> <span class="kr">else</span> </span><span id="L-2243"><a href="#L-2243"><span class="linenos" data-line="2243"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-2244"><a href="#L-2244"><span class="linenos" data-line="2244"></span></a> <span class="kr">end</span> </span><span id="L-2245"><a href="#L-2245"><span class="linenos" data-line="2245"></span></a><span class="kr">end</span> </span><span id="L-2246"><a href="#L-2246"><span class="linenos" data-line="2246"></span></a> </span><span id="L-2247"><a href="#L-2247"><span class="linenos" data-line="2247"></span></a><span class="kr">function</span> <span class="nf">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2248"><a href="#L-2248"><span class="linenos" data-line="2248"></span></a> <span class="kd">local</span> <span class="n">arg</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">pointer</span><span class="p">]</span> </span><span id="L-2249"><a href="#L-2249"><span class="linenos" data-line="2249"></span></a> </span><span id="L-2250"><a href="#L-2250"><span class="linenos" data-line="2250"></span></a> <span class="kr">if</span> <span class="n">arg</span> <span class="kr">then</span> </span><span id="L-2251"><a href="#L-2251"><span class="linenos" data-line="2251"></span></a> <span class="n">args</span><span class="p">.</span><span class="n">pointer</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">pointer</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2252"><a href="#L-2252"><span class="linenos" data-line="2252"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> </span><span id="L-2253"><a href="#L-2253"><span class="linenos" data-line="2253"></span></a> <span class="kr">else</span> </span><span id="L-2254"><a href="#L-2254"><span class="linenos" data-line="2254"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-2255"><a href="#L-2255"><span class="linenos" data-line="2255"></span></a> <span class="kr">end</span> </span><span id="L-2256"><a href="#L-2256"><span class="linenos" data-line="2256"></span></a><span class="kr">end</span> </span><span id="L-2257"><a href="#L-2257"><span class="linenos" data-line="2257"></span></a> </span><span id="L-2258"><a href="#L-2258"><span class="linenos" data-line="2258"></span></a><span class="kr">function</span> <span class="nf">claimCommand</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">funcName</span><span class="p">)</span> </span><span id="L-2259"><a href="#L-2259"><span class="linenos" data-line="2259"></span></a> <span class="kd">local</span> <span class="n">_</span> <span class="o">=</span> <span class="n">Config</span><span class="p">.</span><span class="n">new</span><span class="p">()</span> </span><span id="L-2260"><a href="#L-2260"><span class="linenos" data-line="2260"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">processFlagOrCommand</span><span class="p">(</span><span class="n">funcName</span><span class="p">)</span> <span class="c1">-- process first command (== function name)</span> </span><span id="L-2261"><a href="#L-2261"><span class="linenos" data-line="2261"></span></a> </span><span id="L-2262"><a href="#L-2262"><span class="linenos" data-line="2262"></span></a> <span class="kd">local</span> <span class="n">lastArg</span><span class="p">,</span> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span><span class="p">,</span> <span class="n">claims</span><span class="p">,</span> <span class="n">value</span> </span><span id="L-2263"><a href="#L-2263"><span class="linenos" data-line="2263"></span></a> <span class="kd">local</span> <span class="n">hooks</span> <span class="o">=</span> <span class="p">{</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">}</span> </span><span id="L-2264"><a href="#L-2264"><span class="linenos" data-line="2264"></span></a> </span><span id="L-2265"><a href="#L-2265"><span class="linenos" data-line="2265"></span></a> <span class="c1">-- process flags and commands</span> </span><span id="L-2266"><a href="#L-2266"><span class="linenos" data-line="2266"></span></a> <span class="kr">repeat</span> </span><span id="L-2267"><a href="#L-2267"><span class="linenos" data-line="2267"></span></a> <span class="n">lastArg</span> <span class="o">=</span> <span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2268"><a href="#L-2268"><span class="linenos" data-line="2268"></span></a> <span class="kr">until</span> <span class="ow">not</span> <span class="n">_</span><span class="p">:</span><span class="n">processFlagOrCommand</span><span class="p">(</span><span class="n">lastArg</span><span class="p">)</span> </span><span id="L-2269"><a href="#L-2269"><span class="linenos" data-line="2269"></span></a> </span><span id="L-2270"><a href="#L-2270"><span class="linenos" data-line="2270"></span></a> <span class="c1">-- use the entity ID from the positional arguments if given</span> </span><span id="L-2271"><a href="#L-2271"><span class="linenos" data-line="2271"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">getEntityId</span><span class="p">(</span><span class="n">lastArg</span><span class="p">,</span> <span class="kc">false</span><span class="p">)</span> </span><span id="L-2272"><a href="#L-2272"><span class="linenos" data-line="2272"></span></a> </span><span id="L-2273"><a href="#L-2273"><span class="linenos" data-line="2273"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="ow">or</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2274"><a href="#L-2274"><span class="linenos" data-line="2274"></span></a> <span class="c1">-- if no positional ID is given, use the eid argument if given</span> </span><span id="L-2275"><a href="#L-2275"><span class="linenos" data-line="2275"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">getEntityId</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">],</span> <span class="kc">true</span><span class="p">)</span> </span><span id="L-2276"><a href="#L-2276"><span class="linenos" data-line="2276"></span></a> </span><span id="L-2277"><a href="#L-2277"><span class="linenos" data-line="2277"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2278"><a href="#L-2278"><span class="linenos" data-line="2278"></span></a> <span class="c1">-- if eid was explicitly set to empty, then this returns an empty string</span> </span><span id="L-2279"><a href="#L-2279"><span class="linenos" data-line="2279"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-2280"><a href="#L-2280"><span class="linenos" data-line="2280"></span></a> <span class="kr">elseif</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="kr">then</span> </span><span id="L-2281"><a href="#L-2281"><span class="linenos" data-line="2281"></span></a> <span class="c1">-- by default, use the item-entity connected to the current page</span> </span><span id="L-2282"><a href="#L-2282"><span class="linenos" data-line="2282"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> </span><span id="L-2283"><a href="#L-2283"><span class="linenos" data-line="2283"></span></a> <span class="kr">end</span> </span><span id="L-2284"><a href="#L-2284"><span class="linenos" data-line="2284"></span></a> <span class="kr">else</span> </span><span id="L-2285"><a href="#L-2285"><span class="linenos" data-line="2285"></span></a> <span class="n">lastArg</span> <span class="o">=</span> <span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2286"><a href="#L-2286"><span class="linenos" data-line="2286"></span></a> <span class="kr">end</span> </span><span id="L-2287"><a href="#L-2287"><span class="linenos" data-line="2287"></span></a> </span><span id="L-2288"><a href="#L-2288"><span class="linenos" data-line="2288"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">atDate</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">date</span><span class="p">]</span> </span><span id="L-2289"><a href="#L-2289"><span class="linenos" data-line="2289"></span></a> <span class="kr">if</span> <span class="p">(</span><span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">flagPeriod</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">atDate</span> <span class="o">~=</span> <span class="kc">nil</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-2290"><a href="#L-2290"><span class="linenos" data-line="2290"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">setPeriod</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">flags</span><span class="p">.</span><span class="n">current</span><span class="p">)</span> <span class="c1">-- current when date is set but without period flags</span> </span><span id="L-2291"><a href="#L-2291"><span class="linenos" data-line="2291"></span></a> <span class="kr">end</span> </span><span id="L-2292"><a href="#L-2292"><span class="linenos" data-line="2292"></span></a> </span><span id="L-2293"><a href="#L-2293"><span class="linenos" data-line="2293"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntity</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">)</span> </span><span id="L-2294"><a href="#L-2294"><span class="linenos" data-line="2294"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyID</span> <span class="o">=</span> <span class="n">replaceAlias</span><span class="p">(</span><span class="n">lastArg</span><span class="p">)</span> </span><span id="L-2295"><a href="#L-2295"><span class="linenos" data-line="2295"></span></a> </span><span id="L-2296"><a href="#L-2296"><span class="linenos" data-line="2296"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">propertyID</span> <span class="kr">then</span> </span><span id="L-2297"><a href="#L-2297"><span class="linenos" data-line="2297"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- we cannot continue without an entity or a property ID</span> </span><span id="L-2298"><a href="#L-2298"><span class="linenos" data-line="2298"></span></a> <span class="kr">end</span> </span><span id="L-2299"><a href="#L-2299"><span class="linenos" data-line="2299"></span></a> </span><span id="L-2300"><a href="#L-2300"><span class="linenos" data-line="2300"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyID</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">propertyID</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-2301"><a href="#L-2301"><span class="linenos" data-line="2301"></span></a> </span><span id="L-2302"><a href="#L-2302"><span class="linenos" data-line="2302"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">claims</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">claims</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">propertyID</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2303"><a href="#L-2303"><span class="linenos" data-line="2303"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- there is no use to continue without any claims</span> </span><span id="L-2304"><a href="#L-2304"><span class="linenos" data-line="2304"></span></a> <span class="kr">end</span> </span><span id="L-2305"><a href="#L-2305"><span class="linenos" data-line="2305"></span></a> </span><span id="L-2306"><a href="#L-2306"><span class="linenos" data-line="2306"></span></a> <span class="n">claims</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">claims</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">propertyID</span><span class="p">]</span> </span><span id="L-2307"><a href="#L-2307"><span class="linenos" data-line="2307"></span></a> </span><span id="L-2308"><a href="#L-2308"><span class="linenos" data-line="2308"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2309"><a href="#L-2309"><span class="linenos" data-line="2309"></span></a> <span class="c1">-- do further processing if "qualifier(s)" command was given</span> </span><span id="L-2310"><a href="#L-2310"><span class="linenos" data-line="2310"></span></a> </span><span id="L-2311"><a href="#L-2311"><span class="linenos" data-line="2311"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">args</span> <span class="o">-</span> <span class="n">args</span><span class="p">.</span><span class="n">pointer</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">></span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="kr">then</span> </span><span id="L-2312"><a href="#L-2312"><span class="linenos" data-line="2312"></span></a> <span class="c1">-- claim ID or literal value has been given</span> </span><span id="L-2313"><a href="#L-2313"><span class="linenos" data-line="2313"></span></a> </span><span id="L-2314"><a href="#L-2314"><span class="linenos" data-line="2314"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2315"><a href="#L-2315"><span class="linenos" data-line="2315"></span></a> <span class="kr">end</span> </span><span id="L-2316"><a href="#L-2316"><span class="linenos" data-line="2316"></span></a> </span><span id="L-2317"><a href="#L-2317"><span class="linenos" data-line="2317"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="kr">do</span> </span><span id="L-2318"><a href="#L-2318"><span class="linenos" data-line="2318"></span></a> <span class="c1">-- check if given qualifier ID is an alias and add it</span> </span><span id="L-2319"><a href="#L-2319"><span class="linenos" data-line="2319"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">qualifierIDs</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">replaceAlias</span><span class="p">(</span><span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">):</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-2320"><a href="#L-2320"><span class="linenos" data-line="2320"></span></a> <span class="kr">end</span> </span><span id="L-2321"><a href="#L-2321"><span class="linenos" data-line="2321"></span></a> <span class="kr">elseif</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2322"><a href="#L-2322"><span class="linenos" data-line="2322"></span></a> <span class="c1">-- do further processing if "reference(s)" command was given</span> </span><span id="L-2323"><a href="#L-2323"><span class="linenos" data-line="2323"></span></a> </span><span id="L-2324"><a href="#L-2324"><span class="linenos" data-line="2324"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2325"><a href="#L-2325"><span class="linenos" data-line="2325"></span></a> <span class="kr">end</span> </span><span id="L-2326"><a href="#L-2326"><span class="linenos" data-line="2326"></span></a> </span><span id="L-2327"><a href="#L-2327"><span class="linenos" data-line="2327"></span></a> <span class="c1">-- check for special property value 'somevalue' or 'novalue'</span> </span><span id="L-2328"><a href="#L-2328"><span class="linenos" data-line="2328"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="kr">then</span> </span><span id="L-2329"><a href="#L-2329"><span class="linenos" data-line="2329"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="n">replaceSpecialChars</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span><span class="p">)</span> </span><span id="L-2330"><a href="#L-2330"><span class="linenos" data-line="2330"></span></a> </span><span id="L-2331"><a href="#L-2331"><span class="linenos" data-line="2331"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">~=</span> <span class="s2">""</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span><span class="p">)</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2332"><a href="#L-2332"><span class="linenos" data-line="2332"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="s2">" "</span> <span class="c1">-- single space represents 'somevalue', whereas empty string represents 'novalue'</span> </span><span id="L-2333"><a href="#L-2333"><span class="linenos" data-line="2333"></span></a> <span class="kr">else</span> </span><span id="L-2334"><a href="#L-2334"><span class="linenos" data-line="2334"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">propertyValue</span><span class="p">)</span> </span><span id="L-2335"><a href="#L-2335"><span class="linenos" data-line="2335"></span></a> <span class="kr">end</span> </span><span id="L-2336"><a href="#L-2336"><span class="linenos" data-line="2336"></span></a> <span class="kr">end</span> </span><span id="L-2337"><a href="#L-2337"><span class="linenos" data-line="2337"></span></a> </span><span id="L-2338"><a href="#L-2338"><span class="linenos" data-line="2338"></span></a> <span class="c1">-- parse the desired format, or choose an appropriate format</span> </span><span id="L-2339"><a href="#L-2339"><span class="linenos" data-line="2339"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2340"><a href="#L-2340"><span class="linenos" data-line="2340"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">])</span> </span><span id="L-2341"><a href="#L-2341"><span class="linenos" data-line="2341"></span></a> <span class="kr">elseif</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> <span class="c1">-- "qualifier(s)" command given</span> </span><span id="L-2342"><a href="#L-2342"><span class="linenos" data-line="2342"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="kr">then</span> <span class="c1">-- "propert(y|ies)" command given</span> </span><span id="L-2343"><a href="#L-2343"><span class="linenos" data-line="2343"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">propertyWithQualifier</span><span class="p">)</span> </span><span id="L-2344"><a href="#L-2344"><span class="linenos" data-line="2344"></span></a> <span class="kr">else</span> </span><span id="L-2345"><a href="#L-2345"><span class="linenos" data-line="2345"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">qualifier</span><span class="p">)</span> </span><span id="L-2346"><a href="#L-2346"><span class="linenos" data-line="2346"></span></a> <span class="kr">end</span> </span><span id="L-2347"><a href="#L-2347"><span class="linenos" data-line="2347"></span></a> <span class="kr">elseif</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="kr">then</span> <span class="c1">-- "propert(y|ies)" command given</span> </span><span id="L-2348"><a href="#L-2348"><span class="linenos" data-line="2348"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">property</span><span class="p">)</span> </span><span id="L-2349"><a href="#L-2349"><span class="linenos" data-line="2349"></span></a> <span class="kr">else</span> <span class="c1">-- "reference(s)" command given</span> </span><span id="L-2350"><a href="#L-2350"><span class="linenos" data-line="2350"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">reference</span><span class="p">)</span> </span><span id="L-2351"><a href="#L-2351"><span class="linenos" data-line="2351"></span></a> <span class="kr">end</span> </span><span id="L-2352"><a href="#L-2352"><span class="linenos" data-line="2352"></span></a> </span><span id="L-2353"><a href="#L-2353"><span class="linenos" data-line="2353"></span></a> <span class="c1">-- if a "qualifier(s)" command and no "propert(y|ies)" command has been given, make the movable separator a semicolon</span> </span><span id="L-2354"><a href="#L-2354"><span class="linenos" data-line="2354"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2355"><a href="#L-2355"><span class="linenos" data-line="2355"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">parameters</span><span class="p">.</span><span class="n">separator</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">";"</span><span class="p">}</span> </span><span id="L-2356"><a href="#L-2356"><span class="linenos" data-line="2356"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">call</span> <span class="o">=</span> <span class="s1">'qual'</span> </span><span id="L-2357"><a href="#L-2357"><span class="linenos" data-line="2357"></span></a> <span class="kr">end</span> </span><span id="L-2358"><a href="#L-2358"><span class="linenos" data-line="2358"></span></a> </span><span id="L-2359"><a href="#L-2359"><span class="linenos" data-line="2359"></span></a> <span class="c1">-- if only "reference(s)" has been given, set the default separator to none (except when raw)</span> </span><span id="L-2360"><a href="#L-2360"><span class="linenos" data-line="2360"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2361"><a href="#L-2361"><span class="linenos" data-line="2361"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">].</span><span class="n">rawValue</span> <span class="kr">then</span> </span><span id="L-2362"><a href="#L-2362"><span class="linenos" data-line="2362"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2363"><a href="#L-2363"><span class="linenos" data-line="2363"></span></a> <span class="kr">end</span> </span><span id="L-2364"><a href="#L-2364"><span class="linenos" data-line="2364"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">call</span> <span class="o">=</span> <span class="s1">'ref'</span> </span><span id="L-2365"><a href="#L-2365"><span class="linenos" data-line="2365"></span></a> <span class="kr">end</span> </span><span id="L-2366"><a href="#L-2366"><span class="linenos" data-line="2366"></span></a> </span><span id="L-2367"><a href="#L-2367"><span class="linenos" data-line="2367"></span></a> <span class="c1">-- if exactly one "qualifier(s)" command has been given, make "sep%q" point to "sep%q1" to make them equivalent</span> </span><span id="L-2368"><a href="#L-2368"><span class="linenos" data-line="2368"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">==</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-2369"><a href="#L-2369"><span class="linenos" data-line="2369"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">separators</span><span class="p">[</span><span class="s2">"sep"</span><span class="o">..</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="o">..</span><span class="s2">"1"</span><span class="p">]</span> </span><span id="L-2370"><a href="#L-2370"><span class="linenos" data-line="2370"></span></a> <span class="kr">end</span> </span><span id="L-2371"><a href="#L-2371"><span class="linenos" data-line="2371"></span></a> </span><span id="L-2372"><a href="#L-2372"><span class="linenos" data-line="2372"></span></a> <span class="c1">-- process overridden separator values;</span> </span><span id="L-2373"><a href="#L-2373"><span class="linenos" data-line="2373"></span></a> <span class="c1">-- must come AFTER tweaking the default separators</span> </span><span id="L-2374"><a href="#L-2374"><span class="linenos" data-line="2374"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">processSeparators</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2375"><a href="#L-2375"><span class="linenos" data-line="2375"></span></a> </span><span id="L-2376"><a href="#L-2376"><span class="linenos" data-line="2376"></span></a> <span class="c1">-- define the hooks that should be called (getProperty, getQualifiers, getReferences);</span> </span><span id="L-2377"><a href="#L-2377"><span class="linenos" data-line="2377"></span></a> <span class="c1">-- only define a hook if both its command ("propert(y|ies)", "reference(s)", "qualifier(s)") and its parameter ("%p", "%r", "%q1", "%q2", "%q3") have been given</span> </span><span id="L-2378"><a href="#L-2378"><span class="linenos" data-line="2378"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2379"><a href="#L-2379"><span class="linenos" data-line="2379"></span></a> <span class="c1">-- e.g. 'formatParams["%q1"] or formatParams["%q"]' to define hook even if "%q1" was not defined to be able to build a complete value for "%q"</span> </span><span id="L-2380"><a href="#L-2380"><span class="linenos" data-line="2380"></span></a> <span class="kr">if</span> <span class="n">formatParams</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="ow">or</span> <span class="n">formatParams</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)]</span> <span class="kr">then</span> </span><span id="L-2381"><a href="#L-2381"><span class="linenos" data-line="2381"></span></a> <span class="n">hooks</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">getHookName</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-2382"><a href="#L-2382"><span class="linenos" data-line="2382"></span></a> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2383"><a href="#L-2383"><span class="linenos" data-line="2383"></span></a> <span class="kr">end</span> </span><span id="L-2384"><a href="#L-2384"><span class="linenos" data-line="2384"></span></a> <span class="kr">end</span> </span><span id="L-2385"><a href="#L-2385"><span class="linenos" data-line="2385"></span></a> </span><span id="L-2386"><a href="#L-2386"><span class="linenos" data-line="2386"></span></a> <span class="c1">-- the "%q" parameter is not attached to a state, but is a collection of the results of multiple states (attached to "%q1", "%q2", "%q3", ...);</span> </span><span id="L-2387"><a href="#L-2387"><span class="linenos" data-line="2387"></span></a> <span class="c1">-- so if this parameter is given then this hook must be defined separately, but only if at least one "qualifier(s)" command has been given</span> </span><span id="L-2388"><a href="#L-2388"><span class="linenos" data-line="2388"></span></a> <span class="kr">if</span> <span class="n">formatParams</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">.</span><span class="n">qualifiersCount</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-2389"><a href="#L-2389"><span class="linenos" data-line="2389"></span></a> <span class="n">hooks</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="o">=</span> <span class="n">getHookName</span><span class="p">(</span><span class="n">parameters</span><span class="p">.</span><span class="n">qualifier</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-2390"><a href="#L-2390"><span class="linenos" data-line="2390"></span></a> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2391"><a href="#L-2391"><span class="linenos" data-line="2391"></span></a> <span class="kr">end</span> </span><span id="L-2392"><a href="#L-2392"><span class="linenos" data-line="2392"></span></a> </span><span id="L-2393"><a href="#L-2393"><span class="linenos" data-line="2393"></span></a> <span class="c1">-- create a state for "properties" if it doesn't exist yet, which will be used as a base configuration for each claim iteration;</span> </span><span id="L-2394"><a href="#L-2394"><span class="linenos" data-line="2394"></span></a> <span class="c1">-- must come AFTER defining the hooks</span> </span><span id="L-2395"><a href="#L-2395"><span class="linenos" data-line="2395"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2396"><a href="#L-2396"><span class="linenos" data-line="2396"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]</span> <span class="o">=</span> <span class="n">State</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">_</span><span class="p">)</span> </span><span id="L-2397"><a href="#L-2397"><span class="linenos" data-line="2397"></span></a> </span><span id="L-2398"><a href="#L-2398"><span class="linenos" data-line="2398"></span></a> <span class="c1">-- if the "single" flag has been given then this state should be equivalent to "property" (singular)</span> </span><span id="L-2399"><a href="#L-2399"><span class="linenos" data-line="2399"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">singleClaim</span> <span class="kr">then</span> </span><span id="L-2400"><a href="#L-2400"><span class="linenos" data-line="2400"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">].</span><span class="n">singleValue</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-2401"><a href="#L-2401"><span class="linenos" data-line="2401"></span></a> <span class="kr">end</span> </span><span id="L-2402"><a href="#L-2402"><span class="linenos" data-line="2402"></span></a> <span class="kr">end</span> </span><span id="L-2403"><a href="#L-2403"><span class="linenos" data-line="2403"></span></a> </span><span id="L-2404"><a href="#L-2404"><span class="linenos" data-line="2404"></span></a> <span class="c1">-- if the "sourced" flag has been given then create a state for "reference" if it doesn't exist yet, using default values,</span> </span><span id="L-2405"><a href="#L-2405"><span class="linenos" data-line="2405"></span></a> <span class="c1">-- which must exist in order to be able to determine if a claim has any references;</span> </span><span id="L-2406"><a href="#L-2406"><span class="linenos" data-line="2406"></span></a> <span class="c1">-- must come AFTER defining the hooks</span> </span><span id="L-2407"><a href="#L-2407"><span class="linenos" data-line="2407"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">sourcedOnly</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">reference</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2408"><a href="#L-2408"><span class="linenos" data-line="2408"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">processFlagOrCommand</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">.</span><span class="n">reference</span><span class="p">)</span> <span class="c1">-- use singular "reference" to minimize overhead</span> </span><span id="L-2409"><a href="#L-2409"><span class="linenos" data-line="2409"></span></a> <span class="kr">end</span> </span><span id="L-2410"><a href="#L-2410"><span class="linenos" data-line="2410"></span></a> </span><span id="L-2411"><a href="#L-2411"><span class="linenos" data-line="2411"></span></a> <span class="c1">-- set the parsed format and the separators (and optional punctuation mark);</span> </span><span id="L-2412"><a href="#L-2412"><span class="linenos" data-line="2412"></span></a> <span class="c1">-- must come AFTER creating the additonal states</span> </span><span id="L-2413"><a href="#L-2413"><span class="linenos" data-line="2413"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">setFormatAndSeparators</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">],</span> <span class="n">parsedFormat</span><span class="p">)</span> </span><span id="L-2414"><a href="#L-2414"><span class="linenos" data-line="2414"></span></a> </span><span id="L-2415"><a href="#L-2415"><span class="linenos" data-line="2415"></span></a> <span class="c1">-- process qualifier matching values, analogous to _.propertyValue</span> </span><span id="L-2416"><a href="#L-2416"><span class="linenos" data-line="2416"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2417"><a href="#L-2417"><span class="linenos" data-line="2417"></span></a> <span class="n">i</span> <span class="o">=</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> </span><span id="L-2418"><a href="#L-2418"><span class="linenos" data-line="2418"></span></a> </span><span id="L-2419"><a href="#L-2419"><span class="linenos" data-line="2419"></span></a> <span class="kr">if</span> <span class="n">i</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'^[Pp]%d+$'</span><span class="p">)</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">aliasesP</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2420"><a href="#L-2420"><span class="linenos" data-line="2420"></span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">replaceSpecialChars</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> </span><span id="L-2421"><a href="#L-2421"><span class="linenos" data-line="2421"></span></a> </span><span id="L-2422"><a href="#L-2422"><span class="linenos" data-line="2422"></span></a> <span class="c1">-- check for special qualifier value 'somevalue'</span> </span><span id="L-2423"><a href="#L-2423"><span class="linenos" data-line="2423"></span></a> <span class="kr">if</span> <span class="n">v</span> <span class="o">~=</span> <span class="s2">""</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2424"><a href="#L-2424"><span class="linenos" data-line="2424"></span></a> <span class="n">v</span> <span class="o">=</span> <span class="s2">" "</span> <span class="c1">-- single space represents 'somevalue'</span> </span><span id="L-2425"><a href="#L-2425"><span class="linenos" data-line="2425"></span></a> <span class="kr">end</span> </span><span id="L-2426"><a href="#L-2426"><span class="linenos" data-line="2426"></span></a> </span><span id="L-2427"><a href="#L-2427"><span class="linenos" data-line="2427"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">qualifierIDsAndValues</span><span class="p">[</span><span class="n">replaceAlias</span><span class="p">(</span><span class="n">i</span><span class="p">):</span><span class="n">upper</span><span class="p">()]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-2428"><a href="#L-2428"><span class="linenos" data-line="2428"></span></a> <span class="kr">end</span> </span><span id="L-2429"><a href="#L-2429"><span class="linenos" data-line="2429"></span></a> <span class="kr">end</span> </span><span id="L-2430"><a href="#L-2430"><span class="linenos" data-line="2430"></span></a> </span><span id="L-2431"><a href="#L-2431"><span class="linenos" data-line="2431"></span></a> <span class="c1">-- first sort the claims on rank to pre-define the order of output (preferred first, then normal, then deprecated)</span> </span><span id="L-2432"><a href="#L-2432"><span class="linenos" data-line="2432"></span></a> <span class="n">claims</span> <span class="o">=</span> <span class="n">sortOnRank</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">_</span><span class="p">.</span><span class="n">flagRank</span> <span class="ow">or</span> <span class="n">_</span><span class="p">.</span><span class="n">atDate</span> <span class="ow">or</span> <span class="n">_</span><span class="p">.</span><span class="n">flagPeriod</span><span class="p">)</span> </span><span id="L-2433"><a href="#L-2433"><span class="linenos" data-line="2433"></span></a> </span><span id="L-2434"><a href="#L-2434"><span class="linenos" data-line="2434"></span></a> <span class="c1">-- then iterate through the claims to collect values</span> </span><span id="L-2435"><a href="#L-2435"><span class="linenos" data-line="2435"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">_</span><span class="p">:</span><span class="n">concatValues</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">states</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">property</span><span class="p">]:</span><span class="n">iterate</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">hooks</span><span class="p">,</span> <span class="n">State</span><span class="p">.</span><span class="n">claimMatches</span><span class="p">))</span> <span class="c1">-- pass property state with level 1 hooks and matchHook</span> </span><span id="L-2436"><a href="#L-2436"><span class="linenos" data-line="2436"></span></a> </span><span id="L-2437"><a href="#L-2437"><span class="linenos" data-line="2437"></span></a> <span class="c1">-- if desired, add a clickable icon that may be used to edit the returned values on Wikidata</span> </span><span id="L-2438"><a href="#L-2438"><span class="linenos" data-line="2438"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">editable</span> <span class="ow">and</span> <span class="n">value</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2439"><a href="#L-2439"><span class="linenos" data-line="2439"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="n">_</span><span class="p">:</span><span class="n">getEditIcon</span><span class="p">()</span> </span><span id="L-2440"><a href="#L-2440"><span class="linenos" data-line="2440"></span></a> <span class="kr">end</span> </span><span id="L-2441"><a href="#L-2441"><span class="linenos" data-line="2441"></span></a> </span><span id="L-2442"><a href="#L-2442"><span class="linenos" data-line="2442"></span></a> <span class="c1">-- warning on preview</span> </span><span id="L-2443"><a href="#L-2443"><span class="linenos" data-line="2443"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s1">''</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">tracking</span> <span class="kr">then</span> </span><span id="L-2444"><a href="#L-2444"><span class="linenos" data-line="2444"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">addWarning</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">tag</span><span class="p">(</span> </span><span id="L-2445"><a href="#L-2445"><span class="linenos" data-line="2445"></span></a> <span class="s1">'span'</span><span class="p">,</span> </span><span id="L-2446"><a href="#L-2446"><span class="linenos" data-line="2446"></span></a> <span class="p">{</span> <span class="n">class</span> <span class="o">=</span> <span class="s1">'error'</span><span class="p">,</span> <span class="n">style</span> <span class="o">=</span> <span class="s1">'font-weight: normal; font-size: inherit'</span> <span class="p">},</span> </span><span id="L-2447"><a href="#L-2447"><span class="linenos" data-line="2447"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">getTitle</span><span class="p">()</span> <span class="o">..</span> <span class="s1">': '</span> </span><span id="L-2448"><a href="#L-2448"><span class="linenos" data-line="2448"></span></a> <span class="o">..</span> <span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">call</span> <span class="o">==</span> <span class="s1">'ref'</span> </span><span id="L-2449"><a href="#L-2449"><span class="linenos" data-line="2449"></span></a> <span class="ow">and</span> <span class="s1">'Източник на свойство'</span> </span><span id="L-2450"><a href="#L-2450"><span class="linenos" data-line="2450"></span></a> <span class="ow">or</span> <span class="n">_</span><span class="p">.</span><span class="n">call</span> <span class="o">==</span> <span class="s1">'qual'</span> </span><span id="L-2451"><a href="#L-2451"><span class="linenos" data-line="2451"></span></a> <span class="ow">and</span> <span class="s1">'Квалификатор на свойство'</span> </span><span id="L-2452"><a href="#L-2452"><span class="linenos" data-line="2452"></span></a> <span class="ow">or</span> <span class="s1">'Свойство'</span><span class="p">)</span> </span><span id="L-2453"><a href="#L-2453"><span class="linenos" data-line="2453"></span></a> <span class="o">..</span> <span class="s1">' #'</span> <span class="o">..</span> <span class="n">_</span><span class="p">.</span><span class="n">propertyID</span> <span class="o">..</span> <span class="n">_</span><span class="p">:</span><span class="n">getEditIcon</span><span class="p">()</span> </span><span id="L-2454"><a href="#L-2454"><span class="linenos" data-line="2454"></span></a> <span class="o">..</span> <span class="s1">' съдържа посочен за стойност обект на Уикиданни, чийто етикет няма описание на български.'</span> </span><span id="L-2455"><a href="#L-2455"><span class="linenos" data-line="2455"></span></a> <span class="p">))</span> </span><span id="L-2456"><a href="#L-2456"><span class="linenos" data-line="2456"></span></a> <span class="kr">end</span> </span><span id="L-2457"><a href="#L-2457"><span class="linenos" data-line="2457"></span></a> </span><span id="L-2458"><a href="#L-2458"><span class="linenos" data-line="2458"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-2459"><a href="#L-2459"><span class="linenos" data-line="2459"></span></a><span class="kr">end</span> </span><span id="L-2460"><a href="#L-2460"><span class="linenos" data-line="2460"></span></a> </span><span id="L-2461"><a href="#L-2461"><span class="linenos" data-line="2461"></span></a><span class="kr">function</span> <span class="nf">generalCommand</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">funcName</span><span class="p">)</span> </span><span id="L-2462"><a href="#L-2462"><span class="linenos" data-line="2462"></span></a> <span class="kd">local</span> <span class="n">_</span> <span class="o">=</span> <span class="n">Config</span><span class="p">.</span><span class="n">new</span><span class="p">()</span> </span><span id="L-2463"><a href="#L-2463"><span class="linenos" data-line="2463"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">curState</span> <span class="o">=</span> <span class="n">State</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">_</span><span class="p">)</span> </span><span id="L-2464"><a href="#L-2464"><span class="linenos" data-line="2464"></span></a> </span><span id="L-2465"><a href="#L-2465"><span class="linenos" data-line="2465"></span></a> <span class="kd">local</span> <span class="n">lastArg</span> </span><span id="L-2466"><a href="#L-2466"><span class="linenos" data-line="2466"></span></a> <span class="kd">local</span> <span class="n">value</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-2467"><a href="#L-2467"><span class="linenos" data-line="2467"></span></a> </span><span id="L-2468"><a href="#L-2468"><span class="linenos" data-line="2468"></span></a> <span class="kr">repeat</span> </span><span id="L-2469"><a href="#L-2469"><span class="linenos" data-line="2469"></span></a> <span class="n">lastArg</span> <span class="o">=</span> <span class="n">nextArg</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2470"><a href="#L-2470"><span class="linenos" data-line="2470"></span></a> <span class="kr">until</span> <span class="ow">not</span> <span class="n">_</span><span class="p">:</span><span class="n">processFlag</span><span class="p">(</span><span class="n">lastArg</span><span class="p">)</span> </span><span id="L-2471"><a href="#L-2471"><span class="linenos" data-line="2471"></span></a> </span><span id="L-2472"><a href="#L-2472"><span class="linenos" data-line="2472"></span></a> <span class="c1">-- use the entity ID from the positional arguments if given</span> </span><span id="L-2473"><a href="#L-2473"><span class="linenos" data-line="2473"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">getEntityId</span><span class="p">(</span><span class="n">lastArg</span><span class="p">,</span> <span class="kc">false</span><span class="p">)</span> </span><span id="L-2474"><a href="#L-2474"><span class="linenos" data-line="2474"></span></a> </span><span id="L-2475"><a href="#L-2475"><span class="linenos" data-line="2475"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="ow">or</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2476"><a href="#L-2476"><span class="linenos" data-line="2476"></span></a> <span class="c1">-- if no positional ID is given, use the eid argument if given</span> </span><span id="L-2477"><a href="#L-2477"><span class="linenos" data-line="2477"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">getEntityId</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="n">p</span><span class="p">.</span><span class="n">args</span><span class="p">.</span><span class="n">eid</span><span class="p">],</span> <span class="kc">true</span><span class="p">)</span> </span><span id="L-2478"><a href="#L-2478"><span class="linenos" data-line="2478"></span></a> </span><span id="L-2479"><a href="#L-2479"><span class="linenos" data-line="2479"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2480"><a href="#L-2480"><span class="linenos" data-line="2480"></span></a> <span class="c1">-- if eid was explicitly set to empty, then this returns an empty string</span> </span><span id="L-2481"><a href="#L-2481"><span class="linenos" data-line="2481"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-2482"><a href="#L-2482"><span class="linenos" data-line="2482"></span></a> <span class="kr">elseif</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="kr">then</span> </span><span id="L-2483"><a href="#L-2483"><span class="linenos" data-line="2483"></span></a> <span class="c1">-- by default, use the item-entity connected to the current page</span> </span><span id="L-2484"><a href="#L-2484"><span class="linenos" data-line="2484"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> </span><span id="L-2485"><a href="#L-2485"><span class="linenos" data-line="2485"></span></a> <span class="kr">end</span> </span><span id="L-2486"><a href="#L-2486"><span class="linenos" data-line="2486"></span></a> <span class="kr">end</span> </span><span id="L-2487"><a href="#L-2487"><span class="linenos" data-line="2487"></span></a> </span><span id="L-2488"><a href="#L-2488"><span class="linenos" data-line="2488"></span></a> <span class="c1">-- serve according to the given command</span> </span><span id="L-2489"><a href="#L-2489"><span class="linenos" data-line="2489"></span></a> <span class="kr">if</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">label</span> <span class="kr">then</span> </span><span id="L-2490"><a href="#L-2490"><span class="linenos" data-line="2490"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">_</span><span class="p">:</span><span class="n">getLabel</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">,</span> <span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">rawValue</span><span class="p">,</span> <span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">linked</span><span class="p">,</span> <span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">shortName</span><span class="p">)</span> </span><span id="L-2491"><a href="#L-2491"><span class="linenos" data-line="2491"></span></a> <span class="kr">elseif</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">title</span> <span class="kr">then</span> </span><span id="L-2492"><a href="#L-2492"><span class="linenos" data-line="2492"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">inSitelinks</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-2493"><a href="#L-2493"><span class="linenos" data-line="2493"></span></a> </span><span id="L-2494"><a href="#L-2494"><span class="linenos" data-line="2494"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"Q"</span> <span class="kr">then</span> </span><span id="L-2495"><a href="#L-2495"><span class="linenos" data-line="2495"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">sitelink</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">)</span> </span><span id="L-2496"><a href="#L-2496"><span class="linenos" data-line="2496"></span></a> <span class="kr">end</span> </span><span id="L-2497"><a href="#L-2497"><span class="linenos" data-line="2497"></span></a> </span><span id="L-2498"><a href="#L-2498"><span class="linenos" data-line="2498"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">linked</span> <span class="ow">and</span> <span class="n">value</span> <span class="kr">then</span> </span><span id="L-2499"><a href="#L-2499"><span class="linenos" data-line="2499"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">buildWikilink</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> </span><span id="L-2500"><a href="#L-2500"><span class="linenos" data-line="2500"></span></a> <span class="kr">end</span> </span><span id="L-2501"><a href="#L-2501"><span class="linenos" data-line="2501"></span></a> <span class="kr">elseif</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">description</span> <span class="kr">then</span> </span><span id="L-2502"><a href="#L-2502"><span class="linenos" data-line="2502"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntity</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">)</span> </span><span id="L-2503"><a href="#L-2503"><span class="linenos" data-line="2503"></span></a> </span><span id="L-2504"><a href="#L-2504"><span class="linenos" data-line="2504"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">descriptions</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">descriptions</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">langCode</span><span class="p">]</span> <span class="ow">and</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">descriptions</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">langCode</span><span class="p">].</span><span class="n">language</span> <span class="o">==</span> <span class="n">_</span><span class="p">.</span><span class="n">langCode</span> <span class="kr">then</span> </span><span id="L-2505"><a href="#L-2505"><span class="linenos" data-line="2505"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">descriptions</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">langCode</span><span class="p">].</span><span class="n">value</span> </span><span id="L-2506"><a href="#L-2506"><span class="linenos" data-line="2506"></span></a> <span class="kr">end</span> </span><span id="L-2507"><a href="#L-2507"><span class="linenos" data-line="2507"></span></a> <span class="kr">else</span> </span><span id="L-2508"><a href="#L-2508"><span class="linenos" data-line="2508"></span></a> <span class="kd">local</span> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> </span><span id="L-2509"><a href="#L-2509"><span class="linenos" data-line="2509"></span></a> <span class="kd">local</span> <span class="n">hooks</span> <span class="o">=</span> <span class="p">{</span><span class="n">count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">}</span> </span><span id="L-2510"><a href="#L-2510"><span class="linenos" data-line="2510"></span></a> </span><span id="L-2511"><a href="#L-2511"><span class="linenos" data-line="2511"></span></a> <span class="kr">if</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">badge</span> <span class="kr">then</span> </span><span id="L-2512"><a href="#L-2512"><span class="linenos" data-line="2512"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">.</span><span class="n">singleValue</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-2513"><a href="#L-2513"><span class="linenos" data-line="2513"></span></a> <span class="kr">end</span> </span><span id="L-2514"><a href="#L-2514"><span class="linenos" data-line="2514"></span></a> </span><span id="L-2515"><a href="#L-2515"><span class="linenos" data-line="2515"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntity</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">entityID</span><span class="p">)</span> </span><span id="L-2516"><a href="#L-2516"><span class="linenos" data-line="2516"></span></a> </span><span id="L-2517"><a href="#L-2517"><span class="linenos" data-line="2517"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span> <span class="kr">then</span> </span><span id="L-2518"><a href="#L-2518"><span class="linenos" data-line="2518"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- we cannot continue without an entity</span> </span><span id="L-2519"><a href="#L-2519"><span class="linenos" data-line="2519"></span></a> <span class="kr">end</span> </span><span id="L-2520"><a href="#L-2520"><span class="linenos" data-line="2520"></span></a> </span><span id="L-2521"><a href="#L-2521"><span class="linenos" data-line="2521"></span></a> <span class="kr">if</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">aliases</span> <span class="kr">then</span> </span><span id="L-2522"><a href="#L-2522"><span class="linenos" data-line="2522"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">aliases</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">aliases</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">langCode</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2523"><a href="#L-2523"><span class="linenos" data-line="2523"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- there is no use to continue without any aliasses</span> </span><span id="L-2524"><a href="#L-2524"><span class="linenos" data-line="2524"></span></a> <span class="kr">end</span> </span><span id="L-2525"><a href="#L-2525"><span class="linenos" data-line="2525"></span></a> </span><span id="L-2526"><a href="#L-2526"><span class="linenos" data-line="2526"></span></a> <span class="kd">local</span> <span class="n">aliases</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">aliases</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">langCode</span><span class="p">]</span> </span><span id="L-2527"><a href="#L-2527"><span class="linenos" data-line="2527"></span></a> </span><span id="L-2528"><a href="#L-2528"><span class="linenos" data-line="2528"></span></a> <span class="c1">-- parse the desired format, or parse the default aliases format</span> </span><span id="L-2529"><a href="#L-2529"><span class="linenos" data-line="2529"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2530"><a href="#L-2530"><span class="linenos" data-line="2530"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">])</span> </span><span id="L-2531"><a href="#L-2531"><span class="linenos" data-line="2531"></span></a> <span class="kr">else</span> </span><span id="L-2532"><a href="#L-2532"><span class="linenos" data-line="2532"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">alias</span><span class="p">)</span> </span><span id="L-2533"><a href="#L-2533"><span class="linenos" data-line="2533"></span></a> <span class="kr">end</span> </span><span id="L-2534"><a href="#L-2534"><span class="linenos" data-line="2534"></span></a> </span><span id="L-2535"><a href="#L-2535"><span class="linenos" data-line="2535"></span></a> <span class="c1">-- process overridden separator values;</span> </span><span id="L-2536"><a href="#L-2536"><span class="linenos" data-line="2536"></span></a> <span class="c1">-- must come AFTER tweaking the default separators</span> </span><span id="L-2537"><a href="#L-2537"><span class="linenos" data-line="2537"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">processSeparators</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2538"><a href="#L-2538"><span class="linenos" data-line="2538"></span></a> </span><span id="L-2539"><a href="#L-2539"><span class="linenos" data-line="2539"></span></a> <span class="c1">-- define the hook that should be called (getAlias);</span> </span><span id="L-2540"><a href="#L-2540"><span class="linenos" data-line="2540"></span></a> <span class="c1">-- only define the hook if the parameter ("%a") has been given</span> </span><span id="L-2541"><a href="#L-2541"><span class="linenos" data-line="2541"></span></a> <span class="kr">if</span> <span class="n">formatParams</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">alias</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2542"><a href="#L-2542"><span class="linenos" data-line="2542"></span></a> <span class="n">hooks</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="n">getHookName</span><span class="p">(</span><span class="n">parameters</span><span class="p">.</span><span class="n">alias</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-2543"><a href="#L-2543"><span class="linenos" data-line="2543"></span></a> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2544"><a href="#L-2544"><span class="linenos" data-line="2544"></span></a> <span class="kr">end</span> </span><span id="L-2545"><a href="#L-2545"><span class="linenos" data-line="2545"></span></a> </span><span id="L-2546"><a href="#L-2546"><span class="linenos" data-line="2546"></span></a> <span class="c1">-- set the parsed format and the separators (and optional punctuation mark)</span> </span><span id="L-2547"><a href="#L-2547"><span class="linenos" data-line="2547"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">setFormatAndSeparators</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">,</span> <span class="n">parsedFormat</span><span class="p">)</span> </span><span id="L-2548"><a href="#L-2548"><span class="linenos" data-line="2548"></span></a> </span><span id="L-2549"><a href="#L-2549"><span class="linenos" data-line="2549"></span></a> <span class="c1">-- iterate to collect values</span> </span><span id="L-2550"><a href="#L-2550"><span class="linenos" data-line="2550"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">_</span><span class="p">:</span><span class="n">concatValues</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">:</span><span class="n">iterate</span><span class="p">(</span><span class="n">aliases</span><span class="p">,</span> <span class="n">hooks</span><span class="p">))</span> </span><span id="L-2551"><a href="#L-2551"><span class="linenos" data-line="2551"></span></a> <span class="kr">elseif</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">badge</span> <span class="ow">or</span> <span class="n">funcName</span> <span class="o">==</span> <span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">.</span><span class="n">badges</span> <span class="kr">then</span> </span><span id="L-2552"><a href="#L-2552"><span class="linenos" data-line="2552"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">sitelinks</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">sitelinks</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">siteID</span><span class="p">]</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">sitelinks</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">siteID</span><span class="p">].</span><span class="n">badges</span> <span class="kr">then</span> </span><span id="L-2553"><a href="#L-2553"><span class="linenos" data-line="2553"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- there is no use to continue without any badges</span> </span><span id="L-2554"><a href="#L-2554"><span class="linenos" data-line="2554"></span></a> <span class="kr">end</span> </span><span id="L-2555"><a href="#L-2555"><span class="linenos" data-line="2555"></span></a> </span><span id="L-2556"><a href="#L-2556"><span class="linenos" data-line="2556"></span></a> <span class="kd">local</span> <span class="n">badges</span> <span class="o">=</span> <span class="n">_</span><span class="p">.</span><span class="n">entity</span><span class="p">.</span><span class="n">sitelinks</span><span class="p">[</span><span class="n">_</span><span class="p">.</span><span class="n">siteID</span><span class="p">].</span><span class="n">badges</span> </span><span id="L-2557"><a href="#L-2557"><span class="linenos" data-line="2557"></span></a> </span><span id="L-2558"><a href="#L-2558"><span class="linenos" data-line="2558"></span></a> <span class="n">_</span><span class="p">.</span><span class="n">inSitelinks</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-2559"><a href="#L-2559"><span class="linenos" data-line="2559"></span></a> </span><span id="L-2560"><a href="#L-2560"><span class="linenos" data-line="2560"></span></a> <span class="c1">-- parse the desired format, or parse the default aliases format</span> </span><span id="L-2561"><a href="#L-2561"><span class="linenos" data-line="2561"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2562"><a href="#L-2562"><span class="linenos" data-line="2562"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="s2">"format"</span><span class="p">])</span> </span><span id="L-2563"><a href="#L-2563"><span class="linenos" data-line="2563"></span></a> <span class="kr">else</span> </span><span id="L-2564"><a href="#L-2564"><span class="linenos" data-line="2564"></span></a> <span class="n">parsedFormat</span><span class="p">,</span> <span class="n">formatParams</span> <span class="o">=</span> <span class="n">parseFormat</span><span class="p">(</span><span class="n">formats</span><span class="p">.</span><span class="n">badge</span><span class="p">)</span> </span><span id="L-2565"><a href="#L-2565"><span class="linenos" data-line="2565"></span></a> <span class="kr">end</span> </span><span id="L-2566"><a href="#L-2566"><span class="linenos" data-line="2566"></span></a> </span><span id="L-2567"><a href="#L-2567"><span class="linenos" data-line="2567"></span></a> <span class="c1">-- process overridden separator values;</span> </span><span id="L-2568"><a href="#L-2568"><span class="linenos" data-line="2568"></span></a> <span class="c1">-- must come AFTER tweaking the default separators</span> </span><span id="L-2569"><a href="#L-2569"><span class="linenos" data-line="2569"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">processSeparators</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2570"><a href="#L-2570"><span class="linenos" data-line="2570"></span></a> </span><span id="L-2571"><a href="#L-2571"><span class="linenos" data-line="2571"></span></a> <span class="c1">-- define the hook that should be called (getBadge);</span> </span><span id="L-2572"><a href="#L-2572"><span class="linenos" data-line="2572"></span></a> <span class="c1">-- only define the hook if the parameter ("%b") has been given</span> </span><span id="L-2573"><a href="#L-2573"><span class="linenos" data-line="2573"></span></a> <span class="kr">if</span> <span class="n">formatParams</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">badge</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2574"><a href="#L-2574"><span class="linenos" data-line="2574"></span></a> <span class="n">hooks</span><span class="p">[</span><span class="n">parameters</span><span class="p">.</span><span class="n">badge</span><span class="p">]</span> <span class="o">=</span> <span class="n">getHookName</span><span class="p">(</span><span class="n">parameters</span><span class="p">.</span><span class="n">badge</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-2575"><a href="#L-2575"><span class="linenos" data-line="2575"></span></a> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">hooks</span><span class="p">.</span><span class="n">count</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-2576"><a href="#L-2576"><span class="linenos" data-line="2576"></span></a> <span class="kr">end</span> </span><span id="L-2577"><a href="#L-2577"><span class="linenos" data-line="2577"></span></a> </span><span id="L-2578"><a href="#L-2578"><span class="linenos" data-line="2578"></span></a> <span class="c1">-- set the parsed format and the separators (and optional punctuation mark)</span> </span><span id="L-2579"><a href="#L-2579"><span class="linenos" data-line="2579"></span></a> <span class="n">_</span><span class="p">:</span><span class="n">setFormatAndSeparators</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">,</span> <span class="n">parsedFormat</span><span class="p">)</span> </span><span id="L-2580"><a href="#L-2580"><span class="linenos" data-line="2580"></span></a> </span><span id="L-2581"><a href="#L-2581"><span class="linenos" data-line="2581"></span></a> <span class="c1">-- iterate to collect values</span> </span><span id="L-2582"><a href="#L-2582"><span class="linenos" data-line="2582"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">_</span><span class="p">:</span><span class="n">concatValues</span><span class="p">(</span><span class="n">_</span><span class="p">.</span><span class="n">curState</span><span class="p">:</span><span class="n">iterate</span><span class="p">(</span><span class="n">badges</span><span class="p">,</span> <span class="n">hooks</span><span class="p">))</span> </span><span id="L-2583"><a href="#L-2583"><span class="linenos" data-line="2583"></span></a> <span class="kr">end</span> </span><span id="L-2584"><a href="#L-2584"><span class="linenos" data-line="2584"></span></a> <span class="kr">end</span> </span><span id="L-2585"><a href="#L-2585"><span class="linenos" data-line="2585"></span></a> </span><span id="L-2586"><a href="#L-2586"><span class="linenos" data-line="2586"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-2587"><a href="#L-2587"><span class="linenos" data-line="2587"></span></a> </span><span id="L-2588"><a href="#L-2588"><span class="linenos" data-line="2588"></span></a> <span class="kr">if</span> <span class="n">_</span><span class="p">.</span><span class="n">editable</span> <span class="ow">and</span> <span class="n">value</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-2589"><a href="#L-2589"><span class="linenos" data-line="2589"></span></a> <span class="c1">-- if desired, add a clickable icon that may be used to edit the returned value on Wikidata</span> </span><span id="L-2590"><a href="#L-2590"><span class="linenos" data-line="2590"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">..</span> <span class="n">_</span><span class="p">:</span><span class="n">getEditIcon</span><span class="p">()</span> </span><span id="L-2591"><a href="#L-2591"><span class="linenos" data-line="2591"></span></a> <span class="kr">end</span> </span><span id="L-2592"><a href="#L-2592"><span class="linenos" data-line="2592"></span></a> </span><span id="L-2593"><a href="#L-2593"><span class="linenos" data-line="2593"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-2594"><a href="#L-2594"><span class="linenos" data-line="2594"></span></a><span class="kr">end</span> </span><span id="L-2595"><a href="#L-2595"><span class="linenos" data-line="2595"></span></a> </span><span id="L-2596"><a href="#L-2596"><span class="linenos" data-line="2596"></span></a><span class="c1">-- modules that include this module should call the functions with an underscore prepended, e.g.: p._property(args)</span> </span><span id="L-2597"><a href="#L-2597"><span class="linenos" data-line="2597"></span></a><span class="kr">function</span> <span class="nf">establishCommands</span><span class="p">(</span><span class="n">commandList</span><span class="p">,</span> <span class="n">commandFunc</span><span class="p">)</span> </span><span id="L-2598"><a href="#L-2598"><span class="linenos" data-line="2598"></span></a> <span class="kr">for</span> <span class="n">commandIndex</span><span class="p">,</span> <span class="n">commandName</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">commandList</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-2599"><a href="#L-2599"><span class="linenos" data-line="2599"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">wikitextWrapper</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-2600"><a href="#L-2600"><span class="linenos" data-line="2600"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">copyTable</span><span class="p">(</span><span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2601"><a href="#L-2601"><span class="linenos" data-line="2601"></span></a> <span class="n">args</span><span class="p">.</span><span class="n">pointer</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-2602"><a href="#L-2602"><span class="linenos" data-line="2602"></span></a> <span class="n">loadSubmodules</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-2603"><a href="#L-2603"><span class="linenos" data-line="2603"></span></a> <span class="kr">return</span> <span class="n">commandFunc</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">commandName</span><span class="p">)</span> </span><span id="L-2604"><a href="#L-2604"><span class="linenos" data-line="2604"></span></a> <span class="kr">end</span> </span><span id="L-2605"><a href="#L-2605"><span class="linenos" data-line="2605"></span></a> <span class="n">p</span><span class="p">[</span><span class="n">commandName</span><span class="p">]</span> <span class="o">=</span> <span class="n">wikitextWrapper</span> </span><span id="L-2606"><a href="#L-2606"><span class="linenos" data-line="2606"></span></a> </span><span id="L-2607"><a href="#L-2607"><span class="linenos" data-line="2607"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">luaWrapper</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2608"><a href="#L-2608"><span class="linenos" data-line="2608"></span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">copyTable</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2609"><a href="#L-2609"><span class="linenos" data-line="2609"></span></a> <span class="n">args</span><span class="p">.</span><span class="n">pointer</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-2610"><a href="#L-2610"><span class="linenos" data-line="2610"></span></a> <span class="n">loadSubmodules</span><span class="p">()</span> </span><span id="L-2611"><a href="#L-2611"><span class="linenos" data-line="2611"></span></a> <span class="kr">return</span> <span class="n">commandFunc</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">commandName</span><span class="p">)</span> </span><span id="L-2612"><a href="#L-2612"><span class="linenos" data-line="2612"></span></a> <span class="kr">end</span> </span><span id="L-2613"><a href="#L-2613"><span class="linenos" data-line="2613"></span></a> <span class="n">p</span><span class="p">[</span><span class="s2">"_"</span> <span class="o">..</span> <span class="n">commandName</span><span class="p">]</span> <span class="o">=</span> <span class="n">luaWrapper</span> </span><span id="L-2614"><a href="#L-2614"><span class="linenos" data-line="2614"></span></a> <span class="kr">end</span> </span><span id="L-2615"><a href="#L-2615"><span class="linenos" data-line="2615"></span></a><span class="kr">end</span> </span><span id="L-2616"><a href="#L-2616"><span class="linenos" data-line="2616"></span></a> </span><span id="L-2617"><a href="#L-2617"><span class="linenos" data-line="2617"></span></a><span class="n">establishCommands</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">claimCommands</span><span class="p">,</span> <span class="n">claimCommand</span><span class="p">)</span> </span><span id="L-2618"><a href="#L-2618"><span class="linenos" data-line="2618"></span></a><span class="n">establishCommands</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">generalCommands</span><span class="p">,</span> <span class="n">generalCommand</span><span class="p">)</span> </span><span id="L-2619"><a href="#L-2619"><span class="linenos" data-line="2619"></span></a> </span><span id="L-2620"><a href="#L-2620"><span class="linenos" data-line="2620"></span></a><span class="c1">-- main function that is supposed to be used by wrapper templates</span> </span><span id="L-2621"><a href="#L-2621"><span class="linenos" data-line="2621"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">main</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-2622"><a href="#L-2622"><span class="linenos" data-line="2622"></span></a> <span class="kd">local</span> <span class="n">f</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">v</span> </span><span id="L-2623"><a href="#L-2623"><span class="linenos" data-line="2623"></span></a> </span><span id="L-2624"><a href="#L-2624"><span class="linenos" data-line="2624"></span></a> <span class="n">loadSubmodules</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-2625"><a href="#L-2625"><span class="linenos" data-line="2625"></span></a> </span><span id="L-2626"><a href="#L-2626"><span class="linenos" data-line="2626"></span></a> <span class="c1">-- get the parent frame to take the arguments that were passed to the wrapper template</span> </span><span id="L-2627"><a href="#L-2627"><span class="linenos" data-line="2627"></span></a> <span class="n">frame</span> <span class="o">=</span> <span class="n">frame</span><span class="p">:</span><span class="n">getParent</span><span class="p">()</span> <span class="ow">or</span> <span class="n">frame</span> </span><span id="L-2628"><a href="#L-2628"><span class="linenos" data-line="2628"></span></a> </span><span id="L-2629"><a href="#L-2629"><span class="linenos" data-line="2629"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-2630"><a href="#L-2630"><span class="linenos" data-line="2630"></span></a> <span class="n">throwError</span><span class="p">(</span><span class="s2">"no-function-specified"</span><span class="p">)</span> </span><span id="L-2631"><a href="#L-2631"><span class="linenos" data-line="2631"></span></a> <span class="kr">end</span> </span><span id="L-2632"><a href="#L-2632"><span class="linenos" data-line="2632"></span></a> </span><span id="L-2633"><a href="#L-2633"><span class="linenos" data-line="2633"></span></a> <span class="n">f</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">trim</span><span class="p">(</span><span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> </span><span id="L-2634"><a href="#L-2634"><span class="linenos" data-line="2634"></span></a> </span><span id="L-2635"><a href="#L-2635"><span class="linenos" data-line="2635"></span></a> <span class="kr">if</span> <span class="n">f</span> <span class="o">==</span> <span class="s2">"main"</span> <span class="kr">then</span> </span><span id="L-2636"><a href="#L-2636"><span class="linenos" data-line="2636"></span></a> <span class="n">throwError</span><span class="p">(</span><span class="s2">"main-called-twice"</span><span class="p">)</span> </span><span id="L-2637"><a href="#L-2637"><span class="linenos" data-line="2637"></span></a> <span class="kr">end</span> </span><span id="L-2638"><a href="#L-2638"><span class="linenos" data-line="2638"></span></a> </span><span id="L-2639"><a href="#L-2639"><span class="linenos" data-line="2639"></span></a> <span class="nb">assert</span><span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="s2">"_"</span><span class="o">..</span><span class="n">f</span><span class="p">],</span> <span class="n">errorText</span><span class="p">(</span><span class="s1">'no-such-function'</span><span class="p">,</span> <span class="n">f</span><span class="p">))</span> </span><span id="L-2640"><a href="#L-2640"><span class="linenos" data-line="2640"></span></a> </span><span id="L-2641"><a href="#L-2641"><span class="linenos" data-line="2641"></span></a> <span class="c1">-- copy arguments from immutable to mutable table</span> </span><span id="L-2642"><a href="#L-2642"><span class="linenos" data-line="2642"></span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">copyTable</span><span class="p">(</span><span class="n">frame</span><span class="p">.</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2643"><a href="#L-2643"><span class="linenos" data-line="2643"></span></a> </span><span id="L-2644"><a href="#L-2644"><span class="linenos" data-line="2644"></span></a> <span class="c1">-- remove the function name from the list</span> </span><span id="L-2645"><a href="#L-2645"><span class="linenos" data-line="2645"></span></a> <span class="nb">table.remove</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-2646"><a href="#L-2646"><span class="linenos" data-line="2646"></span></a> </span><span id="L-2647"><a href="#L-2647"><span class="linenos" data-line="2647"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">[</span><span class="s2">"_"</span><span class="o">..</span><span class="n">f</span><span class="p">](</span><span class="n">args</span><span class="p">)</span> </span><span id="L-2648"><a href="#L-2648"><span class="linenos" data-line="2648"></span></a><span class="kr">end</span> </span><span id="L-2649"><a href="#L-2649"><span class="linenos" data-line="2649"></span></a> </span><span id="L-2650"><a href="#L-2650"><span class="linenos" data-line="2650"></span></a><span class="kr">return</span> <span class="n">p</span> </span></pre></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐57488d5c7d‐k7b2z Cached time: 20241128043751 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐page‐id, vary‐revision‐sha1, show‐toc] CPU time usage: 1.980 seconds Real time usage: 2.587 seconds Preprocessor visited node count: 14984/1000000 Post‐expand include size: 246603/2097152 bytes Template argument size: 44133/2097152 bytes Highest expansion depth: 17/100 Expensive parser function count: 10/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 41811/5000000 bytes Lua time usage: 1.637/10.000 seconds Lua memory usage: 17722812/52428800 bytes Lua Profile: recursiveClone <mwInit.lua:45> 740 ms 46.8% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getEntity 220 ms 13.9% (for generator) 180 ms 11.4% type 120 ms 7.6% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getSiteLinkPageName 80 ms 5.1% ? 60 ms 3.8% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::gsub 40 ms 2.5% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getLabelByLanguage 40 ms 2.5% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getExpandedArgument 20 ms 1.3% <Модул:Wd:1773> 20 ms 1.3% [others] 60 ms 3.8% Number of Wikibase entities loaded: 9/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 2437.860 1 -total 100.00% 2437.860 1 Модул:Wd/doc 97.58% 2378.779 1 Шаблон:Wd/doc 5.62% 137.094 95 Шаблон:Tnull 2.54% 61.899 18 Шаблон:Източник_БДС_17377 2.06% 50.320 1 Шаблон:Ombox 1.56% 38.137 18 Шаблон:Delink 1.09% 26.460 8 Шаблон:Dfn 1.07% 26.205 6 Шаблон:Efn 0.89% 21.708 5 Шаблон:Wpl --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Взето от „<a dir="ltr" href="https://bg.wikipedia.org/w/index.php?title=Модул:Wd&oldid=12133177">https://bg.wikipedia.org/w/index.php?title=Модул:Wd&oldid=12133177</a>“.</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%BD%D0%B8:%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8" title="Специални:Категории">Категории</a>: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8_%D0%B7%D0%B0_%D0%A3%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D0%B8" title="Категория:Шаблони за Уикиданни">Шаблони за Уикиданни</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%B2_%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F" title="Категория:Модули в Уикипедия">Модули в Уикипедия</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Последната промяна на страницата е извършена на 11 февруари 2024 г. в 21:08 ч.</li> <li id="footer-info-copyright">Текстът е достъпен под лиценза <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.bg">Creative Commons Признание-Споделяне на споделеното</a>; може да са приложени допълнителни условия. За подробности вижте <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/bg">Условия за ползване</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Поверителност</a></li> <li id="footer-places-about"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%97%D0%B0_%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B8">За контакт с Уикипедия</a></li> <li id="footer-places-disclaimers"><a href="/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D1%80%D0%B5%D0%B4%D1%83%D0%BF%D1%80%D0%B5%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5">Предупреждение</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Кодекс на поведение</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">За разработчици</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/bg.wikipedia.org">Статистика</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Използване на „бисквитки“</a></li> <li id="footer-places-mobileview"><a href="//bg.m.wikipedia.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Wd&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Мобилен изглед</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-57488d5c7d-k7b2z","wgBackendResponseTime":2905,"wgPageParseReport":{"limitreport":{"cputime":"1.980","walltime":"2.587","ppvisitednodes":{"value":14984,"limit":1000000},"postexpandincludesize":{"value":246603,"limit":2097152},"templateargumentsize":{"value":44133,"limit":2097152},"expansiondepth":{"value":17,"limit":100},"expensivefunctioncount":{"value":10,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":41811,"limit":5000000},"entityaccesscount":{"value":9,"limit":400},"timingprofile":["100.00% 2437.860 1 -total","100.00% 2437.860 1 Модул:Wd/doc"," 97.58% 2378.779 1 Шаблон:Wd/doc"," 5.62% 137.094 95 Шаблон:Tnull"," 2.54% 61.899 18 Шаблон:Източник_БДС_17377"," 2.06% 50.320 1 Шаблон:Ombox"," 1.56% 38.137 18 Шаблон:Delink"," 1.09% 26.460 8 Шаблон:Dfn"," 1.07% 26.205 6 Шаблон:Efn"," 0.89% 21.708 5 Шаблон:Wpl"]},"scribunto":{"limitreport-timeusage":{"value":"1.637","limit":"10.000"},"limitreport-memusage":{"value":17722812,"limit":52428800},"limitreport-profile":[["recursiveClone \u003CmwInit.lua:45\u003E","740","46.8"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getEntity","220","13.9"],["(for generator)","180","11.4"],["type","120","7.6"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getSiteLinkPageName","80","5.1"],["?","60","3.8"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::gsub","40","2.5"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getLabelByLanguage","40","2.5"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getExpandedArgument","20","1.3"],["\u003CМодул:Wd:1773\u003E","20","1.3"],["[others]","60","3.8"]]},"cachereport":{"origin":"mw-web.codfw.main-57488d5c7d-k7b2z","timestamp":"20241128043751","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>