CINXE.COM

ماڈیول:Documentation - وکیپیڈیا

<!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="pnb" dir="rtl"> <head> <meta charset="UTF-8"> <title>ماڈیول:Documentation - وکیپیڈیا</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(/(?:^|; )pnbwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["0\t1\t2\t3\t4\t5\t6\t7\t8\t9", "۰\t۱\t۲\t۳\t۴\t۵\t۶\t۷\t۸\t۹"],"wgDefaultDateFormat":"dmy","wgMonthNames":["","جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],"wgRequestId":"b91b876b-2bb1-4f96-bb9e-7df14d86ad12","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"ماڈیول:Documentation","wgTitle":"Documentation","wgCurRevisionId":582814,"wgRevisionId":582814,"wgArticleId":100875,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Pages using deprecated source tags"],"wgPageViewLanguage":"pnb","wgPageContentLanguage":"pnb","wgPageContentModel":"Scribunto","wgRelevantPageName":"ماڈیول:Documentation","wgRelevantArticleId":100875,"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":40000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles": "ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.Edittools","ext.gadget.signit","ext.gadget.TemplateParamWizard","ext.gadget.userScriptSandbox","ext.gadget.OrphanCheck","ext.gadget.refToolbar","ext.gadget.charinsert","ext.gadget.prota","ext.gadget.HotCat","ext.gadget.incategory","ext.gadget.ExternalSearch","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","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","ext.checkUser.clientHints"];</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=pnb&amp;modules=ext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=pnb&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=pnb&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="ماڈیول:Documentation - وکیپیڈیا"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//pnb.m.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation"> <link rel="alternate" type="application/x-wiki" title="سودھو" href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&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="وکیپیڈیا (pnb)"> <link rel="EditURI" type="application/rsd+xml" href="//pnb.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://pnb.wikipedia.org/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.pnb"> <link rel="alternate" type="application/atom+xml" title="وکیپیڈیا Atom Feed" href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:RecentChanges&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 rtl sitedir-rtl mw-hide-empty-elt ns-828 ns-subject mw-editable page-ماڈیول_Documentation rootpage-ماڈیول_Documentation skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">لُکاؤ</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> پاندھ </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/%D9%BE%DB%81%D9%84%D8%A7_%D8%B5%D9%81%DB%81" title="پہلے صفحے نوں ویکھو [z]" accesskey="z"><span>پہلا صفہ</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:Random" title="کوئی صفحہ کھولو۔ [x]" accesskey="x"><span>رلواں صفحہ</span></a></li><li id="n-newarticlewizard" class="mw-list-item"><a href="/wiki/%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D8%AA%D8%AE%D9%84%DB%8C%D9%82_%D9%85%D8%B6%D9%85%D9%88%D9%86_%D9%88%DB%8C%D8%B2%D8%B1%DA%88"><span>نواں آرٹیکل لِکھو</span></a></li><li id="n-allpages-desc" class="mw-list-item"><a href=""><span>سارے صفحے</span></a></li><li id="n-quick-list-desc" class="mw-list-item"><a href="/wiki/%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D8%B3%D8%B1%DB%8C%D8%B9_%D9%84%D8%B3%D9%B9"><span>سریع لسٹ</span></a></li><li id="n-current-events-desc" class="mw-list-item"><a href="/wiki/Current-events-url"><span>اج کل دیاں خبراں</span></a></li> </ul> </div> </div> <div id="p-interaction-desc" class="vector-menu mw-portlet mw-portlet-interaction-desc" > <div class="vector-menu-heading"> تعامل </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents" title="لبھن دی جگہ۔"><span>مدد</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D8%A8%DB%8C%D9%B9%DA%BE%DA%A9" title="پربندھ بارے ، تسیں کیہ کر سکدے او تے کنج کھوج سکدے او"><span>بیٹھک</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:RecentChanges" title="وکی تے نویاں تبدیلیاں۔ [r]" accesskey="r"><span>نویاں تبدیلیاں</span></a></li><li id="n-فائل-اپلوڈ" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard"><span>فائل اپلوڈ</span></a></li><li id="n-contact-desc" class="mw-list-item"><a href="/wiki/Contact-url"><span>رابطہ کرو</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/%D9%BE%DB%81%D9%84%D8%A7_%D8%B5%D9%81%DB%81" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="وکیپیڈیا" src="/static/images/mobile/copyright/wikipedia-wordmark-pnb.svg" style="width: 3.75em; height: 1.6875em;"> <img class="mw-logo-tagline" alt="" src="/static/images/mobile/copyright/wikipedia-tagline-pnb.svg" width="70" height="15" style="width: 4.375em; height: 0.9375em;"> </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/%D8%AE%D8%A7%D8%B5:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="وکیپیڈیا وچ لبھو [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>کھوج</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="وکیپیڈیا وچ کھوجو" aria-label="وکیپیڈیا وچ کھوجو" autocapitalize="sentences" title="وکیپیڈیا وچ لبھو [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="خاص:Search"> </div> <button class="cdx-button cdx-search-input__end-button">کھوجو</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="نجی سند"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <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="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_pnb.wikipedia.org&amp;uselang=pnb" class=""><span>دان کرو</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:CreateAccount&amp;returnto=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation" title="ایہ تواڈے لئی چنگا اے جے تسیں کھاتہ کھولو تے لاگ ان ہوو؛ پر ایہ لازمی وی نئیں" class=""><span>کھاتہ بݨاؤ</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:UserLogin&amp;returnto=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation" title="ایہ بہتر اے کہ لاگ ان ہو جاؤ، فیر وی ایہ لازمی نئیں۔ [o]" accesskey="o" class=""><span>لاگ‌ ان کرو</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="نجی سند" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">نجی سند</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_pnb.wikipedia.org&amp;uselang=pnb"><span>دان کرو</span></a></li><li id="pt-contribute" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:Contribute"><span class="vector-icon mw-ui-icon-edit mw-ui-icon-wikimedia-edit"></span> <span>Contribute</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:CreateAccount&amp;returnto=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation" title="ایہ تواڈے لئی چنگا اے جے تسیں کھاتہ کھولو تے لاگ ان ہوو؛ پر ایہ لازمی وی نئیں"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>کھاتہ بݨاؤ</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:UserLogin&amp;returnto=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation" title="ایہ بہتر اے کہ لاگ ان ہو جاؤ، فیر وی ایہ لازمی نئیں۔ [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>لاگ‌ ان کرو</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/%DB%81%D8%AA%DA%BE%D9%88%D9%86%DA%88%D8%A7%D8%A6%DB%8C:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:MyTalk" title="ایس آئی پی پتے دیاں تبدیلیاں تے گل بات [n]" accesskey="n"><span>گل بات</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">لُکاؤ</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">Beginning</div> </a> </li> <li id="toc-Normal_usage" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Normal_usage"> <div class="vector-toc-text"> <span class="vector-toc-numb">۱</span> <span>Normal usage</span> </div> </a> <ul id="toc-Normal_usage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Use_in_other_modules" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Use_in_other_modules"> <div class="vector-toc-text"> <span class="vector-toc-numb">۲</span> <span>Use in other modules</span> </div> </a> <ul id="toc-Use_in_other_modules-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Porting_to_other_wikis" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Porting_to_other_wikis"> <div class="vector-toc-text"> <span class="vector-toc-numb">۳</span> <span>Porting to other wikis</span> </div> </a> <ul id="toc-Porting_to_other_wikis-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">ماڈیول</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Documentation</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="This article exist only in this language. Add the article for other languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" 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">بولیاں جوڑو</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:NewItem?site=pnbwiki&amp;page=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation" title="Add interlanguage links" class="wbc-editpage">جوڑ پایو</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="ناں تھاواں"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation" title="View the module page [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84_%DA%AF%D9%84_%D8%A8%D8%A7%D8%AA:Documentation&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="اس صفحے بارے گل بات (صفحہ مَوجود نہیں اے) [t]" accesskey="t"><span>گل بات</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="نظارے"> <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/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation"><span>پڑھو</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>ماخذ اچ سودھو</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;action=history" title="اس صفحے دا پرانا ورژن۔ [h]" accesskey="h"><span>تریخ دیکھو</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="سند" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">سند</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">سند</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">لُکاؤ</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation"><span>پڑھو</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>ماخذ اچ سودھو</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;action=history"><span>تریخ دیکھو</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> عام </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:WhatLinksHere/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation" title="اس نال جڑے سارے وکی صفحے۔ [j]" accesskey="j"><span>ایتھے کیہہ جڑدا</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:RecentChangesLinked/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation" rel="nofollow" title="اس صفحے نال جڑے صفحیاں وچ نویاں تبدیلیاں [k]" accesskey="k"><span>رلدیاں ملدیاں تبدیلیاں</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=pnb" title="فائل چڑھاؤ [u]" accesskey="u"><span>فائل چڑھاؤ</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/%D8%AE%D8%A7%D8%B5:SpecialPages" title="سارے خاص صفحیاں دی اک لسٹ [q]" accesskey="q"><span>خاص صفحے</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;oldid=582814" title="اس صفحے دے اس ورژن نال پکا جوڑ"><span>پکا جوڑ</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;action=info" title="More information about this page"><span>صفحے بارے جاݨکاری</span></a></li><li id="n-اج-دے-رُجحان" class="mw-list-item"><a href="http://tools.wmflabs.org/wikitrends/punjabi-most-visited-today.html"><span>اج دے رُجحان</span></a></li><li id="n-ہفتے-دے-رُجحان" class="mw-list-item"><a href="http://tools.wmflabs.org/wikitrends/punjabi-most-visited-this-week.html"><span>ہفتے دے رُجحان</span></a></li><li id="n-مہینے-دے-رُجحان" class="mw-list-item"><a href="http://tools.wmflabs.org/wikitrends/punjabi-most-visited-this-month.html"><span>مہینے دے رُجحان</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:UrlShortener&amp;url=https%3A%2F%2Fpnb.wikipedia.org%2Fwiki%2F%25D9%2585%25D8%25A7%25DA%2588%25DB%258C%25D9%2588%25D9%2584%3ADocumentation"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:QrCode&amp;url=https%3A%2F%2Fpnb.wikipedia.org%2Fwiki%2F%25D9%2585%25D8%25A7%25DA%2588%25DB%258C%25D9%2588%25D9%2584%3ADocumentation"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-electronpdfservice-sidebar-portlet-heading" class="vector-menu mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="electron-print_pdf" class="mw-list-item"><a href="/w/index.php?title=%D8%AE%D8%A7%D8%B5:DownloadAsPdf&amp;page=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84%3ADocumentation&amp;action=show-download-screen"><span>پی ڈی ایف ڈاؤنلوڈ</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="اس صفحے دا چھپن والا ورژن ویکھو [p]" accesskey="p"><span>چھاپݨ والا صفحہ</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects emptyPortlet" > <div class="vector-menu-heading"> ہور منصوبےآں وچ </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">لُکاؤ</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">آزاد انسائیکلوپیڈیا، وکیپیڈیا توں</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-rtl mw-parser-output" lang="pnb" dir="rtl"><p>This module displays a blue box containing documentation for <a href="/w/index.php?title=%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:TEMPLATE&amp;action=edit&amp;redlink=1" class="new" title="وکیپیڈیا:TEMPLATE (صفحہ مَوجود نہیں اے)">templates</a>, <a href="/w/index.php?title=%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:MODULE&amp;action=edit&amp;redlink=1" class="new" title="وکیپیڈیا:MODULE (صفحہ مَوجود نہیں اے)">Lua modules</a>, or other pages. It is usually run using the </p><div lang="ur" class="UrduText"> <p>{{<a href="/wiki/%D8%B3%D8%A7%D9%86%DA%86%DB%81:Documentation" title="سانچہ:Documentation">documentation</a>}} template. </p> <div class="mw-heading mw-heading2"><h2 id="Normal_usage">Normal usage</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation/doc&amp;action=edit&amp;section=T-1" title="حصہ لکھو: Normal usage"><span>سودھو</span></a><span class="mw-editsection-bracket">]</span></span></div> For most uses, this module should be called from the <div lang="ur" class="UrduText"> <p>{{<a href="/wiki/%D8%B3%D8%A7%D9%86%DA%86%DB%81:Documentation" title="سانچہ:Documentation">documentation</a>}} template. Please see the template page for usage instructions and a list of parameters. </p> <div class="mw-heading mw-heading2"><h2 id="Use_in_other_modules">Use in other modules</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation/doc&amp;action=edit&amp;section=T-2" title="حصہ لکھو: Use in other modules"><span>سودھو</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>To use this module from another Lua module, first load it with <code>require</code>: </p> <div class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">local</span> <span class="n">documentation</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Module:Documentation&#39;</span><span class="p">).</span><span class="n">main</span> </pre></div> <p>Then you can simply call it using a table of arguments. </p> <div class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><pre><span></span><span class="n">documentation</span><span class="p">{</span><span class="n">content</span> <span class="o">=</span> <span class="s1">&#39;Some documentation&#39;</span><span class="p">,</span> <span class="p">[</span><span class="s1">&#39;link box&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;My custom link box&#39;</span><span class="p">}</span> </pre></div> <p>Please refer to the <a href="/w/index.php?title=%D8%B3%D8%A7%D9%86%DA%86%DB%81:Documentation/doc&amp;action=edit&amp;redlink=1" class="new" title="سانچہ:Documentation/doc (صفحہ مَوجود نہیں اے)">template documentation</a> for usage instructions and a list of parameters. </p> <div class="mw-heading mw-heading2"><h2 id="Porting_to_other_wikis">Porting to other wikis</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation/doc&amp;action=edit&amp;section=T-3" title="حصہ لکھو: Porting to other wikis"><span>سودھو</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The module has a configuration file at <a href="/wiki/%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation/config" title="ماڈیول:Documentation/config">Module:Documentation/config</a> which is intended to allow easy translation and porting to other wikis. Please see the code comments in the config page for instructions. If you have any questions, or you need a feature which is not currently implemented, please leave a message at <a href="/w/index.php?title=%D8%B3%D8%A7%D9%86%DA%86%DB%81_%DA%AF%D9%84_%D8%A8%D8%A7%D8%AA:Documentation&amp;action=edit&amp;redlink=1" class="new" title="سانچہ گل بات:Documentation (صفحہ مَوجود نہیں اے)">Template talk:Documentation</a> to get the attention of a developer. </p> <hr /></div></div><div class="mw-highlight mw-highlight-lang-lua mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos" data-line="1"></span></a><span class="c1">-- This module implements {{documentation}}.</span> </span><span id="L-2"><a href="#L-2"><span class="linenos" data-line="2"></span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos" data-line="3"></span></a><span class="c1">-- Get required modules.</span> </span><span id="L-4"><a href="#L-4"><span class="linenos" data-line="4"></span></a><span class="kd">local</span> <span class="n">getArgs</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Module:Arguments&#39;</span><span class="p">).</span><span class="n">getArgs</span> </span><span id="L-5"><a href="#L-5"><span class="linenos" data-line="5"></span></a><span class="kd">local</span> <span class="n">messageBox</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Module:Message box&#39;</span><span class="p">)</span> </span><span id="L-6"><a href="#L-6"><span class="linenos" data-line="6"></span></a> </span><span id="L-7"><a href="#L-7"><span class="linenos" data-line="7"></span></a><span class="c1">-- Get the config table.</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a><span class="kd">local</span> <span class="n">cfg</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="s1">&#39;Module:Documentation/config&#39;</span><span class="p">)</span> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a><span class="kd">local</span> <span class="n">p</span> <span class="o">=</span> <span class="p">{}</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="c1">-- Often-used functions.</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a><span class="kd">local</span> <span class="n">ugsub</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span> </span><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="c1">----------------------------------------------------------------------------</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a><span class="c1">-- Helper functions</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a><span class="c1">--</span> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a><span class="c1">-- These are defined as local functions, but are made available in the p</span> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a><span class="c1">-- table for testing purposes.</span> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">message</span><span class="p">(</span><span class="n">cfgKey</span><span class="p">,</span> <span class="n">valArray</span><span class="p">,</span> <span class="n">expectType</span><span class="p">)</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a> <span class="cm">--[[</span> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a><span class="cm"> -- Gets a message from the cfg table and formats it if appropriate.</span> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></span></a><span class="cm"> -- The function raises an error if the value from the cfg table is not</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a><span class="cm"> -- of the type expectType. The default type for expectType is &#39;string&#39;.</span> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a><span class="cm"> -- If the table valArray is present, strings such as $1, $2 etc. in the</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a><span class="cm"> -- message are substituted with values from the table keys [1], [2] etc.</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a><span class="cm"> -- For example, if the message &quot;foo-message&quot; had the value &#39;Foo $2 bar $1.&#39;,</span> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a><span class="cm"> -- message(&#39;foo-message&#39;, {&#39;baz&#39;, &#39;qux&#39;}) would return &quot;Foo qux bar baz.&quot;</span> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a><span class="cm"> --]]</span> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a> <span class="kd">local</span> <span class="n">msg</span> <span class="o">=</span> <span class="n">cfg</span><span class="p">[</span><span class="n">cfgKey</span><span class="p">]</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a> <span class="n">expectType</span> <span class="o">=</span> <span class="n">expectType</span> <span class="ow">or</span> <span class="s1">&#39;string&#39;</span> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> <span class="o">~=</span> <span class="n">expectType</span> <span class="kr">then</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s1">&#39;پیغام: ٹائپ ایرر در پیغام cfg.&#39;</span> <span class="o">..</span> <span class="n">cfgKey</span> <span class="o">..</span> <span class="s1">&#39; (&#39;</span> <span class="o">..</span> <span class="n">expectType</span> <span class="o">..</span> <span class="s1">&#39; انتظار جاری، &#39;</span> <span class="o">..</span> <span class="nb">type</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39; موصول ہو گیا)&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a> <span class="kr">end</span> </span><span id="L-37"><a href="#L-37"><span class="linenos" data-line="37"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">valArray</span> <span class="kr">then</span> </span><span id="L-38"><a href="#L-38"><span class="linenos" data-line="38"></span></a> <span class="kr">return</span> <span class="n">msg</span> </span><span id="L-39"><a href="#L-39"><span class="linenos" data-line="39"></span></a> <span class="kr">end</span> </span><span id="L-40"><a href="#L-40"><span class="linenos" data-line="40"></span></a> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">getMessageVal</span><span class="p">(</span><span class="n">match</span><span class="p">)</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a> <span class="n">match</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">match</span><span class="p">)</span> </span><span id="L-43"><a href="#L-43"><span class="linenos" data-line="43"></span></a> <span class="kr">return</span> <span class="n">valArray</span><span class="p">[</span><span class="n">match</span><span class="p">]</span> <span class="ow">or</span> <span class="nb">error</span><span class="p">(</span><span class="s1">&#39;پیغام: کوئی قدر برائے کلید $&#39;</span> <span class="o">..</span> <span class="n">match</span> <span class="o">..</span> <span class="s1">&#39; در متن cfg.&#39;</span> <span class="o">..</span> <span class="n">cfgKey</span> <span class="o">..</span> <span class="s1">&#39; نہیں ملی&#39;</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> <span class="kr">end</span> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">ugsub</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="s1">&#39;$([1-9][0-9]*)&#39;</span><span class="p">,</span> <span class="n">getMessageVal</span><span class="p">)</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a><span class="kr">end</span> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a> </span><span id="L-50"><a href="#L-50"><span class="linenos" data-line="50"></span></a><span class="n">p</span><span class="p">.</span><span class="n">message</span> <span class="o">=</span> <span class="n">message</span> </span><span id="L-51"><a href="#L-51"><span class="linenos" data-line="51"></span></a> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">makeWikilink</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">display</span><span class="p">)</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a> <span class="kr">if</span> <span class="n">display</span> <span class="kr">then</span> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;[[%s|%s]]&#39;</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">display</span><span class="p">)</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a> <span class="kr">else</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;[[%s]]&#39;</span><span class="p">,</span> <span class="n">page</span><span class="p">)</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a> <span class="kr">end</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a><span class="kr">end</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="n">p</span><span class="p">.</span><span class="n">makeWikilink</span> <span class="o">=</span> <span class="n">makeWikilink</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">makeCategoryLink</span><span class="p">(</span><span class="n">cat</span><span class="p">,</span> <span class="n">sort</span><span class="p">)</span> </span><span id="L-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> <span class="kd">local</span> <span class="n">catns</span> <span class="o">=</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">14</span><span class="p">].</span><span class="n">name</span> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a> <span class="kr">return</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">catns</span> <span class="o">..</span> <span class="s1">&#39;:&#39;</span> <span class="o">..</span> <span class="n">cat</span><span class="p">,</span> <span class="n">sort</span><span class="p">)</span> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a><span class="kr">end</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a><span class="n">p</span><span class="p">.</span><span class="n">makeCategoryLink</span> <span class="o">=</span> <span class="n">makeCategoryLink</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">makeUrlLink</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">display</span><span class="p">)</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;[%s %s]&#39;</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">display</span><span class="p">)</span> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a><span class="kr">end</span> </span><span id="L-72"><a href="#L-72"><span class="linenos" data-line="72"></span></a> </span><span id="L-73"><a href="#L-73"><span class="linenos" data-line="73"></span></a><span class="n">p</span><span class="p">.</span><span class="n">makeUrlLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span> </span><span id="L-74"><a href="#L-74"><span class="linenos" data-line="74"></span></a> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">makeToolbar</span><span class="p">(...)</span> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">{}</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">lim</span> <span class="o">=</span> <span class="nb">select</span><span class="p">(</span><span class="s1">&#39;#&#39;</span><span class="p">,</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">if</span> <span class="n">lim</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="kr">then</span> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a> <span class="kr">end</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> <span class="kr">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">lim</span> <span class="kr">do</span> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></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">select</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="p">...)</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a> <span class="kr">end</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a> <span class="kr">return</span> <span class="s1">&#39;&lt;small style=&quot;font-style: normal;&quot;&gt;(&#39;</span> <span class="o">..</span> <span class="nb">table.concat</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="s1">&#39; &amp;#124; &#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39;)&lt;/small&gt;&#39;</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a><span class="kr">end</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a><span class="n">p</span><span class="p">.</span><span class="n">makeToolbar</span> <span class="o">=</span> <span class="n">makeToolbar</span> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a><span class="c1">-- Argument processing</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a><span class="kd">local</span> <span class="kr">function</span> <span class="nf">makeInvokeFunc</span><span class="p">(</span><span class="n">funcName</span><span class="p">)</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> <span class="kr">return</span> <span class="kr">function</span> <span class="p">(</span><span class="n">frame</span><span class="p">)</span> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a> <span class="kd">local</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a> <span class="n">valueFunc</span> <span class="o">=</span> <span class="kr">function</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</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-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">value</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">-- Remove whitespace.</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a> <span class="kr">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s1">&#39;heading&#39;</span> <span class="ow">or</span> <span class="n">value</span> <span class="o">~=</span> <span class="s1">&#39;&#39;</span> <span class="kr">then</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a> <span class="kr">else</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="kr">end</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="kr">else</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a> <span class="kr">return</span> <span class="n">value</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a> <span class="kr">end</span> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a> <span class="kr">end</span> </span><span id="L-108"><a href="#L-108"><span class="linenos" data-line="108"></span></a> <span class="p">})</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">[</span><span class="n">funcName</span><span class="p">](</span><span class="n">args</span><span class="p">)</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> <span class="kr">end</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><span id="L-113"><a href="#L-113"><span class="linenos" data-line="113"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-114"><a href="#L-114"><span class="linenos" data-line="114"></span></a><span class="c1">-- Main function</span> </span><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a><span class="n">p</span><span class="p">.</span><span class="n">main</span> <span class="o">=</span> <span class="n">makeInvokeFunc</span><span class="p">(</span><span class="s1">&#39;_main&#39;</span><span class="p">)</span> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></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">args</span><span class="p">)</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a> <span class="cm">--[[</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a><span class="cm"> -- This function defines logic flow for the module.</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a><span class="cm"> -- @args - table of arguments passed by the user</span> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a><span class="cm"> -- </span> </span><span id="L-124"><a href="#L-124"><span class="linenos" data-line="124"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-125"><a href="#L-125"><span class="linenos" data-line="125"></span></a><span class="cm"> -- &#39;main-div-id&#39; --&gt; &#39;template-documentation&#39;</span> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a><span class="cm"> -- &#39;main-div-classes&#39; --&gt; &#39;template-documentation iezoomfix&#39;</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a><span class="cm"> --]]</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a> <span class="kd">local</span> <span class="n">env</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></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-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a> <span class="n">root</span> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">protectionTemplate</span><span class="p">(</span><span class="n">env</span><span class="p">))</span> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">sandboxNotice</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">))</span> </span><span id="L-133"><a href="#L-133"><span class="linenos" data-line="133"></span></a> <span class="c1">-- This div tag is from {{documentation/start box}}, but moving it here</span> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a> <span class="c1">-- so that we don&#39;t have to worry about unclosed tags.</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></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-136"><a href="#L-136"><span class="linenos" data-line="136"></span></a> <span class="p">:</span><span class="n">attr</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;main-div-id&#39;</span><span class="p">))</span> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a> <span class="p">:</span><span class="n">addClass</span><span class="p">(</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;main-div-classes&#39;</span><span class="p">))</span> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">_startBox</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">))</span> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">_content</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">))</span> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></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-142"><a href="#L-142"><span class="linenos" data-line="142"></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 class="c1">-- So right or left floating items don&#39;t stick out of the doc box.</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a> <span class="p">:</span><span class="n">newline</span><span class="p">()</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a> <span class="p">:</span><span class="n">done</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 class="n">done</span><span class="p">()</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">_endBox</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">))</span> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">addTrackingCategories</span><span class="p">(</span><span class="n">env</span><span class="p">))</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></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-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a><span class="kr">end</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-152"><a href="#L-152"><span class="linenos" data-line="152"></span></a><span class="c1">-- Environment settings</span> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a> <span class="cm">--[[</span> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a><span class="cm"> -- Returns a table with information about the environment, including title objects and other namespace- or</span> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a><span class="cm"> -- path-related data.</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a><span class="cm"> -- @args - table of arguments passed by the user</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a><span class="cm"> --</span> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a><span class="cm"> -- Title objects include:</span> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a><span class="cm"> -- env.title - the page we are making documentation for (usually the current title)</span> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a><span class="cm"> -- env.templateTitle - the template (or module, file, etc.)</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a><span class="cm"> -- env.docTitle - the /doc subpage.</span> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a><span class="cm"> -- env.sandboxTitle - the /sandbox subpage.</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a><span class="cm"> -- env.testcasesTitle - the /testcases subpage.</span> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a><span class="cm"> -- env.printTitle - the print version of the template, located at the /Print subpage.</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a><span class="cm"> --</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a><span class="cm"> -- Data includes:</span> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a><span class="cm"> -- env.protectionLevels - the protection levels table of the title object.</span> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a><span class="cm"> -- env.subjectSpace - the number of the title&#39;s subject namespace.</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a><span class="cm"> -- env.docSpace - the number of the namespace the title puts its documentation in.</span> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a><span class="cm"> -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.</span> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a><span class="cm"> -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a><span class="cm"> -- </span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a><span class="cm"> -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value</span> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a><span class="cm"> -- returned will be nil.</span> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a><span class="cm"> --]]</span> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a> <span class="kd">local</span> <span class="n">env</span><span class="p">,</span> <span class="n">envFuncs</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a> <span class="c1">-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a> <span class="c1">-- returned by that function is memoized in the env table so that we don&#39;t call any of the functions</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> <span class="c1">-- more than once. (Nils won&#39;t be memoized.)</span> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a> <span class="nb">setmetatable</span><span class="p">(</span><span class="n">env</span><span class="p">,</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">__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-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a> <span class="kd">local</span> <span class="n">envFunc</span> <span class="o">=</span> <span class="n">envFuncs</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> <span class="kr">if</span> <span class="n">envFunc</span> <span class="kr">then</span> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a> <span class="kd">local</span> <span class="n">success</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="nb">pcall</span><span class="p">(</span><span class="n">envFunc</span><span class="p">)</span> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> <span class="kr">if</span> <span class="n">success</span> <span class="kr">then</span> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a> <span class="n">env</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span> <span class="c1">-- Memoise the value.</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> <span class="kr">return</span> <span class="n">val</span> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a> <span class="kr">end</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a> <span class="kr">end</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a> <span class="kr">end</span> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a> <span class="p">})</span> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">title</span><span class="p">()</span> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a> <span class="c1">-- The title object for the current page, or a test page passed with args.page.</span> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a> <span class="kd">local</span> <span class="n">title</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a> <span class="kd">local</span> <span class="n">titleArg</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">page</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> <span class="kr">if</span> <span class="n">titleArg</span> <span class="kr">then</span> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a> <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">new</span><span class="p">(</span><span class="n">titleArg</span><span class="p">)</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a> <span class="kr">else</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a> <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><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">return</span> <span class="n">title</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a> <span class="kr">end</span> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">templateTitle</span><span class="p">()</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a> <span class="cm">--[[</span> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a><span class="cm"> -- The template (or module, etc.) title object.</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-215"><a href="#L-215"><span class="linenos" data-line="215"></span></a><span class="cm"> -- &#39;sandbox-subpage&#39; --&gt; &#39;sandbox&#39;</span> </span><span id="L-216"><a href="#L-216"><span class="linenos" data-line="216"></span></a><span class="cm"> -- &#39;testcases-subpage&#39; --&gt; &#39;testcases&#39;</span> </span><span id="L-217"><a href="#L-217"><span class="linenos" data-line="217"></span></a><span class="cm"> --]]</span> </span><span id="L-218"><a href="#L-218"><span class="linenos" data-line="218"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a> <span class="kd">local</span> <span class="n">subpage</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">subpageText</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">subpage</span> <span class="o">==</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-subpage&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">subpage</span> <span class="o">==</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-subpage&#39;</span><span class="p">)</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="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">makeTitle</span><span class="p">(</span><span class="n">subjectSpace</span><span class="p">,</span> <span class="n">title</span><span class="p">.</span><span class="n">baseText</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">else</span> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">makeTitle</span><span class="p">(</span><span class="n">subjectSpace</span><span class="p">,</span> <span class="n">title</span><span class="p">.</span><span class="n">text</span><span class="p">)</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a> <span class="kr">end</span> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a> <span class="kr">end</span> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">docTitle</span><span class="p">()</span> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a> <span class="cm">--[[</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a><span class="cm"> -- Title object of the /doc subpage.</span> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a><span class="cm"> -- &#39;doc-subpage&#39; --&gt; &#39;دستاویز&#39;</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a><span class="cm"> --]]</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a> <span class="kd">local</span> <span class="n">docname</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="c1">-- User-specified doc page.</span> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a> <span class="kd">local</span> <span class="n">docpage</span> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a> <span class="kr">if</span> <span class="n">docname</span> <span class="kr">then</span> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a> <span class="n">docpage</span> <span class="o">=</span> <span class="n">docname</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a> <span class="kr">else</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a> <span class="n">docpage</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docpageBase</span> <span class="o">..</span> <span class="s1">&#39;/&#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;doc-subpage&#39;</span><span class="p">)</span> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a> <span class="kr">end</span> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">docpage</span><span class="p">)</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a> <span class="kr">end</span> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">sandboxTitle</span><span class="p">()</span> </span><span id="L-246"><a href="#L-246"><span class="linenos" data-line="246"></span></a> <span class="cm">--[[</span> </span><span id="L-247"><a href="#L-247"><span class="linenos" data-line="247"></span></a><span class="cm"> -- Title object for the /sandbox subpage.</span> </span><span id="L-248"><a href="#L-248"><span class="linenos" data-line="248"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a><span class="cm"> -- &#39;sandbox-subpage&#39; --&gt; &#39;sandbox&#39;</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a><span class="cm"> --]]</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">env</span><span class="p">.</span><span class="n">docpageBase</span> <span class="o">..</span> <span class="s1">&#39;/&#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-subpage&#39;</span><span class="p">))</span> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a> <span class="kr">end</span> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">testcasesTitle</span><span class="p">()</span> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a> <span class="cm">--[[</span> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a><span class="cm"> -- Title object for the /testcases subpage.</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a><span class="cm"> -- &#39;testcases-subpage&#39; --&gt; &#39;ثابتات&#39;</span> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a><span class="cm"> --]]</span> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">env</span><span class="p">.</span><span class="n">docpageBase</span> <span class="o">..</span> <span class="s1">&#39;/&#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-subpage&#39;</span><span class="p">))</span> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a> <span class="kr">end</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">printTitle</span><span class="p">()</span> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a> <span class="cm">--[[</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a><span class="cm"> -- Title object for the /Print subpage.</span> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-267"><a href="#L-267"><span class="linenos" data-line="267"></span></a><span class="cm"> -- &#39;print-subpage&#39; --&gt; &#39;طبع&#39;</span> </span><span id="L-268"><a href="#L-268"><span class="linenos" data-line="268"></span></a><span class="cm"> --]]</span> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a> <span class="kr">return</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</span><span class="p">:</span><span class="n">subPageTitle</span><span class="p">(</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;print-subpage&#39;</span><span class="p">))</span> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a> <span class="kr">end</span> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">protectionLevels</span><span class="p">()</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> <span class="c1">-- The protection levels table of the title object.</span> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a> <span class="kr">return</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">protectionLevels</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><span id="L-277"><a href="#L-277"><span class="linenos" data-line="277"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">subjectSpace</span><span class="p">()</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> <span class="c1">-- The subject namespace number.</span> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></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="n">env</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">namespace</span><span class="p">].</span><span class="n">subject</span><span class="p">.</span><span class="n">id</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><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">docSpace</span><span class="p">()</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> <span class="c1">-- The documentation namespace number. For most namespaces this is the same as the</span> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="c1">-- subject namespace. However, pages in the Article, File, MediaWiki or Category</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a> <span class="c1">-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.</span> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">6</span> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">8</span> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">14</span> <span class="kr">then</span> </span><span id="L-288"><a href="#L-288"><span class="linenos" data-line="288"></span></a> <span class="kr">return</span> <span class="n">subjectSpace</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-289"><a href="#L-289"><span class="linenos" data-line="289"></span></a> <span class="kr">else</span> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="kr">return</span> <span class="n">subjectSpace</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a> <span class="kr">end</span> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> <span class="kr">end</span> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a> </span><span id="L-294"><a href="#L-294"><span class="linenos" data-line="294"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">docpageBase</span><span class="p">()</span> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a> <span class="c1">-- The base page of the /doc, /sandbox, and /testcases subpages.</span> </span><span id="L-296"><a href="#L-296"><span class="linenos" data-line="296"></span></a> <span class="c1">-- For some namespaces this is the talk page, rather than the template page.</span> </span><span id="L-297"><a href="#L-297"><span class="linenos" data-line="297"></span></a> <span class="kd">local</span> <span class="n">templateTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</span> </span><span id="L-298"><a href="#L-298"><span class="linenos" data-line="298"></span></a> <span class="kd">local</span> <span class="n">docSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docSpace</span> </span><span id="L-299"><a href="#L-299"><span class="linenos" data-line="299"></span></a> <span class="kd">local</span> <span class="n">docSpaceText</span> <span class="o">=</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">docSpace</span><span class="p">].</span><span class="n">name</span> </span><span id="L-300"><a href="#L-300"><span class="linenos" data-line="300"></span></a> <span class="c1">-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.</span> </span><span id="L-301"><a href="#L-301"><span class="linenos" data-line="301"></span></a> <span class="kr">return</span> <span class="n">docSpaceText</span> <span class="o">..</span> <span class="s1">&#39;:&#39;</span> <span class="o">..</span> <span class="n">templateTitle</span><span class="p">.</span><span class="n">text</span> </span><span id="L-302"><a href="#L-302"><span class="linenos" data-line="302"></span></a> <span class="kr">end</span> </span><span id="L-303"><a href="#L-303"><span class="linenos" data-line="303"></span></a> </span><span id="L-304"><a href="#L-304"><span class="linenos" data-line="304"></span></a> <span class="kr">function</span> <span class="nc">envFuncs</span><span class="p">.</span><span class="nf">compareUrl</span><span class="p">()</span> </span><span id="L-305"><a href="#L-305"><span class="linenos" data-line="305"></span></a> <span class="c1">-- Diff link between the sandbox and the main template using [[Special:ComparePages]].</span> </span><span id="L-306"><a href="#L-306"><span class="linenos" data-line="306"></span></a> <span class="kd">local</span> <span class="n">templateTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</span> </span><span id="L-307"><a href="#L-307"><span class="linenos" data-line="307"></span></a> <span class="kd">local</span> <span class="n">sandboxTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">sandboxTitle</span> </span><span id="L-308"><a href="#L-308"><span class="linenos" data-line="308"></span></a> <span class="kr">if</span> <span class="n">templateTitle</span><span class="p">.</span><span class="n">exists</span> <span class="ow">and</span> <span class="n">sandboxTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-309"><a href="#L-309"><span class="linenos" data-line="309"></span></a> <span class="kd">local</span> <span class="n">compareUrl</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">uri</span><span class="p">.</span><span class="n">fullUrl</span><span class="p">(</span> </span><span id="L-310"><a href="#L-310"><span class="linenos" data-line="310"></span></a> <span class="s1">&#39;خاص:موازنہ_صفحات&#39;</span><span class="p">,</span> </span><span id="L-311"><a href="#L-311"><span class="linenos" data-line="311"></span></a> <span class="p">{</span><span class="n">page1</span> <span class="o">=</span> <span class="n">templateTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">page2</span> <span class="o">=</span> <span class="n">sandboxTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">}</span> </span><span id="L-312"><a href="#L-312"><span class="linenos" data-line="312"></span></a> <span class="p">)</span> </span><span id="L-313"><a href="#L-313"><span class="linenos" data-line="313"></span></a> <span class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">compareUrl</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">else</span> </span><span id="L-315"><a href="#L-315"><span class="linenos" data-line="315"></span></a> <span class="kr">return</span> <span class="kc">nil</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">end</span> </span><span id="L-318"><a href="#L-318"><span class="linenos" data-line="318"></span></a> </span><span id="L-319"><a href="#L-319"><span class="linenos" data-line="319"></span></a> <span class="kr">return</span> <span class="n">env</span> </span><span id="L-320"><a href="#L-320"><span class="linenos" data-line="320"></span></a><span class="kr">end</span> </span><span id="L-321"><a href="#L-321"><span class="linenos" data-line="321"></span></a> </span><span id="L-322"><a href="#L-322"><span class="linenos" data-line="322"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-323"><a href="#L-323"><span class="linenos" data-line="323"></span></a><span class="c1">-- Auxiliary templates</span> </span><span id="L-324"><a href="#L-324"><span class="linenos" data-line="324"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-325"><a href="#L-325"><span class="linenos" data-line="325"></span></a> </span><span id="L-326"><a href="#L-326"><span class="linenos" data-line="326"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">sandboxNotice</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-327"><a href="#L-327"><span class="linenos" data-line="327"></span></a> <span class="cm">--[=[</span> </span><span id="L-328"><a href="#L-328"><span class="linenos" data-line="328"></span></a><span class="cm"> -- Generates a sandbox notice for display above sandbox pages.</span> </span><span id="L-329"><a href="#L-329"><span class="linenos" data-line="329"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-330"><a href="#L-330"><span class="linenos" data-line="330"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-331"><a href="#L-331"><span class="linenos" data-line="331"></span></a><span class="cm"> -- </span> </span><span id="L-332"><a href="#L-332"><span class="linenos" data-line="332"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-333"><a href="#L-333"><span class="linenos" data-line="333"></span></a><span class="cm"> -- &#39;sandbox-notice-image&#39; --&gt; &#39;[[Image:Sandbox.svg|50px|alt=|link=]]&#39;</span> </span><span id="L-334"><a href="#L-334"><span class="linenos" data-line="334"></span></a><span class="cm"> -- &#39;sandbox-notice-blurb&#39; --&gt; &#39;This is the $1 for $2.&#39;</span> </span><span id="L-335"><a href="#L-335"><span class="linenos" data-line="335"></span></a><span class="cm"> -- &#39;sandbox-notice-diff-blurb&#39; --&gt; &#39;This is the $1 for $2 ($3).&#39;</span> </span><span id="L-336"><a href="#L-336"><span class="linenos" data-line="336"></span></a><span class="cm"> -- &#39;sandbox-notice-pagetype-template&#39; --&gt; &#39;[[Wikipedia:Template test cases|template sandbox]] page&#39;</span> </span><span id="L-337"><a href="#L-337"><span class="linenos" data-line="337"></span></a><span class="cm"> -- &#39;sandbox-notice-pagetype-module&#39; --&gt; &#39;[[Wikipedia:Template test cases|module sandbox]] page&#39;</span> </span><span id="L-338"><a href="#L-338"><span class="linenos" data-line="338"></span></a><span class="cm"> -- &#39;sandbox-notice-pagetype-other&#39; --&gt; &#39;sandbox page&#39;</span> </span><span id="L-339"><a href="#L-339"><span class="linenos" data-line="339"></span></a><span class="cm"> -- &#39;sandbox-notice-compare-link-display&#39; --&gt; &#39;diff&#39;</span> </span><span id="L-340"><a href="#L-340"><span class="linenos" data-line="340"></span></a><span class="cm"> -- &#39;sandbox-notice-testcases-blurb&#39; --&gt; &#39;See also the companion subpage for $1.&#39;</span> </span><span id="L-341"><a href="#L-341"><span class="linenos" data-line="341"></span></a><span class="cm"> -- &#39;sandbox-notice-testcases-link-display&#39; --&gt; &#39;test cases&#39;</span> </span><span id="L-342"><a href="#L-342"><span class="linenos" data-line="342"></span></a><span class="cm"> -- &#39;sandbox-category&#39; --&gt; &#39;Template sandboxes&#39;</span> </span><span id="L-343"><a href="#L-343"><span class="linenos" data-line="343"></span></a><span class="cm"> --]=]</span> </span><span id="L-344"><a href="#L-344"><span class="linenos" data-line="344"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span> </span><span id="L-345"><a href="#L-345"><span class="linenos" data-line="345"></span></a> <span class="kd">local</span> <span class="n">sandboxTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">sandboxTitle</span> </span><span id="L-346"><a href="#L-346"><span class="linenos" data-line="346"></span></a> <span class="kd">local</span> <span class="n">templateTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</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">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-348"><a href="#L-348"><span class="linenos" data-line="348"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">subjectSpace</span> <span class="ow">and</span> <span class="n">title</span> <span class="ow">and</span> <span class="n">sandboxTitle</span> <span class="ow">and</span> <span class="n">templateTitle</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">sandboxTitle</span><span class="p">))</span> <span class="kr">then</span> </span><span id="L-349"><a href="#L-349"><span class="linenos" data-line="349"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-350"><a href="#L-350"><span class="linenos" data-line="350"></span></a> <span class="kr">end</span> </span><span id="L-351"><a href="#L-351"><span class="linenos" data-line="351"></span></a> <span class="c1">-- Build the table of arguments to pass to {{ombox}}. We need just two fields, &quot;image&quot; and &quot;text&quot;.</span> </span><span id="L-352"><a href="#L-352"><span class="linenos" data-line="352"></span></a> <span class="kd">local</span> <span class="n">omargs</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-353"><a href="#L-353"><span class="linenos" data-line="353"></span></a> <span class="n">omargs</span><span class="p">.</span><span class="n">image</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-image&#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="c1">-- Get the text. We start with the opening blurb, which is something like</span> </span><span id="L-355"><a href="#L-355"><span class="linenos" data-line="355"></span></a> <span class="c1">-- &quot;This is the template sandbox for [[Template:Foo]] (diff).&quot;</span> </span><span id="L-356"><a href="#L-356"><span class="linenos" data-line="356"></span></a> <span class="kd">local</span> <span class="n">text</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span> </span><span id="L-357"><a href="#L-357"><span class="linenos" data-line="357"></span></a> <span class="kd">local</span> <span class="n">frame</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">()</span> </span><span id="L-358"><a href="#L-358"><span class="linenos" data-line="358"></span></a> <span class="kd">local</span> <span class="n">isPreviewing</span> <span class="o">=</span> <span class="n">frame</span><span class="p">:</span><span class="n">preprocess</span><span class="p">(</span><span class="s1">&#39;{{REVISIONID}}&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;&#39;</span> <span class="c1">-- True if the page is being previewed.</span> </span><span id="L-359"><a href="#L-359"><span class="linenos" data-line="359"></span></a> <span class="kd">local</span> <span class="n">pagetype</span> </span><span id="L-360"><a href="#L-360"><span class="linenos" data-line="360"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> </span><span id="L-361"><a href="#L-361"><span class="linenos" data-line="361"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-pagetype-template&#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="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-363"><a href="#L-363"><span class="linenos" data-line="363"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-pagetype-module&#39;</span><span class="p">)</span> </span><span id="L-364"><a href="#L-364"><span class="linenos" data-line="364"></span></a> <span class="kr">else</span> </span><span id="L-365"><a href="#L-365"><span class="linenos" data-line="365"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-pagetype-other&#39;</span><span class="p">)</span> </span><span id="L-366"><a href="#L-366"><span class="linenos" data-line="366"></span></a> <span class="kr">end</span> </span><span id="L-367"><a href="#L-367"><span class="linenos" data-line="367"></span></a> <span class="kd">local</span> <span class="n">templateLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">templateTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">)</span> </span><span id="L-368"><a href="#L-368"><span class="linenos" data-line="368"></span></a> <span class="kd">local</span> <span class="n">compareUrl</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">compareUrl</span> </span><span id="L-369"><a href="#L-369"><span class="linenos" data-line="369"></span></a> <span class="kr">if</span> <span class="n">isPreviewing</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">compareUrl</span> <span class="kr">then</span> </span><span id="L-370"><a href="#L-370"><span class="linenos" data-line="370"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">pagetype</span><span class="p">,</span> <span class="n">templateLink</span><span class="p">})</span> </span><span id="L-371"><a href="#L-371"><span class="linenos" data-line="371"></span></a> <span class="kr">else</span> </span><span id="L-372"><a href="#L-372"><span class="linenos" data-line="372"></span></a> <span class="kd">local</span> <span class="n">compareDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-compare-link-display&#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="kd">local</span> <span class="n">compareLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">compareUrl</span><span class="p">,</span> <span class="n">compareDisplay</span><span class="p">)</span> </span><span id="L-374"><a href="#L-374"><span class="linenos" data-line="374"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-diff-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">pagetype</span><span class="p">,</span> <span class="n">templateLink</span><span class="p">,</span> <span class="n">compareLink</span><span class="p">})</span> </span><span id="L-375"><a href="#L-375"><span class="linenos" data-line="375"></span></a> <span class="kr">end</span> </span><span id="L-376"><a href="#L-376"><span class="linenos" data-line="376"></span></a> <span class="c1">-- Get the test cases page blurb if the page exists. This is something like</span> </span><span id="L-377"><a href="#L-377"><span class="linenos" data-line="377"></span></a> <span class="c1">-- &quot;See also the companion subpage for [[Template:Foo/testcases|test cases]].&quot;</span> </span><span id="L-378"><a href="#L-378"><span class="linenos" data-line="378"></span></a> <span class="kd">local</span> <span class="n">testcasesTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">testcasesTitle</span> </span><span id="L-379"><a href="#L-379"><span class="linenos" data-line="379"></span></a> <span class="kr">if</span> <span class="n">testcasesTitle</span> <span class="ow">and</span> <span class="n">testcasesTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-380"><a href="#L-380"><span class="linenos" data-line="380"></span></a> <span class="kr">if</span> <span class="n">testcasesTitle</span><span class="p">.</span><span class="n">contentModel</span> <span class="o">==</span> <span class="s2">&quot;Scribunto&quot;</span> <span class="kr">then</span> </span><span id="L-381"><a href="#L-381"><span class="linenos" data-line="381"></span></a> <span class="kd">local</span> <span class="n">testcasesLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-testcases-link-display&#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="kd">local</span> <span class="n">testcasesRunLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-testcases-run-link-display&#39;</span><span class="p">)</span> </span><span id="L-383"><a href="#L-383"><span class="linenos" data-line="383"></span></a> <span class="kd">local</span> <span class="n">testcasesLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">testcasesTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">testcasesLinkDisplay</span><span class="p">)</span> </span><span id="L-384"><a href="#L-384"><span class="linenos" data-line="384"></span></a> <span class="kd">local</span> <span class="n">testcasesRunLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">testcasesTitle</span><span class="p">.</span><span class="n">talkPageTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">testcasesRunLinkDisplay</span><span class="p">)</span> </span><span id="L-385"><a href="#L-385"><span class="linenos" data-line="385"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-testcases-run-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">testcasesLink</span><span class="p">,</span> <span class="n">testcasesRunLink</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">else</span> </span><span id="L-387"><a href="#L-387"><span class="linenos" data-line="387"></span></a> <span class="kd">local</span> <span class="n">testcasesLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-testcases-link-display&#39;</span><span class="p">)</span> </span><span id="L-388"><a href="#L-388"><span class="linenos" data-line="388"></span></a> <span class="kd">local</span> <span class="n">testcasesLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">testcasesTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">testcasesLinkDisplay</span><span class="p">)</span> </span><span id="L-389"><a href="#L-389"><span class="linenos" data-line="389"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-notice-testcases-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">testcasesLink</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">end</span> </span><span id="L-391"><a href="#L-391"><span class="linenos" data-line="391"></span></a> <span class="kr">end</span> </span><span id="L-392"><a href="#L-392"><span class="linenos" data-line="392"></span></a> <span class="c1">-- Add the sandbox to the sandbox category.</span> </span><span id="L-393"><a href="#L-393"><span class="linenos" data-line="393"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="n">makeCategoryLink</span><span class="p">(</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-category&#39;</span><span class="p">))</span> </span><span id="L-394"><a href="#L-394"><span class="linenos" data-line="394"></span></a> <span class="n">omargs</span><span class="p">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span> </span><span id="L-395"><a href="#L-395"><span class="linenos" data-line="395"></span></a> <span class="kd">local</span> <span class="n">ret</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-396"><a href="#L-396"><span class="linenos" data-line="396"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="n">messageBox</span><span class="p">.</span><span class="n">main</span><span class="p">(</span><span class="s1">&#39;ombox&#39;</span><span class="p">,</span> <span class="n">omargs</span><span class="p">)</span> </span><span id="L-397"><a href="#L-397"><span class="linenos" data-line="397"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-398"><a href="#L-398"><span class="linenos" data-line="398"></span></a><span class="kr">end</span> </span><span id="L-399"><a href="#L-399"><span class="linenos" data-line="399"></span></a> </span><span id="L-400"><a href="#L-400"><span class="linenos" data-line="400"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">protectionTemplate</span><span class="p">(</span><span class="n">env</span><span class="p">)</span> </span><span id="L-401"><a href="#L-401"><span class="linenos" data-line="401"></span></a> <span class="c1">-- Generates the padlock icon in the top right.</span> </span><span id="L-402"><a href="#L-402"><span class="linenos" data-line="402"></span></a> <span class="c1">-- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-403"><a href="#L-403"><span class="linenos" data-line="403"></span></a> <span class="c1">-- Messages:</span> </span><span id="L-404"><a href="#L-404"><span class="linenos" data-line="404"></span></a> <span class="c1">-- &#39;protection-template&#39; --&gt; &#39;pp-template&#39;</span> </span><span id="L-405"><a href="#L-405"><span class="linenos" data-line="405"></span></a> <span class="c1">-- &#39;protection-template-args&#39; --&gt; {docusage = &#39;yes&#39;}</span> </span><span id="L-406"><a href="#L-406"><span class="linenos" data-line="406"></span></a> <span class="kd">local</span> <span class="n">protectionLevels</span><span class="p">,</span> <span class="n">mProtectionBanner</span> </span><span id="L-407"><a href="#L-407"><span class="linenos" data-line="407"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span> </span><span id="L-408"><a href="#L-408"><span class="linenos" data-line="408"></span></a> <span class="kr">if</span> <span class="n">title</span><span class="p">.</span><span class="n">namespace</span> <span class="o">~=</span> <span class="mi">10</span> <span class="ow">and</span> <span class="n">title</span><span class="p">.</span><span class="n">namespace</span> <span class="o">~=</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-409"><a href="#L-409"><span class="linenos" data-line="409"></span></a> <span class="c1">-- Don&#39;t display the protection template if we are not in the template or module namespaces.</span> </span><span id="L-410"><a href="#L-410"><span class="linenos" data-line="410"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-411"><a href="#L-411"><span class="linenos" data-line="411"></span></a> <span class="kr">end</span> </span><span id="L-412"><a href="#L-412"><span class="linenos" data-line="412"></span></a> <span class="n">protectionLevels</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">protectionLevels</span> </span><span id="L-413"><a href="#L-413"><span class="linenos" data-line="413"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">protectionLevels</span> <span class="kr">then</span> </span><span id="L-414"><a href="#L-414"><span class="linenos" data-line="414"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-415"><a href="#L-415"><span class="linenos" data-line="415"></span></a> <span class="kr">end</span> </span><span id="L-416"><a href="#L-416"><span class="linenos" data-line="416"></span></a> <span class="kd">local</span> <span class="n">editProt</span> <span class="o">=</span> <span class="n">protectionLevels</span><span class="p">.</span><span class="n">edit</span> <span class="ow">and</span> <span class="n">protectionLevels</span><span class="p">.</span><span class="n">edit</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-417"><a href="#L-417"><span class="linenos" data-line="417"></span></a> <span class="kd">local</span> <span class="n">moveProt</span> <span class="o">=</span> <span class="n">protectionLevels</span><span class="p">.</span><span class="n">move</span> <span class="ow">and</span> <span class="n">protectionLevels</span><span class="p">.</span><span class="n">move</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> </span><span id="L-418"><a href="#L-418"><span class="linenos" data-line="418"></span></a> <span class="kr">if</span> <span class="n">editProt</span> <span class="kr">then</span> </span><span id="L-419"><a href="#L-419"><span class="linenos" data-line="419"></span></a> <span class="c1">-- The page is edit-protected.</span> </span><span id="L-420"><a href="#L-420"><span class="linenos" data-line="420"></span></a> <span class="n">mProtectionBanner</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Module:Protection banner&#39;</span><span class="p">)</span> </span><span id="L-421"><a href="#L-421"><span class="linenos" data-line="421"></span></a> <span class="kd">local</span> <span class="n">reason</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;protection-reason-edit&#39;</span><span class="p">)</span> </span><span id="L-422"><a href="#L-422"><span class="linenos" data-line="422"></span></a> <span class="kr">return</span> <span class="n">mProtectionBanner</span><span class="p">.</span><span class="n">_main</span><span class="p">{</span><span class="n">reason</span><span class="p">,</span> <span class="n">small</span> <span class="o">=</span> <span class="kc">true</span><span class="p">}</span> </span><span id="L-423"><a href="#L-423"><span class="linenos" data-line="423"></span></a> <span class="kr">elseif</span> <span class="n">moveProt</span> <span class="ow">and</span> <span class="n">moveProt</span> <span class="o">~=</span> <span class="s1">&#39;autoconfirmed&#39;</span> <span class="kr">then</span> </span><span id="L-424"><a href="#L-424"><span class="linenos" data-line="424"></span></a> <span class="c1">-- The page is move-protected but not edit-protected. Exclude move</span> </span><span id="L-425"><a href="#L-425"><span class="linenos" data-line="425"></span></a> <span class="c1">-- protection with the level &quot;autoconfirmed&quot;, as this is equivalent to</span> </span><span id="L-426"><a href="#L-426"><span class="linenos" data-line="426"></span></a> <span class="c1">-- no move protection at all.</span> </span><span id="L-427"><a href="#L-427"><span class="linenos" data-line="427"></span></a> <span class="n">mProtectionBanner</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">&#39;Module:Protection banner&#39;</span><span class="p">)</span> </span><span id="L-428"><a href="#L-428"><span class="linenos" data-line="428"></span></a> <span class="kr">return</span> <span class="n">mProtectionBanner</span><span class="p">.</span><span class="n">_main</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;move&#39;</span><span class="p">,</span> <span class="n">small</span> <span class="o">=</span> <span class="kc">true</span><span class="p">}</span> </span><span id="L-429"><a href="#L-429"><span class="linenos" data-line="429"></span></a> <span class="kr">else</span> </span><span id="L-430"><a href="#L-430"><span class="linenos" data-line="430"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-431"><a href="#L-431"><span class="linenos" data-line="431"></span></a> <span class="kr">end</span> </span><span id="L-432"><a href="#L-432"><span class="linenos" data-line="432"></span></a><span class="kr">end</span> </span><span id="L-433"><a href="#L-433"><span class="linenos" data-line="433"></span></a> </span><span id="L-434"><a href="#L-434"><span class="linenos" data-line="434"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-435"><a href="#L-435"><span class="linenos" data-line="435"></span></a><span class="c1">-- Start box</span> </span><span id="L-436"><a href="#L-436"><span class="linenos" data-line="436"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-437"><a href="#L-437"><span class="linenos" data-line="437"></span></a> </span><span id="L-438"><a href="#L-438"><span class="linenos" data-line="438"></span></a><span class="n">p</span><span class="p">.</span><span class="n">startBox</span> <span class="o">=</span> <span class="n">makeInvokeFunc</span><span class="p">(</span><span class="s1">&#39;_startBox&#39;</span><span class="p">)</span> </span><span id="L-439"><a href="#L-439"><span class="linenos" data-line="439"></span></a> </span><span id="L-440"><a href="#L-440"><span class="linenos" data-line="440"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_startBox</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-441"><a href="#L-441"><span class="linenos" data-line="441"></span></a> <span class="cm">--[[</span> </span><span id="L-442"><a href="#L-442"><span class="linenos" data-line="442"></span></a><span class="cm"> -- This function generates the start box.</span> </span><span id="L-443"><a href="#L-443"><span class="linenos" data-line="443"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-444"><a href="#L-444"><span class="linenos" data-line="444"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-445"><a href="#L-445"><span class="linenos" data-line="445"></span></a><span class="cm"> -- </span> </span><span id="L-446"><a href="#L-446"><span class="linenos" data-line="446"></span></a><span class="cm"> -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make</span> </span><span id="L-447"><a href="#L-447"><span class="linenos" data-line="447"></span></a><span class="cm"> -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox</span> </span><span id="L-448"><a href="#L-448"><span class="linenos" data-line="448"></span></a><span class="cm"> -- which generate the box HTML.</span> </span><span id="L-449"><a href="#L-449"><span class="linenos" data-line="449"></span></a><span class="cm"> --]]</span> </span><span id="L-450"><a href="#L-450"><span class="linenos" data-line="450"></span></a> <span class="n">env</span> <span class="o">=</span> <span class="n">env</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-451"><a href="#L-451"><span class="linenos" data-line="451"></span></a> <span class="kd">local</span> <span class="n">links</span> </span><span id="L-452"><a href="#L-452"><span class="linenos" data-line="452"></span></a> <span class="kd">local</span> <span class="n">content</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">content</span> </span><span id="L-453"><a href="#L-453"><span class="linenos" data-line="453"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">content</span> <span class="ow">or</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-454"><a href="#L-454"><span class="linenos" data-line="454"></span></a> <span class="c1">-- No need to include the links if the documentation is on the template page itself.</span> </span><span id="L-455"><a href="#L-455"><span class="linenos" data-line="455"></span></a> <span class="kd">local</span> <span class="n">linksData</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">makeStartBoxLinksData</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</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">if</span> <span class="n">linksData</span> <span class="kr">then</span> </span><span id="L-457"><a href="#L-457"><span class="linenos" data-line="457"></span></a> <span class="n">links</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">renderStartBoxLinks</span><span class="p">(</span><span class="n">linksData</span><span class="p">)</span> </span><span id="L-458"><a href="#L-458"><span class="linenos" data-line="458"></span></a> <span class="kr">end</span> </span><span id="L-459"><a href="#L-459"><span class="linenos" data-line="459"></span></a> <span class="kr">end</span> </span><span id="L-460"><a href="#L-460"><span class="linenos" data-line="460"></span></a> <span class="c1">-- Generate the start box html.</span> </span><span id="L-461"><a href="#L-461"><span class="linenos" data-line="461"></span></a> <span class="kd">local</span> <span class="n">data</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">makeStartBoxData</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">,</span> <span class="n">links</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">if</span> <span class="n">data</span> <span class="kr">then</span> </span><span id="L-463"><a href="#L-463"><span class="linenos" data-line="463"></span></a> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">renderStartBox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> </span><span id="L-464"><a href="#L-464"><span class="linenos" data-line="464"></span></a> <span class="kr">else</span> </span><span id="L-465"><a href="#L-465"><span class="linenos" data-line="465"></span></a> <span class="c1">-- User specified no heading.</span> </span><span id="L-466"><a href="#L-466"><span class="linenos" data-line="466"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-467"><a href="#L-467"><span class="linenos" data-line="467"></span></a> <span class="kr">end</span> </span><span id="L-468"><a href="#L-468"><span class="linenos" data-line="468"></span></a><span class="kr">end</span> </span><span id="L-469"><a href="#L-469"><span class="linenos" data-line="469"></span></a> </span><span id="L-470"><a href="#L-470"><span class="linenos" data-line="470"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeStartBoxLinksData</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-471"><a href="#L-471"><span class="linenos" data-line="471"></span></a> <span class="cm">--[[</span> </span><span id="L-472"><a href="#L-472"><span class="linenos" data-line="472"></span></a><span class="cm"> -- Does initial processing of data to make the [view] [edit] [history] [purge] links.</span> </span><span id="L-473"><a href="#L-473"><span class="linenos" data-line="473"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-474"><a href="#L-474"><span class="linenos" data-line="474"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-475"><a href="#L-475"><span class="linenos" data-line="475"></span></a><span class="cm"> -- </span> </span><span id="L-476"><a href="#L-476"><span class="linenos" data-line="476"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-477"><a href="#L-477"><span class="linenos" data-line="477"></span></a><span class="cm"> -- &#39;view-link-display&#39; --&gt; &#39;view&#39;</span> </span><span id="L-478"><a href="#L-478"><span class="linenos" data-line="478"></span></a><span class="cm"> -- &#39;edit-link-display&#39; --&gt; &#39;edit&#39;</span> </span><span id="L-479"><a href="#L-479"><span class="linenos" data-line="479"></span></a><span class="cm"> -- &#39;history-link-display&#39; --&gt; &#39;history&#39;</span> </span><span id="L-480"><a href="#L-480"><span class="linenos" data-line="480"></span></a><span class="cm"> -- &#39;purge-link-display&#39; --&gt; &#39;purge&#39;</span> </span><span id="L-481"><a href="#L-481"><span class="linenos" data-line="481"></span></a><span class="cm"> -- &#39;file-docpage-preload&#39; --&gt; &#39;Template:Documentation/preload-filespace&#39;</span> </span><span id="L-482"><a href="#L-482"><span class="linenos" data-line="482"></span></a><span class="cm"> -- &#39;module-preload&#39; --&gt; &#39;Template:Documentation/preload-module-doc&#39;</span> </span><span id="L-483"><a href="#L-483"><span class="linenos" data-line="483"></span></a><span class="cm"> -- &#39;docpage-preload&#39; --&gt; &#39;Template:Documentation/preload&#39;</span> </span><span id="L-484"><a href="#L-484"><span class="linenos" data-line="484"></span></a><span class="cm"> -- &#39;create-link-display&#39; --&gt; &#39;create&#39;</span> </span><span id="L-485"><a href="#L-485"><span class="linenos" data-line="485"></span></a><span class="cm"> --]]</span> </span><span id="L-486"><a href="#L-486"><span class="linenos" data-line="486"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-487"><a href="#L-487"><span class="linenos" data-line="487"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</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">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-489"><a href="#L-489"><span class="linenos" data-line="489"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">title</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">docTitle</span> <span class="kr">then</span> </span><span id="L-490"><a href="#L-490"><span class="linenos" data-line="490"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-491"><a href="#L-491"><span class="linenos" data-line="491"></span></a> <span class="kr">end</span> </span><span id="L-492"><a href="#L-492"><span class="linenos" data-line="492"></span></a> <span class="kr">if</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">isRedirect</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">docTitle</span> <span class="o">=</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">redirectTarget</span> </span><span id="L-494"><a href="#L-494"><span class="linenos" data-line="494"></span></a> <span class="kr">end</span> </span><span id="L-495"><a href="#L-495"><span class="linenos" data-line="495"></span></a> </span><span id="L-496"><a href="#L-496"><span class="linenos" data-line="496"></span></a> <span class="kd">local</span> <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-497"><a href="#L-497"><span class="linenos" data-line="497"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span> </span><span id="L-498"><a href="#L-498"><span class="linenos" data-line="498"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">docTitle</span> <span class="o">=</span> <span class="n">docTitle</span> </span><span id="L-499"><a href="#L-499"><span class="linenos" data-line="499"></span></a> <span class="c1">-- View, display, edit, and purge links if /doc exists.</span> </span><span id="L-500"><a href="#L-500"><span class="linenos" data-line="500"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">viewLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;view-link-display&#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="n">data</span><span class="p">.</span><span class="n">editLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;edit-link-display&#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="n">data</span><span class="p">.</span><span class="n">historyLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;history-link-display&#39;</span><span class="p">)</span> </span><span id="L-503"><a href="#L-503"><span class="linenos" data-line="503"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">purgeLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;purge-link-display&#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="c1">-- Create link if /doc doesn&#39;t exist.</span> </span><span id="L-505"><a href="#L-505"><span class="linenos" data-line="505"></span></a> <span class="kd">local</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">preload</span> </span><span id="L-506"><a href="#L-506"><span class="linenos" data-line="506"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">preload</span> <span class="kr">then</span> </span><span id="L-507"><a href="#L-507"><span class="linenos" data-line="507"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">6</span> <span class="kr">then</span> <span class="c1">-- File namespace</span> </span><span id="L-508"><a href="#L-508"><span class="linenos" data-line="508"></span></a> <span class="n">preload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;file-docpage-preload&#39;</span><span class="p">)</span> </span><span id="L-509"><a href="#L-509"><span class="linenos" data-line="509"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> <span class="c1">-- Module namespace</span> </span><span id="L-510"><a href="#L-510"><span class="linenos" data-line="510"></span></a> <span class="n">preload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-preload&#39;</span><span class="p">)</span> </span><span id="L-511"><a href="#L-511"><span class="linenos" data-line="511"></span></a> <span class="kr">else</span> </span><span id="L-512"><a href="#L-512"><span class="linenos" data-line="512"></span></a> <span class="n">preload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;docpage-preload&#39;</span><span class="p">)</span> </span><span id="L-513"><a href="#L-513"><span class="linenos" data-line="513"></span></a> <span class="kr">end</span> </span><span id="L-514"><a href="#L-514"><span class="linenos" data-line="514"></span></a> <span class="kr">end</span> </span><span id="L-515"><a href="#L-515"><span class="linenos" data-line="515"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">preload</span> <span class="o">=</span> <span class="n">preload</span> </span><span id="L-516"><a href="#L-516"><span class="linenos" data-line="516"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">createLinkDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;create-link-display&#39;</span><span class="p">)</span> </span><span id="L-517"><a href="#L-517"><span class="linenos" data-line="517"></span></a> <span class="kr">return</span> <span class="n">data</span> </span><span id="L-518"><a href="#L-518"><span class="linenos" data-line="518"></span></a><span class="kr">end</span> </span><span id="L-519"><a href="#L-519"><span class="linenos" data-line="519"></span></a> </span><span id="L-520"><a href="#L-520"><span class="linenos" data-line="520"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">renderStartBoxLinks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> </span><span id="L-521"><a href="#L-521"><span class="linenos" data-line="521"></span></a> <span class="cm">--[[</span> </span><span id="L-522"><a href="#L-522"><span class="linenos" data-line="522"></span></a><span class="cm"> -- Generates the [view][edit][history][purge] or [create] links from the data table.</span> </span><span id="L-523"><a href="#L-523"><span class="linenos" data-line="523"></span></a><span class="cm"> -- @data - a table of data generated by p.makeStartBoxLinksData</span> </span><span id="L-524"><a href="#L-524"><span class="linenos" data-line="524"></span></a><span class="cm"> --]]</span> </span><span id="L-525"><a href="#L-525"><span class="linenos" data-line="525"></span></a> </span><span id="L-526"><a href="#L-526"><span class="linenos" data-line="526"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">escapeBrackets</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> </span><span id="L-527"><a href="#L-527"><span class="linenos" data-line="527"></span></a> <span class="c1">-- Escapes square brackets with HTML entities.</span> </span><span id="L-528"><a href="#L-528"><span class="linenos" data-line="528"></span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">s</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;&amp;#91;&#39;</span><span class="p">)</span> <span class="c1">-- Replace square brackets with HTML entities.</span> </span><span id="L-529"><a href="#L-529"><span class="linenos" data-line="529"></span></a> <span class="n">s</span> <span class="o">=</span> <span class="n">s</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;&amp;#93;&#39;</span><span class="p">)</span> </span><span id="L-530"><a href="#L-530"><span class="linenos" data-line="530"></span></a> <span class="kr">return</span> <span class="n">s</span> </span><span id="L-531"><a href="#L-531"><span class="linenos" data-line="531"></span></a> <span class="kr">end</span> </span><span id="L-532"><a href="#L-532"><span class="linenos" data-line="532"></span></a> </span><span id="L-533"><a href="#L-533"><span class="linenos" data-line="533"></span></a> <span class="kd">local</span> <span class="n">ret</span> </span><span id="L-534"><a href="#L-534"><span class="linenos" data-line="534"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-535"><a href="#L-535"><span class="linenos" data-line="535"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">title</span> </span><span id="L-536"><a href="#L-536"><span class="linenos" data-line="536"></span></a> <span class="kr">if</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-537"><a href="#L-537"><span class="linenos" data-line="537"></span></a> <span class="kd">local</span> <span class="n">viewLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">viewLinkDisplay</span><span class="p">)</span> </span><span id="L-538"><a href="#L-538"><span class="linenos" data-line="538"></span></a> <span class="kd">local</span> <span class="n">editLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">},</span> <span class="n">data</span><span class="p">.</span><span class="n">editLinkDisplay</span><span class="p">)</span> </span><span id="L-539"><a href="#L-539"><span class="linenos" data-line="539"></span></a> <span class="kd">local</span> <span class="n">historyLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;history&#39;</span><span class="p">},</span> <span class="n">data</span><span class="p">.</span><span class="n">historyLinkDisplay</span><span class="p">)</span> </span><span id="L-540"><a href="#L-540"><span class="linenos" data-line="540"></span></a> <span class="kd">local</span> <span class="n">purgeLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">title</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;purge&#39;</span><span class="p">},</span> <span class="n">data</span><span class="p">.</span><span class="n">purgeLinkDisplay</span><span class="p">)</span> </span><span id="L-541"><a href="#L-541"><span class="linenos" data-line="541"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="s1">&#39;[%s] [%s] [%s] [%s]&#39;</span> </span><span id="L-542"><a href="#L-542"><span class="linenos" data-line="542"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">escapeBrackets</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> </span><span id="L-543"><a href="#L-543"><span class="linenos" data-line="543"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">format</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">viewLink</span><span class="p">,</span> <span class="n">editLink</span><span class="p">,</span> <span class="n">historyLink</span><span class="p">,</span> <span class="n">purgeLink</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">else</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">createLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">preload</span><span class="p">},</span> <span class="n">data</span><span class="p">.</span><span class="n">createLinkDisplay</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">ret</span> <span class="o">=</span> <span class="s1">&#39;[%s]&#39;</span> </span><span id="L-547"><a href="#L-547"><span class="linenos" data-line="547"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">escapeBrackets</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> </span><span id="L-548"><a href="#L-548"><span class="linenos" data-line="548"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">format</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">createLink</span><span class="p">)</span> </span><span id="L-549"><a href="#L-549"><span class="linenos" data-line="549"></span></a> <span class="kr">end</span> </span><span id="L-550"><a href="#L-550"><span class="linenos" data-line="550"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-551"><a href="#L-551"><span class="linenos" data-line="551"></span></a><span class="kr">end</span> </span><span id="L-552"><a href="#L-552"><span class="linenos" data-line="552"></span></a> </span><span id="L-553"><a href="#L-553"><span class="linenos" data-line="553"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeStartBoxData</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">,</span> <span class="n">links</span><span class="p">)</span> </span><span id="L-554"><a href="#L-554"><span class="linenos" data-line="554"></span></a> <span class="cm">--[=[</span> </span><span id="L-555"><a href="#L-555"><span class="linenos" data-line="555"></span></a><span class="cm"> -- Does initial processing of data to pass to the start-box render function, p.renderStartBox.</span> </span><span id="L-556"><a href="#L-556"><span class="linenos" data-line="556"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-557"><a href="#L-557"><span class="linenos" data-line="557"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-558"><a href="#L-558"><span class="linenos" data-line="558"></span></a><span class="cm"> -- @links - a string containing the [view][edit][history][purge] links - could be nil if there&#39;s an error.</span> </span><span id="L-559"><a href="#L-559"><span class="linenos" data-line="559"></span></a><span class="cm"> --</span> </span><span id="L-560"><a href="#L-560"><span class="linenos" data-line="560"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-561"><a href="#L-561"><span class="linenos" data-line="561"></span></a><span class="cm"> -- &#39;documentation-icon-wikitext&#39; --&gt; &#39;[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=Documentation icon]]&#39;</span> </span><span id="L-562"><a href="#L-562"><span class="linenos" data-line="562"></span></a><span class="cm"> -- &#39;template-namespace-heading&#39; --&gt; &#39;Template documentation&#39;</span> </span><span id="L-563"><a href="#L-563"><span class="linenos" data-line="563"></span></a><span class="cm"> -- &#39;module-namespace-heading&#39; --&gt; &#39;Module documentation&#39;</span> </span><span id="L-564"><a href="#L-564"><span class="linenos" data-line="564"></span></a><span class="cm"> -- &#39;file-namespace-heading&#39; --&gt; &#39;Summary&#39;</span> </span><span id="L-565"><a href="#L-565"><span class="linenos" data-line="565"></span></a><span class="cm"> -- &#39;other-namespaces-heading&#39; --&gt; &#39;دستاویز&#39;</span> </span><span id="L-566"><a href="#L-566"><span class="linenos" data-line="566"></span></a><span class="cm"> -- &#39;start-box-linkclasses&#39; --&gt; &#39;mw-editsection-like plainlinks&#39;</span> </span><span id="L-567"><a href="#L-567"><span class="linenos" data-line="567"></span></a><span class="cm"> -- &#39;start-box-link-id&#39; --&gt; &#39;doc_editlinks&#39;</span> </span><span id="L-568"><a href="#L-568"><span class="linenos" data-line="568"></span></a><span class="cm"> -- &#39;testcases-create-link-display&#39; --&gt; &#39;create&#39;</span> </span><span id="L-569"><a href="#L-569"><span class="linenos" data-line="569"></span></a><span class="cm"> --]=]</span> </span><span id="L-570"><a href="#L-570"><span class="linenos" data-line="570"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-571"><a href="#L-571"><span class="linenos" data-line="571"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">subjectSpace</span> <span class="kr">then</span> </span><span id="L-572"><a href="#L-572"><span class="linenos" data-line="572"></span></a> <span class="c1">-- Default to an &quot;other namespaces&quot; namespace, so that we get at least some output</span> </span><span id="L-573"><a href="#L-573"><span class="linenos" data-line="573"></span></a> <span class="c1">-- if an error occurs.</span> </span><span id="L-574"><a href="#L-574"><span class="linenos" data-line="574"></span></a> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="mi">2</span> </span><span id="L-575"><a href="#L-575"><span class="linenos" data-line="575"></span></a> <span class="kr">end</span> </span><span id="L-576"><a href="#L-576"><span class="linenos" data-line="576"></span></a> <span class="kd">local</span> <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-577"><a href="#L-577"><span class="linenos" data-line="577"></span></a> </span><span id="L-578"><a href="#L-578"><span class="linenos" data-line="578"></span></a> <span class="c1">-- Heading</span> </span><span id="L-579"><a href="#L-579"><span class="linenos" data-line="579"></span></a> <span class="kd">local</span> <span class="n">heading</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">heading</span> <span class="c1">-- Blank values are not removed.</span> </span><span id="L-580"><a href="#L-580"><span class="linenos" data-line="580"></span></a> <span class="kr">if</span> <span class="n">heading</span> <span class="o">==</span> <span class="s1">&#39;&#39;</span> <span class="kr">then</span> </span><span id="L-581"><a href="#L-581"><span class="linenos" data-line="581"></span></a> <span class="c1">-- Don&#39;t display the start box if the heading arg is defined but blank.</span> </span><span id="L-582"><a href="#L-582"><span class="linenos" data-line="582"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-583"><a href="#L-583"><span class="linenos" data-line="583"></span></a> <span class="kr">end</span> </span><span id="L-584"><a href="#L-584"><span class="linenos" data-line="584"></span></a> <span class="kr">if</span> <span class="n">heading</span> <span class="kr">then</span> </span><span id="L-585"><a href="#L-585"><span class="linenos" data-line="585"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">heading</span> <span class="o">=</span> <span class="n">heading</span> </span><span id="L-586"><a href="#L-586"><span class="linenos" data-line="586"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> <span class="c1">-- Template namespace</span> </span><span id="L-587"><a href="#L-587"><span class="linenos" data-line="587"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">heading</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;documentation-icon-wikitext&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;template-namespace-heading&#39;</span><span class="p">)</span> </span><span id="L-588"><a href="#L-588"><span class="linenos" data-line="588"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> <span class="c1">-- Module namespace</span> </span><span id="L-589"><a href="#L-589"><span class="linenos" data-line="589"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">heading</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;documentation-icon-wikitext&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-namespace-heading&#39;</span><span class="p">)</span> </span><span id="L-590"><a href="#L-590"><span class="linenos" data-line="590"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">6</span> <span class="kr">then</span> <span class="c1">-- File namespace</span> </span><span id="L-591"><a href="#L-591"><span class="linenos" data-line="591"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">heading</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;file-namespace-heading&#39;</span><span class="p">)</span> </span><span id="L-592"><a href="#L-592"><span class="linenos" data-line="592"></span></a> <span class="kr">else</span> </span><span id="L-593"><a href="#L-593"><span class="linenos" data-line="593"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">heading</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;other-namespaces-heading&#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="kr">end</span> </span><span id="L-595"><a href="#L-595"><span class="linenos" data-line="595"></span></a> </span><span id="L-596"><a href="#L-596"><span class="linenos" data-line="596"></span></a> <span class="c1">-- Heading CSS</span> </span><span id="L-597"><a href="#L-597"><span class="linenos" data-line="597"></span></a> <span class="kd">local</span> <span class="n">headingStyle</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="s1">&#39;heading-style&#39;</span><span class="p">]</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">headingStyle</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">data</span><span class="p">.</span><span class="n">headingStyleText</span> <span class="o">=</span> <span class="n">headingStyle</span> </span><span id="L-600"><a href="#L-600"><span class="linenos" data-line="600"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> </span><span id="L-601"><a href="#L-601"><span class="linenos" data-line="601"></span></a> <span class="c1">-- We are in the template or template talk namespaces.</span> </span><span id="L-602"><a href="#L-602"><span class="linenos" data-line="602"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">headingFontWeight</span> <span class="o">=</span> <span class="s1">&#39;bold&#39;</span> </span><span id="L-603"><a href="#L-603"><span class="linenos" data-line="603"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">headingFontSize</span> <span class="o">=</span> <span class="s1">&#39;125%&#39;</span> </span><span id="L-604"><a href="#L-604"><span class="linenos" data-line="604"></span></a> <span class="kr">else</span> </span><span id="L-605"><a href="#L-605"><span class="linenos" data-line="605"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">headingFontSize</span> <span class="o">=</span> <span class="s1">&#39;150%&#39;</span> </span><span id="L-606"><a href="#L-606"><span class="linenos" data-line="606"></span></a> <span class="kr">end</span> </span><span id="L-607"><a href="#L-607"><span class="linenos" data-line="607"></span></a> </span><span id="L-608"><a href="#L-608"><span class="linenos" data-line="608"></span></a> <span class="c1">-- Data for the [view][edit][history][purge] or [create] links.</span> </span><span id="L-609"><a href="#L-609"><span class="linenos" data-line="609"></span></a> <span class="kr">if</span> <span class="n">links</span> <span class="kr">then</span> </span><span id="L-610"><a href="#L-610"><span class="linenos" data-line="610"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">linksClass</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;start-box-linkclasses&#39;</span><span class="p">)</span> </span><span id="L-611"><a href="#L-611"><span class="linenos" data-line="611"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">linksId</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;start-box-link-id&#39;</span><span class="p">)</span> </span><span id="L-612"><a href="#L-612"><span class="linenos" data-line="612"></span></a> <span class="n">data</span><span class="p">.</span><span class="n">links</span> <span class="o">=</span> <span class="n">links</span> </span><span id="L-613"><a href="#L-613"><span class="linenos" data-line="613"></span></a> <span class="kr">end</span> </span><span id="L-614"><a href="#L-614"><span class="linenos" data-line="614"></span></a> </span><span id="L-615"><a href="#L-615"><span class="linenos" data-line="615"></span></a> <span class="kr">return</span> <span class="n">data</span> </span><span id="L-616"><a href="#L-616"><span class="linenos" data-line="616"></span></a><span class="kr">end</span> </span><span id="L-617"><a href="#L-617"><span class="linenos" data-line="617"></span></a> </span><span id="L-618"><a href="#L-618"><span class="linenos" data-line="618"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">renderStartBox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> </span><span id="L-619"><a href="#L-619"><span class="linenos" data-line="619"></span></a> <span class="c1">-- Renders the start box html.</span> </span><span id="L-620"><a href="#L-620"><span class="linenos" data-line="620"></span></a> <span class="c1">-- @data - a table of data generated by p.makeStartBoxData.</span> </span><span id="L-621"><a href="#L-621"><span class="linenos" data-line="621"></span></a> <span class="kd">local</span> <span class="n">sbox</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-622"><a href="#L-622"><span class="linenos" data-line="622"></span></a> <span class="n">sbox</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">css</span><span class="p">(</span><span class="s1">&#39;padding-bottom&#39;</span><span class="p">,</span> <span class="s1">&#39;3px&#39;</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">css</span><span class="p">(</span><span class="s1">&#39;border-bottom&#39;</span><span class="p">,</span> <span class="s1">&#39;1px solid #aaa&#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="p">:</span><span class="n">css</span><span class="p">(</span><span class="s1">&#39;margin-bottom&#39;</span><span class="p">,</span> <span class="s1">&#39;1ex&#39;</span><span class="p">)</span> </span><span id="L-626"><a href="#L-626"><span class="linenos" data-line="626"></span></a> <span class="p">:</span><span class="n">newline</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">tag</span><span class="p">(</span><span class="s1">&#39;span&#39;</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">cssText</span><span class="p">(</span><span class="n">data</span><span class="p">.</span><span class="n">headingStyleText</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">css</span><span class="p">(</span><span class="s1">&#39;font-weight&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">headingFontWeight</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">css</span><span class="p">(</span><span class="s1">&#39;font-size&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">headingFontSize</span><span class="p">)</span> </span><span id="L-631"><a href="#L-631"><span class="linenos" data-line="631"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">data</span><span class="p">.</span><span class="n">heading</span><span class="p">)</span> </span><span id="L-632"><a href="#L-632"><span class="linenos" data-line="632"></span></a> <span class="kd">local</span> <span class="n">links</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">links</span> </span><span id="L-633"><a href="#L-633"><span class="linenos" data-line="633"></span></a> <span class="kr">if</span> <span class="n">links</span> <span class="kr">then</span> </span><span id="L-634"><a href="#L-634"><span class="linenos" data-line="634"></span></a> <span class="n">sbox</span><span class="p">:</span><span class="n">tag</span><span class="p">(</span><span class="s1">&#39;span&#39;</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">addClass</span><span class="p">(</span><span class="n">data</span><span class="p">.</span><span class="n">linksClass</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">attr</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">linksId</span><span class="p">)</span> </span><span id="L-637"><a href="#L-637"><span class="linenos" data-line="637"></span></a> <span class="p">:</span><span class="n">wikitext</span><span class="p">(</span><span class="n">links</span><span class="p">)</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 class="kr">return</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">sbox</span><span class="p">)</span> </span><span id="L-640"><a href="#L-640"><span class="linenos" data-line="640"></span></a><span class="kr">end</span> </span><span id="L-641"><a href="#L-641"><span class="linenos" data-line="641"></span></a> </span><span id="L-642"><a href="#L-642"><span class="linenos" data-line="642"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-643"><a href="#L-643"><span class="linenos" data-line="643"></span></a><span class="c1">-- Documentation content</span> </span><span id="L-644"><a href="#L-644"><span class="linenos" data-line="644"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-645"><a href="#L-645"><span class="linenos" data-line="645"></span></a> </span><span id="L-646"><a href="#L-646"><span class="linenos" data-line="646"></span></a><span class="n">p</span><span class="p">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">makeInvokeFunc</span><span class="p">(</span><span class="s1">&#39;_content&#39;</span><span class="p">)</span> </span><span id="L-647"><a href="#L-647"><span class="linenos" data-line="647"></span></a> </span><span id="L-648"><a href="#L-648"><span class="linenos" data-line="648"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_content</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-649"><a href="#L-649"><span class="linenos" data-line="649"></span></a> <span class="c1">-- Displays the documentation contents</span> </span><span id="L-650"><a href="#L-650"><span class="linenos" data-line="650"></span></a> <span class="c1">-- @args - a table of arguments passed by the user</span> </span><span id="L-651"><a href="#L-651"><span class="linenos" data-line="651"></span></a> <span class="c1">-- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-652"><a href="#L-652"><span class="linenos" data-line="652"></span></a> <span class="n">env</span> <span class="o">=</span> <span class="n">env</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-653"><a href="#L-653"><span class="linenos" data-line="653"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-654"><a href="#L-654"><span class="linenos" data-line="654"></span></a> <span class="kd">local</span> <span class="n">content</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">content</span> </span><span id="L-655"><a href="#L-655"><span class="linenos" data-line="655"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">content</span> <span class="ow">and</span> <span class="n">docTitle</span> <span class="ow">and</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-656"><a href="#L-656"><span class="linenos" data-line="656"></span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">_content</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">expandTemplate</span><span class="p">{</span><span class="n">title</span> <span class="o">=</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">}</span> </span><span id="L-657"><a href="#L-657"><span class="linenos" data-line="657"></span></a> <span class="kr">end</span> </span><span id="L-658"><a href="#L-658"><span class="linenos" data-line="658"></span></a> <span class="c1">-- The line breaks below are necessary so that &quot;=== Headings ===&quot; at the start and end</span> </span><span id="L-659"><a href="#L-659"><span class="linenos" data-line="659"></span></a> <span class="c1">-- of docs are interpreted correctly.</span> </span><span id="L-660"><a href="#L-660"><span class="linenos" data-line="660"></span></a> <span class="kr">return</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">..</span> <span class="p">(</span><span class="n">content</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span> </span><span id="L-661"><a href="#L-661"><span class="linenos" data-line="661"></span></a><span class="kr">end</span> </span><span id="L-662"><a href="#L-662"><span class="linenos" data-line="662"></span></a> </span><span id="L-663"><a href="#L-663"><span class="linenos" data-line="663"></span></a><span class="n">p</span><span class="p">.</span><span class="n">contentTitle</span> <span class="o">=</span> <span class="n">makeInvokeFunc</span><span class="p">(</span><span class="s1">&#39;_contentTitle&#39;</span><span class="p">)</span> </span><span id="L-664"><a href="#L-664"><span class="linenos" data-line="664"></span></a> </span><span id="L-665"><a href="#L-665"><span class="linenos" data-line="665"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_contentTitle</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-666"><a href="#L-666"><span class="linenos" data-line="666"></span></a> <span class="n">env</span> <span class="o">=</span> <span class="n">env</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-667"><a href="#L-667"><span class="linenos" data-line="667"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-668"><a href="#L-668"><span class="linenos" data-line="668"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">content</span> <span class="ow">and</span> <span class="n">docTitle</span> <span class="ow">and</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-669"><a href="#L-669"><span class="linenos" data-line="669"></span></a> <span class="kr">return</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">prefixedText</span> </span><span id="L-670"><a href="#L-670"><span class="linenos" data-line="670"></span></a> <span class="kr">else</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="s1">&#39;&#39;</span> </span><span id="L-672"><a href="#L-672"><span class="linenos" data-line="672"></span></a> <span class="kr">end</span> </span><span id="L-673"><a href="#L-673"><span class="linenos" data-line="673"></span></a><span class="kr">end</span> </span><span id="L-674"><a href="#L-674"><span class="linenos" data-line="674"></span></a> </span><span id="L-675"><a href="#L-675"><span class="linenos" data-line="675"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-676"><a href="#L-676"><span class="linenos" data-line="676"></span></a><span class="c1">-- End box</span> </span><span id="L-677"><a href="#L-677"><span class="linenos" data-line="677"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-678"><a href="#L-678"><span class="linenos" data-line="678"></span></a> </span><span id="L-679"><a href="#L-679"><span class="linenos" data-line="679"></span></a><span class="n">p</span><span class="p">.</span><span class="n">endBox</span> <span class="o">=</span> <span class="n">makeInvokeFunc</span><span class="p">(</span><span class="s1">&#39;_endBox&#39;</span><span class="p">)</span> </span><span id="L-680"><a href="#L-680"><span class="linenos" data-line="680"></span></a> </span><span id="L-681"><a href="#L-681"><span class="linenos" data-line="681"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_endBox</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-682"><a href="#L-682"><span class="linenos" data-line="682"></span></a> <span class="cm">--[=[</span> </span><span id="L-683"><a href="#L-683"><span class="linenos" data-line="683"></span></a><span class="cm"> -- This function generates the end box (also known as the link box).</span> </span><span id="L-684"><a href="#L-684"><span class="linenos" data-line="684"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-685"><a href="#L-685"><span class="linenos" data-line="685"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-686"><a href="#L-686"><span class="linenos" data-line="686"></span></a><span class="cm"> -- </span> </span><span id="L-687"><a href="#L-687"><span class="linenos" data-line="687"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-688"><a href="#L-688"><span class="linenos" data-line="688"></span></a><span class="cm"> -- &#39;fmbox-id&#39; --&gt; &#39;documentation-meta-data&#39;</span> </span><span id="L-689"><a href="#L-689"><span class="linenos" data-line="689"></span></a><span class="cm"> -- &#39;fmbox-style&#39; --&gt; &#39;background-color: #ecfcf4&#39;</span> </span><span id="L-690"><a href="#L-690"><span class="linenos" data-line="690"></span></a><span class="cm"> -- &#39;fmbox-textstyle&#39; --&gt; &#39;font-style: italic&#39;</span> </span><span id="L-691"><a href="#L-691"><span class="linenos" data-line="691"></span></a><span class="cm"> -- </span> </span><span id="L-692"><a href="#L-692"><span class="linenos" data-line="692"></span></a><span class="cm"> -- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].</span> </span><span id="L-693"><a href="#L-693"><span class="linenos" data-line="693"></span></a><span class="cm"> --]=]</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="c1">-- Get environment data.</span> </span><span id="L-696"><a href="#L-696"><span class="linenos" data-line="696"></span></a> <span class="n">env</span> <span class="o">=</span> <span class="n">env</span> <span class="ow">or</span> <span class="n">p</span><span class="p">.</span><span class="n">getEnvironment</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-697"><a href="#L-697"><span class="linenos" data-line="697"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-698"><a href="#L-698"><span class="linenos" data-line="698"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-699"><a href="#L-699"><span class="linenos" data-line="699"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">subjectSpace</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">docTitle</span> <span class="kr">then</span> </span><span id="L-700"><a href="#L-700"><span class="linenos" data-line="700"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-701"><a href="#L-701"><span class="linenos" data-line="701"></span></a> <span class="kr">end</span> </span><span id="L-702"><a href="#L-702"><span class="linenos" data-line="702"></span></a> </span><span id="L-703"><a href="#L-703"><span class="linenos" data-line="703"></span></a> <span class="c1">-- Check whether we should output the end box at all. Add the end</span> </span><span id="L-704"><a href="#L-704"><span class="linenos" data-line="704"></span></a> <span class="c1">-- box by default if the documentation exists or if we are in the</span> </span><span id="L-705"><a href="#L-705"><span class="linenos" data-line="705"></span></a> <span class="c1">-- user, module or template namespaces.</span> </span><span id="L-706"><a href="#L-706"><span class="linenos" data-line="706"></span></a> <span class="kd">local</span> <span class="n">linkBox</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="s1">&#39;link box&#39;</span><span class="p">]</span> </span><span id="L-707"><a href="#L-707"><span class="linenos" data-line="707"></span></a> <span class="kr">if</span> <span class="n">linkBox</span> <span class="o">==</span> <span class="s1">&#39;off&#39;</span> </span><span id="L-708"><a href="#L-708"><span class="linenos" data-line="708"></span></a> <span class="ow">or</span> <span class="ow">not</span> <span class="p">(</span> </span><span id="L-709"><a href="#L-709"><span class="linenos" data-line="709"></span></a> <span class="n">docTitle</span><span class="p">.</span><span class="n">exists</span> </span><span id="L-710"><a href="#L-710"><span class="linenos" data-line="710"></span></a> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">2</span> </span><span id="L-711"><a href="#L-711"><span class="linenos" data-line="711"></span></a> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> </span><span id="L-712"><a href="#L-712"><span class="linenos" data-line="712"></span></a> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> </span><span id="L-713"><a href="#L-713"><span class="linenos" data-line="713"></span></a> <span class="p">)</span> </span><span id="L-714"><a href="#L-714"><span class="linenos" data-line="714"></span></a> <span class="kr">then</span> </span><span id="L-715"><a href="#L-715"><span class="linenos" data-line="715"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-716"><a href="#L-716"><span class="linenos" data-line="716"></span></a> <span class="kr">end</span> </span><span id="L-717"><a href="#L-717"><span class="linenos" data-line="717"></span></a> </span><span id="L-718"><a href="#L-718"><span class="linenos" data-line="718"></span></a> <span class="c1">-- Assemble the arguments for {{fmbox}}.</span> </span><span id="L-719"><a href="#L-719"><span class="linenos" data-line="719"></span></a> <span class="kd">local</span> <span class="n">fmargs</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-720"><a href="#L-720"><span class="linenos" data-line="720"></span></a> <span class="n">fmargs</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;fmbox-id&#39;</span><span class="p">)</span> <span class="c1">-- Sets &#39;documentation-meta-data&#39;</span> </span><span id="L-721"><a href="#L-721"><span class="linenos" data-line="721"></span></a> <span class="n">fmargs</span><span class="p">.</span><span class="n">image</span> <span class="o">=</span> <span class="s1">&#39;none&#39;</span> </span><span id="L-722"><a href="#L-722"><span class="linenos" data-line="722"></span></a> <span class="n">fmargs</span><span class="p">.</span><span class="n">style</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;fmbox-style&#39;</span><span class="p">)</span> <span class="c1">-- Sets &#39;background-color: #ecfcf4&#39;</span> </span><span id="L-723"><a href="#L-723"><span class="linenos" data-line="723"></span></a> <span class="n">fmargs</span><span class="p">.</span><span class="n">textstyle</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;fmbox-textstyle&#39;</span><span class="p">)</span> <span class="c1">-- &#39;font-style: italic;&#39;</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="c1">-- Assemble the fmbox text field.</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">text</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span> </span><span id="L-727"><a href="#L-727"><span class="linenos" data-line="727"></span></a> <span class="kr">if</span> <span class="n">linkBox</span> <span class="kr">then</span> </span><span id="L-728"><a href="#L-728"><span class="linenos" data-line="728"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="n">linkBox</span> </span><span id="L-729"><a href="#L-729"><span class="linenos" data-line="729"></span></a> <span class="kr">else</span> </span><span id="L-730"><a href="#L-730"><span class="linenos" data-line="730"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">makeDocPageBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="c1">-- &quot;This documentation is transcluded from [[Foo]].&quot; </span> </span><span id="L-731"><a href="#L-731"><span class="linenos" data-line="731"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">2</span> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-732"><a href="#L-732"><span class="linenos" data-line="732"></span></a> <span class="c1">-- We are in the user, template or module namespaces.</span> </span><span id="L-733"><a href="#L-733"><span class="linenos" data-line="733"></span></a> <span class="c1">-- Add sandbox and testcases links.</span> </span><span id="L-734"><a href="#L-734"><span class="linenos" data-line="734"></span></a> <span class="c1">-- &quot;Editors can experiment in this template&#39;s sandbox and testcases pages.&quot;</span> </span><span id="L-735"><a href="#L-735"><span class="linenos" data-line="735"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">makeExperimentBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> </span><span id="L-736"><a href="#L-736"><span class="linenos" data-line="736"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> </span><span id="L-737"><a href="#L-737"><span class="linenos" data-line="737"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">content</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> </span><span id="L-738"><a href="#L-738"><span class="linenos" data-line="738"></span></a> <span class="c1">-- &quot;Please add categories to the /doc subpage.&quot;</span> </span><span id="L-739"><a href="#L-739"><span class="linenos" data-line="739"></span></a> <span class="c1">-- Don&#39;t show this message with inline docs or with an explicitly specified doc page,</span> </span><span id="L-740"><a href="#L-740"><span class="linenos" data-line="740"></span></a> <span class="c1">-- as then it is unclear where to add the categories.</span> </span><span id="L-741"><a href="#L-741"><span class="linenos" data-line="741"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">makeCategoriesBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> </span><span id="L-742"><a href="#L-742"><span class="linenos" data-line="742"></span></a> <span class="kr">end</span> </span><span id="L-743"><a href="#L-743"><span class="linenos" data-line="743"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">makeSubpagesBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="c1">--&quot;Subpages of this template&quot;</span> </span><span id="L-744"><a href="#L-744"><span class="linenos" data-line="744"></span></a> <span class="kd">local</span> <span class="n">printBlurb</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">makePrintBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> <span class="c1">-- Two-line blurb about print versions of templates.</span> </span><span id="L-745"><a href="#L-745"><span class="linenos" data-line="745"></span></a> <span class="kr">if</span> <span class="n">printBlurb</span> <span class="kr">then</span> </span><span id="L-746"><a href="#L-746"><span class="linenos" data-line="746"></span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> <span class="o">..</span> <span class="n">printBlurb</span> </span><span id="L-747"><a href="#L-747"><span class="linenos" data-line="747"></span></a> <span class="kr">end</span> </span><span id="L-748"><a href="#L-748"><span class="linenos" data-line="748"></span></a> <span class="kr">end</span> </span><span id="L-749"><a href="#L-749"><span class="linenos" data-line="749"></span></a> <span class="kr">end</span> </span><span id="L-750"><a href="#L-750"><span class="linenos" data-line="750"></span></a> <span class="n">fmargs</span><span class="p">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">text</span> </span><span id="L-751"><a href="#L-751"><span class="linenos" data-line="751"></span></a> </span><span id="L-752"><a href="#L-752"><span class="linenos" data-line="752"></span></a> <span class="kr">return</span> <span class="n">messageBox</span><span class="p">.</span><span class="n">main</span><span class="p">(</span><span class="s1">&#39;fmbox&#39;</span><span class="p">,</span> <span class="n">fmargs</span><span class="p">)</span> </span><span id="L-753"><a href="#L-753"><span class="linenos" data-line="753"></span></a><span class="kr">end</span> </span><span id="L-754"><a href="#L-754"><span class="linenos" data-line="754"></span></a> </span><span id="L-755"><a href="#L-755"><span class="linenos" data-line="755"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeDocPageBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-756"><a href="#L-756"><span class="linenos" data-line="756"></span></a> <span class="cm">--[=[</span> </span><span id="L-757"><a href="#L-757"><span class="linenos" data-line="757"></span></a><span class="cm"> -- Makes the blurb &quot;This documentation is transcluded from [[Template:Foo]] (edit, history)&quot;.</span> </span><span id="L-758"><a href="#L-758"><span class="linenos" data-line="758"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-759"><a href="#L-759"><span class="linenos" data-line="759"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-760"><a href="#L-760"><span class="linenos" data-line="760"></span></a><span class="cm"> -- </span> </span><span id="L-761"><a href="#L-761"><span class="linenos" data-line="761"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-762"><a href="#L-762"><span class="linenos" data-line="762"></span></a><span class="cm"> -- &#39;edit-link-display&#39; --&gt; &#39;edit&#39;</span> </span><span id="L-763"><a href="#L-763"><span class="linenos" data-line="763"></span></a><span class="cm"> -- &#39;history-link-display&#39; --&gt; &#39;history&#39;</span> </span><span id="L-764"><a href="#L-764"><span class="linenos" data-line="764"></span></a><span class="cm"> -- &#39;transcluded-from-blurb&#39; --&gt; </span> </span><span id="L-765"><a href="#L-765"><span class="linenos" data-line="765"></span></a><span class="cm"> -- &#39;The above [[Wikipedia:Template documentation|documentation]] </span> </span><span id="L-766"><a href="#L-766"><span class="linenos" data-line="766"></span></a><span class="cm"> -- is [[Wikipedia:Transclusion|transcluded]] from $1.&#39;</span> </span><span id="L-767"><a href="#L-767"><span class="linenos" data-line="767"></span></a><span class="cm"> -- &#39;module-preload&#39; --&gt; &#39;Template:Documentation/preload-module-doc&#39;</span> </span><span id="L-768"><a href="#L-768"><span class="linenos" data-line="768"></span></a><span class="cm"> -- &#39;create-link-display&#39; --&gt; &#39;create&#39;</span> </span><span id="L-769"><a href="#L-769"><span class="linenos" data-line="769"></span></a><span class="cm"> -- &#39;create-module-doc-blurb&#39; --&gt;</span> </span><span id="L-770"><a href="#L-770"><span class="linenos" data-line="770"></span></a><span class="cm"> -- &#39;You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].&#39;</span> </span><span id="L-771"><a href="#L-771"><span class="linenos" data-line="771"></span></a><span class="cm"> --]=]</span> </span><span id="L-772"><a href="#L-772"><span class="linenos" data-line="772"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-773"><a href="#L-773"><span class="linenos" data-line="773"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">docTitle</span> <span class="kr">then</span> </span><span id="L-774"><a href="#L-774"><span class="linenos" data-line="774"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-775"><a href="#L-775"><span class="linenos" data-line="775"></span></a> <span class="kr">end</span> </span><span id="L-776"><a href="#L-776"><span class="linenos" data-line="776"></span></a> <span class="kd">local</span> <span class="n">ret</span> </span><span id="L-777"><a href="#L-777"><span class="linenos" data-line="777"></span></a> <span class="kr">if</span> <span class="n">docTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-778"><a href="#L-778"><span class="linenos" data-line="778"></span></a> <span class="c1">-- /doc exists; link to it.</span> </span><span id="L-779"><a href="#L-779"><span class="linenos" data-line="779"></span></a> <span class="kd">local</span> <span class="n">docLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">)</span> </span><span id="L-780"><a href="#L-780"><span class="linenos" data-line="780"></span></a> <span class="kd">local</span> <span class="n">editUrl</span> <span class="o">=</span> <span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">}</span> </span><span id="L-781"><a href="#L-781"><span class="linenos" data-line="781"></span></a> <span class="kd">local</span> <span class="n">editDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;edit-link-display&#39;</span><span class="p">)</span> </span><span id="L-782"><a href="#L-782"><span class="linenos" data-line="782"></span></a> <span class="kd">local</span> <span class="n">editLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">editUrl</span><span class="p">,</span> <span class="n">editDisplay</span><span class="p">)</span> </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">historyUrl</span> <span class="o">=</span> <span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;history&#39;</span><span class="p">}</span> </span><span id="L-784"><a href="#L-784"><span class="linenos" data-line="784"></span></a> <span class="kd">local</span> <span class="n">historyDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;history-link-display&#39;</span><span class="p">)</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">historyLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">historyUrl</span><span class="p">,</span> <span class="n">historyDisplay</span><span class="p">)</span> </span><span id="L-786"><a href="#L-786"><span class="linenos" data-line="786"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;transcluded-from-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">docLink</span><span class="p">})</span> </span><span id="L-787"><a href="#L-787"><span class="linenos" data-line="787"></span></a> <span class="o">..</span> <span class="s1">&#39; &#39;</span> </span><span id="L-788"><a href="#L-788"><span class="linenos" data-line="788"></span></a> <span class="o">..</span> <span class="n">makeToolbar</span><span class="p">(</span><span class="n">editLink</span><span class="p">,</span> <span class="n">historyLink</span><span class="p">)</span> </span><span id="L-789"><a href="#L-789"><span class="linenos" data-line="789"></span></a> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> </span><span id="L-790"><a href="#L-790"><span class="linenos" data-line="790"></span></a> <span class="kr">elseif</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</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="c1">-- /doc does not exist; ask to create it.</span> </span><span id="L-792"><a href="#L-792"><span class="linenos" data-line="792"></span></a> <span class="kd">local</span> <span class="n">createUrl</span> <span class="o">=</span> <span class="n">docTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-preload&#39;</span><span class="p">)}</span> </span><span id="L-793"><a href="#L-793"><span class="linenos" data-line="793"></span></a> <span class="kd">local</span> <span class="n">createDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;create-link-display&#39;</span><span class="p">)</span> </span><span id="L-794"><a href="#L-794"><span class="linenos" data-line="794"></span></a> <span class="kd">local</span> <span class="n">createLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">createUrl</span><span class="p">,</span> <span class="n">createDisplay</span><span class="p">)</span> </span><span id="L-795"><a href="#L-795"><span class="linenos" data-line="795"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;create-module-doc-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">createLink</span><span class="p">})</span> </span><span id="L-796"><a href="#L-796"><span class="linenos" data-line="796"></span></a> <span class="o">..</span> <span class="s1">&#39;&lt;br /&gt;&#39;</span> </span><span id="L-797"><a href="#L-797"><span class="linenos" data-line="797"></span></a> <span class="kr">end</span> </span><span id="L-798"><a href="#L-798"><span class="linenos" data-line="798"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-799"><a href="#L-799"><span class="linenos" data-line="799"></span></a><span class="kr">end</span> </span><span id="L-800"><a href="#L-800"><span class="linenos" data-line="800"></span></a> </span><span id="L-801"><a href="#L-801"><span class="linenos" data-line="801"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeExperimentBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-802"><a href="#L-802"><span class="linenos" data-line="802"></span></a> <span class="cm">--[[</span> </span><span id="L-803"><a href="#L-803"><span class="linenos" data-line="803"></span></a><span class="cm"> -- Renders the text &quot;Editors can experiment in this template&#39;s sandbox (edit | diff) and testcases (edit) pages.&quot;</span> </span><span id="L-804"><a href="#L-804"><span class="linenos" data-line="804"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-805"><a href="#L-805"><span class="linenos" data-line="805"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-806"><a href="#L-806"><span class="linenos" data-line="806"></span></a><span class="cm"> -- </span> </span><span id="L-807"><a href="#L-807"><span class="linenos" data-line="807"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-808"><a href="#L-808"><span class="linenos" data-line="808"></span></a><span class="cm"> -- &#39;sandbox-link-display&#39; --&gt; &#39;sandbox&#39;</span> </span><span id="L-809"><a href="#L-809"><span class="linenos" data-line="809"></span></a><span class="cm"> -- &#39;sandbox-edit-link-display&#39; --&gt; &#39;edit&#39;</span> </span><span id="L-810"><a href="#L-810"><span class="linenos" data-line="810"></span></a><span class="cm"> -- &#39;compare-link-display&#39; --&gt; &#39;diff&#39;</span> </span><span id="L-811"><a href="#L-811"><span class="linenos" data-line="811"></span></a><span class="cm"> -- &#39;module-sandbox-preload&#39; --&gt; &#39;Template:Documentation/preload-module-sandbox&#39;</span> </span><span id="L-812"><a href="#L-812"><span class="linenos" data-line="812"></span></a><span class="cm"> -- &#39;template-sandbox-preload&#39; --&gt; &#39;Template:Documentation/preload-sandbox&#39;</span> </span><span id="L-813"><a href="#L-813"><span class="linenos" data-line="813"></span></a><span class="cm"> -- &#39;sandbox-create-link-display&#39; --&gt; &#39;create&#39;</span> </span><span id="L-814"><a href="#L-814"><span class="linenos" data-line="814"></span></a><span class="cm"> -- &#39;mirror-edit-summary&#39; --&gt; &#39;Create sandbox version of $1&#39;</span> </span><span id="L-815"><a href="#L-815"><span class="linenos" data-line="815"></span></a><span class="cm"> -- &#39;mirror-link-display&#39; --&gt; &#39;mirror&#39;</span> </span><span id="L-816"><a href="#L-816"><span class="linenos" data-line="816"></span></a><span class="cm"> -- &#39;sandbox-link-display&#39; --&gt; &#39;sandbox&#39;</span> </span><span id="L-817"><a href="#L-817"><span class="linenos" data-line="817"></span></a><span class="cm"> -- &#39;testcases-link-display&#39; --&gt; &#39;testcases&#39;</span> </span><span id="L-818"><a href="#L-818"><span class="linenos" data-line="818"></span></a><span class="cm"> -- &#39;testcases-edit-link-display&#39;--&gt; &#39;edit&#39;</span> </span><span id="L-819"><a href="#L-819"><span class="linenos" data-line="819"></span></a><span class="cm"> -- &#39;module-testcases-preload&#39; --&gt; &#39;Template:Documentation/preload-module-testcases&#39;</span> </span><span id="L-820"><a href="#L-820"><span class="linenos" data-line="820"></span></a><span class="cm"> -- &#39;template-sandbox-preload&#39; --&gt; &#39;Template:Documentation/preload-sandbox&#39;</span> </span><span id="L-821"><a href="#L-821"><span class="linenos" data-line="821"></span></a><span class="cm"> -- &#39;testcases-create-link-display&#39; --&gt; &#39;create&#39;</span> </span><span id="L-822"><a href="#L-822"><span class="linenos" data-line="822"></span></a><span class="cm"> -- &#39;testcases-link-display&#39; --&gt; &#39;testcases&#39;</span> </span><span id="L-823"><a href="#L-823"><span class="linenos" data-line="823"></span></a><span class="cm"> -- &#39;testcases-edit-link-display&#39; --&gt; &#39;edit&#39;</span> </span><span id="L-824"><a href="#L-824"><span class="linenos" data-line="824"></span></a><span class="cm"> -- &#39;module-testcases-preload&#39; --&gt; &#39;Template:Documentation/preload-module-testcases&#39;</span> </span><span id="L-825"><a href="#L-825"><span class="linenos" data-line="825"></span></a><span class="cm"> -- &#39;template-testcases-preload&#39; --&gt; &#39;Template:Documentation/preload-testcases&#39;</span> </span><span id="L-826"><a href="#L-826"><span class="linenos" data-line="826"></span></a><span class="cm"> -- &#39;experiment-blurb-module&#39; --&gt; &#39;Editors can experiment in this module&#39;s $1 and $2 pages.&#39;</span> </span><span id="L-827"><a href="#L-827"><span class="linenos" data-line="827"></span></a><span class="cm"> -- &#39;experiment-blurb-template&#39; --&gt; &#39;Editors can experiment in this template&#39;s $1 and $2 pages.&#39;</span> </span><span id="L-828"><a href="#L-828"><span class="linenos" data-line="828"></span></a><span class="cm"> --]]</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">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-830"><a href="#L-830"><span class="linenos" data-line="830"></span></a> <span class="kd">local</span> <span class="n">templateTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</span> </span><span id="L-831"><a href="#L-831"><span class="linenos" data-line="831"></span></a> <span class="kd">local</span> <span class="n">sandboxTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">sandboxTitle</span> </span><span id="L-832"><a href="#L-832"><span class="linenos" data-line="832"></span></a> <span class="kd">local</span> <span class="n">testcasesTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">testcasesTitle</span> </span><span id="L-833"><a href="#L-833"><span class="linenos" data-line="833"></span></a> <span class="kd">local</span> <span class="n">templatePage</span> <span class="o">=</span> <span class="n">templateTitle</span><span class="p">.</span><span class="n">prefixedText</span> </span><span id="L-834"><a href="#L-834"><span class="linenos" data-line="834"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">subjectSpace</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">templateTitle</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">sandboxTitle</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">testcasesTitle</span> <span class="kr">then</span> </span><span id="L-835"><a href="#L-835"><span class="linenos" data-line="835"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-836"><a href="#L-836"><span class="linenos" data-line="836"></span></a> <span class="kr">end</span> </span><span id="L-837"><a href="#L-837"><span class="linenos" data-line="837"></span></a> <span class="c1">-- Make links.</span> </span><span id="L-838"><a href="#L-838"><span class="linenos" data-line="838"></span></a> <span class="kd">local</span> <span class="n">sandboxLinks</span><span class="p">,</span> <span class="n">testcasesLinks</span> </span><span id="L-839"><a href="#L-839"><span class="linenos" data-line="839"></span></a> <span class="kr">if</span> <span class="n">sandboxTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-840"><a href="#L-840"><span class="linenos" data-line="840"></span></a> <span class="kd">local</span> <span class="n">sandboxPage</span> <span class="o">=</span> <span class="n">sandboxTitle</span><span class="p">.</span><span class="n">prefixedText</span> </span><span id="L-841"><a href="#L-841"><span class="linenos" data-line="841"></span></a> <span class="kd">local</span> <span class="n">sandboxDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-link-display&#39;</span><span class="p">)</span> </span><span id="L-842"><a href="#L-842"><span class="linenos" data-line="842"></span></a> <span class="kd">local</span> <span class="n">sandboxLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">sandboxPage</span><span class="p">,</span> <span class="n">sandboxDisplay</span><span class="p">)</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">sandboxEditUrl</span> <span class="o">=</span> <span class="n">sandboxTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">}</span> </span><span id="L-844"><a href="#L-844"><span class="linenos" data-line="844"></span></a> <span class="kd">local</span> <span class="n">sandboxEditDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-edit-link-display&#39;</span><span class="p">)</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">sandboxEditLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">sandboxEditUrl</span><span class="p">,</span> <span class="n">sandboxEditDisplay</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">compareUrl</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">compareUrl</span> </span><span id="L-847"><a href="#L-847"><span class="linenos" data-line="847"></span></a> <span class="kd">local</span> <span class="n">compareLink</span> </span><span id="L-848"><a href="#L-848"><span class="linenos" data-line="848"></span></a> <span class="kr">if</span> <span class="n">compareUrl</span> <span class="kr">then</span> </span><span id="L-849"><a href="#L-849"><span class="linenos" data-line="849"></span></a> <span class="kd">local</span> <span class="n">compareDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;compare-link-display&#39;</span><span class="p">)</span> </span><span id="L-850"><a href="#L-850"><span class="linenos" data-line="850"></span></a> <span class="n">compareLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">compareUrl</span><span class="p">,</span> <span class="n">compareDisplay</span><span class="p">)</span> </span><span id="L-851"><a href="#L-851"><span class="linenos" data-line="851"></span></a> <span class="kr">end</span> </span><span id="L-852"><a href="#L-852"><span class="linenos" data-line="852"></span></a> <span class="n">sandboxLinks</span> <span class="o">=</span> <span class="n">sandboxLink</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">makeToolbar</span><span class="p">(</span><span class="n">sandboxEditLink</span><span class="p">,</span> <span class="n">compareLink</span><span class="p">)</span> </span><span id="L-853"><a href="#L-853"><span class="linenos" data-line="853"></span></a> <span class="kr">else</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">sandboxPreload</span> </span><span id="L-855"><a href="#L-855"><span class="linenos" data-line="855"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-856"><a href="#L-856"><span class="linenos" data-line="856"></span></a> <span class="n">sandboxPreload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-sandbox-preload&#39;</span><span class="p">)</span> </span><span id="L-857"><a href="#L-857"><span class="linenos" data-line="857"></span></a> <span class="kr">else</span> </span><span id="L-858"><a href="#L-858"><span class="linenos" data-line="858"></span></a> <span class="n">sandboxPreload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;template-sandbox-preload&#39;</span><span class="p">)</span> </span><span id="L-859"><a href="#L-859"><span class="linenos" data-line="859"></span></a> <span class="kr">end</span> </span><span id="L-860"><a href="#L-860"><span class="linenos" data-line="860"></span></a> <span class="kd">local</span> <span class="n">sandboxCreateUrl</span> <span class="o">=</span> <span class="n">sandboxTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">sandboxPreload</span><span class="p">}</span> </span><span id="L-861"><a href="#L-861"><span class="linenos" data-line="861"></span></a> <span class="kd">local</span> <span class="n">sandboxCreateDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-create-link-display&#39;</span><span class="p">)</span> </span><span id="L-862"><a href="#L-862"><span class="linenos" data-line="862"></span></a> <span class="kd">local</span> <span class="n">sandboxCreateLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">sandboxCreateUrl</span><span class="p">,</span> <span class="n">sandboxCreateDisplay</span><span class="p">)</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">mirrorSummary</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;mirror-edit-summary&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">makeWikilink</span><span class="p">(</span><span class="n">templatePage</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">mirrorUrl</span> <span class="o">=</span> <span class="n">sandboxTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">templatePage</span><span class="p">,</span> <span class="n">summary</span> <span class="o">=</span> <span class="n">mirrorSummary</span><span class="p">}</span> </span><span id="L-865"><a href="#L-865"><span class="linenos" data-line="865"></span></a> <span class="kd">local</span> <span class="n">mirrorDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;mirror-link-display&#39;</span><span class="p">)</span> </span><span id="L-866"><a href="#L-866"><span class="linenos" data-line="866"></span></a> <span class="kd">local</span> <span class="n">mirrorLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">mirrorUrl</span><span class="p">,</span> <span class="n">mirrorDisplay</span><span class="p">)</span> </span><span id="L-867"><a href="#L-867"><span class="linenos" data-line="867"></span></a> <span class="n">sandboxLinks</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;sandbox-link-display&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">makeToolbar</span><span class="p">(</span><span class="n">sandboxCreateLink</span><span class="p">,</span> <span class="n">mirrorLink</span><span class="p">)</span> </span><span id="L-868"><a href="#L-868"><span class="linenos" data-line="868"></span></a> <span class="kr">end</span> </span><span id="L-869"><a href="#L-869"><span class="linenos" data-line="869"></span></a> <span class="kr">if</span> <span class="n">testcasesTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-870"><a href="#L-870"><span class="linenos" data-line="870"></span></a> <span class="kd">local</span> <span class="n">testcasesPage</span> <span class="o">=</span> <span class="n">testcasesTitle</span><span class="p">.</span><span class="n">prefixedText</span> </span><span id="L-871"><a href="#L-871"><span class="linenos" data-line="871"></span></a> <span class="kd">local</span> <span class="n">testcasesDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-link-display&#39;</span><span class="p">)</span> </span><span id="L-872"><a href="#L-872"><span class="linenos" data-line="872"></span></a> <span class="kd">local</span> <span class="n">testcasesLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">testcasesPage</span><span class="p">,</span> <span class="n">testcasesDisplay</span><span class="p">)</span> </span><span id="L-873"><a href="#L-873"><span class="linenos" data-line="873"></span></a> <span class="kd">local</span> <span class="n">testcasesEditUrl</span> <span class="o">=</span> <span class="n">testcasesTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">}</span> </span><span id="L-874"><a href="#L-874"><span class="linenos" data-line="874"></span></a> <span class="kd">local</span> <span class="n">testcasesEditDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-edit-link-display&#39;</span><span class="p">)</span> </span><span id="L-875"><a href="#L-875"><span class="linenos" data-line="875"></span></a> <span class="kd">local</span> <span class="n">testcasesEditLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">testcasesEditUrl</span><span class="p">,</span> <span class="n">testcasesEditDisplay</span><span class="p">)</span> </span><span id="L-876"><a href="#L-876"><span class="linenos" data-line="876"></span></a> <span class="n">testcasesLinks</span> <span class="o">=</span> <span class="n">testcasesLink</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">makeToolbar</span><span class="p">(</span><span class="n">testcasesEditLink</span><span class="p">)</span> </span><span id="L-877"><a href="#L-877"><span class="linenos" data-line="877"></span></a> <span class="kr">else</span> </span><span id="L-878"><a href="#L-878"><span class="linenos" data-line="878"></span></a> <span class="kd">local</span> <span class="n">testcasesPreload</span> </span><span id="L-879"><a href="#L-879"><span class="linenos" data-line="879"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-880"><a href="#L-880"><span class="linenos" data-line="880"></span></a> <span class="n">testcasesPreload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-testcases-preload&#39;</span><span class="p">)</span> </span><span id="L-881"><a href="#L-881"><span class="linenos" data-line="881"></span></a> <span class="kr">else</span> </span><span id="L-882"><a href="#L-882"><span class="linenos" data-line="882"></span></a> <span class="n">testcasesPreload</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;template-testcases-preload&#39;</span><span class="p">)</span> </span><span id="L-883"><a href="#L-883"><span class="linenos" data-line="883"></span></a> <span class="kr">end</span> </span><span id="L-884"><a href="#L-884"><span class="linenos" data-line="884"></span></a> <span class="kd">local</span> <span class="n">testcasesCreateUrl</span> <span class="o">=</span> <span class="n">testcasesTitle</span><span class="p">:</span><span class="n">fullUrl</span><span class="p">{</span><span class="n">action</span> <span class="o">=</span> <span class="s1">&#39;edit&#39;</span><span class="p">,</span> <span class="n">preload</span> <span class="o">=</span> <span class="n">testcasesPreload</span><span class="p">}</span> </span><span id="L-885"><a href="#L-885"><span class="linenos" data-line="885"></span></a> <span class="kd">local</span> <span class="n">testcasesCreateDisplay</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-create-link-display&#39;</span><span class="p">)</span> </span><span id="L-886"><a href="#L-886"><span class="linenos" data-line="886"></span></a> <span class="kd">local</span> <span class="n">testcasesCreateLink</span> <span class="o">=</span> <span class="n">makeUrlLink</span><span class="p">(</span><span class="n">testcasesCreateUrl</span><span class="p">,</span> <span class="n">testcasesCreateDisplay</span><span class="p">)</span> </span><span id="L-887"><a href="#L-887"><span class="linenos" data-line="887"></span></a> <span class="n">testcasesLinks</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-link-display&#39;</span><span class="p">)</span> <span class="o">..</span> <span class="s1">&#39; &#39;</span> <span class="o">..</span> <span class="n">makeToolbar</span><span class="p">(</span><span class="n">testcasesCreateLink</span><span class="p">)</span> </span><span id="L-888"><a href="#L-888"><span class="linenos" data-line="888"></span></a> <span class="kr">end</span> </span><span id="L-889"><a href="#L-889"><span class="linenos" data-line="889"></span></a> <span class="kd">local</span> <span class="n">messageName</span> </span><span id="L-890"><a href="#L-890"><span class="linenos" data-line="890"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-891"><a href="#L-891"><span class="linenos" data-line="891"></span></a> <span class="n">messageName</span> <span class="o">=</span> <span class="s1">&#39;experiment-blurb-module&#39;</span> </span><span id="L-892"><a href="#L-892"><span class="linenos" data-line="892"></span></a> <span class="kr">else</span> </span><span id="L-893"><a href="#L-893"><span class="linenos" data-line="893"></span></a> <span class="n">messageName</span> <span class="o">=</span> <span class="s1">&#39;experiment-blurb-template&#39;</span> </span><span id="L-894"><a href="#L-894"><span class="linenos" data-line="894"></span></a> <span class="kr">end</span> </span><span id="L-895"><a href="#L-895"><span class="linenos" data-line="895"></span></a> <span class="kr">return</span> <span class="n">message</span><span class="p">(</span><span class="n">messageName</span><span class="p">,</span> <span class="p">{</span><span class="n">sandboxLinks</span><span class="p">,</span> <span class="n">testcasesLinks</span><span class="p">})</span> </span><span id="L-896"><a href="#L-896"><span class="linenos" data-line="896"></span></a><span class="kr">end</span> </span><span id="L-897"><a href="#L-897"><span class="linenos" data-line="897"></span></a> </span><span id="L-898"><a href="#L-898"><span class="linenos" data-line="898"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeCategoriesBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-899"><a href="#L-899"><span class="linenos" data-line="899"></span></a> <span class="cm">--[[</span> </span><span id="L-900"><a href="#L-900"><span class="linenos" data-line="900"></span></a><span class="cm"> -- Generates the text &quot;Please add categories to the /doc subpage.&quot;</span> </span><span id="L-901"><a href="#L-901"><span class="linenos" data-line="901"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-902"><a href="#L-902"><span class="linenos" data-line="902"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-903"><a href="#L-903"><span class="linenos" data-line="903"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-904"><a href="#L-904"><span class="linenos" data-line="904"></span></a><span class="cm"> -- &#39;doc-link-display&#39; --&gt; &#39;/دستاویز&#39;</span> </span><span id="L-905"><a href="#L-905"><span class="linenos" data-line="905"></span></a><span class="cm"> -- &#39;add-categories-blurb&#39; --&gt; &#39;Please add categories to the $1 subpage.&#39;</span> </span><span id="L-906"><a href="#L-906"><span class="linenos" data-line="906"></span></a><span class="cm"> --]]</span> </span><span id="L-907"><a href="#L-907"><span class="linenos" data-line="907"></span></a> <span class="kd">local</span> <span class="n">docTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">docTitle</span> </span><span id="L-908"><a href="#L-908"><span class="linenos" data-line="908"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">docTitle</span> <span class="kr">then</span> </span><span id="L-909"><a href="#L-909"><span class="linenos" data-line="909"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-910"><a href="#L-910"><span class="linenos" data-line="910"></span></a> <span class="kr">end</span> </span><span id="L-911"><a href="#L-911"><span class="linenos" data-line="911"></span></a> <span class="kd">local</span> <span class="n">docPathLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">docTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;doc-link-display&#39;</span><span class="p">))</span> </span><span id="L-912"><a href="#L-912"><span class="linenos" data-line="912"></span></a> <span class="kr">return</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;add-categories-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">docPathLink</span><span class="p">})</span> </span><span id="L-913"><a href="#L-913"><span class="linenos" data-line="913"></span></a><span class="kr">end</span> </span><span id="L-914"><a href="#L-914"><span class="linenos" data-line="914"></span></a> </span><span id="L-915"><a href="#L-915"><span class="linenos" data-line="915"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makeSubpagesBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-916"><a href="#L-916"><span class="linenos" data-line="916"></span></a> <span class="cm">--[[</span> </span><span id="L-917"><a href="#L-917"><span class="linenos" data-line="917"></span></a><span class="cm"> -- Generates the &quot;Subpages of this template&quot; link.</span> </span><span id="L-918"><a href="#L-918"><span class="linenos" data-line="918"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-919"><a href="#L-919"><span class="linenos" data-line="919"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-920"><a href="#L-920"><span class="linenos" data-line="920"></span></a><span class="cm"> </span> </span><span id="L-921"><a href="#L-921"><span class="linenos" data-line="921"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-922"><a href="#L-922"><span class="linenos" data-line="922"></span></a><span class="cm"> -- &#39;template-pagetype&#39; --&gt; &#39;template&#39;</span> </span><span id="L-923"><a href="#L-923"><span class="linenos" data-line="923"></span></a><span class="cm"> -- &#39;module-pagetype&#39; --&gt; &#39;module&#39;</span> </span><span id="L-924"><a href="#L-924"><span class="linenos" data-line="924"></span></a><span class="cm"> -- &#39;default-pagetype&#39; --&gt; &#39;page&#39;</span> </span><span id="L-925"><a href="#L-925"><span class="linenos" data-line="925"></span></a><span class="cm"> -- &#39;subpages-link-display&#39; --&gt; &#39;Subpages of this $1&#39;</span> </span><span id="L-926"><a href="#L-926"><span class="linenos" data-line="926"></span></a><span class="cm"> --]]</span> </span><span id="L-927"><a href="#L-927"><span class="linenos" data-line="927"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-928"><a href="#L-928"><span class="linenos" data-line="928"></span></a> <span class="kd">local</span> <span class="n">templateTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">templateTitle</span> </span><span id="L-929"><a href="#L-929"><span class="linenos" data-line="929"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">subjectSpace</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">templateTitle</span> <span class="kr">then</span> </span><span id="L-930"><a href="#L-930"><span class="linenos" data-line="930"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-931"><a href="#L-931"><span class="linenos" data-line="931"></span></a> <span class="kr">end</span> </span><span id="L-932"><a href="#L-932"><span class="linenos" data-line="932"></span></a> <span class="kd">local</span> <span class="n">pagetype</span> </span><span id="L-933"><a href="#L-933"><span class="linenos" data-line="933"></span></a> <span class="kr">if</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> </span><span id="L-934"><a href="#L-934"><span class="linenos" data-line="934"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;template-pagetype&#39;</span><span class="p">)</span> </span><span id="L-935"><a href="#L-935"><span class="linenos" data-line="935"></span></a> <span class="kr">elseif</span> <span class="n">subjectSpace</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-936"><a href="#L-936"><span class="linenos" data-line="936"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;module-pagetype&#39;</span><span class="p">)</span> </span><span id="L-937"><a href="#L-937"><span class="linenos" data-line="937"></span></a> <span class="kr">else</span> </span><span id="L-938"><a href="#L-938"><span class="linenos" data-line="938"></span></a> <span class="n">pagetype</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;default-pagetype&#39;</span><span class="p">)</span> </span><span id="L-939"><a href="#L-939"><span class="linenos" data-line="939"></span></a> <span class="kr">end</span> </span><span id="L-940"><a href="#L-940"><span class="linenos" data-line="940"></span></a> <span class="kd">local</span> <span class="n">subpagesLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span> </span><span id="L-941"><a href="#L-941"><span class="linenos" data-line="941"></span></a> <span class="s1">&#39;خاص:اشاریہ_سابقہ/&#39;</span> <span class="o">..</span> <span class="n">templateTitle</span><span class="p">.</span><span class="n">prefixedText</span> <span class="o">..</span> <span class="s1">&#39;/&#39;</span><span class="p">,</span> </span><span id="L-942"><a href="#L-942"><span class="linenos" data-line="942"></span></a> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;subpages-link-display&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">pagetype</span><span class="p">})</span> </span><span id="L-943"><a href="#L-943"><span class="linenos" data-line="943"></span></a> <span class="p">)</span> </span><span id="L-944"><a href="#L-944"><span class="linenos" data-line="944"></span></a> <span class="kr">return</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;subpages-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">subpagesLink</span><span class="p">})</span> </span><span id="L-945"><a href="#L-945"><span class="linenos" data-line="945"></span></a><span class="kr">end</span> </span><span id="L-946"><a href="#L-946"><span class="linenos" data-line="946"></span></a> </span><span id="L-947"><a href="#L-947"><span class="linenos" data-line="947"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">makePrintBlurb</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span> </span><span id="L-948"><a href="#L-948"><span class="linenos" data-line="948"></span></a> <span class="cm">--[=[</span> </span><span id="L-949"><a href="#L-949"><span class="linenos" data-line="949"></span></a><span class="cm"> -- Generates the blurb displayed when there is a print version of the template available.</span> </span><span id="L-950"><a href="#L-950"><span class="linenos" data-line="950"></span></a><span class="cm"> -- @args - a table of arguments passed by the user</span> </span><span id="L-951"><a href="#L-951"><span class="linenos" data-line="951"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-952"><a href="#L-952"><span class="linenos" data-line="952"></span></a><span class="cm"> --</span> </span><span id="L-953"><a href="#L-953"><span class="linenos" data-line="953"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-954"><a href="#L-954"><span class="linenos" data-line="954"></span></a><span class="cm"> -- &#39;print-link-display&#39; --&gt; &#39;/Print&#39;</span> </span><span id="L-955"><a href="#L-955"><span class="linenos" data-line="955"></span></a><span class="cm"> -- &#39;print-blurb&#39; --&gt; &#39;A [[Help:Books/for experts#Improving the book layout|print version]]&#39;</span> </span><span id="L-956"><a href="#L-956"><span class="linenos" data-line="956"></span></a><span class="cm"> -- .. &#39; of this template exists at $1.&#39;</span> </span><span id="L-957"><a href="#L-957"><span class="linenos" data-line="957"></span></a><span class="cm"> -- .. &#39; If you make a change to this template, please update the print version as well.&#39;</span> </span><span id="L-958"><a href="#L-958"><span class="linenos" data-line="958"></span></a><span class="cm"> -- &#39;display-print-category&#39; --&gt; true</span> </span><span id="L-959"><a href="#L-959"><span class="linenos" data-line="959"></span></a><span class="cm"> -- &#39;print-category&#39; --&gt; &#39;Templates with print versions&#39;</span> </span><span id="L-960"><a href="#L-960"><span class="linenos" data-line="960"></span></a><span class="cm"> --]=]</span> </span><span id="L-961"><a href="#L-961"><span class="linenos" data-line="961"></span></a> <span class="kd">local</span> <span class="n">printTitle</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">printTitle</span> </span><span id="L-962"><a href="#L-962"><span class="linenos" data-line="962"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">printTitle</span> <span class="kr">then</span> </span><span id="L-963"><a href="#L-963"><span class="linenos" data-line="963"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-964"><a href="#L-964"><span class="linenos" data-line="964"></span></a> <span class="kr">end</span> </span><span id="L-965"><a href="#L-965"><span class="linenos" data-line="965"></span></a> <span class="kd">local</span> <span class="n">ret</span> </span><span id="L-966"><a href="#L-966"><span class="linenos" data-line="966"></span></a> <span class="kr">if</span> <span class="n">printTitle</span><span class="p">.</span><span class="n">exists</span> <span class="kr">then</span> </span><span id="L-967"><a href="#L-967"><span class="linenos" data-line="967"></span></a> <span class="kd">local</span> <span class="n">printLink</span> <span class="o">=</span> <span class="n">makeWikilink</span><span class="p">(</span><span class="n">printTitle</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">,</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;print-link-display&#39;</span><span class="p">))</span> </span><span id="L-968"><a href="#L-968"><span class="linenos" data-line="968"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;print-blurb&#39;</span><span class="p">,</span> <span class="p">{</span><span class="n">printLink</span><span class="p">})</span> </span><span id="L-969"><a href="#L-969"><span class="linenos" data-line="969"></span></a> <span class="kd">local</span> <span class="n">displayPrintCategory</span> <span class="o">=</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;display-print-category&#39;</span><span class="p">,</span> <span class="kc">nil</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">)</span> </span><span id="L-970"><a href="#L-970"><span class="linenos" data-line="970"></span></a> <span class="kr">if</span> <span class="n">displayPrintCategory</span> <span class="kr">then</span> </span><span id="L-971"><a href="#L-971"><span class="linenos" data-line="971"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="n">makeCategoryLink</span><span class="p">(</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;print-category&#39;</span><span class="p">))</span> </span><span id="L-972"><a href="#L-972"><span class="linenos" data-line="972"></span></a> <span class="kr">end</span> </span><span id="L-973"><a href="#L-973"><span class="linenos" data-line="973"></span></a> <span class="kr">end</span> </span><span id="L-974"><a href="#L-974"><span class="linenos" data-line="974"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-975"><a href="#L-975"><span class="linenos" data-line="975"></span></a><span class="kr">end</span> </span><span id="L-976"><a href="#L-976"><span class="linenos" data-line="976"></span></a> </span><span id="L-977"><a href="#L-977"><span class="linenos" data-line="977"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-978"><a href="#L-978"><span class="linenos" data-line="978"></span></a><span class="c1">-- Tracking categories</span> </span><span id="L-979"><a href="#L-979"><span class="linenos" data-line="979"></span></a><span class="c1">----------------------------------------------------------------------------</span> </span><span id="L-980"><a href="#L-980"><span class="linenos" data-line="980"></span></a> </span><span id="L-981"><a href="#L-981"><span class="linenos" data-line="981"></span></a><span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">addTrackingCategories</span><span class="p">(</span><span class="n">env</span><span class="p">)</span> </span><span id="L-982"><a href="#L-982"><span class="linenos" data-line="982"></span></a> <span class="cm">--[[</span> </span><span id="L-983"><a href="#L-983"><span class="linenos" data-line="983"></span></a><span class="cm"> -- Check if {{documentation}} is transcluded on a /doc or /testcases page.</span> </span><span id="L-984"><a href="#L-984"><span class="linenos" data-line="984"></span></a><span class="cm"> -- @env - environment table containing title objects, etc., generated with p.getEnvironment</span> </span><span id="L-985"><a href="#L-985"><span class="linenos" data-line="985"></span></a><span class="cm"> </span> </span><span id="L-986"><a href="#L-986"><span class="linenos" data-line="986"></span></a><span class="cm"> -- Messages:</span> </span><span id="L-987"><a href="#L-987"><span class="linenos" data-line="987"></span></a><span class="cm"> -- &#39;display-strange-usage-category&#39; --&gt; true</span> </span><span id="L-988"><a href="#L-988"><span class="linenos" data-line="988"></span></a><span class="cm"> -- &#39;doc-subpage&#39; --&gt; &#39;دستاویز&#39;</span> </span><span id="L-989"><a href="#L-989"><span class="linenos" data-line="989"></span></a><span class="cm"> -- &#39;testcases-subpage&#39; --&gt; &#39;testcases&#39;</span> </span><span id="L-990"><a href="#L-990"><span class="linenos" data-line="990"></span></a><span class="cm"> -- &#39;strange-usage-category&#39; --&gt; &#39;Wikipedia pages with strange ((documentation)) usage&#39;</span> </span><span id="L-991"><a href="#L-991"><span class="linenos" data-line="991"></span></a><span class="cm"> -- </span> </span><span id="L-992"><a href="#L-992"><span class="linenos" data-line="992"></span></a><span class="cm"> -- /testcases pages in the module namespace are not categorised, as they may have</span> </span><span id="L-993"><a href="#L-993"><span class="linenos" data-line="993"></span></a><span class="cm"> -- {{documentation}} transcluded automatically.</span> </span><span id="L-994"><a href="#L-994"><span class="linenos" data-line="994"></span></a><span class="cm"> --]]</span> </span><span id="L-995"><a href="#L-995"><span class="linenos" data-line="995"></span></a> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">title</span> </span><span id="L-996"><a href="#L-996"><span class="linenos" data-line="996"></span></a> <span class="kd">local</span> <span class="n">subjectSpace</span> <span class="o">=</span> <span class="n">env</span><span class="p">.</span><span class="n">subjectSpace</span> </span><span id="L-997"><a href="#L-997"><span class="linenos" data-line="997"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">title</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">subjectSpace</span> <span class="kr">then</span> </span><span id="L-998"><a href="#L-998"><span class="linenos" data-line="998"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-999"><a href="#L-999"><span class="linenos" data-line="999"></span></a> <span class="kr">end</span> </span><span id="L-1000"><a href="#L-1000"><span class="linenos" data-line="1000"></span></a> <span class="kd">local</span> <span class="n">subpage</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">subpageText</span> </span><span id="L-1001"><a href="#L-1001"><span class="linenos" data-line="1001"></span></a> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span> </span><span id="L-1002"><a href="#L-1002"><span class="linenos" data-line="1002"></span></a> <span class="kr">if</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;display-strange-usage-category&#39;</span><span class="p">,</span> <span class="kc">nil</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">)</span> </span><span id="L-1003"><a href="#L-1003"><span class="linenos" data-line="1003"></span></a> <span class="ow">and</span> <span class="p">(</span> </span><span id="L-1004"><a href="#L-1004"><span class="linenos" data-line="1004"></span></a> <span class="n">subpage</span> <span class="o">==</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;doc-subpage&#39;</span><span class="p">)</span> </span><span id="L-1005"><a href="#L-1005"><span class="linenos" data-line="1005"></span></a> <span class="ow">or</span> <span class="n">subjectSpace</span> <span class="o">~=</span> <span class="mi">828</span> <span class="ow">and</span> <span class="n">subpage</span> <span class="o">==</span> <span class="n">message</span><span class="p">(</span><span class="s1">&#39;testcases-subpage&#39;</span><span class="p">)</span> </span><span id="L-1006"><a href="#L-1006"><span class="linenos" data-line="1006"></span></a> <span class="p">)</span> </span><span id="L-1007"><a href="#L-1007"><span class="linenos" data-line="1007"></span></a> <span class="kr">then</span> </span><span id="L-1008"><a href="#L-1008"><span class="linenos" data-line="1008"></span></a> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="n">makeCategoryLink</span><span class="p">(</span><span class="n">message</span><span class="p">(</span><span class="s1">&#39;strange-usage-category&#39;</span><span class="p">))</span> </span><span id="L-1009"><a href="#L-1009"><span class="linenos" data-line="1009"></span></a> <span class="kr">end</span> </span><span id="L-1010"><a href="#L-1010"><span class="linenos" data-line="1010"></span></a> <span class="kr">return</span> <span class="n">ret</span> </span><span id="L-1011"><a href="#L-1011"><span class="linenos" data-line="1011"></span></a><span class="kr">end</span> </span><span id="L-1012"><a href="#L-1012"><span class="linenos" data-line="1012"></span></a> </span><span id="L-1013"><a href="#L-1013"><span class="linenos" data-line="1013"></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‐nhjg5 Cached time: 20241124135408 Cache expiry: 2592000 Reduced expiry: false Complications: [] CPU time usage: 0.015 seconds Real time usage: 0.028 seconds Preprocessor visited node count: 31/1000000 Post‐expand include size: 1559/2097152 bytes Template argument size: 52/2097152 bytes Highest expansion depth: 5/100 Expensive parser function count: 2/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 942/5000000 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 19.299 1 ماڈیول:Documentation/doc 100.00% 19.299 1 -total 27.21% 5.251 2 سانچہ:Tl 9.38% 1.811 2 سانچہ:پنجابی_گنتی --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">"<a dir="ltr" href="https://pnb.wikipedia.org/w/index.php?title=ماڈیول:Documentation&amp;oldid=582814">https://pnb.wikipedia.org/w/index.php?title=ماڈیول:Documentation&amp;oldid=582814</a>" توں لیا</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%D8%AE%D8%A7%D8%B5:Categories" title="خاص:Categories">گٹھ</a>: ؜<ul><li><a href="/w/index.php?title=%DA%AF%D9%B9%DA%BE:Pages_using_deprecated_source_tags&amp;action=edit&amp;redlink=1" class="new" title="گٹھ:Pages using deprecated source tags (صفحہ مَوجود نہیں اے)">Pages using deprecated source tags</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"> ایس صفحے وچ آخری سودھ ۲۰ مارچ ۲۰۲۱ نوں ۲۰:۱۶ وجے ہوئی۔</li> <li id="footer-info-copyright">لکھت <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/">کریئیٹیو کامنز انتساب/ اکوجہے-شراکت لائسنس</a> دے ہیٹھ دستیاب اے، ہور شرطاں وی لاگو ہوسکدیاں نیں۔ ویروے لئی <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">ورتن شرطاں</a> دیکھو۔</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">پردہ داری</a></li> <li id="footer-places-about"><a href="/wiki/%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D8%A8%D8%A7%D8%B1%DB%92">وکیپیڈیا بارے</a></li> <li id="footer-places-disclaimers"><a href="/wiki/%D9%88%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D8%B9%D8%A7%D9%85_%D8%AF%D8%B9%D9%88%DB%92">دعوے داری</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">ترقی دین والے</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/pnb.wikipedia.org">انکڑے</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">کوکی تفصیلاں</a></li> <li id="footer-places-mobileview"><a href="//pnb.m.wikipedia.org/w/index.php?title=%D9%85%D8%A7%DA%88%DB%8C%D9%88%D9%84:Documentation&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">موبائیل سائٹ</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-nhjg5","wgBackendResponseTime":356,"wgPageParseReport":{"limitreport":{"cputime":"0.015","walltime":"0.028","ppvisitednodes":{"value":31,"limit":1000000},"postexpandincludesize":{"value":1559,"limit":2097152},"templateargumentsize":{"value":52,"limit":2097152},"expansiondepth":{"value":5,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":942,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 19.299 1 ماڈیول:Documentation/doc","100.00% 19.299 1 -total"," 27.21% 5.251 2 سانچہ:Tl"," 9.38% 1.811 2 سانچہ:پنجابی_گنتی"]},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-nhjg5","timestamp":"20241124135408","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

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