CINXE.COM
Module:Commons link - Wikipedia
<!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-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Module:Commons link - Wikipedia</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-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);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":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"e1113dcb-76d3-43f4-ab9c-796e8f615ebb","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:Commons_link","wgTitle":"Commons link","wgCurRevisionId":1253103118,"wgRevisionId":1253103118,"wgArticleId":63132438,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Wikipedia template-protected modules","Modules for general use","Wikidata modules","Link modules"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:Commons_link","wgRelevantArticleId":63132438,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["templateeditor"],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false, "wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q91248444","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={ "ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","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.pygments.view","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","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=en&modules=ext.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=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&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="Module:Commons link - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Module:Commons_link"> <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="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Module:Commons_link"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&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-Module_Commons_link rootpage-Module_Commons_link skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</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="Site"> <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="Main menu" > <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">Main menu</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">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" 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="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </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/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</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="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <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="Appearance"> <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="Appearance" > <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">Appearance</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="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</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=Special:CreateAccount&returnto=Module%3ACommons+link" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</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=Special:UserLogin&returnto=Module%3ACommons+link" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</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="Log in and more options" > <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="Personal tools" > <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">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <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="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Module%3ACommons+link" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Module%3ACommons+link" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</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"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</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/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</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="Site"> <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="Contents" 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">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</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">(Top)</div> </a> </li> <li id="toc-Usage" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Usage"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Usage</span> </div> </a> <ul id="toc-Usage-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="Contents" 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="Toggle the table of contents" > <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">Toggle the table of contents</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">Module</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Commons link</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="Go to an article in another language. Available in 48 languages" > <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-48" 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">48 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:Commons_link" title="وحدة:Commons link – Arabic" lang="ar" hreflang="ar" data-title="وحدة:Commons link" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-hyw mw-list-item"><a href="https://hyw.wikipedia.org/wiki/%D5%84%D5%B8%D5%A4%D5%B8%D6%82%D5%AC:Commons_link" title="Մոդուլ:Commons link – Western Armenian" lang="hyw" hreflang="hyw" data-title="Մոդուլ:Commons link" data-language-autonym="Արեւմտահայերէն" data-language-local-name="Western Armenian" class="interlanguage-link-target"><span>Արեւմտահայերէն</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:Commons_link" title="ماژول:Commons link – South Azerbaijani" lang="azb" hreflang="azb" data-title="ماژول:Commons link" 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:Commons_link" title="Modul:Commons link – Balinese" lang="ban" hreflang="ban" data-title="Modul:Commons link" data-language-autonym="Basa Bali" data-language-local-name="Balinese" class="interlanguage-link-target"><span>Basa Bali</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:%E0%A6%95%E0%A6%AE%E0%A6%A8%E0%A7%8D%E0%A6%B8_%E0%A6%B8%E0%A6%82%E0%A6%AF%E0%A7%8B%E0%A6%97" title="মডিউল:কমন্স সংযোগ – Bangla" lang="bn" hreflang="bn" data-title="মডিউল:কমন্স সংযোগ" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-bjn mw-list-item"><a href="https://bjn.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Banjar" lang="bjn" hreflang="bjn" data-title="Modul:Commons link" data-language-autonym="Banjar" data-language-local-name="Banjar" class="interlanguage-link-target"><span>Banjar</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:Commons_link" title="Модуль:Commons link – Belarusian" lang="be" hreflang="be" data-title="Модуль:Commons link" data-language-autonym="Беларуская" data-language-local-name="Belarusian" 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:Commons_link" title="Module:Commons link – Bhojpuri" lang="bh" hreflang="bh" data-title="Module:Commons link" data-language-autonym="भोजपुरी" data-language-local-name="Bhojpuri" class="interlanguage-link-target"><span>भोजपुरी</span></a></li><li class="interlanguage-link interwiki-bcl mw-list-item"><a href="https://bcl.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Central Bikol" lang="bcl" hreflang="bcl" data-title="Module:Commons link" 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-ceb mw-list-item"><a href="https://ceb.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Cebuano" lang="ceb" hreflang="ceb" data-title="Module:Commons link" data-language-autonym="Cebuano" data-language-local-name="Cebuano" class="interlanguage-link-target"><span>Cebuano</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Danish" lang="da" hreflang="da" data-title="Modul:Commons link" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</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:Commons_link" title="پودمان:Commons link – Persian" lang="fa" hreflang="fa" data-title="پودمان:Commons link" data-language-autonym="فارسی" data-language-local-name="Persian" 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:Commons_link" title="વિભાગ:Commons link – Gujarati" lang="gu" hreflang="gu" data-title="વિભાગ:Commons link" data-language-autonym="ગુજરાતી" data-language-local-name="Gujarati" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-gom mw-list-item"><a href="https://gom.wikipedia.org/wiki/%E0%A4%8F%E0%A4%95%E0%A4%95:Commons_link" title="एकक:Commons link – Goan Konkani" lang="gom" hreflang="gom" data-title="एकक:Commons link" data-language-autonym="गोंयची कोंकणी / Gõychi Konknni" data-language-local-name="Goan Konkani" class="interlanguage-link-target"><span>गोंयची कोंकणी / Gõychi Konknni</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:Commons_link" title="모듈:Commons link – Korean" lang="ko" hreflang="ko" data-title="모듈:Commons link" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Hausa" lang="ha" hreflang="ha" data-title="Module:Commons link" data-language-autonym="Hausa" data-language-local-name="Hausa" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Croatian" lang="hr" hreflang="hr" data-title="Modul:Commons link" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-ilo mw-list-item"><a href="https://ilo.wikipedia.org/wiki/Modulo:Commons_link" title="Modulo:Commons link – Iloko" lang="ilo" hreflang="ilo" data-title="Modulo:Commons link" data-language-autonym="Ilokano" data-language-local-name="Iloko" class="interlanguage-link-target"><span>Ilokano</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Indonesian" lang="id" hreflang="id" data-title="Modul:Commons link" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Icelandic" lang="is" hreflang="is" data-title="Module:Commons link" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Kurdish" lang="ku" hreflang="ku" data-title="Modul:Commons link" data-language-autonym="Kurdî" data-language-local-name="Kurdish" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Lithuanian" lang="lt" hreflang="lt" data-title="Module:Commons link" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-mad mw-list-item"><a href="https://mad.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Madurese" lang="mad" hreflang="mad" data-title="Modul:Commons link" data-language-autonym="Madhurâ" data-language-local-name="Madurese" class="interlanguage-link-target"><span>Madhurâ</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:Commons_link" title="Модул:Commons link – Macedonian" lang="mk" hreflang="mk" data-title="Модул:Commons link" data-language-autonym="Македонски" data-language-local-name="Macedonian" 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:Commons_link" title="ഘടകം:Commons link – Malayalam" lang="ml" hreflang="ml" data-title="ഘടകം:Commons link" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" 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:Commons_link" title="विभाग:Commons link – Marathi" lang="mr" hreflang="mr" data-title="विभाग:Commons link" data-language-autonym="मराठी" data-language-local-name="Marathi" 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:Commons_link" title="Modul:Commons link – Malay" lang="ms" hreflang="ms" data-title="Modul:Commons link" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mni mw-list-item"><a href="https://mni.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Manipuri" lang="mni" hreflang="mni" data-title="Module:Commons link" data-language-autonym="ꯃꯤꯇꯩ ꯂꯣꯟ" data-language-local-name="Manipuri" class="interlanguage-link-target"><span>ꯃꯤꯇꯩ ꯂꯣꯟ</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:Commons_link" title="မော်ဂျူး:Commons link – Burmese" lang="my" hreflang="my" data-title="မော်ဂျူး:Commons link" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="Burmese" class="interlanguage-link-target"><span>မြန်မာဘာသာ</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:Commons_link" title="मोड्युल:Commons link – Nepali" lang="ne" hreflang="ne" data-title="मोड्युल:Commons link" data-language-autonym="नेपाली" data-language-local-name="Nepali" class="interlanguage-link-target"><span>नेपाली</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:Commons_link" title="モジュール:Commons link – Japanese" lang="ja" hreflang="ja" data-title="モジュール:Commons link" data-language-autonym="日本語" data-language-local-name="Japanese" 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:Commons_link" title="Modul:Commons link – Uzbek" lang="uz" hreflang="uz" data-title="Modul:Commons link" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</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:Commons_link" title="ਮੌਡਿਊਲ:Commons link – Punjabi" lang="pa" hreflang="pa" data-title="ਮੌਡਿਊਲ:Commons link" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="Punjabi" 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:Commons_link" title="မော်ဂျူး:Commons link – Pa'O" lang="blk" hreflang="blk" data-title="မော်ဂျူး:Commons link" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa'O" 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:Commons_link" title="Module:Commons link – Sinhala" lang="si" hreflang="si" data-title="Module:Commons link" data-language-autonym="සිංහල" data-language-local-name="Sinhala" 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:Commons_link" title="Module:Commons link – Simple English" lang="en-simple" hreflang="en-simple" data-title="Module:Commons link" 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-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Slovenian" lang="sl" hreflang="sl" data-title="Modul:Commons link" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</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:Commons_link" title="مۆدیوول:Commons link – Central Kurdish" lang="ckb" hreflang="ckb" data-title="مۆدیوول:Commons link" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Moduuli:Commons_link" title="Moduuli:Commons link – Finnish" lang="fi" hreflang="fi" data-title="Moduuli:Commons link" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</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:Commons_link" title="မေႃႇၵျူး:Commons link – Shan" lang="shn" hreflang="shn" data-title="မေႃႇၵျူး:Commons link" data-language-autonym="ၽႃႇသႃႇတႆး " data-language-local-name="Shan" 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:Commons_link" title="มอดูล:Commons link – Thai" lang="th" hreflang="th" data-title="มอดูล:Commons link" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Mod%C3%BCl:Commons_ba%C4%9Flant%C4%B1s%C4%B1" title="Modül:Commons bağlantısı – Turkish" lang="tr" hreflang="tr" data-title="Modül:Commons bağlantısı" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tk mw-list-item"><a href="https://tk.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Turkmen" lang="tk" hreflang="tk" data-title="Module:Commons link" data-language-autonym="Türkmençe" data-language-local-name="Turkmen" class="interlanguage-link-target"><span>Türkmençe</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:Commons_link" title="ماڈیول:Commons link – Urdu" lang="ur" hreflang="ur" data-title="ماڈیول:Commons link" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/M%C3%B4_%C4%91un:Commons_link" title="Mô đun:Commons link – Vietnamese" lang="vi" hreflang="vi" data-title="Mô đun:Commons link" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Module:Commons_link" title="Module:Commons link – Chinese" lang="zh" hreflang="zh" data-title="Module:Commons link" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-bdr mw-list-item"><a href="https://bdr.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – West Coast Bajau" lang="bdr" hreflang="bdr" data-title="Modul:Commons link" data-language-autonym="Bajau Sama" data-language-local-name="West Coast Bajau" class="interlanguage-link-target"><span>Bajau Sama</span></a></li><li class="interlanguage-link interwiki-bew mw-list-item"><a href="https://bew.wikipedia.org/wiki/Modul:Commons_link" title="Modul:Commons link – Betawi" lang="bew" hreflang="bew" data-title="Modul:Commons link" data-language-autonym="Betawi" data-language-local-name="Betawi" class="interlanguage-link-target"><span>Betawi</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/Q91248444#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</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="Namespaces"> <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/Module:Commons_link" title="View the module page [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Module_talk:Commons_link" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</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="Change language variant" > <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="Views"> <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/Module:Commons_link"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Commons_link&action=edit" title="This page is protected. You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Commons_link&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</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="Tools" > <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">Tools</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">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </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/Module:Commons_link"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Commons_link&action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Commons_link&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Module:Commons_link" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Module:Commons_link" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Module:Commons_link&oldid=1253103118" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:Commons_link&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModule%3ACommons_link"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModule%3ACommons_link"><span>Download QR code</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"> Print/export </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=Special:DownloadAsPdf&page=Module%3ACommons_link&action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"><span>Printable version</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"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-wikiquote mw-list-item"><a href="https://en.wikiquote.org/wiki/Module:Commons_link" hreflang="en"><span>Wikiquote</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiversity mw-list-item"><a href="https://en.wikiversity.org/wiki/Module:Commons_link" hreflang="en"><span>Wikiversity</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/Q91248444" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</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="Appearance"> <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">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</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 id="mw-indicator-pp-default" class="mw-indicator"><div class="mw-parser-output"><span typeof="mw:File"><a href="/wiki/Wikipedia:Protection_policy#template" title="This high-risk module is permanently template-protected to prevent vandalism"><img alt="Permanently protected module" src="//upload.wikimedia.org/wikipedia/en/thumb/5/53/Template-protection-shackle.svg/20px-Template-protection-shackle.svg.png" decoding="async" width="20" height="20" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/5/53/Template-protection-shackle.svg/30px-Template-protection-shackle.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/5/53/Template-protection-shackle.svg/40px-Template-protection-shackle.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></div></div> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</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="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1237875617">.mw-parser-output .documentation,.mw-parser-output .documentation-metadata{border:1px solid #a2a9b1;background-color:#ecfcf4;clear:both}.mw-parser-output .documentation{margin:1em 0 0 0;padding:1em}.mw-parser-output .documentation-metadata{margin:0.2em 0;font-style:italic;padding:0.4em 1em}.mw-parser-output .documentation-startbox{padding-bottom:3px;border-bottom:1px solid #aaa;margin-bottom:1ex}.mw-parser-output .documentation-heading{font-weight:bold;font-size:125%}.mw-parser-output .documentation-clear{clear:both}.mw-parser-output .documentation-toolbar{font-style:normal;font-size:85%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .documentation,html.skin-theme-clientpref-night .mw-parser-output .documentation-metadata{background-color:#0b1e1c}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .documentation,html.skin-theme-clientpref-os .mw-parser-output .documentation-metadata{background-color:#0b1e1c}}</style><div class="documentation-container" role="complementary" aria-labelledby="documentation-heading"> <div class="documentation"> <div class="documentation-startbox"> <span class="documentation-heading" id="documentation-heading"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png" decoding="async" width="50" height="22" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/75px-Test_Template_Info-Icon_-_Version_%282%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/100px-Test_Template_Info-Icon_-_Version_%282%29.svg.png 2x" data-file-width="1792" data-file-height="800" /></span></span> Module documentation</span><span class="mw-editsection-like plainlinks">[<a href="/wiki/Module:Commons_link/doc" title="Module:Commons link/doc">view</a>] [<a href="/wiki/Special:EditPage/Module:Commons_link/doc" title="Special:EditPage/Module:Commons link/doc">edit</a>] [<a href="/wiki/Special:PageHistory/Module:Commons_link/doc" title="Special:PageHistory/Module:Commons link/doc">history</a>] [<a href="/wiki/Special:Purge/Module:Commons_link" title="Special:Purge/Module:Commons link">purge</a>]</span></div> <style data-mw-deduplicate="TemplateStyles:r1238436933">.mw-parser-output .ombox{margin:4px 0;border-collapse:collapse;border:1px solid #a2a9b1;background-color:var(--background-color-neutral-subtle,#f8f9fa);box-sizing:border-box;color:var(--color-base,#202122)}.mw-parser-output .ombox.mbox-small{font-size:88%;line-height:1.25em}.mw-parser-output .ombox-speedy{border:2px solid #b32424;background-color:#fee7e6}.mw-parser-output .ombox-delete{border:2px solid #b32424}.mw-parser-output .ombox-content{border:1px solid #f28500}.mw-parser-output .ombox-style{border:1px solid #fc3}.mw-parser-output .ombox-move{border:1px solid #9932cc}.mw-parser-output .ombox-protection{border:2px solid #a2a9b1}.mw-parser-output .ombox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .ombox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .ombox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .ombox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ombox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .ombox{margin:4px 10%}.mw-parser-output .ombox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;width:238px}}body.skin--responsive .mw-parser-output table.ombox img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .ombox-speedy{background-color:#310402}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .ombox-speedy{background-color:#310402}}</style><table class="plainlinks ombox ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="Ready for use" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/03/Green_check.svg/40px-Green_check.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/03/Green_check.svg/60px-Green_check.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/03/Green_check.svg/80px-Green_check.svg.png 2x" data-file-width="600" data-file-height="600" /></span></span></td><td class="mbox-text">This module is rated as <a href="/wiki/Category:Modules_for_general_use" title="Category:Modules for general use">ready for general use</a>. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by <a href="/wiki/Wikipedia:Template_sandbox_and_test_cases" title="Wikipedia:Template sandbox and test cases">sandbox testing</a> rather than repeated trial-and-error editing.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238436933"><table class="plainlinks ombox ombox-content" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/en/thumb/5/5f/Ambox_warning_orange.svg/40px-Ambox_warning_orange.svg.png" decoding="async" width="40" height="34" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/5/5f/Ambox_warning_orange.svg/60px-Ambox_warning_orange.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/5/5f/Ambox_warning_orange.svg/80px-Ambox_warning_orange.svg.png 2x" data-file-width="378" data-file-height="326" /></span></span></td><td class="mbox-text"><b>This Lua module is used on <a class="external text" href="https://linkcount.toolforge.org/?project=en.wikipedia.org&page=Module%3ACommons+link#transclusions">approximately 280,000 pages</a></b>.<br /> To avoid major disruption and server load, any changes should be tested in the module's <a href="/wiki/Module:Commons_link/sandbox" title="Module:Commons link/sandbox">/sandbox</a> or <a href="/wiki/Module:Commons_link/testcases" title="Module:Commons link/testcases">/testcases</a> subpages, or in your own <a href="/wiki/Module:Sandbox" title="Module:Sandbox">module sandbox</a>. The tested changes can be added to this page in a single edit. Consider discussing changes on the <a href="/wiki/Module_talk:Commons_link" title="Module talk:Commons link">talk page</a> before implementing them.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238436933"><table class="plainlinks ombox mbox-small ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="" 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" /></span></span></td><td class="mbox-text">This module depends on the following other modules:<div><ul><li><a href="/wiki/Module:If_preview" title="Module:If preview">Module:If preview</a> (<a href="/wiki/Module:If_preview/sandbox" title="Module:If preview/sandbox">sandbox</a>)</li><li><a href="/wiki/Module:Arguments" title="Module:Arguments">Module:Arguments</a> (<a href="/wiki/Module:Arguments/sandbox" title="Module:Arguments/sandbox">sandbox</a>)</li></ul></div></td></tr></tbody></table> <p>For testing the sandbox, see <a href="/wiki/Module:Commons_link/sandbox/testcases" title="Module:Commons link/sandbox/testcases">Module:Commons link/sandbox/testcases</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Usage">Usage</h2></div> <p><code>{{#invoke:Commons link|getGallery}}</code> </p> <dl><dd>Use wikidata to find Commons gallery corresponding to this article. If unable to find gallery in wikidata, default to searching for PAGENAME in Commons.</dd></dl> <p><code>{{#invoke:Commons link|getGallery|title|linktext=text}}</code> </p> <dl><dd>Link to Commons gallery at <code>title</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getGallery|search=string|linktext=text}}</code> </p> <dl><dd>Link to Commons search for <code>string</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getCategory|fallback=string|linktext=text}}</code> </p> <dl><dd>Use wikidata first, then if failure, use Commons search for <code>string</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getCategory}}</code> </p> <dl><dd>Use wikidata to find Commons category corresponding to this article. If unable to find category in wikidata, default to searching for Category:PAGENAME in Commons.</dd></dl> <p><code>{{#invoke:Commons link|getCategory|title|linktext=text}}</code> </p> <dl><dd>Link to Commons category at <code>Category:title</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getCategory|search=string|linktext=text}}</code> </p> <dl><dd>Link to Commons search for <code>Category:string</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getCategory|fallback=string|linktext=text}}</code> </p> <dl><dd>Use wikidata first, then if failure, use Commons search for <code>Category:string</code>. Optionally, use <code>text</code> as displayed link text.</dd></dl> <p><code>{{#invoke:Commons link|getGalleryOrCategory}}</code> </p> <dl><dd>Use wikidata to find "best" single Commons link: try gallery first, fall back to category. Other arguments as above.</dd></dl> <p><code>{{#invoke:Commons link|getGalleryAndCategory}}</code> </p> <dl><dd>Lua to implement <span class="nowrap">{{</span><a href="/wiki/Template:Commons_and_category" title="Template:Commons and category">commons and category</a><span class="nowrap">}}</span>: return Commons gallery, Commons category, or both (if both found)</dd></dl> <p><code>{{#invoke:Commons link|getGalleryAndCategory|GalleryName|CategoryName}}</code> </p> <dl><dd>Either GalleryName or CategoryName or both can be supplied, will override wikidata search</dd></dl> <p><code>{{#invoke:Commons link|bold=1|italic=1|nowrap=1|lcfirst=1}}</code> </p> <dl><dd>Format of first link can be specified (any combination of bold, italic, nowrap, and lower-case first character)</dd></dl> <p><code>{{#invoke:Commons link|linktext=link|categoryText=category}}</code> </p> <dl><dd>Text in the first link, and the second (category) link can be overridden, also.</dd></dl> <p><code>{{#invoke:Commons link|tracking=1}}</code> </p> <dl><dd>Module can generate tracking categories for mismatch between supplied arguments and Wikidata.</dd></dl> <div class="documentation-clear"></div> </div> <div role="note" class="documentation-metadata plainlinks">The above <a href="/wiki/Wikipedia:Template_documentation" title="Wikipedia:Template documentation">documentation</a> is <a href="/wiki/Help:Transclusion" title="Help:Transclusion">transcluded</a> from <a href="/wiki/Module:Commons_link/doc" title="Module:Commons link/doc">Module:Commons link/doc</a>. <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:Commons_link/doc" title="Special:EditPage/Module:Commons link/doc">edit</a> | <a href="/wiki/Special:PageHistory/Module:Commons_link/doc" title="Special:PageHistory/Module:Commons link/doc">history</a>)</span><br />Editors can experiment in this module's <a href="/wiki/Module:Commons_link/sandbox" title="Module:Commons link/sandbox">sandbox</a> <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:Commons_link/sandbox" title="Special:EditPage/Module:Commons link/sandbox">edit</a> | <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Special%3AComparePages&page1=Module%3ACommons+link&page2=Module%3ACommons+link%2Fsandbox">diff</a>)</span> and <a href="/wiki/Module:Commons_link/testcases" title="Module:Commons link/testcases">testcases</a> <span class="documentation-toolbar">(<a href="/wiki/Special:EditPage/Module:Commons_link/testcases" title="Special:EditPage/Module:Commons link/testcases">edit</a> | <a href="/wiki/Module_talk:Commons_link/testcases" title="Module talk:Commons link/testcases">run</a>)</span> pages.<br /> <a href="/wiki/Special:PrefixIndex/Module:Commons_link/" title="Special:PrefixIndex/Module:Commons link/">Subpages of this module</a>.</div></div> <p><span id="code"></span> </p><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="nb">require</span><span class="p">(</span><span class="s1">'strict'</span><span class="p">)</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="c1">-- Module to find commons galleries and categories based on wikidata entries</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">getArgs</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:Arguments'</span><span class="p">).</span><span class="n">getArgs</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">p</span> <span class="o">=</span> <span class="p">{}</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="c1">-- Check if string is a valid QID</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a><span class="c1">-- Argument: QID to check</span> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a><span class="c1">-- Returns: valid (bool)</span> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-11"><a href="#L-11"><span class="linenos" data-line="11"></span></a> <span class="kr">return</span> <span class="n">qid</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="s2">"^[Qq]%d+$"</span><span class="p">)</span> </span><span id="L-12"><a href="#L-12"><span class="linenos" data-line="12"></span></a><span class="kr">end</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a> </span><span id="L-14"><a href="#L-14"><span class="linenos" data-line="14"></span></a><span class="c1">-- Check if string is a valid wikidata property string</span> </span><span id="L-15"><a href="#L-15"><span class="linenos" data-line="15"></span></a><span class="c1">-- Argument: property string to check</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a><span class="c1">-- Returns: valid (bool)</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_validProp</span><span class="p">(</span><span class="n">prop</span><span class="p">)</span> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a> <span class="kr">return</span> <span class="n">prop</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span><span class="s2">"^[Pp]%d+$"</span><span class="p">)</span> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a><span class="kr">end</span> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_lcfirst</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></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">lower</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">sub</span><span class="p">(</span><span class="n">s</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="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span><span class="n">s</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a><span class="kr">end</span> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></span></a><span class="c1">-- Format displayed linktext</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a><span class="c1">-- s = string to display</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a><span class="c1">-- formatting = formatting table:</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a><span class="c1">-- formatting.linktext = if defined, override s</span> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a><span class="c1">-- formatting.lcfirst = lower case the first letter in display</span> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a><span class="c1">-- formatting.bold = whether to bold the display</span> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a><span class="c1">-- formatting.italic = whether to italicize the display</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a><span class="c1">-- formatting.nowrap = set nowrapping</span> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a><span class="c1">-- Returns:</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a><span class="c1">-- formatted string</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_formatResult</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">formatting</span><span class="p">)</span> </span><span id="L-37"><a href="#L-37"><span class="linenos" data-line="37"></span></a> <span class="kd">local</span> <span class="n">resultVal</span> <span class="o">=</span> <span class="n">formatting</span><span class="p">.</span><span class="n">linktext</span> <span class="ow">or</span> <span class="n">s</span> </span><span id="L-38"><a href="#L-38"><span class="linenos" data-line="38"></span></a> <span class="kr">if</span> <span class="n">formatting</span><span class="p">.</span><span class="n">lcfirst</span> <span class="kr">then</span> </span><span id="L-39"><a href="#L-39"><span class="linenos" data-line="39"></span></a> <span class="n">resultVal</span> <span class="o">=</span> <span class="n">_lcfirst</span><span class="p">(</span><span class="n">resultVal</span><span class="p">)</span> </span><span id="L-40"><a href="#L-40"><span class="linenos" data-line="40"></span></a> <span class="kr">end</span> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a> <span class="kd">local</span> <span class="n">style</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a> <span class="kr">if</span> <span class="n">formatting</span><span class="p">.</span><span class="n">italic</span> <span class="kr">then</span> <span class="n">style</span> <span class="o">=</span> <span class="s2">"font-style:italic; "</span> <span class="kr">end</span> </span><span id="L-43"><a href="#L-43"><span class="linenos" data-line="43"></span></a> <span class="kr">if</span> <span class="n">formatting</span><span class="p">.</span><span class="n">bold</span> <span class="kr">then</span> <span class="n">style</span> <span class="o">=</span> <span class="n">style</span><span class="o">..</span><span class="s2">"font-weight:bold; "</span> <span class="kr">end</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> <span class="kr">if</span> <span class="n">formatting</span><span class="p">.</span><span class="n">nowrap</span> <span class="kr">then</span> <span class="n">style</span> <span class="o">=</span> <span class="n">style</span><span class="o">..</span><span class="s2">"white-space:nowrap; "</span> <span class="kr">end</span> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a> <span class="kr">if</span> <span class="n">style</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a> <span class="n">resultVal</span> <span class="o">=</span> <span class="s1">'<span style="'</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">style</span><span class="p">)</span><span class="o">..</span><span class="s1">'">'</span><span class="o">..</span><span class="n">resultVal</span><span class="o">..</span><span class="s1">'</span>'</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a> <span class="kr">end</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a> <span class="kr">return</span> <span class="n">resultVal</span> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a><span class="kr">end</span> </span><span id="L-50"><a href="#L-50"><span class="linenos" data-line="50"></span></a> </span><span id="L-51"><a href="#L-51"><span class="linenos" data-line="51"></span></a><span class="c1">-- Get title, namespace, and QID for current page</span> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a><span class="c1">-- qid = testing only: get title of alternative page with QID=qid</span> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a><span class="c1">-- nsQid = whether to return the ns of the qid page or current</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a><span class="c1">-- Returns:</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a><span class="c1">-- title, namespace (string), qid of current page (or test page)</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">nsQid</span><span class="p">)</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a> <span class="kd">local</span> <span class="n">titleObject</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">getCurrentTitle</span><span class="p">()</span> </span><span id="L-59"><a href="#L-59"><span class="linenos" data-line="59"></span></a> <span class="c1">-- look up qid for current page (if not testing)</span> </span><span id="L-60"><a href="#L-60"><span class="linenos" data-line="60"></span></a> <span class="kd">local</span> <span class="n">nsText</span> <span class="o">=</span> <span class="nb">string.gsub</span><span class="p">(</span><span class="n">titleObject</span><span class="p">.</span><span class="n">nsText</span><span class="p">,</span><span class="s2">"_"</span><span class="p">,</span><span class="s2">" "</span><span class="p">)</span> <span class="c1">-- [[phab:T369784]]</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a> <span class="n">qid</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-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> <span class="kr">return</span> <span class="n">titleObject</span><span class="p">.</span><span class="n">text</span><span class="p">,</span> <span class="n">nsText</span><span class="p">,</span> <span class="n">qid</span> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a> <span class="kr">end</span> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a> <span class="c1">-- testing-only path: given a qid, determine title</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a> <span class="c1">-- always use namespace from current page (to suppress tracking cat)</span> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="n">qid</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> <span class="kd">local</span> <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">getSitelink</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a> <span class="c1">-- strip any namespace from sitelink</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a> <span class="kd">local</span> <span class="n">firstColon</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">find</span><span class="p">(</span><span class="n">title</span><span class="p">,</span><span class="s1">':'</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a> <span class="kd">local</span> <span class="n">qidNsText</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-72"><a href="#L-72"><span class="linenos" data-line="72"></span></a> <span class="kr">if</span> <span class="n">firstColon</span> <span class="kr">then</span> </span><span id="L-73"><a href="#L-73"><span class="linenos" data-line="73"></span></a> <span class="n">qidNsText</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">sub</span><span class="p">(</span><span class="n">title</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">firstColon</span><span class="o">-</span><span class="mi">1</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">title</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">sub</span><span class="p">(</span><span class="n">title</span><span class="p">,</span><span class="n">firstColon</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a> <span class="kr">end</span> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="kr">if</span> <span class="n">nsQid</span> <span class="kr">then</span> </span><span id="L-77"><a href="#L-77"><span class="linenos" data-line="77"></span></a> <span class="kr">return</span> <span class="n">title</span><span class="p">,</span> <span class="n">qidNsText</span><span class="p">,</span> <span class="n">qid</span> </span><span id="L-78"><a href="#L-78"><span class="linenos" data-line="78"></span></a> <span class="kr">end</span> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a> <span class="kr">return</span> <span class="n">title</span><span class="p">,</span> <span class="n">nsText</span><span class="p">,</span> <span class="n">qid</span> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a><span class="kr">end</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></span></a><span class="c1">-- Lookup Commons gallery in Wikidata</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a><span class="c1">-- qid = QID of current article</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a><span class="c1">-- fetch = whether to lookup Commons sitelink (bool)</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a><span class="c1">-- commonsSitelink = default value for Commons sitelink</span> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a><span class="c1">-- Returns:</span> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a><span class="c1">-- categoryLink = name of Commons category, nil if nothing is found</span> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a><span class="c1">-- consistent = multiple wikidata fields are examined: are they consistent?</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a><span class="c1">-- commonsSitelink = commons sitelink for current article</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_lookupGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">fetch</span><span class="p">,</span><span class="n">commonsSitelink</span><span class="p">)</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a> <span class="kr">return</span> <span class="kc">nil</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">nil</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> <span class="kr">end</span> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="n">qid</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a> <span class="kd">local</span> <span class="n">galleryLink</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> <span class="kd">local</span> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a> <span class="c1">-- look up commons sitelink for article, use if not category</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a> <span class="kr">if</span> <span class="n">fetch</span> <span class="kr">then</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a> <span class="n">commonsSitelink</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">getSitelink</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="s2">"commonswiki"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">commonsSitelink</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a> <span class="kr">end</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a> <span class="kr">if</span> <span class="n">commonsSitelink</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span><span class="n">commonsSitelink</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="s2">"Category:"</span> <span class="kr">then</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="n">galleryLink</span> <span class="o">=</span> <span class="n">commonsSitelink</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="kr">end</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a> <span class="c1">-- P935 is the "commons gallery" property for this article</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a> <span class="kd">local</span> <span class="n">P935</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">getBestStatements</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span> <span class="s2">"P935"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a> <span class="kr">if</span> <span class="n">P935</span> <span class="ow">and</span> <span class="n">P935</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">.</span><span class="n">datavalue</span> <span class="kr">then</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">gallery</span> <span class="o">=</span> <span class="n">P935</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">value</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a> <span class="kr">if</span> <span class="n">galleryLink</span> <span class="ow">and</span> <span class="n">galleryLink</span> <span class="o">~=</span> <span class="n">gallery</span> <span class="kr">then</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-111"><a href="#L-111"><span class="linenos" data-line="111"></span></a> <span class="kr">else</span> </span><span id="L-112"><a href="#L-112"><span class="linenos" data-line="112"></span></a> <span class="n">galleryLink</span> <span class="o">=</span> <span class="n">gallery</span> </span><span id="L-113"><a href="#L-113"><span class="linenos" data-line="113"></span></a> <span class="kr">end</span> </span><span id="L-114"><a href="#L-114"><span class="linenos" data-line="114"></span></a> <span class="kr">end</span> </span><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a> <span class="kr">return</span> <span class="n">galleryLink</span><span class="p">,</span> <span class="n">consistent</span><span class="p">,</span> <span class="n">commonsSitelink</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a><span class="kr">end</span> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a><span class="c1">-- Find fallback category by looking up Commons sitelink of different page</span> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a><span class="c1">-- qid = QID for current article</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a><span class="c1">-- property = property that refers to other article whose sitelink to return</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a><span class="c1">-- Returns: either category-stripped name of article, or nil</span> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_lookupFallback</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">property</span><span class="p">)</span> </span><span id="L-124"><a href="#L-124"><span class="linenos" data-line="124"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">_validProp</span><span class="p">(</span><span class="n">property</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-125"><a href="#L-125"><span class="linenos" data-line="125"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a> <span class="kr">end</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="n">qid</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a> <span class="n">property</span> <span class="o">=</span> <span class="n">property</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></span></a> <span class="c1">-- If property exists on current article, get value (other article qid)</span> </span><span id="L-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a> <span class="kd">local</span> <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">getBestStatements</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span> <span class="n">property</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a> <span class="kr">if</span> <span class="n">value</span> <span class="ow">and</span> <span class="n">value</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">value</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">value</span><span class="p">.</span><span class="n">id</span> <span class="kr">then</span> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a> <span class="c1">-- Look up Commons sitelink of other article</span> </span><span id="L-133"><a href="#L-133"><span class="linenos" data-line="133"></span></a> <span class="kd">local</span> <span class="n">sitelink</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">getSitelink</span><span class="p">(</span><span class="n">value</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">value</span><span class="p">.</span><span class="n">id</span><span class="p">,</span><span class="s2">"commonswiki"</span><span class="p">)</span> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a> <span class="c1">-- Check to see if it starts with "Category:". If so, strip it and return</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></span></a> <span class="kr">if</span> <span class="n">sitelink</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span><span class="n">sitelink</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="s2">"Category:"</span> <span class="kr">then</span> </span><span id="L-136"><a href="#L-136"><span class="linenos" data-line="136"></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">sub</span><span class="p">(</span><span class="n">sitelink</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a> <span class="kr">end</span> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a> <span class="kr">end</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a><span class="kr">end</span> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></span></a> </span><span id="L-142"><a href="#L-142"><span class="linenos" data-line="142"></span></a><span class="c1">-- Find Commons category by looking in wikidata</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a><span class="c1">-- qid = QID of current article</span> </span><span id="L-145"><a href="#L-145"><span class="linenos" data-line="145"></span></a><span class="c1">-- fetch = whether to lookup Commons sitelink (bool)</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a><span class="c1">-- commonsSitelink = default value for Commons sitelink</span> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a><span class="c1">-- Returns:</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></span></a><span class="c1">-- categoryLink = name of Commons category, nil if nothing is found</span> </span><span id="L-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a><span class="c1">-- consistent = multiple wikidata fields are examined: are they consistent?</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a><span class="c1">-- commonsSitelink = commons sitelink for current article</span> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_lookupCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span> <span class="n">fetch</span><span class="p">,</span> <span class="n">commonsSitelink</span><span class="p">)</span> </span><span id="L-152"><a href="#L-152"><span class="linenos" data-line="152"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a> <span class="kr">return</span> <span class="kc">nil</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">nil</span> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a> <span class="kr">end</span> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="n">qid</span><span class="p">:</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a> <span class="kd">local</span> <span class="n">categoryLink</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a> <span class="kd">local</span> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a> <span class="c1">-- look up commons sitelink for article, use if starts with "Category:"</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a> <span class="kr">if</span> <span class="n">fetch</span> <span class="kr">then</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a> <span class="n">commonsSitelink</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">getSitelink</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="s2">"commonswiki"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">commonsSitelink</span> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a> <span class="kr">end</span> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a> <span class="kr">if</span> <span class="n">commonsSitelink</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">sub</span><span class="p">(</span><span class="n">commonsSitelink</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="s2">"Category:"</span> <span class="kr">then</span> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a> <span class="n">categoryLink</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">sub</span><span class="p">(</span><span class="n">commonsSitelink</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a> <span class="kr">end</span> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a> <span class="c1">-- P910 is the "topic's main category". Look for commons sitelink there</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a> <span class="kd">local</span> <span class="n">fallback</span> <span class="o">=</span> <span class="n">_lookupFallback</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="s2">"P910"</span><span class="p">)</span> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a> <span class="kr">if</span> <span class="n">fallback</span> <span class="kr">then</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a> <span class="kr">if</span> <span class="n">categoryLink</span> <span class="ow">and</span> <span class="n">categoryLink</span> <span class="o">~=</span> <span class="n">fallback</span> <span class="kr">then</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a> <span class="kr">else</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a> <span class="n">categoryLink</span> <span class="o">=</span> <span class="n">fallback</span> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a> <span class="kr">end</span> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a> <span class="kr">end</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a> <span class="c1">-- P1754 is the "list's main category". Look for commons sitelink there</span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a> <span class="n">fallback</span> <span class="o">=</span> <span class="n">_lookupFallback</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="s2">"P1754"</span><span class="p">)</span> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a> <span class="kr">if</span> <span class="n">fallback</span> <span class="kr">then</span> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a> <span class="kr">if</span> <span class="n">categoryLink</span> <span class="ow">and</span> <span class="n">categoryLink</span> <span class="o">~=</span> <span class="n">fallback</span> <span class="kr">then</span> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a> <span class="n">qid</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> <span class="kr">else</span> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a> <span class="n">categoryLink</span> <span class="o">=</span> <span class="n">fallback</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a> <span class="kr">end</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> <span class="kr">end</span> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a> <span class="c1">-- P373 is the "commons category" property for this article. This is</span> </span><span id="L-186"><a href="#L-186"><span class="linenos" data-line="186"></span></a> <span class="c1">-- a low-quality field, so should only be used as a last resort.</span> </span><span id="L-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a> <span class="kr">if</span> <span class="n">categoryLink</span> <span class="o">==</span> <span class="kc">nil</span> <span class="ow">and</span> <span class="n">_validQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> <span class="kd">local</span> <span class="n">P373</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">getBestStatements</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span> <span class="s2">"P373"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a> <span class="kr">if</span> <span class="n">P373</span> <span class="ow">and</span> <span class="n">P373</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">.</span><span class="n">datavalue</span> <span class="kr">then</span> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> <span class="n">categoryLink</span> <span class="o">=</span> <span class="n">P373</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">value</span> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">true</span> <span class="c1">-- P373 is never used if anything else is available</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> <span class="kr">end</span> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a> <span class="kr">end</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a> <span class="kr">return</span> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">consistent</span><span class="p">,</span> <span class="n">commonsSitelink</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a><span class="kr">end</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a><span class="c1">-- Does the article have a Commons gallery, and is it consistent?</span> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a><span class="c1">-- Returns:</span> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a><span class="c1">-- filename at Commons, bool: is wikidata consistent for this article?</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_hasGalleryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> <span class="kd">local</span> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a> <span class="kr">return</span> <span class="n">_lookupGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a><span class="kr">end</span> </span><span id="L-207"><a href="#L-207"><span class="linenos" data-line="207"></span></a> </span><span id="L-208"><a href="#L-208"><span class="linenos" data-line="208"></span></a><span class="c1">-- Does the article have a corresponding Commons gallery?</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a><span class="c1">-- Returns:</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a><span class="c1">-- filename at Commons if so, false if not</span> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_hasGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a> <span class="kd">local</span> <span class="n">galleryLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasGalleryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </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">consistent</span> <span class="ow">and</span> <span class="n">galleryLink</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="c1">-- Does the article have a Commons category? Is wikidata consistent for that?</span> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-221"><a href="#L-221"><span class="linenos" data-line="221"></span></a><span class="c1">-- prefix = whether to add "Category:" to return string (default true)</span> </span><span id="L-222"><a href="#L-222"><span class="linenos" data-line="222"></span></a><span class="c1">-- Returns:</span> </span><span id="L-223"><a href="#L-223"><span class="linenos" data-line="223"></span></a><span class="c1">-- filename at Commons, bool: consistent</span> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_hasCategoryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">prefix</span><span class="p">)</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a> <span class="kr">if</span> <span class="n">prefix</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a> <span class="kr">end</span> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a> <span class="kd">local</span> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a> <span class="kd">local</span> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">_lookupCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a> <span class="kr">if</span> <span class="n">categoryLink</span> <span class="ow">and</span> <span class="n">prefix</span> <span class="kr">then</span> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a> <span class="n">categoryLink</span> <span class="o">=</span> <span class="s2">"Category:"</span><span class="o">..</span><span class="n">categoryLink</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a> <span class="kr">end</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a> <span class="kr">return</span> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">consistent</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a><span class="kr">end</span> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a><span class="c1">-- Does the article have a corresponding Commons category?</span> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a><span class="c1">-- prefix = whether to add "Category:" to return string (default true)</span> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a><span class="c1">-- Returns:</span> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a><span class="c1">-- filename at Commons if so, blank if not</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_hasCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">prefix</span><span class="p">)</span> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a> <span class="kd">local</span> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasCategoryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">prefix</span><span class="p">)</span> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="kr">return</span> <span class="n">consistent</span> <span class="ow">and</span> <span class="n">categoryLink</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="c1">-- Create Commons link corresponding to current article</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a><span class="c1">-- namespace = namespace in Commons ("" for galleries)</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a><span class="c1">-- default = use as Commons link, don't access wikidata</span> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a><span class="c1">-- search = string to search for</span> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a><span class="c1">-- fallback = string to search for if wikidata fails</span> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a><span class="c1">-- formatting = formatting parameters</span> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a><span class="c1">-- Returns:</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a><span class="c1">-- formatted wikilink to Commons in specified namespace</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getCommons</span><span class="p">(</span><span class="n">namespace</span><span class="p">,</span><span class="n">default</span><span class="p">,</span><span class="n">search</span><span class="p">,</span><span class="n">fallback</span><span class="p">,</span><span class="n">formatting</span><span class="p">,</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a> <span class="kd">local</span> <span class="n">nsColon</span> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">namespace</span> <span class="ow">or</span> <span class="n">namespace</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a> <span class="n">nsColon</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a> <span class="kr">else</span> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a> <span class="n">nsColon</span> <span class="o">=</span> <span class="n">namespace</span><span class="o">..</span><span class="s2">":"</span> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a> <span class="kr">end</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a> <span class="kr">if</span> <span class="n">default</span> <span class="kr">then</span> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:"</span><span class="o">..</span><span class="n">nsColon</span><span class="o">..</span><span class="n">default</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">default</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-267"><a href="#L-267"><span class="linenos" data-line="267"></span></a> <span class="kr">end</span> </span><span id="L-268"><a href="#L-268"><span class="linenos" data-line="268"></span></a> <span class="kr">if</span> <span class="n">search</span> <span class="kr">then</span> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:Special:Search/"</span><span class="o">..</span><span class="n">nsColon</span><span class="o">..</span><span class="n">search</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">search</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a> <span class="kr">end</span> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a> <span class="kd">local</span> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> <span class="kd">local</span> <span class="n">commonsLink</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a> <span class="kd">local</span> <span class="n">consistent</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">if</span> <span class="n">nsColon</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-276"><a href="#L-276"><span class="linenos" data-line="276"></span></a> <span class="n">commonsLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">_lookupGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</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">elseif</span> <span class="n">namespace</span><span class="p">:</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"category"</span> <span class="kr">then</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> <span class="n">commonsLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">_lookupCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></span></a> <span class="kr">end</span> </span><span id="L-280"><a href="#L-280"><span class="linenos" data-line="280"></span></a> <span class="c1">-- use wikidata if consistent</span> </span><span id="L-281"><a href="#L-281"><span class="linenos" data-line="281"></span></a> <span class="kr">if</span> <span class="n">commonsLink</span> <span class="ow">and</span> <span class="n">consistent</span> <span class="kr">then</span> </span><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:"</span><span class="o">..</span><span class="n">nsColon</span><span class="o">..</span><span class="n">commonsLink</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">commonsLink</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> <span class="kr">end</span> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="c1">-- if not consistent, fall back to search and add to tracking cat</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a> <span class="c1">-- construct default result (which searches for title)</span> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> <span class="kd">local</span> <span class="n">searchResult</span> <span class="o">=</span> <span class="s2">"[[Commons:Special:Search/"</span><span class="o">..</span><span class="n">nsColon</span><span class="o">..</span><span class="p">(</span><span class="n">fallback</span> <span class="ow">or</span> <span class="n">wp_title</span><span class="p">)</span> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a> <span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">fallback</span> <span class="ow">or</span> <span class="n">wp_title</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</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">consistent</span> <span class="ow">and</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</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="kd">local</span> <span class="n">friendlyNS</span> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="kr">if</span> <span class="n">nsColon</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a> <span class="n">friendlyNS</span> <span class="o">=</span> <span class="s2">"gallery"</span> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> <span class="kr">else</span> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a> <span class="n">friendlyNS</span> <span class="o">=</span> <span class="n">namespace</span><span class="p">:</span><span class="n">lower</span><span class="p">()</span> </span><span id="L-294"><a href="#L-294"><span class="linenos" data-line="294"></span></a> <span class="kr">end</span> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a> <span class="n">searchResult</span> <span class="o">=</span> <span class="n">searchResult</span><span class="o">..</span><span class="s2">"[[Category:Inconsistent wikidata for Commons "</span><span class="o">..</span><span class="n">friendlyNS</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-296"><a href="#L-296"><span class="linenos" data-line="296"></span></a> <span class="kr">end</span> </span><span id="L-297"><a href="#L-297"><span class="linenos" data-line="297"></span></a> <span class="kr">return</span> <span class="n">searchResult</span> </span><span id="L-298"><a href="#L-298"><span class="linenos" data-line="298"></span></a><span class="kr">end</span> </span><span id="L-299"><a href="#L-299"><span class="linenos" data-line="299"></span></a> </span><span id="L-300"><a href="#L-300"><span class="linenos" data-line="300"></span></a><span class="c1">-- Returns "best" Commons link: first look for gallery, then try category</span> </span><span id="L-301"><a href="#L-301"><span class="linenos" data-line="301"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-302"><a href="#L-302"><span class="linenos" data-line="302"></span></a><span class="c1">-- default = use as Commons link, don't access wikidata</span> </span><span id="L-303"><a href="#L-303"><span class="linenos" data-line="303"></span></a><span class="c1">-- search = string to search for</span> </span><span id="L-304"><a href="#L-304"><span class="linenos" data-line="304"></span></a><span class="c1">-- fallback = string to search for if wikidata lookup fails</span> </span><span id="L-305"><a href="#L-305"><span class="linenos" data-line="305"></span></a><span class="c1">-- formatting = formatting parameters</span> </span><span id="L-306"><a href="#L-306"><span class="linenos" data-line="306"></span></a><span class="c1">-- qid = QID to lookup in wikidata (for testing only)</span> </span><span id="L-307"><a href="#L-307"><span class="linenos" data-line="307"></span></a><span class="c1">-- Returns:</span> </span><span id="L-308"><a href="#L-308"><span class="linenos" data-line="308"></span></a><span class="c1">-- formatted wikilink to Commons "best" landing page</span> </span><span id="L-309"><a href="#L-309"><span class="linenos" data-line="309"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getGalleryOrCategory</span><span class="p">(</span><span class="n">default</span><span class="p">,</span> <span class="n">search</span><span class="p">,</span> <span class="n">fallback</span><span class="p">,</span> <span class="n">formatting</span><span class="p">,</span> <span class="n">qid</span><span class="p">)</span> </span><span id="L-310"><a href="#L-310"><span class="linenos" data-line="310"></span></a> <span class="kr">if</span> <span class="n">default</span> <span class="kr">then</span> </span><span id="L-311"><a href="#L-311"><span class="linenos" data-line="311"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:"</span><span class="o">..</span><span class="n">default</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">default</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-312"><a href="#L-312"><span class="linenos" data-line="312"></span></a> <span class="kr">end</span> </span><span id="L-313"><a href="#L-313"><span class="linenos" data-line="313"></span></a> <span class="kr">if</span> <span class="n">search</span> <span class="kr">then</span> </span><span id="L-314"><a href="#L-314"><span class="linenos" data-line="314"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:Special:Search/"</span><span class="o">..</span><span class="n">search</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">search</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-315"><a href="#L-315"><span class="linenos" data-line="315"></span></a> <span class="kr">end</span> </span><span id="L-316"><a href="#L-316"><span class="linenos" data-line="316"></span></a> <span class="kd">local</span> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span> </span><span id="L-317"><a href="#L-317"><span class="linenos" data-line="317"></span></a> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-318"><a href="#L-318"><span class="linenos" data-line="318"></span></a> <span class="kd">local</span> <span class="n">trackingCats</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-319"><a href="#L-319"><span class="linenos" data-line="319"></span></a> <span class="kd">local</span> <span class="n">galleryLink</span><span class="p">,</span> <span class="n">consistent</span><span class="p">,</span> <span class="n">commonsSitelink</span> <span class="o">=</span> <span class="n">_lookupGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-320"><a href="#L-320"><span class="linenos" data-line="320"></span></a> <span class="c1">-- use wikidata if either sitelink or P935 exist, and they both agree</span> </span><span id="L-321"><a href="#L-321"><span class="linenos" data-line="321"></span></a> <span class="kr">if</span> <span class="n">galleryLink</span> <span class="ow">and</span> <span class="n">consistent</span> <span class="kr">then</span> </span><span id="L-322"><a href="#L-322"><span class="linenos" data-line="322"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:"</span><span class="o">..</span><span class="n">galleryLink</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">galleryLink</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-323"><a href="#L-323"><span class="linenos" data-line="323"></span></a> <span class="kr">end</span> </span><span id="L-324"><a href="#L-324"><span class="linenos" data-line="324"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">consistent</span> <span class="ow">and</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-325"><a href="#L-325"><span class="linenos" data-line="325"></span></a> <span class="n">trackingCats</span> <span class="o">=</span> <span class="s2">"[[Category:Inconsistent wikidata for Commons gallery]]"</span> </span><span id="L-326"><a href="#L-326"><span class="linenos" data-line="326"></span></a> <span class="kr">end</span> </span><span id="L-327"><a href="#L-327"><span class="linenos" data-line="327"></span></a> <span class="c1">-- if gallery is not good, fall back looking for category</span> </span><span id="L-328"><a href="#L-328"><span class="linenos" data-line="328"></span></a> <span class="kd">local</span> <span class="n">categoryLink</span> </span><span id="L-329"><a href="#L-329"><span class="linenos" data-line="329"></span></a> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">_lookupCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">false</span><span class="p">,</span><span class="n">commonsSitelink</span><span class="p">)</span> </span><span id="L-330"><a href="#L-330"><span class="linenos" data-line="330"></span></a> <span class="kr">if</span> <span class="n">categoryLink</span> <span class="ow">and</span> <span class="n">consistent</span> <span class="kr">then</span> </span><span id="L-331"><a href="#L-331"><span class="linenos" data-line="331"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:Category:"</span><span class="o">..</span><span class="n">categoryLink</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">categoryLink</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span><span class="o">..</span><span class="n">trackingCats</span> </span><span id="L-332"><a href="#L-332"><span class="linenos" data-line="332"></span></a> <span class="kr">end</span> </span><span id="L-333"><a href="#L-333"><span class="linenos" data-line="333"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">consistent</span> <span class="ow">and</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-334"><a href="#L-334"><span class="linenos" data-line="334"></span></a> <span class="n">trackingCats</span> <span class="o">=</span> <span class="n">trackingCats</span><span class="o">..</span><span class="s2">"[[Category:Inconsistent wikidata for Commons category]]"</span> </span><span id="L-335"><a href="#L-335"><span class="linenos" data-line="335"></span></a> <span class="kr">end</span> </span><span id="L-336"><a href="#L-336"><span class="linenos" data-line="336"></span></a> <span class="c1">-- return search result looking for title as last attempt</span> </span><span id="L-337"><a href="#L-337"><span class="linenos" data-line="337"></span></a> <span class="kr">return</span> <span class="s2">"[[Commons:Special:Search/"</span> <span class="o">..</span> <span class="p">(</span><span class="n">fallback</span> <span class="ow">or</span> <span class="n">wp_title</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-338"><a href="#L-338"><span class="linenos" data-line="338"></span></a> <span class="s2">"|"</span> <span class="o">..</span> <span class="n">_formatResult</span><span class="p">(</span><span class="n">fallback</span> <span class="ow">or</span> <span class="n">wp_title</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span> <span class="o">..</span> <span class="s2">"]]"</span> <span class="o">..</span> <span class="n">trackingCats</span> </span><span id="L-339"><a href="#L-339"><span class="linenos" data-line="339"></span></a><span class="kr">end</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="c1">-- Return link(s) Commons gallery, or category, or both from wikidata</span> </span><span id="L-342"><a href="#L-342"><span class="linenos" data-line="342"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-343"><a href="#L-343"><span class="linenos" data-line="343"></span></a><span class="c1">-- defaultGallery = default gallery link to use, instead of wikidata</span> </span><span id="L-344"><a href="#L-344"><span class="linenos" data-line="344"></span></a><span class="c1">-- defaultCategory = default category link to use, instead of wikidata</span> </span><span id="L-345"><a href="#L-345"><span class="linenos" data-line="345"></span></a><span class="c1">-- categoryText = if both gallery and category, text to use in category link ("category" by default)</span> </span><span id="L-346"><a href="#L-346"><span class="linenos" data-line="346"></span></a><span class="c1">-- oneSearch = only emit one search result</span> </span><span id="L-347"><a href="#L-347"><span class="linenos" data-line="347"></span></a><span class="c1">-- formatting = formatting parameters</span> </span><span id="L-348"><a href="#L-348"><span class="linenos" data-line="348"></span></a><span class="c1">-- qid = qid of page to lookup in wikidata (testing only)</span> </span><span id="L-349"><a href="#L-349"><span class="linenos" data-line="349"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getGalleryAndCategory</span><span class="p">(</span><span class="n">defaultGallery</span><span class="p">,</span> <span class="n">defaultCategory</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">categoryText</span><span class="p">,</span> <span class="n">oneSearch</span><span class="p">,</span> <span class="n">formatting</span><span class="p">,</span> <span class="n">qid</span> </span><span id="L-351"><a href="#L-351"><span class="linenos" data-line="351"></span></a> <span class="p">)</span> </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">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span> </span><span id="L-353"><a href="#L-353"><span class="linenos" data-line="353"></span></a> <span class="n">wp_title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-354"><a href="#L-354"><span class="linenos" data-line="354"></span></a> <span class="n">categoryText</span> <span class="o">=</span> <span class="n">categoryText</span> <span class="ow">or</span> <span class="s2">"category"</span> </span><span id="L-355"><a href="#L-355"><span class="linenos" data-line="355"></span></a> <span class="kd">local</span> <span class="n">trackingCats</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-356"><a href="#L-356"><span class="linenos" data-line="356"></span></a> <span class="kd">local</span> <span class="n">galleryLink</span><span class="p">,</span> <span class="n">galleryConsistent</span> </span><span id="L-357"><a href="#L-357"><span class="linenos" data-line="357"></span></a> <span class="kd">local</span> <span class="n">commonsSitelink</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-358"><a href="#L-358"><span class="linenos" data-line="358"></span></a> <span class="kr">if</span> <span class="n">defaultGallery</span> <span class="kr">then</span> </span><span id="L-359"><a href="#L-359"><span class="linenos" data-line="359"></span></a> <span class="n">galleryLink</span> <span class="o">=</span> <span class="n">defaultGallery</span> </span><span id="L-360"><a href="#L-360"><span class="linenos" data-line="360"></span></a> <span class="n">galleryConsistent</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-361"><a href="#L-361"><span class="linenos" data-line="361"></span></a> <span class="kr">else</span> </span><span id="L-362"><a href="#L-362"><span class="linenos" data-line="362"></span></a> <span class="n">galleryLink</span><span class="p">,</span> <span class="n">galleryConsistent</span><span class="p">,</span> <span class="n">commonsSitelink</span> <span class="o">=</span> <span class="n">_lookupGallery</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-363"><a href="#L-363"><span class="linenos" data-line="363"></span></a> <span class="kr">end</span> </span><span id="L-364"><a href="#L-364"><span class="linenos" data-line="364"></span></a> <span class="kd">local</span> <span class="n">galleryGood</span> <span class="o">=</span> <span class="n">galleryLink</span> <span class="ow">and</span> <span class="n">galleryConsistent</span> </span><span id="L-365"><a href="#L-365"><span class="linenos" data-line="365"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">galleryConsistent</span> <span class="ow">and</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-366"><a href="#L-366"><span class="linenos" data-line="366"></span></a> <span class="n">trackingCats</span> <span class="o">=</span> <span class="s2">"[[Category:Inconsistent wikidata for Commons gallery]]"</span> </span><span id="L-367"><a href="#L-367"><span class="linenos" data-line="367"></span></a> <span class="kr">end</span> </span><span id="L-368"><a href="#L-368"><span class="linenos" data-line="368"></span></a> <span class="kd">local</span> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">categoryConsistent</span> </span><span id="L-369"><a href="#L-369"><span class="linenos" data-line="369"></span></a> <span class="kr">if</span> <span class="n">defaultCategory</span> <span class="kr">then</span> </span><span id="L-370"><a href="#L-370"><span class="linenos" data-line="370"></span></a> <span class="n">categoryLink</span> <span class="o">=</span> <span class="n">defaultCategory</span> </span><span id="L-371"><a href="#L-371"><span class="linenos" data-line="371"></span></a> <span class="n">categoryConsistent</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-372"><a href="#L-372"><span class="linenos" data-line="372"></span></a> <span class="kr">else</span> </span><span id="L-373"><a href="#L-373"><span class="linenos" data-line="373"></span></a> <span class="n">categoryLink</span><span class="p">,</span> <span class="n">categoryConsistent</span> <span class="o">=</span> <span class="n">_lookupCategory</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="n">defaultGallery</span><span class="p">,</span><span class="n">commonsSitelink</span><span class="p">)</span> </span><span id="L-374"><a href="#L-374"><span class="linenos" data-line="374"></span></a> <span class="kr">end</span> </span><span id="L-375"><a href="#L-375"><span class="linenos" data-line="375"></span></a> <span class="kd">local</span> <span class="n">categoryGood</span> <span class="o">=</span> <span class="n">categoryLink</span> <span class="ow">and</span> <span class="n">categoryConsistent</span> </span><span id="L-376"><a href="#L-376"><span class="linenos" data-line="376"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">categoryConsistent</span> <span class="ow">and</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-377"><a href="#L-377"><span class="linenos" data-line="377"></span></a> <span class="n">trackingCats</span> <span class="o">=</span> <span class="n">trackingCats</span><span class="o">..</span><span class="s2">"[[Category:Inconsistent wikidata for Commons category]]"</span> </span><span id="L-378"><a href="#L-378"><span class="linenos" data-line="378"></span></a> <span class="kr">end</span> </span><span id="L-379"><a href="#L-379"><span class="linenos" data-line="379"></span></a> <span class="kd">local</span> <span class="n">firstLink</span> </span><span id="L-380"><a href="#L-380"><span class="linenos" data-line="380"></span></a> <span class="c1">-- construct default result (which searches for title)</span> </span><span id="L-381"><a href="#L-381"><span class="linenos" data-line="381"></span></a> <span class="kd">local</span> <span class="n">searchResult</span> <span class="o">=</span> <span class="s2">"[[Commons:Special:Search/"</span><span class="o">..</span><span class="n">wp_title</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">wp_title</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </span><span id="L-382"><a href="#L-382"><span class="linenos" data-line="382"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">oneSearch</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">searchResult</span> <span class="o">=</span> <span class="n">searchResult</span><span class="o">..</span><span class="s2">" ([[Commons:Special:Search/Category:"</span><span class="o">..</span><span class="n">wp_title</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">categoryText</span><span class="o">..</span><span class="s2">"]])"</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 class="kd">local</span> <span class="n">linkText</span> <span class="o">=</span> <span class="kc">nil</span> </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">galleryGood</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="n">firstLink</span> <span class="o">=</span> <span class="n">galleryLink</span> </span><span id="L-388"><a href="#L-388"><span class="linenos" data-line="388"></span></a> <span class="n">linkText</span> <span class="o">=</span> <span class="n">galleryLink</span> </span><span id="L-389"><a href="#L-389"><span class="linenos" data-line="389"></span></a> <span class="kr">elseif</span> <span class="n">categoryGood</span> <span class="kr">then</span> </span><span id="L-390"><a href="#L-390"><span class="linenos" data-line="390"></span></a> <span class="n">firstLink</span> <span class="o">=</span> <span class="s2">"Category:"</span><span class="o">..</span><span class="n">categoryLink</span> </span><span id="L-391"><a href="#L-391"><span class="linenos" data-line="391"></span></a> <span class="n">linkText</span> <span class="o">=</span> <span class="n">categoryLink</span> </span><span id="L-392"><a href="#L-392"><span class="linenos" data-line="392"></span></a> <span class="kr">else</span> </span><span id="L-393"><a href="#L-393"><span class="linenos" data-line="393"></span></a> <span class="kr">return</span> <span class="n">searchResult</span><span class="o">..</span><span class="n">trackingCats</span> </span><span id="L-394"><a href="#L-394"><span class="linenos" data-line="394"></span></a> <span class="kr">end</span> </span><span id="L-395"><a href="#L-395"><span class="linenos" data-line="395"></span></a> <span class="kd">local</span> <span class="n">resultVal</span> <span class="o">=</span> <span class="s2">"[[Commons:"</span><span class="o">..</span><span class="n">firstLink</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">_formatResult</span><span class="p">(</span><span class="n">linkText</span><span class="p">,</span><span class="n">formatting</span><span class="p">)</span><span class="o">..</span><span class="s2">"]]"</span> </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">galleryGood</span> <span class="ow">and</span> <span class="n">categoryGood</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="n">resultVal</span> <span class="o">=</span> <span class="n">resultVal</span><span class="o">..</span><span class="s2">" ([[Commons:Category:"</span><span class="o">..</span><span class="n">categoryLink</span><span class="o">..</span><span class="s2">"|"</span><span class="o">..</span><span class="n">categoryText</span><span class="o">..</span><span class="s2">"]])"</span> </span><span id="L-398"><a href="#L-398"><span class="linenos" data-line="398"></span></a> <span class="kr">end</span> </span><span id="L-399"><a href="#L-399"><span class="linenos" data-line="399"></span></a> <span class="kr">return</span> <span class="n">resultVal</span><span class="o">..</span><span class="n">trackingCats</span> </span><span id="L-400"><a href="#L-400"><span class="linenos" data-line="400"></span></a><span class="kr">end</span> </span><span id="L-401"><a href="#L-401"><span class="linenos" data-line="401"></span></a> </span><span id="L-402"><a href="#L-402"><span class="linenos" data-line="402"></span></a><span class="c1">-- Compare two titles with their namespaces stripped</span> </span><span id="L-403"><a href="#L-403"><span class="linenos" data-line="403"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">titleMatch</span><span class="p">(</span><span class="n">s1</span><span class="p">,</span><span class="n">s2</span><span class="p">)</span> </span><span id="L-404"><a href="#L-404"><span class="linenos" data-line="404"></span></a> <span class="n">s1</span> <span class="o">=</span> <span class="n">s1</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-405"><a href="#L-405"><span class="linenos" data-line="405"></span></a> <span class="n">s2</span> <span class="o">=</span> <span class="n">s2</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-406"><a href="#L-406"><span class="linenos" data-line="406"></span></a> <span class="n">s1</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">s1</span><span class="p">,</span><span class="s2">"^[^:]+:"</span><span class="p">,</span><span class="s2">""</span><span class="p">)</span> </span><span id="L-407"><a href="#L-407"><span class="linenos" data-line="407"></span></a> <span class="n">s2</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">s2</span><span class="p">,</span><span class="s2">"^[^:]+:"</span><span class="p">,</span><span class="s2">""</span><span class="p">)</span> </span><span id="L-408"><a href="#L-408"><span class="linenos" data-line="408"></span></a> <span class="kr">return</span> <span class="n">s1</span> <span class="o">==</span> <span class="n">s2</span> </span><span id="L-409"><a href="#L-409"><span class="linenos" data-line="409"></span></a><span class="kr">end</span> </span><span id="L-410"><a href="#L-410"><span class="linenos" data-line="410"></span></a> </span><span id="L-411"><a href="#L-411"><span class="linenos" data-line="411"></span></a><span class="kd">local</span> <span class="n">galleryTrackingCats</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-412"><a href="#L-412"><span class="linenos" data-line="412"></span></a> <span class="n">commons_link_on_wikidata</span> <span class="o">=</span> <span class="s1">'[[Category:Commons link is on Wikidata]]'</span><span class="p">,</span> </span><span id="L-413"><a href="#L-413"><span class="linenos" data-line="413"></span></a> <span class="n">commons_link_defined_as_pagename</span> <span class="o">=</span> <span class="s1">'[[Category:Commons link is defined as the pagename]]'</span><span class="p">,</span> </span><span id="L-414"><a href="#L-414"><span class="linenos" data-line="414"></span></a> <span class="n">commons_link_locally_defined</span> <span class="o">=</span> <span class="s1">'[[Category:Commons link is locally defined]]'</span><span class="p">,</span> </span><span id="L-415"><a href="#L-415"><span class="linenos" data-line="415"></span></a> <span class="n">commons_link_from_wikidata</span> <span class="o">=</span> <span class="s1">'[[Category:Commons link from Wikidata]]'</span><span class="p">,</span> </span><span id="L-416"><a href="#L-416"><span class="linenos" data-line="416"></span></a> <span class="n">commons_link_is_pagename</span> <span class="o">=</span> <span class="s1">'[[Category:Commons link is the pagename]]'</span><span class="p">,</span> </span><span id="L-417"><a href="#L-417"><span class="linenos" data-line="417"></span></a> <span class="n">inconsistent</span> <span class="o">=</span> <span class="s1">'[[Category:Inconsistent wikidata for Commons gallery]]'</span> </span><span id="L-418"><a href="#L-418"><span class="linenos" data-line="418"></span></a><span class="p">}</span> </span><span id="L-419"><a href="#L-419"><span class="linenos" data-line="419"></span></a> </span><span id="L-420"><a href="#L-420"><span class="linenos" data-line="420"></span></a><span class="kd">local</span> <span class="n">categoryTrackingCats</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-421"><a href="#L-421"><span class="linenos" data-line="421"></span></a> <span class="n">commons_link_on_wikidata</span> <span class="o">=</span> <span class="s1">'[[Category:Commons category link is on Wikidata]]'</span><span class="p">,</span> </span><span id="L-422"><a href="#L-422"><span class="linenos" data-line="422"></span></a> <span class="n">commons_link_defined_as_pagename</span> <span class="o">=</span> <span class="s1">'[[Category:Commons category link is defined as the pagename]]'</span><span class="p">,</span> </span><span id="L-423"><a href="#L-423"><span class="linenos" data-line="423"></span></a> <span class="n">commons_link_locally_defined</span> <span class="o">=</span> <span class="s1">'[[Category:Commons category link is locally defined]]'</span><span class="p">,</span> </span><span id="L-424"><a href="#L-424"><span class="linenos" data-line="424"></span></a> <span class="n">commons_link_from_wikidata</span> <span class="o">=</span> <span class="s1">'[[Category:Commons category link from Wikidata]]'</span><span class="p">,</span> </span><span id="L-425"><a href="#L-425"><span class="linenos" data-line="425"></span></a> <span class="n">commons_link_is_pagename</span> <span class="o">=</span> <span class="s1">'[[Category:Commons category link is the pagename]]'</span><span class="p">,</span> </span><span id="L-426"><a href="#L-426"><span class="linenos" data-line="426"></span></a> <span class="n">inconsistent</span> <span class="o">=</span> <span class="s1">'[[Category:Inconsistent wikidata for Commons category]]'</span> </span><span id="L-427"><a href="#L-427"><span class="linenos" data-line="427"></span></a> <span class="p">}</span> </span><span id="L-428"><a href="#L-428"><span class="linenos" data-line="428"></span></a> </span><span id="L-429"><a href="#L-429"><span class="linenos" data-line="429"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">selectTrackingCat</span><span class="p">(</span><span class="n">trackingCats</span><span class="p">,</span><span class="n">wikidata</span><span class="p">,</span><span class="n">consistent</span><span class="p">,</span><span class="n">default</span><span class="p">,</span><span class="n">title</span><span class="p">)</span> </span><span id="L-430"><a href="#L-430"><span class="linenos" data-line="430"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">consistent</span> <span class="kr">then</span> </span><span id="L-431"><a href="#L-431"><span class="linenos" data-line="431"></span></a> <span class="kr">return</span> <span class="n">trackingCats</span><span class="p">.</span><span class="n">inconsistent</span> </span><span id="L-432"><a href="#L-432"><span class="linenos" data-line="432"></span></a> <span class="kr">end</span> </span><span id="L-433"><a href="#L-433"><span class="linenos" data-line="433"></span></a> <span class="kr">if</span> <span class="n">default</span> <span class="kr">then</span> </span><span id="L-434"><a href="#L-434"><span class="linenos" data-line="434"></span></a> <span class="c1">-- construct warning message</span> </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">default</span> <span class="o">==</span> <span class="n">wikidata</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="n">trackingCats</span><span class="p">.</span><span class="n">commons_link_on_wikidata</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 class="kd">local</span> <span class="n">warning</span> <span class="o">=</span> <span class="s2">""</span> </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">wikidata</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="kd">local</span> <span class="n">generateWarning</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:If preview'</span><span class="p">).</span><span class="n">_warning</span> </span><span id="L-441"><a href="#L-441"><span class="linenos" data-line="441"></span></a> <span class="n">warning</span> <span class="o">=</span> <span class="n">generateWarning</span><span class="p">({</span> </span><span id="L-442"><a href="#L-442"><span class="linenos" data-line="442"></span></a> <span class="s2">"Commons link does not match Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]"</span> </span><span id="L-443"><a href="#L-443"><span class="linenos" data-line="443"></span></a> <span class="p">})</span> </span><span id="L-444"><a href="#L-444"><span class="linenos" data-line="444"></span></a> <span class="kr">end</span> </span><span id="L-445"><a href="#L-445"><span class="linenos" data-line="445"></span></a> <span class="kr">if</span> <span class="n">titleMatch</span><span class="p">(</span><span class="n">default</span><span class="p">,</span><span class="n">title</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-446"><a href="#L-446"><span class="linenos" data-line="446"></span></a> <span class="kr">return</span> <span class="n">trackingCats</span><span class="p">.</span><span class="n">commons_link_defined_as_pagename</span> <span class="o">..</span> <span class="n">warning</span> </span><span id="L-447"><a href="#L-447"><span class="linenos" data-line="447"></span></a> <span class="kr">end</span> </span><span id="L-448"><a href="#L-448"><span class="linenos" data-line="448"></span></a> <span class="kr">return</span> <span class="n">trackingCats</span><span class="p">.</span><span class="n">commons_link_locally_defined</span> <span class="o">..</span> <span class="n">warning</span> </span><span id="L-449"><a href="#L-449"><span class="linenos" data-line="449"></span></a> <span class="kr">end</span> </span><span id="L-450"><a href="#L-450"><span class="linenos" data-line="450"></span></a> <span class="kr">if</span> <span class="n">wikidata</span> <span class="kr">then</span> </span><span id="L-451"><a href="#L-451"><span class="linenos" data-line="451"></span></a> <span class="kr">return</span> <span class="n">trackingCats</span><span class="p">.</span><span class="n">commons_link_from_wikidata</span> </span><span id="L-452"><a href="#L-452"><span class="linenos" data-line="452"></span></a> <span class="kr">end</span> </span><span id="L-453"><a href="#L-453"><span class="linenos" data-line="453"></span></a> <span class="kr">return</span> <span class="n">trackingCats</span><span class="p">.</span><span class="n">commons_link_is_pagename</span> </span><span id="L-454"><a href="#L-454"><span class="linenos" data-line="454"></span></a><span class="kr">end</span> </span><span id="L-455"><a href="#L-455"><span class="linenos" data-line="455"></span></a> </span><span id="L-456"><a href="#L-456"><span class="linenos" data-line="456"></span></a><span class="c1">-- Figure out tracking categories and editor warnings</span> </span><span id="L-457"><a href="#L-457"><span class="linenos" data-line="457"></span></a><span class="c1">-- Arguments:</span> </span><span id="L-458"><a href="#L-458"><span class="linenos" data-line="458"></span></a><span class="c1">-- default = Commons link argument passed to template</span> </span><span id="L-459"><a href="#L-459"><span class="linenos" data-line="459"></span></a><span class="c1">-- fetchGallery = whether to fetch a gallery from Wikidata</span> </span><span id="L-460"><a href="#L-460"><span class="linenos" data-line="460"></span></a><span class="c1">-- fetchCategory = whether to fetch a category from Wikidata</span> </span><span id="L-461"><a href="#L-461"><span class="linenos" data-line="461"></span></a><span class="c1">-- qid = force a qid for testing</span> </span><span id="L-462"><a href="#L-462"><span class="linenos" data-line="462"></span></a><span class="c1">-- Returns:</span> </span><span id="L-463"><a href="#L-463"><span class="linenos" data-line="463"></span></a><span class="c1">-- tracking category and possible user warning</span> </span><span id="L-464"><a href="#L-464"><span class="linenos" data-line="464"></span></a><span class="c1">--</span> </span><span id="L-465"><a href="#L-465"><span class="linenos" data-line="465"></span></a><span class="c1">-- Note: the logic for the tracking is quite different than the logic</span> </span><span id="L-466"><a href="#L-466"><span class="linenos" data-line="466"></span></a><span class="c1">-- for generating Commons links (above). Thus, it is separated into another</span> </span><span id="L-467"><a href="#L-467"><span class="linenos" data-line="467"></span></a><span class="c1">-- function for code clarity and maintainability. This should not seriously </span> </span><span id="L-468"><a href="#L-468"><span class="linenos" data-line="468"></span></a><span class="c1">-- affect performance: server time is dominated by fetching wikidata entities,</span> </span><span id="L-469"><a href="#L-469"><span class="linenos" data-line="469"></span></a><span class="c1">-- and those entities should be cached and shared between the Commons generating</span> </span><span id="L-470"><a href="#L-470"><span class="linenos" data-line="470"></span></a><span class="c1">-- code and this tracking code.</span> </span><span id="L-471"><a href="#L-471"><span class="linenos" data-line="471"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_tracking</span><span class="p">(</span><span class="n">default</span><span class="p">,</span> <span class="n">fetchGallery</span><span class="p">,</span> <span class="n">fetchCategory</span><span class="p">,</span> <span class="n">qid</span><span class="p">)</span> </span><span id="L-472"><a href="#L-472"><span class="linenos" data-line="472"></span></a> <span class="kd">local</span> <span class="n">title</span><span class="p">,</span> <span class="n">wp_ns</span><span class="p">,</span> <span class="n">wp_qid</span> <span class="o">=</span> <span class="n">_getTitleQID</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-473"><a href="#L-473"><span class="linenos" data-line="473"></span></a> <span class="kr">if</span> <span class="n">wp_ns</span> <span class="o">~=</span> <span class="s2">""</span> <span class="kr">then</span> </span><span id="L-474"><a href="#L-474"><span class="linenos" data-line="474"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">wp_ns</span><span class="o">..</span><span class="s2">":"</span><span class="o">..</span><span class="n">title</span> </span><span id="L-475"><a href="#L-475"><span class="linenos" data-line="475"></span></a> <span class="kr">end</span> </span><span id="L-476"><a href="#L-476"><span class="linenos" data-line="476"></span></a> <span class="c1">-- only track if test or namespace=article or namespace=category</span> </span><span id="L-477"><a href="#L-477"><span class="linenos" data-line="477"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">qid</span> <span class="ow">or</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">""</span> <span class="ow">or</span> <span class="n">wp_ns</span> <span class="o">==</span> <span class="s2">"Category"</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-478"><a href="#L-478"><span class="linenos" data-line="478"></span></a> <span class="kr">return</span> <span class="s2">""</span> </span><span id="L-479"><a href="#L-479"><span class="linenos" data-line="479"></span></a> <span class="kr">end</span> </span><span id="L-480"><a href="#L-480"><span class="linenos" data-line="480"></span></a> </span><span id="L-481"><a href="#L-481"><span class="linenos" data-line="481"></span></a> <span class="c1">-- determine title and namespace of wikidata and wp article</span> </span><span id="L-482"><a href="#L-482"><span class="linenos" data-line="482"></span></a> <span class="kd">local</span> <span class="n">wikidata</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-483"><a href="#L-483"><span class="linenos" data-line="483"></span></a> <span class="kd">local</span> <span class="n">consistent</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-484"><a href="#L-484"><span class="linenos" data-line="484"></span></a> <span class="c1">-- Tracking code works for all 4 cases of states of fetchGallery/Category</span> </span><span id="L-485"><a href="#L-485"><span class="linenos" data-line="485"></span></a> <span class="c1">-- fetchGallery takes precedence</span> </span><span id="L-486"><a href="#L-486"><span class="linenos" data-line="486"></span></a> <span class="kr">if</span> <span class="n">fetchGallery</span> <span class="kr">then</span> </span><span id="L-487"><a href="#L-487"><span class="linenos" data-line="487"></span></a> <span class="n">wikidata</span><span class="p">,</span> <span class="n">consistent</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasGalleryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-488"><a href="#L-488"><span class="linenos" data-line="488"></span></a> <span class="kr">if</span> <span class="n">default</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">fetchCategory</span> <span class="ow">or</span> <span class="p">(</span><span class="n">consistent</span> <span class="ow">and</span> <span class="n">wikidata</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-489"><a href="#L-489"><span class="linenos" data-line="489"></span></a> <span class="kr">return</span> <span class="n">selectTrackingCat</span><span class="p">(</span><span class="n">galleryTrackingCats</span><span class="p">,</span><span class="n">wikidata</span><span class="p">,</span><span class="n">consistent</span><span class="p">,</span> </span><span id="L-490"><a href="#L-490"><span class="linenos" data-line="490"></span></a> <span class="n">default</span><span class="p">,</span><span class="n">title</span><span class="p">)</span> </span><span id="L-491"><a href="#L-491"><span class="linenos" data-line="491"></span></a> <span class="kr">end</span> </span><span id="L-492"><a href="#L-492"><span class="linenos" data-line="492"></span></a> <span class="kr">end</span> </span><span id="L-493"><a href="#L-493"><span class="linenos" data-line="493"></span></a> <span class="kr">if</span> <span class="n">fetchCategory</span> <span class="kr">then</span> </span><span id="L-494"><a href="#L-494"><span class="linenos" data-line="494"></span></a> <span class="kd">local</span> <span class="n">cat_wikidata</span><span class="p">,</span> <span class="n">cat_consistent</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasCategoryConsistent</span><span class="p">(</span><span class="n">qid</span><span class="p">,</span><span class="kc">true</span><span class="p">)</span> </span><span id="L-495"><a href="#L-495"><span class="linenos" data-line="495"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">fetchGallery</span> <span class="ow">or</span> <span class="p">(</span><span class="n">cat_consistent</span> <span class="ow">and</span> <span class="n">cat_wikidata</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-496"><a href="#L-496"><span class="linenos" data-line="496"></span></a> <span class="kr">return</span> <span class="n">selectTrackingCat</span><span class="p">(</span><span class="n">categoryTrackingCats</span><span class="p">,</span><span class="n">cat_wikidata</span><span class="p">,</span> </span><span id="L-497"><a href="#L-497"><span class="linenos" data-line="497"></span></a> <span class="n">cat_consistent</span><span class="p">,</span><span class="n">default</span><span class="p">,</span><span class="n">title</span><span class="p">)</span> </span><span id="L-498"><a href="#L-498"><span class="linenos" data-line="498"></span></a> <span class="kr">end</span> </span><span id="L-499"><a href="#L-499"><span class="linenos" data-line="499"></span></a> <span class="kr">return</span> <span class="n">selectTrackingCat</span><span class="p">(</span><span class="n">galleryTrackingCats</span><span class="p">,</span><span class="n">wikidata</span><span class="p">,</span><span class="n">consistent</span><span class="p">,</span> </span><span id="L-500"><a href="#L-500"><span class="linenos" data-line="500"></span></a> <span class="n">default</span><span class="p">,</span><span class="n">title</span><span class="p">)</span> </span><span id="L-501"><a href="#L-501"><span class="linenos" data-line="501"></span></a> <span class="kr">end</span> </span><span id="L-502"><a href="#L-502"><span class="linenos" data-line="502"></span></a> <span class="kr">return</span> <span class="s2">""</span> <span class="c1">-- nothing fetched, nothing tracked</span> </span><span id="L-503"><a href="#L-503"><span class="linenos" data-line="503"></span></a><span class="kr">end</span> </span><span id="L-504"><a href="#L-504"><span class="linenos" data-line="504"></span></a> </span><span id="L-505"><a href="#L-505"><span class="linenos" data-line="505"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">_createFormatting</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-506"><a href="#L-506"><span class="linenos" data-line="506"></span></a> <span class="kd">local</span> <span class="n">formatting</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-507"><a href="#L-507"><span class="linenos" data-line="507"></span></a> <span class="n">formatting</span><span class="p">.</span><span class="n">linktext</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">linktext</span> </span><span id="L-508"><a href="#L-508"><span class="linenos" data-line="508"></span></a> <span class="kd">local</span> <span class="n">yesNo</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:Yesno'</span><span class="p">)</span> </span><span id="L-509"><a href="#L-509"><span class="linenos" data-line="509"></span></a> <span class="n">formatting</span><span class="p">.</span><span class="n">lcfirst</span> <span class="o">=</span> <span class="n">yesNo</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">lcfirst</span><span class="p">)</span> </span><span id="L-510"><a href="#L-510"><span class="linenos" data-line="510"></span></a> <span class="n">formatting</span><span class="p">.</span><span class="n">bold</span> <span class="o">=</span> <span class="n">yesNo</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">bold</span><span class="p">)</span> </span><span id="L-511"><a href="#L-511"><span class="linenos" data-line="511"></span></a> <span class="n">formatting</span><span class="p">.</span><span class="n">italic</span> <span class="o">=</span> <span class="n">yesNo</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">italic</span><span class="p">)</span> </span><span id="L-512"><a href="#L-512"><span class="linenos" data-line="512"></span></a> <span class="n">formatting</span><span class="p">.</span><span class="n">nowrap</span> <span class="o">=</span> <span class="n">yesNo</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">nowrap</span><span class="p">)</span> </span><span id="L-513"><a href="#L-513"><span class="linenos" data-line="513"></span></a> <span class="kr">return</span> <span class="n">formatting</span> </span><span id="L-514"><a href="#L-514"><span class="linenos" data-line="514"></span></a><span class="kr">end</span> </span><span id="L-515"><a href="#L-515"><span class="linenos" data-line="515"></span></a> </span><span id="L-516"><a href="#L-516"><span class="linenos" data-line="516"></span></a><span class="c1">-- Testing-only entry point for _getTitleQID</span> </span><span id="L-517"><a href="#L-517"><span class="linenos" data-line="517"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getTitleQID</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-518"><a href="#L-518"><span class="linenos" data-line="518"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-519"><a href="#L-519"><span class="linenos" data-line="519"></span></a> <span class="kd">local</span> <span class="n">text</span><span class="p">,</span> <span class="n">ns</span><span class="p">,</span> <span class="n">qid</span> <span class="o">=</span> <span class="n">_getTitleQID</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="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> </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">text</span><span class="o">..</span><span class="s2">","</span><span class="o">..</span><span class="n">ns</span><span class="o">..</span><span class="s2">","</span><span class="o">..</span><span class="p">(</span><span class="n">qid</span> <span class="ow">or</span> <span class="s2">"nil"</span><span class="p">)</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="c1">-- Testing-only entry point for _lookupFallback</span> </span><span id="L-524"><a href="#L-524"><span class="linenos" data-line="524"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">lookupFallback</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-525"><a href="#L-525"><span class="linenos" data-line="525"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-526"><a href="#L-526"><span class="linenos" data-line="526"></span></a> <span class="kd">local</span> <span class="n">fallback</span> <span class="o">=</span> <span class="n">_lookupFallback</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="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> </span><span id="L-527"><a href="#L-527"><span class="linenos" data-line="527"></span></a> <span class="kr">return</span> <span class="n">fallback</span> <span class="ow">or</span> <span class="s2">"nil"</span> </span><span id="L-528"><a href="#L-528"><span class="linenos" data-line="528"></span></a><span class="kr">end</span> </span><span id="L-529"><a href="#L-529"><span class="linenos" data-line="529"></span></a> </span><span id="L-530"><a href="#L-530"><span class="linenos" data-line="530"></span></a><span class="c1">-- Find the Commons gallery page associated with article</span> </span><span id="L-531"><a href="#L-531"><span class="linenos" data-line="531"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getGallery</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-532"><a href="#L-532"><span class="linenos" data-line="532"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-533"><a href="#L-533"><span class="linenos" data-line="533"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getCommons</span><span class="p">(</span><span class="s2">""</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="n">args</span><span class="p">.</span><span class="n">search</span><span class="p">,</span><span class="n">args</span><span class="p">.</span><span class="n">fallback</span><span class="p">,</span><span class="n">_createFormatting</span><span class="p">(</span><span class="n">args</span><span class="p">),</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</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><span id="L-536"><a href="#L-536"><span class="linenos" data-line="536"></span></a><span class="c1">-- Find the Commons category page associated with article</span> </span><span id="L-537"><a href="#L-537"><span class="linenos" data-line="537"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getCategory</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-538"><a href="#L-538"><span class="linenos" data-line="538"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-539"><a href="#L-539"><span class="linenos" data-line="539"></span></a> <span class="kd">local</span> <span class="n">retval</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_getCommons</span><span class="p">(</span><span class="s2">"Category"</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-540"><a href="#L-540"><span class="linenos" data-line="540"></span></a> <span class="n">args</span><span class="p">.</span><span class="n">search</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">fallback</span><span class="p">,</span> <span class="n">_createFormatting</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="n">args</span><span class="p">.</span><span class="n">qid</span> </span><span id="L-541"><a href="#L-541"><span class="linenos" data-line="541"></span></a> <span class="p">)</span> </span><span id="L-542"><a href="#L-542"><span class="linenos" data-line="542"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">tracking</span> <span class="kr">then</span> </span><span id="L-543"><a href="#L-543"><span class="linenos" data-line="543"></span></a> <span class="kd">local</span> <span class="n">default</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-544"><a href="#L-544"><span class="linenos" data-line="544"></span></a> <span class="kr">if</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-545"><a href="#L-545"><span class="linenos" data-line="545"></span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"Category:"</span><span class="o">..</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-546"><a href="#L-546"><span class="linenos" data-line="546"></span></a> <span class="kr">end</span> </span><span id="L-547"><a href="#L-547"><span class="linenos" data-line="547"></span></a> <span class="n">retval</span> <span class="o">=</span> <span class="n">retval</span><span class="o">..</span><span class="n">p</span><span class="p">.</span><span class="n">_tracking</span><span class="p">(</span><span class="n">default</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="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-548"><a href="#L-548"><span class="linenos" data-line="548"></span></a> <span class="kr">end</span> </span><span id="L-549"><a href="#L-549"><span class="linenos" data-line="549"></span></a> <span class="kr">return</span> <span class="n">retval</span> </span><span id="L-550"><a href="#L-550"><span class="linenos" data-line="550"></span></a><span class="kr">end</span> </span><span id="L-551"><a href="#L-551"><span class="linenos" data-line="551"></span></a> </span><span id="L-552"><a href="#L-552"><span class="linenos" data-line="552"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getGalleryOrCategory</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-553"><a href="#L-553"><span class="linenos" data-line="553"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-554"><a href="#L-554"><span class="linenos" data-line="554"></span></a> <span class="kd">local</span> <span class="n">retval</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_getGalleryOrCategory</span><span class="p">(</span> </span><span id="L-555"><a href="#L-555"><span class="linenos" data-line="555"></span></a> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">args</span><span class="p">.</span><span class="n">search</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">fallback</span><span class="p">,</span> <span class="n">_createFormatting</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="n">args</span><span class="p">.</span><span class="n">qid</span> </span><span id="L-556"><a href="#L-556"><span class="linenos" data-line="556"></span></a> <span class="p">)</span> </span><span id="L-557"><a href="#L-557"><span class="linenos" data-line="557"></span></a> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">tracking</span> <span class="kr">then</span> </span><span id="L-558"><a href="#L-558"><span class="linenos" data-line="558"></span></a> <span class="n">retval</span> <span class="o">=</span> <span class="n">retval</span><span class="o">..</span><span class="n">p</span><span class="p">.</span><span class="n">_tracking</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="kc">true</span><span class="p">,</span><span class="kc">true</span><span class="p">,</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-559"><a href="#L-559"><span class="linenos" data-line="559"></span></a> <span class="kr">end</span> </span><span id="L-560"><a href="#L-560"><span class="linenos" data-line="560"></span></a> <span class="kr">return</span> <span class="n">retval</span> </span><span id="L-561"><a href="#L-561"><span class="linenos" data-line="561"></span></a><span class="kr">end</span> </span><span id="L-562"><a href="#L-562"><span class="linenos" data-line="562"></span></a> </span><span id="L-563"><a href="#L-563"><span class="linenos" data-line="563"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">hasGallery</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-564"><a href="#L-564"><span class="linenos" data-line="564"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-565"><a href="#L-565"><span class="linenos" data-line="565"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasGallery</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-566"><a href="#L-566"><span class="linenos" data-line="566"></span></a><span class="kr">end</span> </span><span id="L-567"><a href="#L-567"><span class="linenos" data-line="567"></span></a> </span><span id="L-568"><a href="#L-568"><span class="linenos" data-line="568"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">hasCategory</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-569"><a href="#L-569"><span class="linenos" data-line="569"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</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">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasCategory</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">""</span> </span><span id="L-571"><a href="#L-571"><span class="linenos" data-line="571"></span></a><span class="kr">end</span> </span><span id="L-572"><a href="#L-572"><span class="linenos" data-line="572"></span></a> </span><span id="L-573"><a href="#L-573"><span class="linenos" data-line="573"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">hasGalleryOrCategory</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-574"><a href="#L-574"><span class="linenos" data-line="574"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-575"><a href="#L-575"><span class="linenos" data-line="575"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasGallery</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">_hasCategory</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">""</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><span id="L-578"><a href="#L-578"><span class="linenos" data-line="578"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getGalleryAndCategory</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-579"><a href="#L-579"><span class="linenos" data-line="579"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-580"><a href="#L-580"><span class="linenos" data-line="580"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getGalleryAndCategory</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="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> </span><span id="L-581"><a href="#L-581"><span class="linenos" data-line="581"></span></a> <span class="n">args</span><span class="p">.</span><span class="n">categoryText</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">oneSearch</span><span class="p">,</span> <span class="n">_createFormatting</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="n">args</span><span class="p">.</span><span class="n">qid</span><span class="p">)</span> </span><span id="L-582"><a href="#L-582"><span class="linenos" data-line="582"></span></a><span class="kr">end</span> </span><span id="L-583"><a href="#L-583"><span class="linenos" data-line="583"></span></a> </span><span id="L-584"><a href="#L-584"><span class="linenos" data-line="584"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">tracking</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-585"><a href="#L-585"><span class="linenos" data-line="585"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,{</span><span class="n">frameOnly</span><span class="o">=</span><span class="kc">true</span><span class="p">,</span><span class="n">parentOnly</span><span class="o">=</span><span class="kc">false</span><span class="p">,</span><span class="n">parentFirst</span><span class="o">=</span><span class="kc">false</span><span class="p">})</span> </span><span id="L-586"><a href="#L-586"><span class="linenos" data-line="586"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_tracking</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="n">args</span><span class="p">.</span><span class="n">fetchGallery</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">fetchCategory</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">qid</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><span id="L-589"><a href="#L-589"><span class="linenos" data-line="589"></span></a><span class="kr">return</span> <span class="n">p</span> </span></pre></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐9s56p Cached time: 20241124164728 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, vary‐page‐id] CPU time usage: 0.113 seconds Real time usage: 0.170 seconds Preprocessor visited node count: 315/1000000 Post‐expand include size: 22502/2097152 bytes Template argument size: 1704/2097152 bytes Highest expansion depth: 13/100 Expensive parser function count: 9/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 6001/5000000 bytes Lua time usage: 0.070/10.000 seconds Lua memory usage: 1932322/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 83.671 1 Module:Commons_link/doc 100.00% 83.671 1 -total 38.18% 31.946 1 Template:Module_rating 35.24% 29.483 1 Template:Module_other 32.36% 27.076 1 Template:Ombox 27.86% 23.308 2 Template:Sandbox_other 19.53% 16.342 1 Template:High_use 16.48% 13.792 1 Template:Lua 4.36% 3.647 1 Template:Tl 1.32% 1.107 2 Template:Nowrap --> </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="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Module:Commons_link&oldid=1253103118">https://en.wikipedia.org/w/index.php?title=Module:Commons_link&oldid=1253103118</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Modules_for_general_use" title="Category:Modules for general use">Modules for general use</a></li><li><a href="/wiki/Category:Wikidata_modules" title="Category:Wikidata modules">Wikidata modules</a></li><li><a href="/wiki/Category:Link_modules" title="Category:Link modules">Link modules</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden category: <ul><li><a href="/wiki/Category:Wikipedia_template-protected_modules" title="Category:Wikipedia template-protected modules">Wikipedia template-protected modules</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"> This page was last edited on 24 October 2024, at 10:43<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Module:Commons_link&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</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-f69cdc8f6-9s56p","wgBackendResponseTime":311,"wgPageParseReport":{"limitreport":{"cputime":"0.113","walltime":"0.170","ppvisitednodes":{"value":315,"limit":1000000},"postexpandincludesize":{"value":22502,"limit":2097152},"templateargumentsize":{"value":1704,"limit":2097152},"expansiondepth":{"value":13,"limit":100},"expensivefunctioncount":{"value":9,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":6001,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 83.671 1 Module:Commons_link/doc","100.00% 83.671 1 -total"," 38.18% 31.946 1 Template:Module_rating"," 35.24% 29.483 1 Template:Module_other"," 32.36% 27.076 1 Template:Ombox"," 27.86% 23.308 2 Template:Sandbox_other"," 19.53% 16.342 1 Template:High_use"," 16.48% 13.792 1 Template:Lua"," 4.36% 3.647 1 Template:Tl"," 1.32% 1.107 2 Template:Nowrap"]},"scribunto":{"limitreport-timeusage":{"value":"0.070","limit":"10.000"},"limitreport-memusage":{"value":1932322,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-9s56p","timestamp":"20241124164728","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>