CINXE.COM

Modul:Template test case - Wikipedija, prosta enciklopedija

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="sl" dir="ltr"> <head> <meta charset="UTF-8"> <title>Modul:Template test case - Wikipedija, prosta enciklopedija</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )slwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t.",".\t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy full","wgMonthNames":["","januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"wgRequestId":"0d494729-f59a-439e-8cbb-6a3d7c203fdd","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Modul:Template_test_case","wgTitle":"Template test case","wgCurRevisionId":6284026,"wgRevisionId":6284026,"wgArticleId":406923,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Moduli, ki dodajajo sledilno kategorijo","Moduli, ki preverijo za označevalce"],"wgPageViewLanguage":"sl","wgPageContentLanguage":"sl","wgPageContentModel":"Scribunto","wgRelevantPageName":"Modul:Template_test_case","wgRelevantArticleId":406923,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true, "wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q18616002","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","jquery.makeCollapsible.styles":"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","jquery.makeCollapsible","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.CommonsDirekt","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=sl&amp;modules=ext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=sl&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=sl&amp;modules=site.styles&amp;only=styles&amp;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="Modul:Template test case - Wikipedija, prosta enciklopedija"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//sl.m.wikipedia.org/wiki/Modul:Template_test_case"> <link rel="alternate" type="application/x-wiki" title="Uredi" href="/w/index.php?title=Modul:Template_test_case&amp;action=edit"> <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="Wikipedija (sl)"> <link rel="EditURI" type="application/rsd+xml" href="//sl.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://sl.wikipedia.org/wiki/Modul:Template_test_case"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.sl"> <link rel="alternate" type="application/atom+xml" title="Atom-vir strani »Wikipedija«" href="/w/index.php?title=Posebno:ZadnjeSpremembe&amp;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 mw-editable page-Modul_Template_test_case rootpage-Modul_Template_test_case skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Pojdi na vsebino</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="Projekt"> <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="Glavni meni" > <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">Glavni meni</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">Glavni meni</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">prestavi v stransko letvico</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">skrij</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigacija </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/Glavna_stran" title="Obiščite glavno stran [z]" accesskey="z"><span>Glavna stran</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Pomo%C4%8D:Uvod"><span>Naučite se urejati</span></a></li><li id="n-Izbrani-članki" class="mw-list-item"><a href="/wiki/Wikipedija:Izbrani_%C4%8Dlanki"><span>Izbrani članki</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Posebno:Naklju%C4%8Dno" title="Naložite naključno stran [x]" accesskey="x"><span>Naključna stran</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Posebno:ZadnjeSpremembe" title="Seznam zadnjih sprememb Wikipedije [r]" accesskey="r"><span>Zadnje spremembe</span></a></li> </ul> </div> </div> <div id="p-obcestvo" class="vector-menu mw-portlet mw-portlet-obcestvo" > <div class="vector-menu-heading"> Skupnost </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Pomo%C4%8D:Vsebina" title="Kraj, kjer lahko prejmete pomoč"><span>Pomoč</span></a></li><li id="n-Pod-lipo" class="mw-list-item"><a href="/wiki/Wikipedija:Pod_lipo"><span>Pod lipo</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedija:Portal_skupnosti" title="O projektu, kaj lahko storite, kje lahko kaj najdete"><span>Portal skupnosti</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedija:Stik_z_nami"><span>Stik z nami</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Glavna_stran" 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="Wikipedija" src="/static/images/mobile/copyright/wikipedia-wordmark-sl.svg" style="width: 7.4375em; height: 1.375em;"> <img class="mw-logo-tagline" alt="prosta enciklopedija" src="/static/images/mobile/copyright/wikipedia-tagline-sl.svg" width="118" height="13" style="width: 7.375em; 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/Posebno:Iskanje" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Preiščite viki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Iskanje</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="Iskanje v Wikipediji" aria-label="Iskanje v Wikipediji" autocapitalize="sentences" title="Preiščite viki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Posebno:Iskanje"> </div> <button class="cdx-button cdx-search-input__end-button">Išči</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Osebna orodja"> <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="Videz"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;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="Videz" > <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">Videz</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_sl.wikipedia.org&amp;uselang=sl" class=""><span>Denarni prispevki</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=Posebno:Registracija&amp;returnto=Modul%3ATemplate+test+case" title="Predlagamo vam, da si ustvarite račun in se prijavite, vendar to ni obvezno." class=""><span>Ustvari račun</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=Posebno:Prijava&amp;returnto=Modul%3ATemplate+test+case" title="Prijava je zaželena, vendar ni obvezna [o]" accesskey="o" class=""><span>Prijava</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="Več možnosti" > <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="Osebna orodja" > <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">Osebna orodja</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Uporabniški meni" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_sl.wikipedia.org&amp;uselang=sl"><span>Denarni prispevki</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Posebno:Registracija&amp;returnto=Modul%3ATemplate+test+case" title="Predlagamo vam, da si ustvarite račun in se prijavite, vendar to ni obvezno."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Ustvari račun</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Posebno:Prijava&amp;returnto=Modul%3ATemplate+test+case" title="Prijava je zaželena, vendar ni obvezna [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Prijava</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"> Strani za neprijavljene urejevalce <a href="/wiki/Pomo%C4%8D:Uvod" aria-label="Več o urejanju"><span>več o tem</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/Posebno:MojiPrispevki" title="Seznam urejanj s tega IP-naslova [y]" accesskey="y"><span>Prispevki</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Posebno:MojPogovor" title="Pogovor o urejanjih s tega IP-naslova [n]" accesskey="n"><span>Pogovorna stran</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="Projekt"> <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="Vsebina" 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">Vsebina</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">prestavi v stransko letvico</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">skrij</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">Uvod</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> <li id="toc-Configuration" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Configuration"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Configuration</span> </div> </a> <ul id="toc-Configuration-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tracking_categories" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Tracking_categories"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Tracking categories</span> </div> </a> <ul id="toc-Tracking_categories-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="Vsebina" 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="Vklopi kazalo vsebine" > <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">Vklopi kazalo vsebine</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">Modul</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Template test case</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="P9jdi na članek v drugem jeziku. Na voljo v 59 jezikih." > <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-59" 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">59 jezikov</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – afrikanščina" lang="af" hreflang="af" data-title="Module:Template test case" data-language-autonym="Afrikaans" data-language-local-name="afrikanščina" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:Template_test_case" title="وحدة:Template test case – arabščina" lang="ar" hreflang="ar" data-title="وحدة:Template test case" data-language-autonym="العربية" data-language-local-name="arabščina" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – azerbajdžanščina" lang="az" hreflang="az" data-title="Modul:Template test case" data-language-autonym="Azərbaycanca" data-language-local-name="azerbajdžanščina" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D9%85%D8%A7%DA%98%D9%88%D9%84:Template_test_case" title="ماژول:Template test case – South Azerbaijani" lang="azb" hreflang="azb" data-title="ماژول:Template test case" 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:Template_test_case" title="Modul:Template test case – balijščina" lang="ban" hreflang="ban" data-title="Modul:Template test case" data-language-autonym="Basa Bali" data-language-local-name="balijščina" class="interlanguage-link-target"><span>Basa Bali</span></a></li><li class="interlanguage-link interwiki-bcl mw-list-item"><a href="https://bcl.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – Central Bikol" lang="bcl" hreflang="bcl" data-title="Module:Template test case" 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-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:Template_test_case" title="মডিউল:Template test case – bengalščina" lang="bn" hreflang="bn" data-title="মডিউল:Template test case" data-language-autonym="বাংলা" data-language-local-name="bengalščina" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/Modulo:Template_test_case" title="Modulo:Template test case – korziščina" lang="co" hreflang="co" data-title="Modulo:Template test case" data-language-autonym="Corsu" data-language-local-name="korziščina" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Modiwl:Template_test_case" title="Modiwl:Template test case – valižanščina" lang="cy" hreflang="cy" data-title="Modiwl:Template test case" data-language-autonym="Cymraeg" data-language-local-name="valižanščina" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – danščina" lang="da" hreflang="da" data-title="Modul:Template test case" data-language-autonym="Dansk" data-language-local-name="danščina" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – angleščina" lang="en" hreflang="en" data-title="Module:Template test case" data-language-autonym="English" data-language-local-name="angleščina" class="interlanguage-link-target"><span>English</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:Template_test_case" title="پودمان:Template test case – perzijščina" lang="fa" hreflang="fa" data-title="پودمان:Template test case" data-language-autonym="فارسی" data-language-local-name="perzijščina" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – irščina" lang="ga" hreflang="ga" data-title="Module:Template test case" data-language-autonym="Gaeilge" data-language-local-name="irščina" class="interlanguage-link-target"><span>Gaeilge</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:Template_test_case" title="વિભાગ:Template test case – gudžaratščina" lang="gu" hreflang="gu" data-title="વિભાગ:Template test case" data-language-autonym="ગુજરાતી" data-language-local-name="gudžaratščina" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%89%E0%A4%A1%E0%A5%8D%E0%A4%AF%E0%A5%82%E0%A4%B2:Template_test_case" title="मॉड्यूल:Template test case – hindijščina" lang="hi" hreflang="hi" data-title="मॉड्यूल:Template test case" data-language-autonym="हिन्दी" data-language-local-name="hindijščina" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – indonezijščina" lang="id" hreflang="id" data-title="Modul:Template test case" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonezijščina" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-ilo mw-list-item"><a href="https://ilo.wikipedia.org/wiki/Modulo:Pangsubok_a_kaso_ti_plantilia" title="Modulo:Pangsubok a kaso ti plantilia – ilokanščina" lang="ilo" hreflang="ilo" data-title="Modulo:Pangsubok a kaso ti plantilia" data-language-autonym="Ilokano" data-language-local-name="ilokanščina" class="interlanguage-link-target"><span>Ilokano</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – islandščina" lang="is" hreflang="is" data-title="Module:Template test case" data-language-autonym="Íslenska" data-language-local-name="islandščina" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Template_test_case" title="モジュール:Template test case – japonščina" lang="ja" hreflang="ja" data-title="モジュール:Template test case" data-language-autonym="日本語" data-language-local-name="japonščina" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-kn mw-list-item"><a href="https://kn.wikipedia.org/wiki/%E0%B2%AE%E0%B2%BE%E0%B2%A1%E0%B3%8D%E0%B2%AF%E0%B3%82%E0%B2%B2%E0%B3%8D:Template_test_case" title="ಮಾಡ್ಯೂಲ್:Template test case – kanareščina" lang="kn" hreflang="kn" data-title="ಮಾಡ್ಯೂಲ್:Template test case" data-language-autonym="ಕನ್ನಡ" data-language-local-name="kanareščina" class="interlanguage-link-target"><span>ಕನ್ನಡ</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%93%88:Template_test_case" title="모듈:Template test case – korejščina" lang="ko" hreflang="ko" data-title="모듈:Template test case" data-language-autonym="한국어" data-language-local-name="korejščina" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – kurdščina" lang="ku" hreflang="ku" data-title="Modul:Template test case" data-language-autonym="Kurdî" data-language-local-name="kurdščina" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-lld mw-list-item"><a href="https://lld.wikipedia.org/wiki/Modulo:Template_test_case" title="Modulo:Template test case – Ladin" lang="lld" hreflang="lld" data-title="Modulo:Template test case" data-language-autonym="Ladin" data-language-local-name="Ladin" class="interlanguage-link-target"><span>Ladin</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – litovščina" lang="lt" hreflang="lt" data-title="Module:Template test case" data-language-autonym="Lietuvių" data-language-local-name="litovščina" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Modulis:Template_test_case" title="Modulis:Template test case – latvijščina" lang="lv" hreflang="lv" data-title="Modulis:Template test case" data-language-autonym="Latviešu" data-language-local-name="latvijščina" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-mdf mw-list-item"><a href="https://mdf.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Template_test_case" title="Модуль:Template test case – mokšavščina" lang="mdf" hreflang="mdf" data-title="Модуль:Template test case" data-language-autonym="Мокшень" data-language-local-name="mokšavščina" class="interlanguage-link-target"><span>Мокшень</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:Template_test_case" title="Модул:Template test case – makedonščina" lang="mk" hreflang="mk" data-title="Модул:Template test case" data-language-autonym="Македонски" data-language-local-name="makedonščina" 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:Template_test_case" title="ഘടകം:Template test case – malajalamščina" lang="ml" hreflang="ml" data-title="ഘടകം:Template test case" data-language-autonym="മലയാളം" data-language-local-name="malajalamščina" 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:Template_test_case" title="विभाग:Template test case – maratščina" lang="mr" hreflang="mr" data-title="विभाग:Template test case" data-language-autonym="मराठी" data-language-local-name="maratščina" 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:Template_test_case" title="Modul:Template test case – malajščina" lang="ms" hreflang="ms" data-title="Modul:Template test case" data-language-autonym="Bahasa Melayu" data-language-local-name="malajščina" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:Template_test_case" title="မော်ဂျူး:Template test case – burmanščina" lang="my" hreflang="my" data-title="မော်ဂျူး:Template test case" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="burmanščina" 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:Template_test_case" title="मोड्युल:Template test case – nepalščina" lang="ne" hreflang="ne" data-title="मोड्युल:Template test case" data-language-autonym="नेपाली" data-language-local-name="nepalščina" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – knjižna norveščina" lang="nb" hreflang="nb" data-title="Modul:Template test case" data-language-autonym="Norsk bokmål" data-language-local-name="knjižna norveščina" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%AE%E0%AC%A1%E0%AD%8D%E0%AD%9F%E0%AD%81%E0%AC%B2:Template_test_case" title="ମଡ୍ୟୁଲ:Template test case – odijščina" lang="or" hreflang="or" data-title="ମଡ୍ୟୁଲ:Template test case" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="odijščina" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%AE%E0%A9%8C%E0%A8%A1%E0%A8%BF%E0%A8%8A%E0%A8%B2:Template_test_case" title="ਮੌਡਿਊਲ:Template test case – pandžabščina" lang="pa" hreflang="pa" data-title="ਮੌਡਿਊਲ:Template test case" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="pandžabščina" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pag mw-list-item"><a href="https://pag.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – pangasinanščina" lang="pag" hreflang="pag" data-title="Module:Template test case" data-language-autonym="Pangasinan" data-language-local-name="pangasinanščina" class="interlanguage-link-target"><span>Pangasinan</span></a></li><li class="interlanguage-link interwiki-pap mw-list-item"><a href="https://pap.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – papiamentu" lang="pap" hreflang="pap" data-title="Module:Template test case" data-language-autonym="Papiamentu" data-language-local-name="papiamentu" class="interlanguage-link-target"><span>Papiamentu</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Modu%C5%82:Sprawd%C5%BA" title="Moduł:Sprawdź – poljščina" lang="pl" hreflang="pl" data-title="Moduł:Sprawdź" data-language-autonym="Polski" data-language-local-name="poljščina" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-ps mw-list-item"><a href="https://ps.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – paštunščina" lang="ps" hreflang="ps" data-title="Module:Template test case" data-language-autonym="پښتو" data-language-local-name="paštunščina" class="interlanguage-link-target"><span>پښتو</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/M%C3%B3dulo:Exemplo_teste_predefini%C3%A7%C3%A3o" title="Módulo:Exemplo teste predefinição – portugalščina" lang="pt" hreflang="pt" data-title="Módulo:Exemplo teste predefinição" data-language-autonym="Português" data-language-local-name="portugalščina" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – romunščina" lang="ro" hreflang="ro" data-title="Modul:Template test case" data-language-autonym="Română" data-language-local-name="romunščina" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Template_test_case" title="Модуль:Template test case – ruščina" lang="ru" hreflang="ru" data-title="Модуль:Template test case" data-language-autonym="Русский" data-language-local-name="ruščina" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sd mw-list-item"><a href="https://sd.wikipedia.org/wiki/%D9%85%D8%A7%DA%8A%D9%8A%D9%88%D9%84:Template_test_case" title="ماڊيول:Template test case – sindščina" lang="sd" hreflang="sd" data-title="ماڊيول:Template test case" data-language-autonym="سنڌي" data-language-local-name="sindščina" class="interlanguage-link-target"><span>سنڌي</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:Template_test_case" title="မေႃႇၵျူး:Template test case – šanščina" lang="shn" hreflang="shn" data-title="မေႃႇၵျူး:Template test case" data-language-autonym="ၽႃႇသႃႇတႆး " data-language-local-name="šanščina" 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:Template_test_case" title="Module:Template test case – sinhalščina" lang="si" hreflang="si" data-title="Module:Template test case" data-language-autonym="සිංහල" data-language-local-name="sinhalščina" 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:Template_test_case" title="Module:Template test case – Simple English" lang="en-simple" hreflang="en-simple" data-title="Module:Template test case" 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-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Moduli:Template_test_case" title="Moduli:Template test case – albanščina" lang="sq" hreflang="sq" data-title="Moduli:Template test case" data-language-autonym="Shqip" data-language-local-name="albanščina" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB:Template_test_case" title="Модул:Template test case – srbščina" lang="sr" hreflang="sr" data-title="Модул:Template test case" data-language-autonym="Српски / srpski" data-language-local-name="srbščina" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Modul:Template_test_case" title="Modul:Template test case – švedščina" lang="sv" hreflang="sv" data-title="Modul:Template test case" data-language-autonym="Svenska" data-language-local-name="švedščina" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – tamilščina" lang="ta" hreflang="ta" data-title="Module:Template test case" data-language-autonym="தமிழ்" data-language-local-name="tamilščina" 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:Template_test_case" title="มอดูล:Template test case – tajščina" lang="th" hreflang="th" data-title="มอดูล:Template test case" data-language-autonym="ไทย" data-language-local-name="tajščina" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/Module:Template_test_case" title="Module:Template test case – tagalogščina" lang="tl" hreflang="tl" data-title="Module:Template test case" data-language-autonym="Tagalog" data-language-local-name="tagalogščina" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Mod%C3%BCl:%C5%9Eablon_test_senaryosu" title="Modül:Şablon test senaryosu – turščina" lang="tr" hreflang="tr" data-title="Modül:Şablon test senaryosu" data-language-autonym="Türkçe" data-language-local-name="turščina" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Template_test_case" title="Модуль:Template test case – tatarščina" lang="tt" hreflang="tt" data-title="Модуль:Template test case" data-language-autonym="Татарча / tatarça" data-language-local-name="tatarščina" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Template_test_case" title="Модуль:Template test case – ukrajinščina" lang="uk" hreflang="uk" data-title="Модуль:Template test case" data-language-autonym="Українська" data-language-local-name="ukrajinščina" 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:Template_test_case" title="Modul:Template test case – uzbeščina" lang="uz" hreflang="uz" data-title="Modul:Template test case" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="uzbeščina" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/M%C3%B4_%C4%91un:Template_test_case" title="Mô đun:Template test case – vietnamščina" lang="vi" hreflang="vi" data-title="Mô đun:Template test case" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamščina" 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:Template_test_case" title="Module:Template test case – kitajščina" lang="zh" hreflang="zh" data-title="Module:Template test case" data-language-autonym="中文" data-language-local-name="kitajščina" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E6%A8%A1%E7%B5%84:Template_test_case" title="模組:Template test case – kantonščina" lang="yue" hreflang="yue" data-title="模組:Template test case" data-language-autonym="粵語" data-language-local-name="kantonščina" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q18616002#sitelinks-wikipedia" title="Uredi medjezikovne povezave" class="wbc-editpage">Uredi povezave</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="Imenski prostori"> <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/Modul:Template_test_case" title="Prikaže stran modula [c]" accesskey="c"><span>Modul</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Pogovor_o_modulu:Template_test_case&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="Pogovor o vsebinski strani (stran ne obstaja) [t]" accesskey="t"><span>Pogovor</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="Spremeni različico jezika" > <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="Pogledi"> <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/Modul:Template_test_case"><span>Preberi</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;action=edit" title="Uredi izvorno kodo te strani [e]" accesskey="e"><span>Uredi kodo</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;action=history" title="Prejšnje redakcije te strani [h]" accesskey="h"><span>Zgodovina</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Orodja strani"> <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="Orodja" > <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">Orodja</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">Orodja</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">prestavi v stransko letvico</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">skrij</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Več možnosti" > <div class="vector-menu-heading"> Dejanja </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/Modul:Template_test_case"><span>Preberi</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;action=edit" title="Uredi izvorno kodo te strani [e]" accesskey="e"><span>Uredi kodo</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;action=history"><span>Zgodovina</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Splošno </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Posebno:KajSePovezujeSem/Modul:Template_test_case" title="Seznam vseh strani, ki se povezujejo sem [j]" accesskey="j"><span>Kaj se povezuje sem</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Posebno:RecentChangesLinked/Modul:Template_test_case" rel="nofollow" title="Zadnje spremembe na straneh, s katerimi se povezuje ta stran [k]" accesskey="k"><span>Povezane spremembe</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Posebno:PosebneStrani" title="Seznam vseh posebnih strani [q]" accesskey="q"><span>Posebne strani</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;oldid=6284026" title="Trajna povezava na to redakcijo strani"><span>Trajna povezava</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Modul:Template_test_case&amp;action=info" title="Več informacij o tej strani"><span>Podatki o strani</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Posebno:UrlShortener&amp;url=https%3A%2F%2Fsl.wikipedia.org%2Fwiki%2FModul%3ATemplate_test_case"><span>Pridobi skrajšani URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Posebno:QrCode&amp;url=https%3A%2F%2Fsl.wikipedia.org%2Fwiki%2FModul%3ATemplate_test_case"><span>Prenesi kodo QR</span></a></li> </ul> </div> </div> <div id="p-electronpdfservice-sidebar-portlet-heading" class="vector-menu mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading" > <div class="vector-menu-heading"> Natisni/izvozi </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=Posebno:DownloadAsPdf&amp;page=Modul%3ATemplate_test_case&amp;action=show-download-screen"><span>Prenesi kot PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Različica te strani za tisk [p]" accesskey="p"><span>Različica za tisk</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"> V drugih projektih </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-mediawiki mw-list-item"><a href="https://www.mediawiki.org/wiki/Module:Template_test_case" hreflang="en"><span>MediaWiki</span></a></li><li class="wb-otherproject-link wb-otherproject-outreach mw-list-item"><a href="https://outreach.wikimedia.org/wiki/Module:Template_test_case" hreflang="en"><span>Wikimedia Outreach</span></a></li><li class="wb-otherproject-link wb-otherproject-species mw-list-item"><a href="https://species.wikimedia.org/wiki/Module:Template_test_case" hreflang="en"><span>Wikivrste</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/Q18616002" title="Povezava na ustrezni predmet v podatkovni shrambi [g]" accesskey="g"><span>Predmet v Wikipodatkih</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="Orodja strani"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Videz"> <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">Videz</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">prestavi v stransko letvico</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">skrij</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Iz Wikipedije, proste enciklopedije</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="sl" dir="ltr"><div id="template-documentation" class="template-documentation iezoomfix"><div style="padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex;"><span style="font-size: 150%"><span typeof="mw:File"><span><img alt="Documentation icon" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Template-info.png/50px-Template-info.png" decoding="async" width="50" height="22" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Template-info.png/75px-Template-info.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Template-info.png/100px-Template-info.png 2x" data-file-width="706" data-file-height="316" /></span></span> Dokumentacija modula</span><span class="mw-editsection plainlinks" id="doc_editlinks">&#91;<a href="/wiki/Modul:Template_test_case/dok" title="Modul:Template test case/dok">predogled</a>&#93; [<a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/dok&amp;action=edit">uredi</a>] [<a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/dok&amp;action=history">zgodovina</a>] [<span class="noprint plainlinks purgelink"><a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case&amp;action=purge"><span title="Osveži to stran">osveži</span></a></span>]</span></div> <style data-mw-deduplicate="TemplateStyles:r6309531">.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 mbox-small ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><a href="/wiki/Wikipedija:Lua" title="Wikipedija:Lua"><img alt="Lua logo" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/30px-Lua-Logo.svg.png" decoding="async" width="30" height="30" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/45px-Lua-Logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/60px-Lua-Logo.svg.png 2x" data-file-width="947" data-file-height="947" /></a></span></td><td class="mbox-text">Uporablja <a href="/wiki/Wikipedija:Lua" title="Wikipedija:Lua">Lua</a>: <div><ul><li><a href="/wiki/Modul:Template_test_case/data" title="Modul:Template test case/data">Modul:Template test case/data</a></li><li><a href="/wiki/Modul:Template_invocation" title="Modul:Template invocation">Modul:Template invocation</a></li><li><a href="/wiki/Modul:Protect" title="Modul:Protect">Modul:Protect</a></li><li><a href="/wiki/Modul:Arguments" title="Modul:Arguments">Modul:Arguments</a></li><li><a href="/wiki/Modul:Yesno" title="Modul:Yesno">Modul:Yesno</a></li></ul></div></td></tr></tbody></table> <p>This module provides a framework for making templates which produce a <a href="/w/index.php?title=Wikipedija:TESTCASES&amp;action=edit&amp;redlink=1" class="new" title="Wikipedija:TESTCASES (stran ne obstaja)">template test case</a>. While test cases can be made manually, using Lua-based templates such as the ones provided by this module has the advantage that the template arguments only need to be input once, thus reducing the effort involved in making test cases and reducing the possibility of errors in the input. </p> <div class="mw-heading mw-heading2"><h2 id="Usage">Usage</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modul:Template_test_case/dok&amp;action=edit&amp;section=T-1" title="Urejanje izvorne kode razdelka: Usage"><span>uredi kodo</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This module should not usually be called directly. Instead, you should use one of the following templates: </p><p>Parameter-based templates: </p> <ul><li><a href="/wiki/Predloga:Test_case" class="mw-redirect" title="Predloga:Test case">Template:Test case</a> - for standard test cases</li> <li><a href="/wiki/Predloga:Testcase_table" title="Predloga:Testcase table">Template:Testcase table</a> - for test cases arranged side by side in columns</li> <li><a href="/wiki/Predloga:Testcase_rows" title="Predloga:Testcase rows">Template:Testcase rows</a> - for test cases arranged as rows in a table</li> <li><a href="/wiki/Predloga:Collapsible_test_case" title="Predloga:Collapsible test case">Template:Collapsible test case</a> - for test cases that are collapsed by default if the results are the same.</li> <li><a href="/wiki/Predloga:Inline_test_case" title="Predloga:Inline test case">Template:Inline test case</a> - for test cases with small invocations and small output, that do not contain any line breaks.</li></ul> <p>The only difference between these templates is their default arguments. For example, it is possible to display test cases side by side in <a href="/wiki/Predloga:Testcase_rows" title="Predloga:Testcase rows">Template:Testcase rows</a> by specifying <code class="tpl-para" style="word-break:break-word;">&#124;_format&#61;columns</code> </p><p>Nowiki-based templates: </p> <ul><li><a href="/wiki/Predloga:Test_case_nowiki" title="Predloga:Test case nowiki">Template:Test case nowiki</a> - for test cases created from template code wrapped in nowiki tags (useful for displaying complex template invocations).</li></ul> <p>It is also possible to use a format of <code>{{#invoke:template test case|main|<i>parameters</i>}}</code>. This uses the same defaults as <a href="/wiki/Predloga:Test_case" class="mw-redirect" title="Predloga:Test case">Template:Test case</a>; please see that page for documentation of the parameters. </p><p>There is no direct interface to this module for other Lua modules. Lua modules should generally use Lua-based test case modules such as <a href="/wiki/Modul:UnitTests" title="Modul:UnitTests">Module:UnitTests</a> or <a href="/wiki/Modul:ScribuntoUnit" title="Modul:ScribuntoUnit">Module:ScribuntoUnit</a>. If it is really necessary to use this module, you can use <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#frame:expandTemplate" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">frame:expandTemplate</a> with one of the templates listed above. </p> <div class="mw-heading mw-heading2"><h2 id="Configuration">Configuration</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modul:Template_test_case/dok&amp;action=edit&amp;section=T-2" title="Urejanje izvorne kode razdelka: Configuration"><span>uredi kodo</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This module has a configuration module at <a href="/wiki/Modul:Template_test_case/config" title="Modul:Template test case/config">Modul:Template test case/config</a>. You can edit it to add new wrapper templates, or to change the messages that the module outputs. </p> <div class="mw-heading mw-heading2"><h2 id="Tracking_categories">Tracking categories</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modul:Template_test_case/dok&amp;action=edit&amp;section=T-3" title="Urejanje izvorne kode razdelka: Tracking categories"><span>uredi kodo</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Kategorija:Testni_primeri,_ki_uporabljajo_heading_parametre" title="Kategorija:Testni primeri, ki uporabljajo heading parametre">Kategorija:Testni primeri, ki uporabljajo heading parametre</a>&#160;(0)</li> <li><a href="/wiki/Kategorija:Testni_primeri,_ki_uporabljajo_output_parameter" title="Kategorija:Testni primeri, ki uporabljajo output parameter">Kategorija:Testni primeri, ki uporabljajo output parameter</a>&#160;(31)</li></ul> <div style="clear: both;"></div> </div><style data-mw-deduplicate="TemplateStyles:r6309533">.mw-parser-output .fmbox{clear:both;margin:0.2em 0;width:100%;border:1px solid #a2a9b1;background-color:var(--background-color-interactive-subtle,#f8f9fa);box-sizing:border-box;color:var(--color-base,#202122)}.mw-parser-output .fmbox-warning{border:1px solid #bb7070;background-color:#ffdbdb}.mw-parser-output .fmbox-editnotice{background-color:transparent}.mw-parser-output .fmbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .fmbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .fmbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .fmbox .mbox-invalid-type{text-align:center}@media screen{html.skin-theme-clientpref-night .mw-parser-output .fmbox-warning{background-color:#300}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .fmbox-warning{background-color:#300}}</style><table id="documentation-meta-data" class="plainlinks fmbox fmbox-system" role="presentation" style="background-color: #ecfcf4;"><tbody><tr><td class="mbox-text" style="font-style: italic;">Zgornja <a href="/wiki/Wikipedija:Dokumentacija_predloge" title="Wikipedija:Dokumentacija predloge">dokumentacija</a> je <a href="https://en.wikipedia.org/wiki/Wikipedia:Transclusion" class="extiw" title="en:Wikipedia:Transclusion">vključena</a> iz <a href="/wiki/Modul:Template_test_case/dok" title="Modul:Template test case/dok">Modul:Template test case/dok</a>. <small style="font-style: normal">(<a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/dok&amp;action=edit">uredi</a> &#124; <a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/dok&amp;action=history">zgodovina</a>)</small> <br />Urejevalci lahko preizkušate ta modul v <a href="/wiki/Modul:Template_test_case/peskovnik" title="Modul:Template test case/peskovnik">peskovniku</a> <small style="font-style: normal">(<a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/peskovnik&amp;action=edit">uredi</a> | <a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Posebno:ComparePages&amp;page1=Modul%3ATemplate+test+case&amp;page2=Modul%3ATemplate+test+case%2Fpeskovnik">primerjava</a>)</small> in testnihprimerih <small style="font-style: normal">(<a class="external text" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case/testniprimeri&amp;action=edit&amp;preload=Predloga:Dokumentacija/preload-module-testniprimeri">ustvari</a>)</small>. <br />Prosimo, da dodate kategorije v <a href="/wiki/Modul:Template_test_case/dok" title="Modul:Template test case/dok">/dok</a> podstran.&#32;<a href="/wiki/Posebno:PrefixIndex/Modul:Template_test_case/" title="Posebno:PrefixIndex/Modul:Template test case/">Podstrani te predloge</a>.</td></tr></tbody></table><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="cm">--[[</span> </span><span id="L-2"><a href="#L-2"><span class="linenos" data-line="2"></span></a><span class="cm"> A module for generating test case templates.</span> </span><span id="L-3"><a href="#L-3"><span class="linenos" data-line="3"></span></a> </span><span id="L-4"><a href="#L-4"><span class="linenos" data-line="4"></span></a><span class="cm"> This module incorporates code from the English Wikipedia&#39;s &quot;Testcase table&quot;</span> </span><span id="L-5"><a href="#L-5"><span class="linenos" data-line="5"></span></a><span class="cm"> module,[1] written by Frietjes [2] with contributions by Mr. Stradivarius [3]</span> </span><span id="L-6"><a href="#L-6"><span class="linenos" data-line="6"></span></a><span class="cm"> and Jackmcbarn,[4] and the English Wikipedia&#39;s &quot;Testcase rows&quot; module,[5]</span> </span><span id="L-7"><a href="#L-7"><span class="linenos" data-line="7"></span></a><span class="cm"> written by Mr. Stradivarius.</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a><span class="cm"> The &quot;Testcase table&quot; and &quot;Testcase rows&quot; modules are released under the</span> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a><span class="cm"> CC BY-SA 3.0 License [6] and the GFDL.[7]</span> </span><span id="L-11"><a href="#L-11"><span class="linenos" data-line="11"></span></a> </span><span id="L-12"><a href="#L-12"><span class="linenos" data-line="12"></span></a><span class="cm"> License: CC BY-SA 3.0 and the GFDL</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a><span class="cm"> Author: Mr. Stradivarius</span> </span><span id="L-14"><a href="#L-14"><span class="linenos" data-line="14"></span></a> </span><span id="L-15"><a href="#L-15"><span class="linenos" data-line="15"></span></a><span class="cm"> [1] https://en.wikipedia.org/wiki/Module:Testcase_table</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a><span class="cm"> [2] https://en.wikipedia.org/wiki/User:Frietjes</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a><span class="cm"> [3] https://en.wikipedia.org/wiki/User:Mr._Stradivarius</span> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a><span class="cm"> [4] https://en.wikipedia.org/wiki/User:Jackmcbarn</span> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a><span class="cm"> [5] https://en.wikipedia.org/wiki/Module:Testcase_rows</span> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a><span class="cm"> [6] https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License</span> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a><span class="cm"> [7] https://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License</span> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></span></a><span class="cm">]]</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a><span class="c1">-- Load required modules</span> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></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">&#39;Modul:Yesno&#39;</span><span class="p">)</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a><span class="c1">-- Set constants</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a><span class="kd">local</span> <span class="n">DATA_MODULE</span> <span class="o">=</span> <span class="s1">&#39;Modul:Template test case/data&#39;</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a><span class="c1">-- Shared methods</span> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">message</span><span class="p">(</span><span class="n">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="p">...)</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a> <span class="c1">-- This method is added to classes that need to deal with messages from the</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a> <span class="c1">-- config module.</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">msg</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">cfg</span><span class="p">.</span><span class="n">msg</span><span class="p">[</span><span class="n">key</span><span class="p">]</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="nb">select</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="p">...)</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="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">newRawMessage</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="p">...):</span><span class="n">plain</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">else</span> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a> <span class="kr">return</span> <span class="n">msg</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a> <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">end</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a><span class="c1">-- Template class</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a><span class="kd">local</span> <span class="n">Template</span> <span class="o">=</span> <span class="p">{}</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="n">Template</span><span class="p">.</span><span class="n">memoizedMethods</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a> <span class="c1">-- Names of methods to be memoized in each object. This table should only</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a> <span class="c1">-- hold methods with no parameters.</span> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a> <span class="n">getFullPage</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a> <span class="n">getName</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a> <span class="n">makeHeader</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a> <span class="n">getOutput</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a><span class="p">}</span> </span><span id="L-59"><a href="#L-59"><span class="linenos" data-line="59"></span></a> </span><span id="L-60"><a href="#L-60"><span class="linenos" data-line="60"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">invocationObj</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a> <span class="kd">local</span> <span class="n">obj</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a> </span><span id="L-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> <span class="c1">-- Set input</span> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">options</span> <span class="ow">or</span> <span class="p">{})</span> <span class="kr">do</span> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">Template</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a> <span class="n">obj</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a> <span class="kr">end</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> <span class="kr">end</span> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">_invocation</span> <span class="o">=</span> <span class="n">invocationObj</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a> <span class="c1">-- Validate input</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="ow">not</span> <span class="n">obj</span><span class="p">.</span><span class="n">template</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">obj</span><span class="p">.</span><span class="n">title</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="nb">error</span><span class="p">(</span><span class="s1">&#39;no template or title specified&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> </span><span id="L-74"><a href="#L-74"><span class="linenos" data-line="74"></span></a> <span class="kr">end</span> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="c1">-- Memoize expensive method calls</span> </span><span id="L-77"><a href="#L-77"><span class="linenos" data-line="77"></span></a> <span class="kd">local</span> <span class="n">memoFuncs</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-78"><a href="#L-78"><span class="linenos" data-line="78"></span></a> <span class="kr">return</span> <span class="nb">setmetatable</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="p">{</span> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a> <span class="n">__index</span> <span class="o">=</span> <span class="kr">function</span> <span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a> <span class="kr">if</span> <span class="n">Template</span><span class="p">.</span><span class="n">memoizedMethods</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> <span class="kd">local</span> <span class="n">func</span> <span class="o">=</span> <span class="n">memoFuncs</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">func</span> <span class="kr">then</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a> <span class="kd">local</span> <span class="n">val</span> <span class="o">=</span> <span class="n">Template</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">t</span><span class="p">)</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a> <span class="n">func</span> <span class="o">=</span> <span class="kr">function</span> <span class="p">()</span> <span class="kr">return</span> <span class="n">val</span> <span class="kr">end</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a> <span class="n">memoFuncs</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">func</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a> <span class="kr">end</span> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a> <span class="kr">return</span> <span class="n">func</span> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a> <span class="kr">else</span> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a> <span class="kr">return</span> <span class="n">Template</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a> <span class="kr">end</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a> <span class="kr">end</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> <span class="p">})</span> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a><span class="kr">end</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">getFullPage</span><span class="p">()</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">prefixedText</span> </span><span id="L-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;#invoke&#39;</span> <span class="kr">then</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a> <span class="kr">return</span> <span class="s1">&#39;Module&#39;</span> <span class="o">..</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">8</span><span class="p">):</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;|.*&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a> <span class="kr">else</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a> <span class="kd">local</span> <span class="n">strippedTemplate</span><span class="p">,</span> <span class="n">hasColon</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;^:&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a> <span class="n">hasColon</span> <span class="o">=</span> <span class="n">hasColon</span> <span class="o">&gt;</span> <span class="mi">0</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="kd">local</span> <span class="n">ns</span> <span class="o">=</span> <span class="n">strippedTemplate</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;^(.-):&#39;</span><span class="p">)</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ns</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">site</span><span class="p">.</span><span class="n">namespaces</span><span class="p">[</span><span class="n">ns</span><span class="p">]</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a> <span class="kr">if</span> <span class="n">ns</span> <span class="kr">then</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a> <span class="kr">return</span> <span class="n">strippedTemplate</span> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a> <span class="kr">elseif</span> <span class="n">hasColon</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="kr">return</span> <span class="n">strippedTemplate</span> <span class="c1">-- Main namespace</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a> <span class="kr">else</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">site</span><span class="p">.</span><span class="n">namespaces</span><span class="p">[</span><span class="mi">10</span><span class="p">].</span><span class="n">name</span> <span class="o">..</span> <span class="s1">&#39;:&#39;</span> <span class="o">..</span> <span class="n">strippedTemplate</span> </span><span id="L-111"><a href="#L-111"><span class="linenos" data-line="111"></span></a> <span class="kr">end</span> </span><span id="L-112"><a href="#L-112"><span class="linenos" data-line="112"></span></a> <span class="kr">end</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><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">getName</span><span class="p">()</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">template</span> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a> <span class="kr">else</span> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></span></a> <span class="kr">return</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Modul:Template invocation&#39;</span><span class="p">).</span><span class="n">name</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">title</span><span class="p">)</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a> <span class="kr">end</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a><span class="kr">end</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">makeLink</span><span class="p">(</span><span class="n">display</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="n">display</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="nb">string.format</span><span class="p">(</span><span class="s1">&#39;[[:%s|%s]]&#39;</span><span class="p">,</span> <span class="n">self</span><span class="p">:</span><span class="n">getFullPage</span><span class="p">(),</span> <span class="n">display</span><span class="p">)</span> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a> <span class="kr">else</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a> <span class="kr">return</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">&#39;[[:%s]]&#39;</span><span class="p">,</span> <span class="n">self</span><span class="p">:</span><span class="n">getFullPage</span><span class="p">())</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a> <span class="kr">end</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></span></a><span class="kr">end</span> </span><span id="L-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">makeBraceLink</span><span class="p">(</span><span class="n">display</span><span class="p">)</span> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a> <span class="n">display</span> <span class="o">=</span> <span class="n">display</span> <span class="ow">or</span> <span class="n">self</span><span class="p">:</span><span class="n">getName</span><span class="p">()</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">link</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">makeLink</span><span class="p">(</span><span class="n">display</span><span class="p">)</span> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="s1">&#39;{{&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="n">link</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">nowiki</span><span class="p">(</span><span class="s1">&#39;}}&#39;</span><span class="p">)</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></span></a><span class="kr">end</span> </span><span id="L-136"><a href="#L-136"><span class="linenos" data-line="136"></span></a> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">makeHeader</span><span class="p">()</span> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a> <span class="kr">return</span> <span class="n">self</span><span class="p">.</span><span class="n">heading</span> <span class="ow">or</span> <span class="n">self</span><span class="p">:</span><span class="n">makeBraceLink</span><span class="p">()</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a><span class="kr">end</span> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">getInvocation</span><span class="p">(</span><span class="n">format</span><span class="p">)</span> </span><span id="L-142"><a href="#L-142"><span class="linenos" data-line="142"></span></a> <span class="kd">local</span> <span class="n">invocation</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">_invocation</span><span class="p">:</span><span class="n">getInvocation</span><span class="p">{</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a> <span class="n">template</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getName</span><span class="p">(),</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a> <span class="n">requireMagicWord</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">requireMagicWord</span><span class="p">,</span> </span><span id="L-145"><a href="#L-145"><span class="linenos" data-line="145"></span></a> <span class="p">}</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a> <span class="kr">if</span> <span class="n">format</span> <span class="o">==</span> <span class="s1">&#39;code&#39;</span> <span class="kr">then</span> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="s1">&#39;&lt;code&gt;&#39;</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">nowiki</span><span class="p">(</span><span class="n">invocation</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39;&lt;/code&gt;&#39;</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></span></a> <span class="kr">elseif</span> <span class="n">format</span> <span class="o">==</span> <span class="s1">&#39;kbd&#39;</span> <span class="kr">then</span> </span><span id="L-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="s1">&#39;&lt;kbd&gt;&#39;</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">nowiki</span><span class="p">(</span><span class="n">invocation</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39;&lt;/kbd&gt;&#39;</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a> <span class="kr">elseif</span> <span class="n">format</span> <span class="o">==</span> <span class="s1">&#39;plain&#39;</span> <span class="kr">then</span> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a> <span class="n">invocation</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">nowiki</span><span class="p">(</span><span class="n">invocation</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">else</span> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a> <span class="c1">-- Default is pre tags</span> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a> <span class="n">invocation</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">encode</span><span class="p">(</span><span class="n">invocation</span><span class="p">,</span> <span class="s1">&#39;&amp;&#39;</span><span class="p">)</span> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span> <span class="o">..</span> <span class="n">invocation</span> <span class="o">..</span> <span class="s1">&#39;&lt;/pre&gt;&#39;</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">preprocess</span><span class="p">(</span><span class="n">invocation</span><span class="p">)</span> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a> <span class="kr">end</span> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a> <span class="kr">return</span> <span class="n">invocation</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a><span class="kr">end</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a><span class="kr">function</span> <span class="nc">Template</span><span class="p">:</span><span class="nf">getOutput</span><span class="p">()</span> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a> <span class="kd">local</span> <span class="n">protect</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Modul:Protect&#39;</span><span class="p">)</span> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a> <span class="c1">-- calling self._invocation:getOutput{...}</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a> <span class="kr">return</span> <span class="n">protect</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">_invocation</span><span class="p">.</span><span class="n">getOutput</span><span class="p">)(</span><span class="n">self</span><span class="p">.</span><span class="n">_invocation</span><span class="p">,</span> <span class="p">{</span> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a> <span class="n">template</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getName</span><span class="p">(),</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a> <span class="n">requireMagicWord</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">requireMagicWord</span><span class="p">,</span> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a> <span class="p">})</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a><span class="kr">end</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a><span class="c1">-- TestCase class</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a><span class="kd">local</span> <span class="n">TestCase</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a><span class="n">TestCase</span><span class="p">.</span><span class="n">__index</span> <span class="o">=</span> <span class="n">TestCase</span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a><span class="n">TestCase</span><span class="p">.</span><span class="n">message</span> <span class="o">=</span> <span class="n">message</span> <span class="c1">-- add the message method</span> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a><span class="n">TestCase</span><span class="p">.</span><span class="n">renderMethods</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> <span class="c1">-- Keys in this table are values of the &quot;format&quot; option, values are the</span> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a> <span class="c1">-- method for rendering that format.</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> <span class="n">columns</span> <span class="o">=</span> <span class="s1">&#39;renderColumns&#39;</span><span class="p">,</span> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a> <span class="n">rows</span> <span class="o">=</span> <span class="s1">&#39;renderRows&#39;</span><span class="p">,</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a> <span class="n">tablerows</span> <span class="o">=</span> <span class="s1">&#39;renderRows&#39;</span><span class="p">,</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> <span class="n">inline</span> <span class="o">=</span> <span class="s1">&#39;renderInline&#39;</span><span class="p">,</span> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a> <span class="n">cells</span> <span class="o">=</span> <span class="s1">&#39;renderCells&#39;</span><span class="p">,</span> </span><span id="L-186"><a href="#L-186"><span class="linenos" data-line="186"></span></a> <span class="n">default</span> <span class="o">=</span> <span class="s1">&#39;renderDefault&#39;</span> </span><span id="L-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a><span class="p">}</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">invocationObj</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> <span class="kd">local</span> <span class="n">obj</span> <span class="o">=</span> <span class="nb">setmetatable</span><span class="p">({},</span> <span class="n">TestCase</span><span class="p">)</span> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a> <span class="c1">-- Separate general options from template options. Template options are</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a> <span class="c1">-- numbered, whereas general options are not.</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a> <span class="kd">local</span> <span class="n">generalOptions</span><span class="p">,</span> <span class="n">templateOptions</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a> <span class="kd">local</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">num</span> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;string&#39;</span> <span class="kr">then</span> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a> <span class="n">prefix</span><span class="p">,</span> <span class="n">num</span> <span class="o">=</span> <span class="n">k</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;^(.-)([1-9][0-9]*)$&#39;</span><span class="p">)</span> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a> <span class="kr">end</span> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a> <span class="kr">if</span> <span class="n">prefix</span> <span class="kr">then</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a> <span class="n">num</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="n">num</span><span class="p">]</span> <span class="o">=</span> <span class="n">templateOptions</span><span class="p">[</span><span class="n">num</span><span class="p">]</span> <span class="ow">or</span> <span class="p">{}</span> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="n">num</span><span class="p">][</span><span class="n">prefix</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a> <span class="kr">else</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a> <span class="n">generalOptions</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-207"><a href="#L-207"><span class="linenos" data-line="207"></span></a> <span class="kr">end</span> </span><span id="L-208"><a href="#L-208"><span class="linenos" data-line="208"></span></a> <span class="kr">end</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a> <span class="c1">-- Set general options</span> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">showcode</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">showcode</span><span class="p">)</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">showheader</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">showheader</span><span class="p">)</span> <span class="o">~=</span> <span class="kc">false</span> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">showcaption</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">showcaption</span><span class="p">)</span> <span class="o">~=</span> <span class="kc">false</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">collapsible</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">collapsible</span><span class="p">)</span> </span><span id="L-215"><a href="#L-215"><span class="linenos" data-line="215"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">notcollapsed</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">notcollapsed</span><span class="p">)</span> </span><span id="L-216"><a href="#L-216"><span class="linenos" data-line="216"></span></a> <span class="n">generalOptions</span><span class="p">.</span><span class="n">wantdiff</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">generalOptions</span><span class="p">.</span><span class="n">wantdiff</span><span class="p">)</span> </span><span id="L-217"><a href="#L-217"><span class="linenos" data-line="217"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">options</span> <span class="o">=</span> <span class="n">generalOptions</span> </span><span id="L-218"><a href="#L-218"><span class="linenos" data-line="218"></span></a> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a> <span class="c1">-- Preprocess template args</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a> <span class="kr">for</span> <span class="n">num</span><span class="p">,</span> <span class="n">t</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">templateOptions</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-221"><a href="#L-221"><span class="linenos" data-line="221"></span></a> <span class="kr">if</span> <span class="n">t</span><span class="p">.</span><span class="n">showtemplate</span> <span class="o">~=</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-222"><a href="#L-222"><span class="linenos" data-line="222"></span></a> <span class="n">t</span><span class="p">.</span><span class="n">showtemplate</span> <span class="o">=</span> <span class="n">yesno</span><span class="p">(</span><span class="n">t</span><span class="p">.</span><span class="n">showtemplate</span><span class="p">)</span> </span><span id="L-223"><a href="#L-223"><span class="linenos" data-line="223"></span></a> <span class="kr">end</span> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a> <span class="kr">end</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a> <span class="c1">-- Set up first two template options tables, so that if only the</span> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a> <span class="c1">-- &quot;template3&quot; is specified it isn&#39;t made the first template when the</span> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a> <span class="c1">-- the table options array is compressed.</span> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">or</span> <span class="p">{}</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">or</span> <span class="p">{}</span> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a> <span class="c1">-- Allow the &quot;template&quot; option to override the &quot;template1&quot; option for</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a> <span class="c1">-- backwards compatibility with [[Module:Testcase table]].</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a> <span class="kr">if</span> <span class="n">generalOptions</span><span class="p">.</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">template</span> <span class="o">=</span> <span class="n">generalOptions</span><span class="p">.</span><span class="n">template</span> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a> <span class="kr">end</span> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a> <span class="c1">-- Add default template options</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a> <span class="kr">if</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">template</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="n">template</span> <span class="o">=</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">template</span> <span class="o">..</span> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a> <span class="s1">&#39;/&#39;</span> <span class="o">..</span> <span class="n">obj</span><span class="p">.</span><span class="n">cfg</span><span class="p">.</span><span class="n">sandboxSubpage</span> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a> <span class="kr">end</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">title</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 class="n">basePageTitle</span> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="kr">end</span> </span><span id="L-246"><a href="#L-246"><span class="linenos" data-line="246"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="n">template</span> <span class="kr">then</span> </span><span id="L-247"><a href="#L-247"><span class="linenos" data-line="247"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="n">title</span> <span class="o">=</span> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">title</span><span class="p">:</span><span class="n">subPageTitle</span><span class="p">(</span> </span><span id="L-248"><a href="#L-248"><span class="linenos" data-line="248"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">cfg</span><span class="p">.</span><span class="n">sandboxSubpage</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a> <span class="p">)</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a> <span class="kr">end</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a> <span class="c1">-- Remove template options for any templates where the showtemplate</span> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a> <span class="c1">-- argument is false. This prevents any output for that template.</span> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a> <span class="kr">for</span> <span class="n">num</span><span class="p">,</span> <span class="n">t</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">templateOptions</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a> <span class="kr">if</span> <span class="n">t</span><span class="p">.</span><span class="n">showtemplate</span> <span class="o">==</span> <span class="kc">false</span> <span class="kr">then</span> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="n">num</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a> <span class="kr">end</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a> <span class="kr">end</span> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> <span class="c1">-- Check for missing template names.</span> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a> <span class="kr">for</span> <span class="n">num</span><span class="p">,</span> <span class="n">t</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">templateOptions</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">t</span><span class="p">.</span><span class="n">template</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">t</span><span class="p">.</span><span class="n">title</span> <span class="kr">then</span> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a> <span class="nb">error</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span><span class="n">message</span><span class="p">(</span> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a> <span class="s1">&#39;missing-template-option-error&#39;</span><span class="p">,</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a> <span class="n">num</span><span class="p">,</span> <span class="n">num</span> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a> <span class="p">),</span> <span class="mi">2</span><span class="p">)</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">end</span> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a> <span class="c1">-- Compress templateOptions table so we can iterate over it with ipairs.</span> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a> <span class="n">templateOptions</span> <span class="o">=</span> <span class="p">(</span><span class="kr">function</span> <span class="p">(</span><span class="n">t</span><span class="p">)</span> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a> <span class="kd">local</span> <span class="n">nums</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> <span class="kr">for</span> <span class="n">num</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a> <span class="n">nums</span><span class="p">[</span><span class="o">#</span><span class="n">nums</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">num</span> </span><span id="L-275"><a href="#L-275"><span class="linenos" data-line="275"></span></a> <span class="kr">end</span> </span><span id="L-276"><a href="#L-276"><span class="linenos" data-line="276"></span></a> <span class="nb">table.sort</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span> </span><span id="L-277"><a href="#L-277"><span class="linenos" data-line="277"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">num</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></span></a> <span class="n">ret</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">t</span><span class="p">[</span><span class="n">num</span><span class="p">]</span> </span><span id="L-280"><a href="#L-280"><span class="linenos" data-line="280"></span></a> <span class="kr">end</span> </span><span id="L-281"><a href="#L-281"><span class="linenos" data-line="281"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kr">end</span><span class="p">)(</span><span class="n">templateOptions</span><span class="p">)</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="c1">-- Don&#39;t require the __TEMPLATENAME__ magic word for nowiki invocations if</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a> <span class="c1">-- there is only one template being output.</span> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">templateOptions</span> <span class="o">&lt;=</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a> <span class="n">templateOptions</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">requireMagicWord</span> <span class="o">=</span> <span class="kc">false</span> </span><span id="L-288"><a href="#L-288"><span class="linenos" data-line="288"></span></a> <span class="kr">end</span> </span><span id="L-289"><a href="#L-289"><span class="linenos" data-line="289"></span></a> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">logObject</span><span class="p">(</span><span class="n">templateOptions</span><span class="p">)</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> <span class="c1">-- Make the template objects</span> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">templates</span> <span class="o">=</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">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">options</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">templateOptions</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a> <span class="nb">table.insert</span><span class="p">(</span><span class="n">obj</span><span class="p">.</span><span class="n">templates</span><span class="p">,</span> <span class="n">Template</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">invocationObj</span><span class="p">,</span> <span class="n">options</span><span class="p">))</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><span id="L-298"><a href="#L-298"><span class="linenos" data-line="298"></span></a> <span class="c1">-- Add tracking categories. At the moment we are only tracking templates</span> </span><span id="L-299"><a href="#L-299"><span class="linenos" data-line="299"></span></a> <span class="c1">-- that use any &quot;heading&quot; parameters or an &quot;output&quot; parameter.</span> </span><span id="L-300"><a href="#L-300"><span class="linenos" data-line="300"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">categories</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-301"><a href="#L-301"><span class="linenos" data-line="301"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-302"><a href="#L-302"><span class="linenos" data-line="302"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;string&#39;</span> <span class="ow">and</span> <span class="n">k</span><span class="p">:</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;heading&#39;</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-303"><a href="#L-303"><span class="linenos" data-line="303"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">categories</span><span class="p">[</span><span class="s1">&#39;Testni primeri, ki uporabljajo output parameter&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-304"><a href="#L-304"><span class="linenos" data-line="304"></span></a> <span class="kr">elseif</span> <span class="n">k</span> <span class="o">==</span> <span class="s1">&#39;output&#39;</span> <span class="kr">then</span> </span><span id="L-305"><a href="#L-305"><span class="linenos" data-line="305"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">categories</span><span class="p">[</span><span class="s1">&#39;Testni primeri, ki uporabljajo output parameter&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> </span><span id="L-306"><a href="#L-306"><span class="linenos" data-line="306"></span></a> <span class="kr">end</span> </span><span id="L-307"><a href="#L-307"><span class="linenos" data-line="307"></span></a> <span class="kr">end</span> </span><span id="L-308"><a href="#L-308"><span class="linenos" data-line="308"></span></a> </span><span id="L-309"><a href="#L-309"><span class="linenos" data-line="309"></span></a> <span class="kr">return</span> <span class="n">obj</span> </span><span id="L-310"><a href="#L-310"><span class="linenos" data-line="310"></span></a><span class="kr">end</span> </span><span id="L-311"><a href="#L-311"><span class="linenos" data-line="311"></span></a> </span><span id="L-312"><a href="#L-312"><span class="linenos" data-line="312"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">getTemplateOutput</span><span class="p">(</span><span class="n">templateObj</span><span class="p">)</span> </span><span id="L-313"><a href="#L-313"><span class="linenos" data-line="313"></span></a> <span class="kd">local</span> <span class="n">output</span> <span class="o">=</span> <span class="n">templateObj</span><span class="p">:</span><span class="n">getOutput</span><span class="p">()</span> </span><span id="L-314"><a href="#L-314"><span class="linenos" data-line="314"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">resetRefs</span> <span class="kr">then</span> </span><span id="L-315"><a href="#L-315"><span class="linenos" data-line="315"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">extensionTag</span><span class="p">(</span><span class="s1">&#39;references&#39;</span><span class="p">)</span> </span><span id="L-316"><a href="#L-316"><span class="linenos" data-line="316"></span></a> <span class="kr">end</span> </span><span id="L-317"><a href="#L-317"><span class="linenos" data-line="317"></span></a> <span class="kr">return</span> <span class="n">output</span> </span><span id="L-318"><a href="#L-318"><span class="linenos" data-line="318"></span></a><span class="kr">end</span> </span><span id="L-319"><a href="#L-319"><span class="linenos" data-line="319"></span></a> </span><span id="L-320"><a href="#L-320"><span class="linenos" data-line="320"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">templateOutputIsEqual</span><span class="p">()</span> </span><span id="L-321"><a href="#L-321"><span class="linenos" data-line="321"></span></a> <span class="c1">-- Returns a boolean showing whether all of the template outputs are equal.</span> </span><span id="L-322"><a href="#L-322"><span class="linenos" data-line="322"></span></a> <span class="c1">-- The random parts of strip markers (see [[Help:Strip markers]]) are</span> </span><span id="L-323"><a href="#L-323"><span class="linenos" data-line="323"></span></a> <span class="c1">-- removed before comparison. This means a strip marker can contain anything</span> </span><span id="L-324"><a href="#L-324"><span class="linenos" data-line="324"></span></a> <span class="c1">-- and still be treated as equal, but it solves the problem of otherwise</span> </span><span id="L-325"><a href="#L-325"><span class="linenos" data-line="325"></span></a> <span class="c1">-- identical wikitext not returning as exactly equal.</span> </span><span id="L-326"><a href="#L-326"><span class="linenos" data-line="326"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">normaliseOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> </span><span id="L-327"><a href="#L-327"><span class="linenos" data-line="327"></span></a> <span class="kd">local</span> <span class="n">out</span> <span class="o">=</span> <span class="n">obj</span><span class="p">:</span><span class="n">getOutput</span><span class="p">()</span> </span><span id="L-328"><a href="#L-328"><span class="linenos" data-line="328"></span></a> <span class="c1">-- Remove the random parts from strip markers.</span> </span><span id="L-329"><a href="#L-329"><span class="linenos" data-line="329"></span></a> <span class="n">out</span> <span class="o">=</span> <span class="n">out</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;(</span><span class="se">\127</span><span class="s1">[^</span><span class="se">\127</span><span class="s1">]*UNIQ%-%-%l+%-)%x+(%-%-?QINU[^</span><span class="se">\127</span><span class="s1">]*</span><span class="se">\127</span><span class="s1">)&#39;</span><span class="p">,</span> <span class="s1">&#39;%1%2&#39;</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">return</span> <span class="n">out</span> </span><span id="L-331"><a href="#L-331"><span class="linenos" data-line="331"></span></a> <span class="kr">end</span> </span><span id="L-332"><a href="#L-332"><span class="linenos" data-line="332"></span></a> <span class="kd">local</span> <span class="n">firstOutput</span> <span class="o">=</span> <span class="n">normaliseOutput</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> </span><span id="L-333"><a href="#L-333"><span class="linenos" data-line="333"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span> <span class="kr">do</span> </span><span id="L-334"><a href="#L-334"><span class="linenos" data-line="334"></span></a> <span class="kd">local</span> <span class="n">output</span> <span class="o">=</span> <span class="n">normaliseOutput</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> </span><span id="L-335"><a href="#L-335"><span class="linenos" data-line="335"></span></a> <span class="kr">if</span> <span class="n">output</span> <span class="o">~=</span> <span class="n">firstOutput</span> <span class="kr">then</span> </span><span id="L-336"><a href="#L-336"><span class="linenos" data-line="336"></span></a> <span class="kr">return</span> <span class="kc">false</span> </span><span id="L-337"><a href="#L-337"><span class="linenos" data-line="337"></span></a> <span class="kr">end</span> </span><span id="L-338"><a href="#L-338"><span class="linenos" data-line="338"></span></a> <span class="kr">end</span> </span><span id="L-339"><a href="#L-339"><span class="linenos" data-line="339"></span></a> <span class="kr">return</span> <span class="kc">true</span> </span><span id="L-340"><a href="#L-340"><span class="linenos" data-line="340"></span></a><span class="kr">end</span> </span><span id="L-341"><a href="#L-341"><span class="linenos" data-line="341"></span></a> </span><span id="L-342"><a href="#L-342"><span class="linenos" data-line="342"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">makeCollapsible</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> </span><span id="L-343"><a href="#L-343"><span class="linenos" data-line="343"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">title</span> <span class="ow">or</span> <span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span><span class="n">makeHeader</span><span class="p">()</span> </span><span id="L-344"><a href="#L-344"><span class="linenos" data-line="344"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">titlecode</span> <span class="kr">then</span> </span><span id="L-345"><a href="#L-345"><span class="linenos" data-line="345"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span><span class="n">getInvocation</span><span class="p">(</span><span class="s1">&#39;kbd&#39;</span><span class="p">)</span> </span><span id="L-346"><a href="#L-346"><span class="linenos" data-line="346"></span></a> <span class="kr">end</span> </span><span id="L-347"><a href="#L-347"><span class="linenos" data-line="347"></span></a> <span class="kd">local</span> <span class="n">isEqual</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">templateOutputIsEqual</span><span class="p">()</span> </span><span id="L-348"><a href="#L-348"><span class="linenos" data-line="348"></span></a> <span class="kd">local</span> <span class="n">root</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">html</span><span class="p">.</span><span class="n">create</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">)</span> </span><span id="L-349"><a href="#L-349"><span class="linenos" data-line="349"></span></a> <span class="n">root</span> </span><span id="L-350"><a href="#L-350"><span class="linenos" data-line="350"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="s1">&#39;mw-collapsible&#39;</span><span class="p">)</span> </span><span id="L-351"><a href="#L-351"><span class="linenos" data-line="351"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;width&#39;</span><span class="p">,</span> <span class="s1">&#39;100%&#39;</span><span class="p">)</span> </span><span id="L-352"><a href="#L-352"><span class="linenos" data-line="352"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;border&#39;</span><span class="p">,</span> <span class="s1">&#39;solid silver 1px&#39;</span><span class="p">)</span> </span><span id="L-353"><a href="#L-353"><span class="linenos" data-line="353"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;padding&#39;</span><span class="p">,</span> <span class="s1">&#39;0.2em&#39;</span><span class="p">)</span> </span><span id="L-354"><a href="#L-354"><span class="linenos" data-line="354"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;clear&#39;</span><span class="p">,</span> <span class="s1">&#39;both&#39;</span><span class="p">)</span> </span><span id="L-355"><a href="#L-355"><span class="linenos" data-line="355"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">notcollapsed</span> <span class="o">==</span> <span class="kc">false</span> <span class="ow">and</span> <span class="s1">&#39;mw-collapsed&#39;</span> <span class="ow">or</span> <span class="kc">nil</span><span class="p">)</span> </span><span id="L-356"><a href="#L-356"><span class="linenos" data-line="356"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">wantdiff</span> <span class="kr">then</span> </span><span id="L-357"><a href="#L-357"><span class="linenos" data-line="357"></span></a> <span class="n">root</span> </span><span id="L-358"><a href="#L-358"><span class="linenos" data-line="358"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">)</span> </span><span id="L-359"><a href="#L-359"><span class="linenos" data-line="359"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;background-color&#39;</span><span class="p">,</span> <span class="n">isEqual</span> <span class="ow">and</span> <span class="s1">&#39;yellow&#39;</span> <span class="ow">or</span> <span class="s1">&#39;#90a8ee&#39;</span><span class="p">)</span> </span><span id="L-360"><a href="#L-360"><span class="linenos" data-line="360"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;color&#39;</span><span class="p">,</span> <span class="s1">&#39;black&#39;</span><span class="p">)</span> </span><span id="L-361"><a href="#L-361"><span class="linenos" data-line="361"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;font-weight&#39;</span><span class="p">,</span> <span class="s1">&#39;bold&#39;</span><span class="p">)</span> </span><span id="L-362"><a href="#L-362"><span class="linenos" data-line="362"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;padding&#39;</span><span class="p">,</span> <span class="s1">&#39;0.2em&#39;</span><span class="p">)</span> </span><span id="L-363"><a href="#L-363"><span class="linenos" data-line="363"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-364"><a href="#L-364"><span class="linenos" data-line="364"></span></a> <span class="p">:</span><span class="n">done</span><span class="p">()</span> </span><span id="L-365"><a href="#L-365"><span class="linenos" data-line="365"></span></a> <span class="kr">else</span> </span><span id="L-366"><a href="#L-366"><span class="linenos" data-line="366"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">notcollapsed</span> <span class="o">~=</span> <span class="kc">true</span> <span class="ow">or</span> <span class="kc">false</span> <span class="kr">then</span> </span><span id="L-367"><a href="#L-367"><span class="linenos" data-line="367"></span></a> <span class="n">root</span> </span><span id="L-368"><a href="#L-368"><span class="linenos" data-line="368"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">isEqual</span> <span class="ow">and</span> <span class="s1">&#39;mw-collapsed&#39;</span> <span class="ow">or</span> <span class="kc">nil</span><span class="p">)</span> </span><span id="L-369"><a href="#L-369"><span class="linenos" data-line="369"></span></a> <span class="kr">end</span> </span><span id="L-370"><a href="#L-370"><span class="linenos" data-line="370"></span></a> <span class="n">root</span> </span><span id="L-371"><a href="#L-371"><span class="linenos" data-line="371"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">)</span> </span><span id="L-372"><a href="#L-372"><span class="linenos" data-line="372"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;background-color&#39;</span><span class="p">,</span> <span class="n">isEqual</span> <span class="ow">and</span> <span class="s1">&#39;lightgreen&#39;</span> <span class="ow">or</span> <span class="s1">&#39;yellow&#39;</span><span class="p">)</span> </span><span id="L-373"><a href="#L-373"><span class="linenos" data-line="373"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;color&#39;</span><span class="p">,</span> <span class="s1">&#39;black&#39;</span><span class="p">)</span> </span><span id="L-374"><a href="#L-374"><span class="linenos" data-line="374"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;font-weight&#39;</span><span class="p">,</span> <span class="s1">&#39;bold&#39;</span><span class="p">)</span> </span><span id="L-375"><a href="#L-375"><span class="linenos" data-line="375"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;padding&#39;</span><span class="p">,</span> <span class="s1">&#39;0.2em&#39;</span><span class="p">)</span> </span><span id="L-376"><a href="#L-376"><span class="linenos" data-line="376"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-377"><a href="#L-377"><span class="linenos" data-line="377"></span></a> <span class="p">:</span><span class="n">done</span><span class="p">()</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="n">root</span> </span><span id="L-380"><a href="#L-380"><span class="linenos" data-line="380"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">)</span> </span><span id="L-381"><a href="#L-381"><span class="linenos" data-line="381"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="s1">&#39;mw-collapsible-content&#39;</span><span class="p">)</span> </span><span id="L-382"><a href="#L-382"><span class="linenos" data-line="382"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-383"><a href="#L-383"><span class="linenos" data-line="383"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> </span><span id="L-384"><a href="#L-384"><span class="linenos" data-line="384"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-385"><a href="#L-385"><span class="linenos" data-line="385"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> </span><span id="L-386"><a href="#L-386"><span class="linenos" data-line="386"></span></a><span class="kr">end</span> </span><span id="L-387"><a href="#L-387"><span class="linenos" data-line="387"></span></a> </span><span id="L-388"><a href="#L-388"><span class="linenos" data-line="388"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">renderColumns</span><span class="p">()</span> </span><span id="L-389"><a href="#L-389"><span class="linenos" data-line="389"></span></a> <span class="kd">local</span> <span class="n">root</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">html</span><span class="p">.</span><span class="n">create</span><span class="p">()</span> </span><span id="L-390"><a href="#L-390"><span class="linenos" data-line="390"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcode</span> <span class="kr">then</span> </span><span id="L-391"><a href="#L-391"><span class="linenos" data-line="391"></span></a> <span class="n">root</span> </span><span id="L-392"><a href="#L-392"><span class="linenos" data-line="392"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span><span class="n">getInvocation</span><span class="p">())</span> </span><span id="L-393"><a href="#L-393"><span class="linenos" data-line="393"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</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><span id="L-396"><a href="#L-396"><span class="linenos" data-line="396"></span></a> <span class="kd">local</span> <span class="n">tableroot</span> <span class="o">=</span> <span class="n">root</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;table&#39;</span><span class="p">)</span> </span><span id="L-397"><a href="#L-397"><span class="linenos" data-line="397"></span></a> </span><span id="L-398"><a href="#L-398"><span class="linenos" data-line="398"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showheader</span> <span class="kr">then</span> </span><span id="L-399"><a href="#L-399"><span class="linenos" data-line="399"></span></a> <span class="c1">-- Caption</span> </span><span id="L-400"><a href="#L-400"><span class="linenos" data-line="400"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcaption</span> <span class="kr">then</span> </span><span id="L-401"><a href="#L-401"><span class="linenos" data-line="401"></span></a> <span class="n">tableroot</span> </span><span id="L-402"><a href="#L-402"><span class="linenos" data-line="402"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">class</span><span class="p">)</span> </span><span id="L-403"><a href="#L-403"><span class="linenos" data-line="403"></span></a> <span class="p">:</span><span class="n">cssText</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">style</span><span class="p">)</span> </span><span id="L-404"><a href="#L-404"><span class="linenos" data-line="404"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;caption&#39;</span><span class="p">)</span> </span><span id="L-405"><a href="#L-405"><span class="linenos" data-line="405"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">caption</span> <span class="ow">or</span> <span class="n">self</span><span class="p">:</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;columns-header&#39;</span><span class="p">))</span> </span><span id="L-406"><a href="#L-406"><span class="linenos" data-line="406"></span></a> <span class="kr">end</span> </span><span id="L-407"><a href="#L-407"><span class="linenos" data-line="407"></span></a> </span><span id="L-408"><a href="#L-408"><span class="linenos" data-line="408"></span></a> <span class="c1">-- Headers</span> </span><span id="L-409"><a href="#L-409"><span class="linenos" data-line="409"></span></a> <span class="kd">local</span> <span class="n">headerRow</span> <span class="o">=</span> <span class="n">tableroot</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;tr&#39;</span><span class="p">)</span> </span><span id="L-410"><a href="#L-410"><span class="linenos" data-line="410"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">rowheader</span> <span class="kr">then</span> </span><span id="L-411"><a href="#L-411"><span class="linenos" data-line="411"></span></a> <span class="c1">-- rowheader is correct here. We need to add another th cell if</span> </span><span id="L-412"><a href="#L-412"><span class="linenos" data-line="412"></span></a> <span class="c1">-- rowheader is set further down, even if heading0 is missing.</span> </span><span id="L-413"><a href="#L-413"><span class="linenos" data-line="413"></span></a> <span class="n">headerRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">):</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">heading0</span><span class="p">)</span> </span><span id="L-414"><a href="#L-414"><span class="linenos" data-line="414"></span></a> <span class="kr">end</span> </span><span id="L-415"><a href="#L-415"><span class="linenos" data-line="415"></span></a> <span class="kd">local</span> <span class="n">width</span> </span><span id="L-416"><a href="#L-416"><span class="linenos" data-line="416"></span></a> <span class="kr">if</span> <span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-417"><a href="#L-417"><span class="linenos" data-line="417"></span></a> <span class="n">width</span> <span class="o">=</span> <span class="nb">tostring</span><span class="p">(</span><span class="nb">math.floor</span><span class="p">(</span><span class="mi">100</span> <span class="o">/</span> <span class="o">#</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">))</span> <span class="o">..</span> <span class="s1">&#39;%&#39;</span> </span><span id="L-418"><a href="#L-418"><span class="linenos" data-line="418"></span></a> <span class="kr">else</span> </span><span id="L-419"><a href="#L-419"><span class="linenos" data-line="419"></span></a> <span class="n">width</span> <span class="o">=</span> <span class="s1">&#39;100%&#39;</span> </span><span id="L-420"><a href="#L-420"><span class="linenos" data-line="420"></span></a> <span class="kr">end</span> </span><span id="L-421"><a href="#L-421"><span class="linenos" data-line="421"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-422"><a href="#L-422"><span class="linenos" data-line="422"></span></a> <span class="n">headerRow</span> </span><span id="L-423"><a href="#L-423"><span class="linenos" data-line="423"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">)</span> </span><span id="L-424"><a href="#L-424"><span class="linenos" data-line="424"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;width&#39;</span><span class="p">,</span> <span class="n">width</span><span class="p">)</span> </span><span id="L-425"><a href="#L-425"><span class="linenos" data-line="425"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span><span class="n">makeHeader</span><span class="p">())</span> </span><span id="L-426"><a href="#L-426"><span class="linenos" data-line="426"></span></a> <span class="kr">end</span> </span><span id="L-427"><a href="#L-427"><span class="linenos" data-line="427"></span></a> <span class="kr">end</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="c1">-- Row header</span> </span><span id="L-430"><a href="#L-430"><span class="linenos" data-line="430"></span></a> <span class="kd">local</span> <span class="n">dataRow</span> <span class="o">=</span> <span class="n">tableroot</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;tr&#39;</span><span class="p">):</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;vertical-align&#39;</span><span class="p">,</span> <span class="s1">&#39;top&#39;</span><span class="p">)</span> </span><span id="L-431"><a href="#L-431"><span class="linenos" data-line="431"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">rowheader</span> <span class="kr">then</span> </span><span id="L-432"><a href="#L-432"><span class="linenos" data-line="432"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">)</span> </span><span id="L-433"><a href="#L-433"><span class="linenos" data-line="433"></span></a> <span class="p">:</span><span class="n">attr</span><span class="p">(</span><span class="s1">&#39;scope&#39;</span><span class="p">,</span> <span class="s1">&#39;row&#39;</span><span class="p">)</span> </span><span id="L-434"><a href="#L-434"><span class="linenos" data-line="434"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">rowheader</span><span class="p">)</span> </span><span id="L-435"><a href="#L-435"><span class="linenos" data-line="435"></span></a> <span class="kr">end</span> </span><span id="L-436"><a href="#L-436"><span class="linenos" data-line="436"></span></a> </span><span id="L-437"><a href="#L-437"><span class="linenos" data-line="437"></span></a> <span class="c1">-- Template output</span> </span><span id="L-438"><a href="#L-438"><span class="linenos" data-line="438"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</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">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki+&#39;</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="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-441"><a href="#L-441"><span class="linenos" data-line="441"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-442"><a href="#L-442"><span class="linenos" data-line="442"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-443"><a href="#L-443"><span class="linenos" data-line="443"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-444"><a href="#L-444"><span class="linenos" data-line="444"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-445"><a href="#L-445"><span class="linenos" data-line="445"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span><span class="p">)</span> </span><span id="L-446"><a href="#L-446"><span class="linenos" data-line="446"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-447"><a href="#L-447"><span class="linenos" data-line="447"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-448"><a href="#L-448"><span class="linenos" data-line="448"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-449"><a href="#L-449"><span class="linenos" data-line="449"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;/pre&gt;&#39;</span><span class="p">)</span> </span><span id="L-450"><a href="#L-450"><span class="linenos" data-line="450"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki&#39;</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="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-452"><a href="#L-452"><span class="linenos" data-line="452"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-453"><a href="#L-453"><span class="linenos" data-line="453"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-454"><a href="#L-454"><span class="linenos" data-line="454"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-455"><a href="#L-455"><span class="linenos" data-line="455"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-456"><a href="#L-456"><span class="linenos" data-line="456"></span></a> <span class="kr">else</span> </span><span id="L-457"><a href="#L-457"><span class="linenos" data-line="457"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-458"><a href="#L-458"><span class="linenos" data-line="458"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-459"><a href="#L-459"><span class="linenos" data-line="459"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-460"><a href="#L-460"><span class="linenos" data-line="460"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-461"><a href="#L-461"><span class="linenos" data-line="461"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-462"><a href="#L-462"><span class="linenos" data-line="462"></span></a> <span class="kr">end</span> </span><span id="L-463"><a href="#L-463"><span class="linenos" data-line="463"></span></a> <span class="kr">end</span> </span><span id="L-464"><a href="#L-464"><span class="linenos" data-line="464"></span></a> </span><span id="L-465"><a href="#L-465"><span class="linenos" data-line="465"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> </span><span id="L-466"><a href="#L-466"><span class="linenos" data-line="466"></span></a><span class="kr">end</span> </span><span id="L-467"><a href="#L-467"><span class="linenos" data-line="467"></span></a> </span><span id="L-468"><a href="#L-468"><span class="linenos" data-line="468"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">renderRows</span><span class="p">()</span> </span><span id="L-469"><a href="#L-469"><span class="linenos" data-line="469"></span></a> <span class="kd">local</span> <span class="n">root</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">html</span><span class="p">.</span><span class="n">create</span><span class="p">()</span> </span><span id="L-470"><a href="#L-470"><span class="linenos" data-line="470"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcode</span> <span class="kr">then</span> </span><span id="L-471"><a href="#L-471"><span class="linenos" data-line="471"></span></a> <span class="n">root</span> </span><span id="L-472"><a href="#L-472"><span class="linenos" data-line="472"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span><span class="n">getInvocation</span><span class="p">())</span> </span><span id="L-473"><a href="#L-473"><span class="linenos" data-line="473"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-474"><a href="#L-474"><span class="linenos" data-line="474"></span></a> <span class="kr">end</span> </span><span id="L-475"><a href="#L-475"><span class="linenos" data-line="475"></span></a> </span><span id="L-476"><a href="#L-476"><span class="linenos" data-line="476"></span></a> <span class="kd">local</span> <span class="n">tableroot</span> <span class="o">=</span> <span class="n">root</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;table&#39;</span><span class="p">)</span> </span><span id="L-477"><a href="#L-477"><span class="linenos" data-line="477"></span></a> <span class="n">tableroot</span> </span><span id="L-478"><a href="#L-478"><span class="linenos" data-line="478"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">class</span><span class="p">)</span> </span><span id="L-479"><a href="#L-479"><span class="linenos" data-line="479"></span></a> <span class="p">:</span><span class="n">cssText</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">style</span><span class="p">)</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="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">caption</span> <span class="kr">then</span> </span><span id="L-482"><a href="#L-482"><span class="linenos" data-line="482"></span></a> <span class="n">tableroot</span> </span><span id="L-483"><a href="#L-483"><span class="linenos" data-line="483"></span></a> <span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;caption&#39;</span><span class="p">)</span> </span><span id="L-484"><a href="#L-484"><span class="linenos" data-line="484"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">caption</span><span class="p">)</span> </span><span id="L-485"><a href="#L-485"><span class="linenos" data-line="485"></span></a> <span class="kr">end</span> </span><span id="L-486"><a href="#L-486"><span class="linenos" data-line="486"></span></a> </span><span id="L-487"><a href="#L-487"><span class="linenos" data-line="487"></span></a> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-488"><a href="#L-488"><span class="linenos" data-line="488"></span></a> <span class="kd">local</span> <span class="n">dataRow</span> <span class="o">=</span> <span class="n">tableroot</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;tr&#39;</span><span class="p">)</span> </span><span id="L-489"><a href="#L-489"><span class="linenos" data-line="489"></span></a> </span><span id="L-490"><a href="#L-490"><span class="linenos" data-line="490"></span></a> <span class="c1">-- Header</span> </span><span id="L-491"><a href="#L-491"><span class="linenos" data-line="491"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showheader</span> <span class="kr">then</span> </span><span id="L-492"><a href="#L-492"><span class="linenos" data-line="492"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">format</span> <span class="o">==</span> <span class="s1">&#39;tablerows&#39;</span> <span class="kr">then</span> </span><span id="L-493"><a href="#L-493"><span class="linenos" data-line="493"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">)</span> </span><span id="L-494"><a href="#L-494"><span class="linenos" data-line="494"></span></a> <span class="p">:</span><span class="n">attr</span><span class="p">(</span><span class="s1">&#39;scope&#39;</span><span class="p">,</span> <span class="s1">&#39;row&#39;</span><span class="p">)</span> </span><span id="L-495"><a href="#L-495"><span class="linenos" data-line="495"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;vertical-align&#39;</span><span class="p">,</span> <span class="s1">&#39;top&#39;</span><span class="p">)</span> </span><span id="L-496"><a href="#L-496"><span class="linenos" data-line="496"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;text-align&#39;</span><span class="p">,</span> <span class="s1">&#39;left&#39;</span><span class="p">)</span> </span><span id="L-497"><a href="#L-497"><span class="linenos" data-line="497"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span><span class="n">makeHeader</span><span class="p">())</span> </span><span id="L-498"><a href="#L-498"><span class="linenos" data-line="498"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-499"><a href="#L-499"><span class="linenos" data-line="499"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;vertical-align&#39;</span><span class="p">,</span> <span class="s1">&#39;top&#39;</span><span class="p">)</span> </span><span id="L-500"><a href="#L-500"><span class="linenos" data-line="500"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;padding&#39;</span><span class="p">,</span> <span class="s1">&#39;0 1em&#39;</span><span class="p">)</span> </span><span id="L-501"><a href="#L-501"><span class="linenos" data-line="501"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;→&#39;</span><span class="p">)</span> </span><span id="L-502"><a href="#L-502"><span class="linenos" data-line="502"></span></a> <span class="kr">else</span> </span><span id="L-503"><a href="#L-503"><span class="linenos" data-line="503"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-504"><a href="#L-504"><span class="linenos" data-line="504"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;text-align&#39;</span><span class="p">,</span> <span class="s1">&#39;center&#39;</span><span class="p">)</span> </span><span id="L-505"><a href="#L-505"><span class="linenos" data-line="505"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;font-weight&#39;</span><span class="p">,</span> <span class="s1">&#39;bold&#39;</span><span class="p">)</span> </span><span id="L-506"><a href="#L-506"><span class="linenos" data-line="506"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span><span class="n">makeHeader</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">dataRow</span> <span class="o">=</span> <span class="n">tableroot</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;tr&#39;</span><span class="p">)</span> </span><span id="L-508"><a href="#L-508"><span class="linenos" data-line="508"></span></a> <span class="kr">end</span> </span><span id="L-509"><a href="#L-509"><span class="linenos" data-line="509"></span></a> <span class="kr">end</span> </span><span id="L-510"><a href="#L-510"><span class="linenos" data-line="510"></span></a> </span><span id="L-511"><a href="#L-511"><span class="linenos" data-line="511"></span></a> <span class="c1">-- Template output</span> </span><span id="L-512"><a href="#L-512"><span class="linenos" data-line="512"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki+&#39;</span> <span class="kr">then</span> </span><span id="L-513"><a href="#L-513"><span class="linenos" data-line="513"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-514"><a href="#L-514"><span class="linenos" data-line="514"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-515"><a href="#L-515"><span class="linenos" data-line="515"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-516"><a href="#L-516"><span class="linenos" data-line="516"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-517"><a href="#L-517"><span class="linenos" data-line="517"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-518"><a href="#L-518"><span class="linenos" data-line="518"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span><span class="p">)</span> </span><span id="L-519"><a href="#L-519"><span class="linenos" data-line="519"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-520"><a href="#L-520"><span class="linenos" data-line="520"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-521"><a href="#L-521"><span class="linenos" data-line="521"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-522"><a href="#L-522"><span class="linenos" data-line="522"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;/pre&gt;&#39;</span><span class="p">)</span> </span><span id="L-523"><a href="#L-523"><span class="linenos" data-line="523"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki&#39;</span> <span class="kr">then</span> </span><span id="L-524"><a href="#L-524"><span class="linenos" data-line="524"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-525"><a href="#L-525"><span class="linenos" data-line="525"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-526"><a href="#L-526"><span class="linenos" data-line="526"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-527"><a href="#L-527"><span class="linenos" data-line="527"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-528"><a href="#L-528"><span class="linenos" data-line="528"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-529"><a href="#L-529"><span class="linenos" data-line="529"></span></a> <span class="kr">else</span> </span><span id="L-530"><a href="#L-530"><span class="linenos" data-line="530"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-531"><a href="#L-531"><span class="linenos" data-line="531"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-532"><a href="#L-532"><span class="linenos" data-line="532"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-533"><a href="#L-533"><span class="linenos" data-line="533"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-534"><a href="#L-534"><span class="linenos" data-line="534"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-535"><a href="#L-535"><span class="linenos" data-line="535"></span></a> <span class="kr">end</span> </span><span id="L-536"><a href="#L-536"><span class="linenos" data-line="536"></span></a> <span class="kr">end</span> </span><span id="L-537"><a href="#L-537"><span class="linenos" data-line="537"></span></a> </span><span id="L-538"><a href="#L-538"><span class="linenos" data-line="538"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> </span><span id="L-539"><a href="#L-539"><span class="linenos" data-line="539"></span></a><span class="kr">end</span> </span><span id="L-540"><a href="#L-540"><span class="linenos" data-line="540"></span></a> </span><span id="L-541"><a href="#L-541"><span class="linenos" data-line="541"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">renderInline</span><span class="p">()</span> </span><span id="L-542"><a href="#L-542"><span class="linenos" data-line="542"></span></a> <span class="kd">local</span> <span class="n">arrow</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">():</span><span class="n">getArrow</span><span class="p">(</span><span class="s1">&#39;forwards&#39;</span><span class="p">)</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">ret</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-544"><a href="#L-544"><span class="linenos" data-line="544"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-545"><a href="#L-545"><span class="linenos" data-line="545"></span></a> <span class="kd">local</span> <span class="n">line</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-546"><a href="#L-546"><span class="linenos" data-line="546"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">prefix</span> <span class="ow">or</span> <span class="s1">&#39;* &#39;</span> </span><span id="L-547"><a href="#L-547"><span class="linenos" data-line="547"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcode</span> <span class="kr">then</span> </span><span id="L-548"><a href="#L-548"><span class="linenos" data-line="548"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">obj</span><span class="p">:</span><span class="n">getInvocation</span><span class="p">(</span><span class="s1">&#39;code&#39;</span><span class="p">)</span> </span><span id="L-549"><a href="#L-549"><span class="linenos" data-line="549"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span> </span><span id="L-550"><a href="#L-550"><span class="linenos" data-line="550"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">arrow</span> </span><span id="L-551"><a href="#L-551"><span class="linenos" data-line="551"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span> </span><span id="L-552"><a href="#L-552"><span class="linenos" data-line="552"></span></a> <span class="kr">end</span> </span><span id="L-553"><a href="#L-553"><span class="linenos" data-line="553"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki+&#39;</span> <span class="kr">then</span> </span><span id="L-554"><a href="#L-554"><span class="linenos" data-line="554"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span> </span><span id="L-555"><a href="#L-555"><span class="linenos" data-line="555"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> </span><span id="L-556"><a href="#L-556"><span class="linenos" data-line="556"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span> </span><span id="L-557"><a href="#L-557"><span class="linenos" data-line="557"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span> </span><span id="L-558"><a href="#L-558"><span class="linenos" data-line="558"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-559"><a href="#L-559"><span class="linenos" data-line="559"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-560"><a href="#L-560"><span class="linenos" data-line="560"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-561"><a href="#L-561"><span class="linenos" data-line="561"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/pre&gt;&#39;</span> </span><span id="L-562"><a href="#L-562"><span class="linenos" data-line="562"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki&#39;</span> <span class="kr">then</span> </span><span id="L-563"><a href="#L-563"><span class="linenos" data-line="563"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-564"><a href="#L-564"><span class="linenos" data-line="564"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-565"><a href="#L-565"><span class="linenos" data-line="565"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-566"><a href="#L-566"><span class="linenos" data-line="566"></span></a> <span class="kr">else</span> </span><span id="L-567"><a href="#L-567"><span class="linenos" data-line="567"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span> </span><span id="L-568"><a href="#L-568"><span class="linenos" data-line="568"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> </span><span id="L-569"><a href="#L-569"><span class="linenos" data-line="569"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span> </span><span id="L-570"><a href="#L-570"><span class="linenos" data-line="570"></span></a> <span class="kr">end</span> </span><span id="L-571"><a href="#L-571"><span class="linenos" data-line="571"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> </span><span id="L-572"><a href="#L-572"><span class="linenos" data-line="572"></span></a> <span class="kr">end</span> </span><span id="L-573"><a href="#L-573"><span class="linenos" data-line="573"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">addline</span> <span class="kr">then</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">line</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-575"><a href="#L-575"><span class="linenos" data-line="575"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">prefix</span> <span class="ow">or</span> <span class="s1">&#39;* &#39;</span> </span><span id="L-576"><a href="#L-576"><span class="linenos" data-line="576"></span></a> <span class="n">line</span><span class="p">[</span><span class="o">#</span><span class="n">line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">addline</span> </span><span id="L-577"><a href="#L-577"><span class="linenos" data-line="577"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> </span><span id="L-578"><a href="#L-578"><span class="linenos" data-line="578"></span></a> <span class="kr">end</span> </span><span id="L-579"><a href="#L-579"><span class="linenos" data-line="579"></span></a> <span class="kr">return</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</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">end</span> </span><span id="L-581"><a href="#L-581"><span class="linenos" data-line="581"></span></a> </span><span id="L-582"><a href="#L-582"><span class="linenos" data-line="582"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">renderCells</span><span class="p">()</span> </span><span id="L-583"><a href="#L-583"><span class="linenos" data-line="583"></span></a> <span class="kd">local</span> <span class="n">root</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">html</span><span class="p">.</span><span class="n">create</span><span class="p">()</span> </span><span id="L-584"><a href="#L-584"><span class="linenos" data-line="584"></span></a> <span class="kd">local</span> <span class="n">dataRow</span> <span class="o">=</span> <span class="n">root</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;tr&#39;</span><span class="p">)</span> </span><span id="L-585"><a href="#L-585"><span class="linenos" data-line="585"></span></a> <span class="n">dataRow</span> </span><span id="L-586"><a href="#L-586"><span class="linenos" data-line="586"></span></a> <span class="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;vertical-align&#39;</span><span class="p">,</span> <span class="s1">&#39;top&#39;</span><span class="p">)</span> </span><span id="L-587"><a href="#L-587"><span class="linenos" data-line="587"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">class</span><span class="p">)</span> </span><span id="L-588"><a href="#L-588"><span class="linenos" data-line="588"></span></a> <span class="p">:</span><span class="n">cssText</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">style</span><span class="p">)</span> </span><span id="L-589"><a href="#L-589"><span class="linenos" data-line="589"></span></a> </span><span id="L-590"><a href="#L-590"><span class="linenos" data-line="590"></span></a> <span class="c1">-- Row header</span> </span><span id="L-591"><a href="#L-591"><span class="linenos" data-line="591"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">rowheader</span> <span class="kr">then</span> </span><span id="L-592"><a href="#L-592"><span class="linenos" data-line="592"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">)</span> </span><span id="L-593"><a href="#L-593"><span class="linenos" data-line="593"></span></a> <span class="p">:</span><span class="n">attr</span><span class="p">(</span><span class="s1">&#39;scope&#39;</span><span class="p">,</span> <span class="s1">&#39;row&#39;</span><span class="p">)</span> </span><span id="L-594"><a href="#L-594"><span class="linenos" data-line="594"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-595"><a href="#L-595"><span class="linenos" data-line="595"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">rowheader</span> <span class="ow">or</span> <span class="n">self</span><span class="p">:</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;row-header&#39;</span><span class="p">))</span> </span><span id="L-596"><a href="#L-596"><span class="linenos" data-line="596"></span></a> <span class="kr">end</span> </span><span id="L-597"><a href="#L-597"><span class="linenos" data-line="597"></span></a> <span class="c1">-- Caption</span> </span><span id="L-598"><a href="#L-598"><span class="linenos" data-line="598"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcaption</span> <span class="kr">then</span> </span><span id="L-599"><a href="#L-599"><span class="linenos" data-line="599"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;th&#39;</span><span class="p">)</span> </span><span id="L-600"><a href="#L-600"><span class="linenos" data-line="600"></span></a> <span class="p">:</span><span class="n">attr</span><span class="p">(</span><span class="s1">&#39;scope&#39;</span><span class="p">,</span> <span class="s1">&#39;row&#39;</span><span class="p">)</span> </span><span id="L-601"><a href="#L-601"><span class="linenos" data-line="601"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-602"><a href="#L-602"><span class="linenos" data-line="602"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">caption</span> <span class="ow">or</span> <span class="n">self</span><span class="p">:</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;columns-header&#39;</span><span class="p">))</span> </span><span id="L-603"><a href="#L-603"><span class="linenos" data-line="603"></span></a> <span class="kr">end</span> </span><span id="L-604"><a href="#L-604"><span class="linenos" data-line="604"></span></a> </span><span id="L-605"><a href="#L-605"><span class="linenos" data-line="605"></span></a> <span class="c1">-- Show code</span> </span><span id="L-606"><a href="#L-606"><span class="linenos" data-line="606"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcode</span> <span class="kr">then</span> </span><span id="L-607"><a href="#L-607"><span class="linenos" data-line="607"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-608"><a href="#L-608"><span class="linenos" data-line="608"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-609"><a href="#L-609"><span class="linenos" data-line="609"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getInvocation</span><span class="p">(</span><span class="s1">&#39;code&#39;</span><span class="p">))</span> </span><span id="L-610"><a href="#L-610"><span class="linenos" data-line="610"></span></a> <span class="kr">end</span> </span><span id="L-611"><a href="#L-611"><span class="linenos" data-line="611"></span></a> </span><span id="L-612"><a href="#L-612"><span class="linenos" data-line="612"></span></a> <span class="c1">-- Template output</span> </span><span id="L-613"><a href="#L-613"><span class="linenos" data-line="613"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-614"><a href="#L-614"><span class="linenos" data-line="614"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki+&#39;</span> <span class="kr">then</span> </span><span id="L-615"><a href="#L-615"><span class="linenos" data-line="615"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-616"><a href="#L-616"><span class="linenos" data-line="616"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-617"><a href="#L-617"><span class="linenos" data-line="617"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-618"><a href="#L-618"><span class="linenos" data-line="618"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-619"><a href="#L-619"><span class="linenos" data-line="619"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-620"><a href="#L-620"><span class="linenos" data-line="620"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span><span class="p">)</span> </span><span id="L-621"><a href="#L-621"><span class="linenos" data-line="621"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-622"><a href="#L-622"><span class="linenos" data-line="622"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-623"><a href="#L-623"><span class="linenos" data-line="623"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-624"><a href="#L-624"><span class="linenos" data-line="624"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="s1">&#39;&lt;/pre&gt;&#39;</span><span class="p">)</span> </span><span id="L-625"><a href="#L-625"><span class="linenos" data-line="625"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki&#39;</span> <span class="kr">then</span> </span><span id="L-626"><a href="#L-626"><span class="linenos" data-line="626"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-627"><a href="#L-627"><span class="linenos" data-line="627"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-628"><a href="#L-628"><span class="linenos" data-line="628"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-629"><a href="#L-629"><span class="linenos" data-line="629"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)))</span> </span><span id="L-630"><a href="#L-630"><span class="linenos" data-line="630"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">))</span> </span><span id="L-631"><a href="#L-631"><span class="linenos" data-line="631"></span></a> <span class="kr">else</span> </span><span id="L-632"><a href="#L-632"><span class="linenos" data-line="632"></span></a> <span class="n">dataRow</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;td&#39;</span><span class="p">)</span> </span><span id="L-633"><a href="#L-633"><span class="linenos" data-line="633"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-634"><a href="#L-634"><span class="linenos" data-line="634"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span><span class="p">)</span> </span><span id="L-635"><a href="#L-635"><span class="linenos" data-line="635"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> </span><span id="L-636"><a href="#L-636"><span class="linenos" data-line="636"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span><span class="p">)</span> </span><span id="L-637"><a href="#L-637"><span class="linenos" data-line="637"></span></a> <span class="kr">end</span> </span><span id="L-638"><a href="#L-638"><span class="linenos" data-line="638"></span></a> <span class="kr">end</span> </span><span id="L-639"><a href="#L-639"><span class="linenos" data-line="639"></span></a> </span><span id="L-640"><a href="#L-640"><span class="linenos" data-line="640"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> </span><span id="L-641"><a href="#L-641"><span class="linenos" data-line="641"></span></a><span class="kr">end</span> </span><span id="L-642"><a href="#L-642"><span class="linenos" data-line="642"></span></a> </span><span id="L-643"><a href="#L-643"><span class="linenos" data-line="643"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">renderDefault</span><span class="p">()</span> </span><span id="L-644"><a href="#L-644"><span class="linenos" data-line="644"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-645"><a href="#L-645"><span class="linenos" data-line="645"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showcode</span> <span class="kr">then</span> </span><span id="L-646"><a href="#L-646"><span class="linenos" data-line="646"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">[</span><span class="mi">1</span><span class="p">]:</span><span class="n">getInvocation</span><span class="p">()</span> </span><span id="L-647"><a href="#L-647"><span class="linenos" data-line="647"></span></a> <span class="kr">end</span> </span><span id="L-648"><a href="#L-648"><span class="linenos" data-line="648"></span></a> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">obj</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">templates</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-649"><a href="#L-649"><span class="linenos" data-line="649"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&#39;</span> </span><span id="L-650"><a href="#L-650"><span class="linenos" data-line="650"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">showheader</span> <span class="kr">then</span> </span><span id="L-651"><a href="#L-651"><span class="linenos" data-line="651"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">obj</span><span class="p">:</span><span class="n">makeHeader</span><span class="p">()</span> </span><span id="L-652"><a href="#L-652"><span class="linenos" data-line="652"></span></a> <span class="kr">end</span> </span><span id="L-653"><a href="#L-653"><span class="linenos" data-line="653"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki+&#39;</span> <span class="kr">then</span> </span><span id="L-654"><a href="#L-654"><span class="linenos" data-line="654"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-655"><a href="#L-655"><span class="linenos" data-line="655"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-656"><a href="#L-656"><span class="linenos" data-line="656"></span></a> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-657"><a href="#L-657"><span class="linenos" data-line="657"></span></a> <span class="s1">&#39;&lt;pre style=&quot;white-space: pre-wrap;&quot;&gt;&#39;</span> <span class="o">..</span> </span><span id="L-658"><a href="#L-658"><span class="linenos" data-line="658"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-659"><a href="#L-659"><span class="linenos" data-line="659"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> <span class="o">..</span> </span><span id="L-660"><a href="#L-660"><span class="linenos" data-line="660"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39;&lt;/pre&gt;&#39;</span> </span><span id="L-661"><a href="#L-661"><span class="linenos" data-line="661"></span></a> <span class="kr">elseif</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">output</span> <span class="o">==</span> <span class="s1">&#39;nowiki&#39;</span> <span class="kr">then</span> </span><span id="L-662"><a href="#L-662"><span class="linenos" data-line="662"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</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">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-663"><a href="#L-663"><span class="linenos" data-line="663"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> <span class="o">..</span> </span><span id="L-664"><a href="#L-664"><span class="linenos" data-line="664"></span></a> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">nowiki</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-665"><a href="#L-665"><span class="linenos" data-line="665"></span></a> <span class="kr">else</span> </span><span id="L-666"><a href="#L-666"><span class="linenos" data-line="666"></span></a> <span class="n">ret</span><span class="p">[</span><span class="o">#</span><span class="n">ret</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">before</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-667"><a href="#L-667"><span class="linenos" data-line="667"></span></a> <span class="n">self</span><span class="p">:</span><span class="n">getTemplateOutput</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">..</span> </span><span id="L-668"><a href="#L-668"><span class="linenos" data-line="668"></span></a> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">after</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> </span><span id="L-669"><a href="#L-669"><span class="linenos" data-line="669"></span></a> <span class="kr">end</span> </span><span id="L-670"><a href="#L-670"><span class="linenos" data-line="670"></span></a> <span class="kr">end</span> </span><span id="L-671"><a href="#L-671"><span class="linenos" data-line="671"></span></a> <span class="kr">return</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span><span class="p">)</span> </span><span id="L-672"><a href="#L-672"><span class="linenos" data-line="672"></span></a><span class="kr">end</span> </span><span id="L-673"><a href="#L-673"><span class="linenos" data-line="673"></span></a> </span><span id="L-674"><a href="#L-674"><span class="linenos" data-line="674"></span></a><span class="kr">function</span> <span class="nc">TestCase</span><span class="p">:</span><span class="nf">__tostring</span><span class="p">()</span> </span><span id="L-675"><a href="#L-675"><span class="linenos" data-line="675"></span></a> <span class="kd">local</span> <span class="n">format</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">format</span> </span><span id="L-676"><a href="#L-676"><span class="linenos" data-line="676"></span></a> <span class="kd">local</span> <span class="n">method</span> <span class="o">=</span> <span class="n">format</span> <span class="ow">and</span> <span class="n">TestCase</span><span class="p">.</span><span class="n">renderMethods</span><span class="p">[</span><span class="n">format</span><span class="p">]</span> <span class="ow">or</span> <span class="s1">&#39;renderDefault&#39;</span> </span><span id="L-677"><a href="#L-677"><span class="linenos" data-line="677"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">self</span><span class="p">[</span><span class="n">method</span><span class="p">](</span><span class="n">self</span><span class="p">)</span> </span><span id="L-678"><a href="#L-678"><span class="linenos" data-line="678"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">options</span><span class="p">.</span><span class="n">collapsible</span> <span class="kr">then</span> </span><span id="L-679"><a href="#L-679"><span class="linenos" data-line="679"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">makeCollapsible</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> </span><span id="L-680"><a href="#L-680"><span class="linenos" data-line="680"></span></a> <span class="kr">end</span> </span><span id="L-681"><a href="#L-681"><span class="linenos" data-line="681"></span></a> <span class="kr">for</span> <span class="n">cat</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">categories</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-682"><a href="#L-682"><span class="linenos" data-line="682"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">&#39;[[Kategorija:%s]]&#39;</span><span class="p">,</span> <span class="n">cat</span><span class="p">)</span> </span><span id="L-683"><a href="#L-683"><span class="linenos" data-line="683"></span></a> <span class="kr">end</span> </span><span id="L-684"><a href="#L-684"><span class="linenos" data-line="684"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-685"><a href="#L-685"><span class="linenos" data-line="685"></span></a><span class="kr">end</span> </span><span id="L-686"><a href="#L-686"><span class="linenos" data-line="686"></span></a> </span><span id="L-687"><a href="#L-687"><span class="linenos" data-line="687"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-688"><a href="#L-688"><span class="linenos" data-line="688"></span></a><span class="c1">-- Nowiki invocation class</span> </span><span id="L-689"><a href="#L-689"><span class="linenos" data-line="689"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-690"><a href="#L-690"><span class="linenos" data-line="690"></span></a> </span><span id="L-691"><a href="#L-691"><span class="linenos" data-line="691"></span></a><span class="kd">local</span> <span class="n">NowikiInvocation</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-692"><a href="#L-692"><span class="linenos" data-line="692"></span></a><span class="n">NowikiInvocation</span><span class="p">.</span><span class="n">__index</span> <span class="o">=</span> <span class="n">NowikiInvocation</span> </span><span id="L-693"><a href="#L-693"><span class="linenos" data-line="693"></span></a><span class="n">NowikiInvocation</span><span class="p">.</span><span class="n">message</span> <span class="o">=</span> <span class="n">message</span> <span class="c1">-- Add the message method</span> </span><span id="L-694"><a href="#L-694"><span class="linenos" data-line="694"></span></a> </span><span id="L-695"><a href="#L-695"><span class="linenos" data-line="695"></span></a><span class="kr">function</span> <span class="nc">NowikiInvocation</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">invocation</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-696"><a href="#L-696"><span class="linenos" data-line="696"></span></a> <span class="kd">local</span> <span class="n">obj</span> <span class="o">=</span> <span class="nb">setmetatable</span><span class="p">({},</span> <span class="n">NowikiInvocation</span><span class="p">)</span> </span><span id="L-697"><a href="#L-697"><span class="linenos" data-line="697"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> </span><span id="L-698"><a href="#L-698"><span class="linenos" data-line="698"></span></a> <span class="n">invocation</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">unstrip</span><span class="p">(</span><span class="n">invocation</span><span class="p">)</span> </span><span id="L-699"><a href="#L-699"><span class="linenos" data-line="699"></span></a> <span class="c1">-- Decode HTML entities for &lt;, &gt;, and &quot;. This means that HTML entities in</span> </span><span id="L-700"><a href="#L-700"><span class="linenos" data-line="700"></span></a> <span class="c1">-- the original code must be escaped as e.g. &amp;amp;lt;, which is unfortunate,</span> </span><span id="L-701"><a href="#L-701"><span class="linenos" data-line="701"></span></a> <span class="c1">-- but it is the best we can do as the distinction between &lt;, &gt;, &quot; and &amp;lt;,</span> </span><span id="L-702"><a href="#L-702"><span class="linenos" data-line="702"></span></a> <span class="c1">-- &amp;gt;, &amp;quot; is lost during the original nowiki operation.</span> </span><span id="L-703"><a href="#L-703"><span class="linenos" data-line="703"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="n">invocation</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;&amp;lt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;&#39;</span><span class="p">)</span> </span><span id="L-704"><a href="#L-704"><span class="linenos" data-line="704"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="n">invocation</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;&amp;gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">)</span> </span><span id="L-705"><a href="#L-705"><span class="linenos" data-line="705"></span></a> <span class="n">invocation</span> <span class="o">=</span> <span class="n">invocation</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;&amp;quot;&#39;</span><span class="p">,</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> </span><span id="L-706"><a href="#L-706"><span class="linenos" data-line="706"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">invocation</span> <span class="o">=</span> <span class="n">invocation</span> </span><span id="L-707"><a href="#L-707"><span class="linenos" data-line="707"></span></a> <span class="kr">return</span> <span class="n">obj</span> </span><span id="L-708"><a href="#L-708"><span class="linenos" data-line="708"></span></a><span class="kr">end</span> </span><span id="L-709"><a href="#L-709"><span class="linenos" data-line="709"></span></a> </span><span id="L-710"><a href="#L-710"><span class="linenos" data-line="710"></span></a><span class="kr">function</span> <span class="nc">NowikiInvocation</span><span class="p">:</span><span class="nf">getInvocation</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-711"><a href="#L-711"><span class="linenos" data-line="711"></span></a> <span class="kd">local</span> <span class="n">template</span> <span class="o">=</span> <span class="n">options</span><span class="p">.</span><span class="n">template</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;%%&#39;</span><span class="p">,</span> <span class="s1">&#39;%%%%&#39;</span><span class="p">)</span> <span class="c1">-- Escape &quot;%&quot; with &quot;%%&quot;</span> </span><span id="L-712"><a href="#L-712"><span class="linenos" data-line="712"></span></a> <span class="kd">local</span> <span class="n">invocation</span><span class="p">,</span> <span class="n">count</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">invocation</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span> </span><span id="L-713"><a href="#L-713"><span class="linenos" data-line="713"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">cfg</span><span class="p">.</span><span class="n">templateNameMagicWordPattern</span><span class="p">,</span> </span><span id="L-714"><a href="#L-714"><span class="linenos" data-line="714"></span></a> <span class="n">template</span> </span><span id="L-715"><a href="#L-715"><span class="linenos" data-line="715"></span></a> <span class="p">)</span> </span><span id="L-716"><a href="#L-716"><span class="linenos" data-line="716"></span></a> <span class="kr">if</span> <span class="n">options</span><span class="p">.</span><span class="n">requireMagicWord</span> <span class="o">~=</span> <span class="kc">false</span> <span class="ow">and</span> <span class="n">count</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-717"><a href="#L-717"><span class="linenos" data-line="717"></span></a> <span class="nb">error</span><span class="p">(</span><span class="n">self</span><span class="p">:</span><span class="n">message</span><span class="p">(</span> </span><span id="L-718"><a href="#L-718"><span class="linenos" data-line="718"></span></a> <span class="s1">&#39;nowiki-magic-word-error&#39;</span><span class="p">,</span> </span><span id="L-719"><a href="#L-719"><span class="linenos" data-line="719"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">cfg</span><span class="p">.</span><span class="n">templateNameMagicWord</span> </span><span id="L-720"><a href="#L-720"><span class="linenos" data-line="720"></span></a> <span class="p">))</span> </span><span id="L-721"><a href="#L-721"><span class="linenos" data-line="721"></span></a> <span class="kr">end</span> </span><span id="L-722"><a href="#L-722"><span class="linenos" data-line="722"></span></a> <span class="kr">return</span> <span class="n">invocation</span> </span><span id="L-723"><a href="#L-723"><span class="linenos" data-line="723"></span></a><span class="kr">end</span> </span><span id="L-724"><a href="#L-724"><span class="linenos" data-line="724"></span></a> </span><span id="L-725"><a href="#L-725"><span class="linenos" data-line="725"></span></a><span class="kr">function</span> <span class="nc">NowikiInvocation</span><span class="p">:</span><span class="nf">getOutput</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-726"><a href="#L-726"><span class="linenos" data-line="726"></span></a> <span class="kd">local</span> <span class="n">invocation</span> <span class="o">=</span> <span class="n">self</span><span class="p">:</span><span class="n">getInvocation</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-727"><a href="#L-727"><span class="linenos" data-line="727"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">preprocess</span><span class="p">(</span><span class="n">invocation</span><span class="p">)</span> </span><span id="L-728"><a href="#L-728"><span class="linenos" data-line="728"></span></a><span class="kr">end</span> </span><span id="L-729"><a href="#L-729"><span class="linenos" data-line="729"></span></a> </span><span id="L-730"><a href="#L-730"><span class="linenos" data-line="730"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-731"><a href="#L-731"><span class="linenos" data-line="731"></span></a><span class="c1">-- Table invocation class</span> </span><span id="L-732"><a href="#L-732"><span class="linenos" data-line="732"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-733"><a href="#L-733"><span class="linenos" data-line="733"></span></a> </span><span id="L-734"><a href="#L-734"><span class="linenos" data-line="734"></span></a><span class="kd">local</span> <span class="n">TableInvocation</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-735"><a href="#L-735"><span class="linenos" data-line="735"></span></a><span class="n">TableInvocation</span><span class="p">.</span><span class="n">__index</span> <span class="o">=</span> <span class="n">TableInvocation</span> </span><span id="L-736"><a href="#L-736"><span class="linenos" data-line="736"></span></a><span class="n">TableInvocation</span><span class="p">.</span><span class="n">message</span> <span class="o">=</span> <span class="n">message</span> <span class="c1">-- Add the message method</span> </span><span id="L-737"><a href="#L-737"><span class="linenos" data-line="737"></span></a> </span><span id="L-738"><a href="#L-738"><span class="linenos" data-line="738"></span></a><span class="kr">function</span> <span class="nc">TableInvocation</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">invokeArgs</span><span class="p">,</span> <span class="n">nowikiCode</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-739"><a href="#L-739"><span class="linenos" data-line="739"></span></a> <span class="kd">local</span> <span class="n">obj</span> <span class="o">=</span> <span class="nb">setmetatable</span><span class="p">({},</span> <span class="n">TableInvocation</span><span class="p">)</span> </span><span id="L-740"><a href="#L-740"><span class="linenos" data-line="740"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> </span><span id="L-741"><a href="#L-741"><span class="linenos" data-line="741"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">invokeArgs</span> <span class="o">=</span> <span class="n">invokeArgs</span> </span><span id="L-742"><a href="#L-742"><span class="linenos" data-line="742"></span></a> <span class="n">obj</span><span class="p">.</span><span class="n">code</span> <span class="o">=</span> <span class="n">nowikiCode</span> </span><span id="L-743"><a href="#L-743"><span class="linenos" data-line="743"></span></a> <span class="kr">return</span> <span class="n">obj</span> </span><span id="L-744"><a href="#L-744"><span class="linenos" data-line="744"></span></a><span class="kr">end</span> </span><span id="L-745"><a href="#L-745"><span class="linenos" data-line="745"></span></a> </span><span id="L-746"><a href="#L-746"><span class="linenos" data-line="746"></span></a><span class="kr">function</span> <span class="nc">TableInvocation</span><span class="p">:</span><span class="nf">getInvocation</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-747"><a href="#L-747"><span class="linenos" data-line="747"></span></a> <span class="kr">if</span> <span class="n">self</span><span class="p">.</span><span class="n">code</span> <span class="kr">then</span> </span><span id="L-748"><a href="#L-748"><span class="linenos" data-line="748"></span></a> <span class="kd">local</span> <span class="n">nowikiObj</span> <span class="o">=</span> <span class="n">NowikiInvocation</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">code</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">cfg</span><span class="p">)</span> </span><span id="L-749"><a href="#L-749"><span class="linenos" data-line="749"></span></a> <span class="kr">return</span> <span class="n">nowikiObj</span><span class="p">:</span><span class="n">getInvocation</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-750"><a href="#L-750"><span class="linenos" data-line="750"></span></a> <span class="kr">else</span> </span><span id="L-751"><a href="#L-751"><span class="linenos" data-line="751"></span></a> <span class="kr">return</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Modul:Template invocation&#39;</span><span class="p">).</span><span class="n">invocation</span><span class="p">(</span> </span><span id="L-752"><a href="#L-752"><span class="linenos" data-line="752"></span></a> <span class="n">options</span><span class="p">.</span><span class="n">template</span><span class="p">,</span> </span><span id="L-753"><a href="#L-753"><span class="linenos" data-line="753"></span></a> <span class="n">self</span><span class="p">.</span><span class="n">invokeArgs</span> </span><span id="L-754"><a href="#L-754"><span class="linenos" data-line="754"></span></a> <span class="p">)</span> </span><span id="L-755"><a href="#L-755"><span class="linenos" data-line="755"></span></a> <span class="kr">end</span> </span><span id="L-756"><a href="#L-756"><span class="linenos" data-line="756"></span></a><span class="kr">end</span> </span><span id="L-757"><a href="#L-757"><span class="linenos" data-line="757"></span></a> </span><span id="L-758"><a href="#L-758"><span class="linenos" data-line="758"></span></a><span class="kr">function</span> <span class="nc">TableInvocation</span><span class="p">:</span><span class="nf">getOutput</span><span class="p">(</span><span class="n">options</span><span class="p">)</span> </span><span id="L-759"><a href="#L-759"><span class="linenos" data-line="759"></span></a> <span class="kr">if</span> <span class="p">(</span><span class="n">options</span><span class="p">.</span><span class="n">template</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;#invoke&#39;</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-760"><a href="#L-760"><span class="linenos" data-line="760"></span></a> <span class="kd">local</span> <span class="n">moduleCall</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">split</span><span class="p">(</span><span class="n">options</span><span class="p">.</span><span class="n">template</span><span class="p">,</span> <span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> </span><span id="L-761"><a href="#L-761"><span class="linenos" data-line="761"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">clone</span><span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">invokeArgs</span><span class="p">)</span> </span><span id="L-762"><a href="#L-762"><span class="linenos" data-line="762"></span></a> <span class="nb">table.insert</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">moduleCall</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> </span><span id="L-763"><a href="#L-763"><span class="linenos" data-line="763"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">callParserFunction</span><span class="p">(</span><span class="n">moduleCall</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">args</span><span class="p">)</span> </span><span id="L-764"><a href="#L-764"><span class="linenos" data-line="764"></span></a> <span class="kr">end</span> </span><span id="L-765"><a href="#L-765"><span class="linenos" data-line="765"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">expandTemplate</span><span class="p">{</span> </span><span id="L-766"><a href="#L-766"><span class="linenos" data-line="766"></span></a> <span class="n">title</span> <span class="o">=</span> <span class="n">options</span><span class="p">.</span><span class="n">template</span><span class="p">,</span> </span><span id="L-767"><a href="#L-767"><span class="linenos" data-line="767"></span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">invokeArgs</span> </span><span id="L-768"><a href="#L-768"><span class="linenos" data-line="768"></span></a> <span class="p">}</span> </span><span id="L-769"><a href="#L-769"><span class="linenos" data-line="769"></span></a><span class="kr">end</span> </span><span id="L-770"><a href="#L-770"><span class="linenos" data-line="770"></span></a> </span><span id="L-771"><a href="#L-771"><span class="linenos" data-line="771"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-772"><a href="#L-772"><span class="linenos" data-line="772"></span></a><span class="c1">-- Bridge functions</span> </span><span id="L-773"><a href="#L-773"><span class="linenos" data-line="773"></span></a><span class="c1">--</span> </span><span id="L-774"><a href="#L-774"><span class="linenos" data-line="774"></span></a><span class="c1">-- These functions translate template arguments into forms that can be accepted</span> </span><span id="L-775"><a href="#L-775"><span class="linenos" data-line="775"></span></a><span class="c1">-- by the different classes, and return the results.</span> </span><span id="L-776"><a href="#L-776"><span class="linenos" data-line="776"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-777"><a href="#L-777"><span class="linenos" data-line="777"></span></a> </span><span id="L-778"><a href="#L-778"><span class="linenos" data-line="778"></span></a><span class="kd">local</span> <span class="n">bridge</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-779"><a href="#L-779"><span class="linenos" data-line="779"></span></a> </span><span id="L-780"><a href="#L-780"><span class="linenos" data-line="780"></span></a><span class="kr">function</span> <span class="nc">bridge</span><span class="p">.</span><span class="nf">table</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-781"><a href="#L-781"><span class="linenos" data-line="781"></span></a> <span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="n">DATA_MODULE</span><span class="p">)</span> </span><span id="L-782"><a href="#L-782"><span class="linenos" data-line="782"></span></a> </span><span id="L-783"><a href="#L-783"><span class="linenos" data-line="783"></span></a> <span class="kd">local</span> <span class="n">options</span><span class="p">,</span> <span class="n">invokeArgs</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span> </span><span id="L-784"><a href="#L-784"><span class="linenos" data-line="784"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-785"><a href="#L-785"><span class="linenos" data-line="785"></span></a> <span class="kd">local</span> <span class="n">optionKey</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;string&#39;</span> <span class="ow">and</span> <span class="n">k</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;^_(.*)$&#39;</span><span class="p">)</span> </span><span id="L-786"><a href="#L-786"><span class="linenos" data-line="786"></span></a> <span class="kr">if</span> <span class="n">optionKey</span> <span class="kr">then</span> </span><span id="L-787"><a href="#L-787"><span class="linenos" data-line="787"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;string&#39;</span> <span class="kr">then</span> </span><span id="L-788"><a href="#L-788"><span class="linenos" data-line="788"></span></a> <span class="n">v</span> <span class="o">=</span> <span class="n">v</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;^%s*(.-)%s*$&#39;</span><span class="p">)</span> <span class="c1">-- trim whitespace</span> </span><span id="L-789"><a href="#L-789"><span class="linenos" data-line="789"></span></a> <span class="kr">end</span> </span><span id="L-790"><a href="#L-790"><span class="linenos" data-line="790"></span></a> <span class="kr">if</span> <span class="n">v</span> <span class="o">~=</span> <span class="s1">&#39;&#39;</span> <span class="kr">then</span> </span><span id="L-791"><a href="#L-791"><span class="linenos" data-line="791"></span></a> <span class="n">options</span><span class="p">[</span><span class="n">optionKey</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-792"><a href="#L-792"><span class="linenos" data-line="792"></span></a> <span class="kr">end</span> </span><span id="L-793"><a href="#L-793"><span class="linenos" data-line="793"></span></a> <span class="kr">else</span> </span><span id="L-794"><a href="#L-794"><span class="linenos" data-line="794"></span></a> <span class="n">invokeArgs</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-795"><a href="#L-795"><span class="linenos" data-line="795"></span></a> <span class="kr">end</span> </span><span id="L-796"><a href="#L-796"><span class="linenos" data-line="796"></span></a> <span class="kr">end</span> </span><span id="L-797"><a href="#L-797"><span class="linenos" data-line="797"></span></a> </span><span id="L-798"><a href="#L-798"><span class="linenos" data-line="798"></span></a> <span class="c1">-- Allow passing a nowiki invocation as an option. While this means users</span> </span><span id="L-799"><a href="#L-799"><span class="linenos" data-line="799"></span></a> <span class="c1">-- have to pass in the code twice, whitespace is preserved and &amp;lt; etc.</span> </span><span id="L-800"><a href="#L-800"><span class="linenos" data-line="800"></span></a> <span class="c1">-- will work as intended.</span> </span><span id="L-801"><a href="#L-801"><span class="linenos" data-line="801"></span></a> <span class="kd">local</span> <span class="n">nowikiCode</span> <span class="o">=</span> <span class="n">options</span><span class="p">.</span><span class="n">code</span> </span><span id="L-802"><a href="#L-802"><span class="linenos" data-line="802"></span></a> <span class="n">options</span><span class="p">.</span><span class="n">code</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-803"><a href="#L-803"><span class="linenos" data-line="803"></span></a> </span><span id="L-804"><a href="#L-804"><span class="linenos" data-line="804"></span></a> <span class="kd">local</span> <span class="n">invocationObj</span> <span class="o">=</span> <span class="n">TableInvocation</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">invokeArgs</span><span class="p">,</span> <span class="n">nowikiCode</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-805"><a href="#L-805"><span class="linenos" data-line="805"></span></a> <span class="kd">local</span> <span class="n">testCaseObj</span> <span class="o">=</span> <span class="n">TestCase</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">invocationObj</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-806"><a href="#L-806"><span class="linenos" data-line="806"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">testCaseObj</span><span class="p">)</span> </span><span id="L-807"><a href="#L-807"><span class="linenos" data-line="807"></span></a><span class="kr">end</span> </span><span id="L-808"><a href="#L-808"><span class="linenos" data-line="808"></span></a> </span><span id="L-809"><a href="#L-809"><span class="linenos" data-line="809"></span></a><span class="kr">function</span> <span class="nc">bridge</span><span class="p">.</span><span class="nf">nowiki</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-810"><a href="#L-810"><span class="linenos" data-line="810"></span></a> <span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="n">DATA_MODULE</span><span class="p">)</span> </span><span id="L-811"><a href="#L-811"><span class="linenos" data-line="811"></span></a> </span><span id="L-812"><a href="#L-812"><span class="linenos" data-line="812"></span></a> <span class="c1">-- Convert args beginning with _ for consistency with the normal bridge</span> </span><span id="L-813"><a href="#L-813"><span class="linenos" data-line="813"></span></a> <span class="kd">local</span> <span class="n">newArgs</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-814"><a href="#L-814"><span class="linenos" data-line="814"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-815"><a href="#L-815"><span class="linenos" data-line="815"></span></a> <span class="kd">local</span> <span class="n">normalName</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="o">==</span> <span class="s2">&quot;string&quot;</span> <span class="ow">and</span> <span class="nb">string.match</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="s2">&quot;^_(.*)$&quot;</span><span class="p">)</span> </span><span id="L-816"><a href="#L-816"><span class="linenos" data-line="816"></span></a> <span class="kr">if</span> <span class="n">normalName</span> <span class="kr">then</span> </span><span id="L-817"><a href="#L-817"><span class="linenos" data-line="817"></span></a> <span class="n">newArgs</span><span class="p">[</span><span class="n">normalName</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-818"><a href="#L-818"><span class="linenos" data-line="818"></span></a> <span class="kr">else</span> </span><span id="L-819"><a href="#L-819"><span class="linenos" data-line="819"></span></a> <span class="n">newArgs</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-820"><a href="#L-820"><span class="linenos" data-line="820"></span></a> <span class="kr">end</span> </span><span id="L-821"><a href="#L-821"><span class="linenos" data-line="821"></span></a> <span class="kr">end</span> </span><span id="L-822"><a href="#L-822"><span class="linenos" data-line="822"></span></a> </span><span id="L-823"><a href="#L-823"><span class="linenos" data-line="823"></span></a> <span class="kd">local</span> <span class="n">code</span> <span class="o">=</span> <span class="n">newArgs</span><span class="p">.</span><span class="n">code</span> <span class="ow">or</span> <span class="n">newArgs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-824"><a href="#L-824"><span class="linenos" data-line="824"></span></a> <span class="kd">local</span> <span class="n">invocationObj</span> <span class="o">=</span> <span class="n">NowikiInvocation</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-825"><a href="#L-825"><span class="linenos" data-line="825"></span></a> <span class="n">newArgs</span><span class="p">.</span><span class="n">code</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-826"><a href="#L-826"><span class="linenos" data-line="826"></span></a> <span class="n">newArgs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="kc">nil</span> </span><span id="L-827"><a href="#L-827"><span class="linenos" data-line="827"></span></a> <span class="c1">-- Assume we want to see the code as we already passed it in.</span> </span><span id="L-828"><a href="#L-828"><span class="linenos" data-line="828"></span></a> <span class="n">newArgs</span><span class="p">.</span><span class="n">showcode</span> <span class="o">=</span> <span class="n">newArgs</span><span class="p">.</span><span class="n">showcode</span> <span class="ow">or</span> <span class="kc">true</span> </span><span id="L-829"><a href="#L-829"><span class="linenos" data-line="829"></span></a> <span class="kd">local</span> <span class="n">testCaseObj</span> <span class="o">=</span> <span class="n">TestCase</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">invocationObj</span><span class="p">,</span> <span class="n">newArgs</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-830"><a href="#L-830"><span class="linenos" data-line="830"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">testCaseObj</span><span class="p">)</span> </span><span id="L-831"><a href="#L-831"><span class="linenos" data-line="831"></span></a><span class="kr">end</span> </span><span id="L-832"><a href="#L-832"><span class="linenos" data-line="832"></span></a> </span><span id="L-833"><a href="#L-833"><span class="linenos" data-line="833"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-834"><a href="#L-834"><span class="linenos" data-line="834"></span></a><span class="c1">-- Exports</span> </span><span id="L-835"><a href="#L-835"><span class="linenos" data-line="835"></span></a><span class="c1">-------------------------------------------------------------------------------</span> </span><span id="L-836"><a href="#L-836"><span class="linenos" data-line="836"></span></a> </span><span id="L-837"><a href="#L-837"><span class="linenos" data-line="837"></span></a><span class="kd">local</span> <span class="n">p</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-838"><a href="#L-838"><span class="linenos" data-line="838"></span></a> </span><span id="L-839"><a href="#L-839"><span class="linenos" data-line="839"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">main</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-840"><a href="#L-840"><span class="linenos" data-line="840"></span></a> <span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="n">DATA_MODULE</span><span class="p">)</span> </span><span id="L-841"><a href="#L-841"><span class="linenos" data-line="841"></span></a> </span><span id="L-842"><a href="#L-842"><span class="linenos" data-line="842"></span></a> <span class="c1">-- Load the wrapper config, if any.</span> </span><span id="L-843"><a href="#L-843"><span class="linenos" data-line="843"></span></a> <span class="kd">local</span> <span class="n">wrapperConfig</span> </span><span id="L-844"><a href="#L-844"><span class="linenos" data-line="844"></span></a> <span class="kr">if</span> <span class="n">frame</span><span class="p">.</span><span class="n">getParent</span> <span class="kr">then</span> </span><span id="L-845"><a href="#L-845"><span class="linenos" data-line="845"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">frame</span><span class="p">:</span><span class="n">getParent</span><span class="p">():</span><span class="n">getTitle</span><span class="p">()</span> </span><span id="L-846"><a href="#L-846"><span class="linenos" data-line="846"></span></a> <span class="kd">local</span> <span class="n">template</span> <span class="o">=</span> <span class="n">title</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="n">cfg</span><span class="p">.</span><span class="n">sandboxSubpagePattern</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> </span><span id="L-847"><a href="#L-847"><span class="linenos" data-line="847"></span></a> <span class="n">wrapperConfig</span> <span class="o">=</span> <span class="n">cfg</span><span class="p">.</span><span class="n">wrappers</span><span class="p">[</span><span class="n">template</span><span class="p">]</span> </span><span id="L-848"><a href="#L-848"><span class="linenos" data-line="848"></span></a> <span class="kr">end</span> </span><span id="L-849"><a href="#L-849"><span class="linenos" data-line="849"></span></a> </span><span id="L-850"><a href="#L-850"><span class="linenos" data-line="850"></span></a> <span class="c1">-- Work out the function we will call, use it to generate the config for</span> </span><span id="L-851"><a href="#L-851"><span class="linenos" data-line="851"></span></a> <span class="c1">-- Module:Arguments, and use Module:Arguments to find the arguments passed</span> </span><span id="L-852"><a href="#L-852"><span class="linenos" data-line="852"></span></a> <span class="c1">-- by the user.</span> </span><span id="L-853"><a href="#L-853"><span class="linenos" data-line="853"></span></a> <span class="kd">local</span> <span class="n">func</span> <span class="o">=</span> <span class="n">wrapperConfig</span> <span class="ow">and</span> <span class="n">wrapperConfig</span><span class="p">.</span><span class="n">func</span> <span class="ow">or</span> <span class="s1">&#39;table&#39;</span> </span><span id="L-854"><a href="#L-854"><span class="linenos" data-line="854"></span></a> <span class="kd">local</span> <span class="n">userArgs</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Modul:Arguments&#39;</span><span class="p">).</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> </span><span id="L-855"><a href="#L-855"><span class="linenos" data-line="855"></span></a> <span class="n">parentOnly</span> <span class="o">=</span> <span class="n">wrapperConfig</span><span class="p">,</span> </span><span id="L-856"><a href="#L-856"><span class="linenos" data-line="856"></span></a> <span class="n">frameOnly</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">wrapperConfig</span><span class="p">,</span> </span><span id="L-857"><a href="#L-857"><span class="linenos" data-line="857"></span></a> <span class="n">trim</span> <span class="o">=</span> <span class="n">func</span> <span class="o">~=</span> <span class="s1">&#39;table&#39;</span><span class="p">,</span> </span><span id="L-858"><a href="#L-858"><span class="linenos" data-line="858"></span></a> <span class="n">removeBlanks</span> <span class="o">=</span> <span class="n">func</span> <span class="o">~=</span> <span class="s1">&#39;table&#39;</span> </span><span id="L-859"><a href="#L-859"><span class="linenos" data-line="859"></span></a> <span class="p">})</span> </span><span id="L-860"><a href="#L-860"><span class="linenos" data-line="860"></span></a> </span><span id="L-861"><a href="#L-861"><span class="linenos" data-line="861"></span></a> <span class="c1">-- Get default args and build the args table. User-specified args overwrite</span> </span><span id="L-862"><a href="#L-862"><span class="linenos" data-line="862"></span></a> <span class="c1">-- default args.</span> </span><span id="L-863"><a href="#L-863"><span class="linenos" data-line="863"></span></a> <span class="kd">local</span> <span class="n">defaultArgs</span> <span class="o">=</span> <span class="n">wrapperConfig</span> <span class="ow">and</span> <span class="n">wrapperConfig</span><span class="p">.</span><span class="n">args</span> <span class="ow">or</span> <span class="p">{}</span> </span><span id="L-864"><a href="#L-864"><span class="linenos" data-line="864"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-865"><a href="#L-865"><span class="linenos" data-line="865"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">defaultArgs</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-866"><a href="#L-866"><span class="linenos" data-line="866"></span></a> <span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-867"><a href="#L-867"><span class="linenos" data-line="867"></span></a> <span class="kr">end</span> </span><span id="L-868"><a href="#L-868"><span class="linenos" data-line="868"></span></a> <span class="kr">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="kr">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">userArgs</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-869"><a href="#L-869"><span class="linenos" data-line="869"></span></a> <span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span> </span><span id="L-870"><a href="#L-870"><span class="linenos" data-line="870"></span></a> <span class="kr">end</span> </span><span id="L-871"><a href="#L-871"><span class="linenos" data-line="871"></span></a> </span><span id="L-872"><a href="#L-872"><span class="linenos" data-line="872"></span></a> <span class="kr">return</span> <span class="n">bridge</span><span class="p">[</span><span class="n">func</span><span class="p">](</span><span class="n">args</span><span class="p">,</span> <span class="n">cfg</span><span class="p">)</span> </span><span id="L-873"><a href="#L-873"><span class="linenos" data-line="873"></span></a><span class="kr">end</span> </span><span id="L-874"><a href="#L-874"><span class="linenos" data-line="874"></span></a> </span><span id="L-875"><a href="#L-875"><span class="linenos" data-line="875"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_exportClasses</span><span class="p">()</span> <span class="c1">-- For testing</span> </span><span id="L-876"><a href="#L-876"><span class="linenos" data-line="876"></span></a> <span class="kr">return</span> <span class="p">{</span> </span><span id="L-877"><a href="#L-877"><span class="linenos" data-line="877"></span></a> <span class="n">Template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">,</span> </span><span id="L-878"><a href="#L-878"><span class="linenos" data-line="878"></span></a> <span class="n">TestCase</span> <span class="o">=</span> <span class="n">TestCase</span><span class="p">,</span> </span><span id="L-879"><a href="#L-879"><span class="linenos" data-line="879"></span></a> <span class="n">NowikiInvocation</span> <span class="o">=</span> <span class="n">NowikiInvocation</span><span class="p">,</span> </span><span id="L-880"><a href="#L-880"><span class="linenos" data-line="880"></span></a> <span class="n">TableInvocation</span> <span class="o">=</span> <span class="n">TableInvocation</span> </span><span id="L-881"><a href="#L-881"><span class="linenos" data-line="881"></span></a> <span class="p">}</span> </span><span id="L-882"><a href="#L-882"><span class="linenos" data-line="882"></span></a><span class="kr">end</span> </span><span id="L-883"><a href="#L-883"><span class="linenos" data-line="883"></span></a> </span><span id="L-884"><a href="#L-884"><span class="linenos" data-line="884"></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‐4xwft Cached time: 20241124034338 Cache expiry: 2592000 Reduced expiry: false Complications: [] CPU time usage: 0.085 seconds Real time usage: 0.162 seconds Preprocessor visited node count: 333/1000000 Post‐expand include size: 17627/2097152 bytes Template argument size: 533/2097152 bytes Highest expansion depth: 11/100 Expensive parser function count: 5/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 2686/5000000 bytes Lua time usage: 0.037/10.000 seconds Lua memory usage: 983411/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 137.315 1 -total 73.13% 100.414 1 Modul:Template_test_case/dok 29.48% 40.482 1 Predloga:Lua 24.48% 33.621 2 Predloga:Clc 20.04% 27.523 1 Predloga:Dokumentacija/link_box 16.47% 22.613 1 Predloga:Fmbox 13.17% 18.091 1 Predloga:Para 4.87% 6.683 1 Predloga:Dokumentacija/start_box 2.83% 3.883 1 Predloga:Purge 1.83% 2.515 1 Predloga:Module_other --> </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="">Pridobljeno iz&#160;»<a dir="ltr" href="https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case&amp;oldid=6284026">https://sl.wikipedia.org/w/index.php?title=Modul:Template_test_case&amp;oldid=6284026</a>«</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Posebno:Kategorije" title="Posebno:Kategorije">Kategoriji</a>: <ul><li><a href="/wiki/Kategorija:Moduli,_ki_dodajajo_sledilno_kategorijo" title="Kategorija:Moduli, ki dodajajo sledilno kategorijo">Moduli, ki dodajajo sledilno kategorijo</a></li><li><a href="/wiki/Kategorija:Moduli,_ki_preverijo_za_ozna%C4%8Devalce" title="Kategorija:Moduli, ki preverijo za označevalce">Moduli, ki preverijo za označevalce</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"> Čas zadnje spremembe strani: 10:24, 11. avgust 2024.</li> <li id="footer-info-copyright">Besedilo se sme prosto uporabljati v skladu z dovoljenjem <a rel="nofollow" class="external text" href="//creativecommons.org/licenses/by-sa/4.0/">Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 4.0</a>; uveljavljajo se lahko dodatni pogoji. Za podrobnosti glej <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Pogoje uporabe</a>.<br /> Wikipedia® je tržna znamka neprofitne organizacije <a rel="nofollow" class="external text" href="https://wikimediafoundation.org">Wikimedia Foundation Inc.</a></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Pravilnik o zasebnosti</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedija:O_Wikipediji">O Wikipediji</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedija:Splo%C5%A1na_zavrnitev_odgovornosti">Zavrnitve odgovornosti</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Kodeks ravnanja</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Razvijalci</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/sl.wikipedia.org">Statistika</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">O piškotkih</a></li> <li id="footer-places-mobileview"><a href="//sl.m.wikipedia.org/w/index.php?title=Modul:Template_test_case&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobilni prikaz</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-4xwft","wgBackendResponseTime":416,"wgPageParseReport":{"limitreport":{"cputime":"0.085","walltime":"0.162","ppvisitednodes":{"value":333,"limit":1000000},"postexpandincludesize":{"value":17627,"limit":2097152},"templateargumentsize":{"value":533,"limit":2097152},"expansiondepth":{"value":11,"limit":100},"expensivefunctioncount":{"value":5,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":2686,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 137.315 1 -total"," 73.13% 100.414 1 Modul:Template_test_case/dok"," 29.48% 40.482 1 Predloga:Lua"," 24.48% 33.621 2 Predloga:Clc"," 20.04% 27.523 1 Predloga:Dokumentacija/link_box"," 16.47% 22.613 1 Predloga:Fmbox"," 13.17% 18.091 1 Predloga:Para"," 4.87% 6.683 1 Predloga:Dokumentacija/start_box"," 2.83% 3.883 1 Predloga:Purge"," 1.83% 2.515 1 Predloga:Module_other"]},"scribunto":{"limitreport-timeusage":{"value":"0.037","limit":"10.000"},"limitreport-memusage":{"value":983411,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-4xwft","timestamp":"20241124034338","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10