<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://the.satanic.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ALinkTemplate</id>
	<title>Module:LinkTemplate - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://the.satanic.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ALinkTemplate"/>
	<link rel="alternate" type="text/html" href="https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;action=history"/>
	<updated>2026-04-08T08:17:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=11069&amp;oldid=prev</id>
		<title>WikiGOD at 05:50, 2 May 2021</title>
		<link rel="alternate" type="text/html" href="https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=11069&amp;oldid=prev"/>
		<updated>2021-05-02T05:50:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:50, 2 May 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @description  Module for creating link templates.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @description  Module for creating link templates.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @version      1.4&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @version      1.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @usage        require(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dev&lt;/del&gt;:LinkTemplate&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @usage        require(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Module:&lt;/ins&gt;:LinkTemplate&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @author       TheGoldenPatrik1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @author       TheGoldenPatrik1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @release      Stable&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @release      Stable&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local p = {}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local p = {}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18n = require(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dev&lt;/del&gt;:I18n&#039;).loadMessages(&#039;LinkTemplate&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local i18n = require(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Module:&lt;/ins&gt;:I18n&#039;).loadMessages(&#039;LinkTemplate&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local userError = require(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dev&lt;/del&gt;:User error&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local userError = require(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Module:&lt;/ins&gt;:User error&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @method       p.full&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- @method       p.full&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zzegtzyr_mw19226-mwjf_:diff:1.41:old-10926:rev-11069:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiGOD</name></author>
	</entry>
	<entry>
		<id>https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=10926&amp;oldid=prev</id>
		<title>WikiGOD: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=10926&amp;oldid=prev"/>
		<updated>2021-04-30T02:23:58Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:23, 30 April 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key zzegtzyr_mw19226-mwjf_:diff:1.41:old-10925:rev-10926 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiGOD</name></author>
	</entry>
	<entry>
		<id>https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=10925&amp;oldid=prev</id>
		<title>Mediawiki&gt;DarthKitty: tidy whitespace</title>
		<link rel="alternate" type="text/html" href="https://the.satanic.wiki/index.php?title=Module:LinkTemplate&amp;diff=10925&amp;oldid=prev"/>
		<updated>2019-01-23T16:02:08Z</updated>

		<summary type="html">&lt;p&gt;tidy whitespace&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- @protect      &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-- @module       LinkTemplate&lt;br /&gt;
-- @description  Module for creating link templates.&lt;br /&gt;
-- @version      1.4&lt;br /&gt;
-- @usage        require(&amp;#039;Dev:LinkTemplate&amp;#039;)&lt;br /&gt;
-- @author       TheGoldenPatrik1&lt;br /&gt;
-- @release      Stable&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local i18n = require(&amp;#039;Dev:I18n&amp;#039;).loadMessages(&amp;#039;LinkTemplate&amp;#039;)&lt;br /&gt;
local userError = require(&amp;#039;Dev:User error&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- @method       p.full&lt;br /&gt;
-- @description  Creates an fullurl link with URL parameters&lt;br /&gt;
-- @param        {String} link - The page to link to&lt;br /&gt;
-- @param        {String} params - The URL parameters&lt;br /&gt;
-- @param        {String} text - The link text&lt;br /&gt;
function p.full(link, params, text)&lt;br /&gt;
    return &amp;#039;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[&amp;#039; .. tostring(mw.uri.canonicalUrl(link, params)) .. &amp;#039; &amp;#039; .. (text or link) .. &amp;#039;]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.link&lt;br /&gt;
-- @description  Creates an internal link&lt;br /&gt;
-- @param        {String} link - The page to link to&lt;br /&gt;
-- @param        {String} text - The link text&lt;br /&gt;
function p.link(link, text)&lt;br /&gt;
    return &amp;#039;[[:&amp;#039; .. link .. &amp;#039;|&amp;#039; .. (text or link) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.plain&lt;br /&gt;
-- @description  Creates an external plainlink&lt;br /&gt;
-- @param        {String} link - The URL to link to&lt;br /&gt;
-- @param        {String} text - The link text&lt;br /&gt;
function p.plain(link, text)&lt;br /&gt;
    return &amp;#039;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[&amp;#039; .. link .. &amp;#039; &amp;#039; .. text .. &amp;#039;]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.external&lt;br /&gt;
-- @description  Creates plainlinks to other websites&lt;br /&gt;
-- @param        {String} defaultLink - The default link&lt;br /&gt;
-- @param        {String} defaultText - The default text&lt;br /&gt;
-- @param        {String} paramA - The first arg&lt;br /&gt;
-- @param        {String} paramB - The second arg&lt;br /&gt;
function p.external(defaultLink, defaultText, paramA, paramB)&lt;br /&gt;
    if defaultLink then&lt;br /&gt;
        return p.plain(defaultLink, paramA or defaultText or defaultLink)&lt;br /&gt;
    elseif paramA then&lt;br /&gt;
        return p.plain(paramA, paramB or defaultText or paramA)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.interwiki&lt;br /&gt;
-- @description  Generates interwiki links&lt;br /&gt;
-- @param        {String} prefix - The link prefix&lt;br /&gt;
-- @param        {String} suffix - The link suffix&lt;br /&gt;
-- @param        {String} wiki - The wiki to link to&lt;br /&gt;
-- @param        {String} wikiName - The wiki&amp;#039;s name&lt;br /&gt;
-- @param        {String} paramA - The first arg&lt;br /&gt;
-- @param        {String} paramB - The second arg&lt;br /&gt;
-- @param        {String} url - The url arg&lt;br /&gt;
function p.interwiki(prefix, suffix, wiki, wikiName, paramA, paramB, url)&lt;br /&gt;
    if url then&lt;br /&gt;
        local uri = url:gsub(&amp;#039;-&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
        if not paramA then&lt;br /&gt;
            return p.full(prefix .. wiki .. suffix, uri, paramB or wikiName)&lt;br /&gt;
        elseif paramB == &amp;#039;f&amp;#039; or paramB == &amp;#039;F&amp;#039; then&lt;br /&gt;
            return p.full(prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA, uri, prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA)&lt;br /&gt;
        else&lt;br /&gt;
            return p.full(prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA, uri, paramB or paramA)&lt;br /&gt;
        end&lt;br /&gt;
    elseif not paramA then&lt;br /&gt;
        return p.link(prefix .. wiki .. suffix, paramB or wikiName)&lt;br /&gt;
    elseif paramB == &amp;#039;f&amp;#039; or paramB == &amp;#039;F&amp;#039; then&lt;br /&gt;
        return p.link(prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA, prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA)&lt;br /&gt;
    else&lt;br /&gt;
        return p.link(prefix .. wiki .. &amp;#039;:&amp;#039; .. paramA, paramB or paramA)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.namespace&lt;br /&gt;
-- @description  Generates namespace links&lt;br /&gt;
-- @param        {String} namespace - The namespace to link to&lt;br /&gt;
-- @param        {String} paramA - The first arg&lt;br /&gt;
-- @param        {String} paramB - The second arg&lt;br /&gt;
-- @param        {String} url - The url arg&lt;br /&gt;
function p.namespace(namespace, paramA, paramB, url)&lt;br /&gt;
    local ns = mw.site.namespaces[tonumber(namespace)].name&lt;br /&gt;
    local title = i18n:useContentLang():msg(&amp;#039;ns&amp;#039;, ns .. &amp;#039;:&amp;#039;)&lt;br /&gt;
    local special = i18n:useContentLang():msg(&amp;#039;special&amp;#039;, ns)&lt;br /&gt;
    if url then&lt;br /&gt;
        local uri = url:gsub(&amp;#039;-&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
        if not paramA then&lt;br /&gt;
            if namespace == &amp;#039;-1&amp;#039; then&lt;br /&gt;
                return p.full(&amp;#039;Special:SpecialPages&amp;#039;, uri, paramB or &amp;#039;&amp;lt;span title=\&amp;quot;&amp;#039; .. special .. &amp;#039;\&amp;quot;&amp;gt;&amp;#039; .. ns .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
            else&lt;br /&gt;
                return p.full(&amp;#039;Special:PrefixIndex/&amp;#039; .. ns .. &amp;#039;:&amp;#039;, uri, paramB or &amp;#039;&amp;lt;span title=\&amp;quot;&amp;#039; .. title .. &amp;#039;\&amp;quot;&amp;gt;&amp;#039; .. ns .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
            end&lt;br /&gt;
        elseif paramB == &amp;#039;f&amp;#039; or paramB == &amp;#039;F&amp;#039; then&lt;br /&gt;
            return p.full(ns .. &amp;#039;:&amp;#039; .. paramA, uri)&lt;br /&gt;
        else&lt;br /&gt;
            return p.full(ns .. &amp;#039;:&amp;#039; .. paramA, uri, paramB or paramA)&lt;br /&gt;
        end&lt;br /&gt;
    elseif not paramA then&lt;br /&gt;
        if namespace == &amp;#039;-1&amp;#039; then&lt;br /&gt;
            return p.link(&amp;#039;Special:SpecialPages&amp;#039;, paramB or &amp;#039;&amp;lt;span title=\&amp;quot;&amp;#039; .. special .. &amp;#039;\&amp;quot;&amp;gt;&amp;#039; .. ns .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            return p.link(&amp;#039;Special:PrefixIndex/&amp;#039; .. ns .. &amp;#039;:&amp;#039;, paramB or &amp;#039;&amp;lt;span title=\&amp;quot;&amp;#039; .. title .. &amp;#039;\&amp;quot;&amp;gt;&amp;#039; .. ns .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    elseif paramB == &amp;#039;f&amp;#039; or paramB == &amp;#039;F&amp;#039; then&lt;br /&gt;
        return p.link(ns .. &amp;#039;:&amp;#039; .. paramA)&lt;br /&gt;
    else&lt;br /&gt;
        return p.link(ns .. &amp;#039;:&amp;#039; .. paramA, paramB or paramA)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.page&lt;br /&gt;
-- @description  Generates links to pages&lt;br /&gt;
-- @param        {String} page - The page to link to&lt;br /&gt;
-- @param        {String} defaultText - The template&amp;#039;s default text&lt;br /&gt;
-- @param        {String} paramA - The first arg&lt;br /&gt;
-- @param        {String} url - The url arg&lt;br /&gt;
function p.page(page, defaultText, paramA, url)&lt;br /&gt;
    if url then&lt;br /&gt;
        return p.full(page, url:gsub(&amp;#039;-&amp;#039;, &amp;#039;=&amp;#039;), paramA or defaultText or page)&lt;br /&gt;
    else&lt;br /&gt;
        return p.link(page, paramA or defaultText or page)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- @method       p.main&lt;br /&gt;
-- @description  The main function; determines what to do&lt;br /&gt;
-- @param        {String} frame - User input&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local linkType = frame.args[1]&lt;br /&gt;
    local data = frame.args[2]&lt;br /&gt;
    local defaultText = frame.args[3]&lt;br /&gt;
    local pargs = frame:getParent().args&lt;br /&gt;
    local paramA = pargs[1]&lt;br /&gt;
    local paramB = pargs[2]&lt;br /&gt;
    local url = pargs[&amp;#039;url&amp;#039;]&lt;br /&gt;
    local cat = &amp;#039;Pages with user errors&amp;#039;&lt;br /&gt;
    if linkType == &amp;#039;ns&amp;#039; then&lt;br /&gt;
        if data then&lt;br /&gt;
            return p.namespace(data, paramA, paramB, url)&lt;br /&gt;
        else&lt;br /&gt;
            return userError(&amp;#039;no namespace specified&amp;#039;, cat)&lt;br /&gt;
        end&lt;br /&gt;
    elseif linkType == &amp;#039;wiki&amp;#039; then&lt;br /&gt;
        if data and defaultText then&lt;br /&gt;
            return p.interwiki(&amp;#039;w:c:&amp;#039;, &amp;#039;&amp;#039;, data, defaultText, paramA, paramB, url)&lt;br /&gt;
        else&lt;br /&gt;
            return userError(&amp;#039;no wiki specified&amp;#039;, cat)&lt;br /&gt;
        end&lt;br /&gt;
    elseif linkType == &amp;#039;mediawiki&amp;#039; then&lt;br /&gt;
        if data and defaultText then&lt;br /&gt;
            return p.interwiki(&amp;#039;&amp;#039;, &amp;#039;:&amp;#039;, data, defaultText, paramA, paramB, url)&lt;br /&gt;
        else&lt;br /&gt;
            return userError(&amp;#039;no data specified&amp;#039;, cat)&lt;br /&gt;
        end&lt;br /&gt;
    elseif linkType == &amp;#039;page&amp;#039; then&lt;br /&gt;
        if data then&lt;br /&gt;
            return p.page(data, defaultText, paramA, url)&lt;br /&gt;
        else&lt;br /&gt;
            return userError(&amp;#039;no page specified&amp;#039;, cat)&lt;br /&gt;
        end&lt;br /&gt;
    elseif linkType == &amp;#039;external&amp;#039; then&lt;br /&gt;
        return p.external(data, defaultText, paramA, paramB)&lt;br /&gt;
    else&lt;br /&gt;
        return userError(&amp;#039;invalid link type&amp;#039;, cat)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Mediawiki&gt;DarthKitty</name></author>
	</entry>
</feed>