<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FWnt%2FWikiLink</id>
	<title>Module:Sandbox/Wnt/WikiLink - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FWnt%2FWikiLink"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Wnt/WikiLink&amp;action=history"/>
	<updated>2026-06-07T05:55:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Wnt/WikiLink&amp;diff=146428&amp;oldid=prev</id>
		<title>imported&gt;Amorymeltzer: Removed protection from &quot;Module:Sandbox/Wnt/WikiLink&quot;: Remove protection, no longer heavily used after move, see Wikipedia:Templates_for_discussion/Log/2019_October_29#Module:WikiLink</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Wnt/WikiLink&amp;diff=146428&amp;oldid=prev"/>
		<updated>2019-11-14T10:42:19Z</updated>

		<summary type="html">&lt;p&gt;Removed protection from &amp;quot;&lt;a href=&quot;/research/Module:Sandbox/Wnt/WikiLink&quot; title=&quot;Module:Sandbox/Wnt/WikiLink&quot;&gt;Module:Sandbox/Wnt/WikiLink&lt;/a&gt;&amp;quot;: Remove protection, no longer heavily used after move, see &lt;a href=&quot;https://en.wikipedia.org/wiki/Templates_for_discussion/Log/2019_October_29#Module:WikiLink&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Templates for discussion/Log/2019 October 29&quot;&gt;Wikipedia:Templates_for_discussion/Log/2019_October_29#Module:WikiLink&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function proc(text,fcn,args) -- processes text sequentially according to a list of functions separated by spaces fcn&lt;br /&gt;
    text=text or &amp;quot;&amp;quot;&lt;br /&gt;
    fcn=fcn or &amp;quot;&amp;quot;&lt;br /&gt;
    local keepfile&lt;br /&gt;
    repeat&lt;br /&gt;
        fcnext=mw.ustring.match(fcn,&amp;quot;(%S+)&amp;quot;)&lt;br /&gt;
        if fcnext then&lt;br /&gt;
            fcn=mw.ustring.gsub(fcn,fcnext,&amp;quot;&amp;quot;) -- function names SHALL not contain pattern chars&lt;br /&gt;
            if fcnext==&amp;quot;dewiki&amp;quot; then          &lt;br /&gt;
                 -- protect all single [ and ] by temporarily converting to a password.  This allows links to remain inside file text while doing only a dewiki&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;([^%[])%[([^%[])&amp;quot;,&amp;quot;%1&amp;lt;Module:WikiLink internal lsbracket token&amp;gt;%2&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;^%[([^%[])&amp;quot;,&amp;quot;&amp;lt;Module:WikiLink internal lsbracket token&amp;gt;%1&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;([^%[])%[$&amp;quot;,&amp;quot;%1&amp;lt;Module:WikiLink internal lsbracket token&amp;gt;&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;([^%]])%]([^%]])&amp;quot;,&amp;quot;%1&amp;lt;Module:WikiLink internal rsbracket token&amp;gt;%2&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;^%]([^%]])&amp;quot;,&amp;quot;&amp;lt;Module:WikiLink internal rsbracket token&amp;gt;%1&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;([^%]])%]$&amp;quot;,&amp;quot;%1&amp;lt;Module:WikiLink internal rsbracket token&amp;gt;&amp;quot;)&lt;br /&gt;
                if keepfile then&lt;br /&gt;
                    text=mw.ustring.gsub(text,&amp;quot;%[%[%s*File:([^%[%]])%]%]&amp;quot;,&amp;quot;&amp;lt;Module:WikiLink internal filestart token&amp;gt;%1&amp;lt;Module:WikiLink internal 2rsbracket token&amp;gt;&amp;quot;)&lt;br /&gt;
                    text=mw.ustring.gsub(text,&amp;quot;%[%[%s*Image:([^%[%]])%]%]&amp;quot;,&amp;quot;&amp;lt;Module:WikiLink internal imagestart token&amp;gt;%1&amp;lt;Module:WikiLink internal 2rsbracket token&amp;gt;&amp;quot;)                &lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                 -- process File: and Image: links, using alt text when available&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[File:[^%[%]]-|%s*alt=([^%[%]|]-)|[^%[%]]-%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- case for File: where alt= text is present but not at end&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[Image:[^%[%]]-|%s*alt=([^%[%]|]-)|[^%[%]]-%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- case for Image: where alt= text is present but not at end&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[File:[^%[%]]-|%s*alt=([^%[%]|]-)%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- case for File: where alt= text is present at end&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[Image:[^%[%]]-|%s*alt=([^%[%]|]-)%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- case for Image: where alt= text is present at end&lt;br /&gt;
                &lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[[^%[%]]-|([^%[%]|]-)%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- link, text separated by &amp;quot;|&amp;quot;.  Handles case of File: when no alt= is specified, -assuming- last field is the legend&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%[([^%[%]|]-)%]%]&amp;quot;,&amp;quot;%1&amp;quot;) -- link with no funny |s at all&lt;br /&gt;
                 -- deprotect all tokens&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;&amp;lt;Module:WikiLink internal lsbracket token&amp;gt;&amp;quot;,&amp;quot;[&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;&amp;lt;Module:WikiLink internal rsbracket token&amp;gt;&amp;quot;,&amp;quot;]&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;&amp;lt;Module:WikiLink internal filestart token&amp;gt;&amp;quot;,&amp;quot;[[File:&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;&amp;lt;Module:WikiLink internal imagestart token&amp;gt;&amp;quot;,&amp;quot;[[Image:&amp;quot;)&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;&amp;lt;Module:WikiLink internal 2rsbracket token&amp;gt;&amp;quot;,&amp;quot;]]&amp;quot;)&lt;br /&gt;
                &lt;br /&gt;
            elseif fcnext==&amp;quot;delink&amp;quot; then&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;%[%s*http://%S*%s+([^%]%[]+)%]&amp;quot;,&amp;quot;%1&amp;quot;)&lt;br /&gt;
            elseif fcnext==&amp;quot;wikiall&amp;quot; then&lt;br /&gt;
                if args.space then&lt;br /&gt;
                    text=mw.ustring.gsub(text, &amp;quot;([^ %p]) &amp;quot;, &amp;quot;%1#spacetoken#&amp;quot;)&lt;br /&gt;
                    text=mw.ustring.gsub(text,&amp;quot;(%S+)&amp;quot;,&amp;quot;[[%1]]&amp;quot;)&lt;br /&gt;
                    text=mw.ustring.gsub(text, &amp;quot;(%S)#spacetoken#(%S)&amp;quot;, &amp;quot;%1 %2&amp;quot;)&lt;br /&gt;
                else&lt;br /&gt;
                    text=mw.ustring.gsub(text,&amp;quot;(%S+)&amp;quot;,&amp;quot;[[%1]]&amp;quot;)&lt;br /&gt;
                end&lt;br /&gt;
            elseif fcnext==&amp;quot;wikiline&amp;quot; then&lt;br /&gt;
                text=mw.ustring.gsub(text,&amp;quot;([^\n]+)&amp;quot;,&amp;quot;[[%1]]&amp;quot;)&lt;br /&gt;
            elseif fcnext==&amp;quot;keepfile&amp;quot; then&lt;br /&gt;
                keepfile=true&lt;br /&gt;
            end -- if fcnext==etc.&lt;br /&gt;
            if args.external then&lt;br /&gt;
            	text = mw.ustring.gsub(text,&amp;quot;%[%[([^%[%]]*)%]%]&amp;quot;, function(x) return &amp;quot;[&amp;quot; .. args.external .. mw.ustring.gsub(mw.text.encode(x),&amp;quot; &amp;quot;,&amp;quot;_&amp;quot;) .. &amp;quot; &amp;quot; .. x .. &amp;quot;]&amp;quot; end)&lt;br /&gt;
            end&lt;br /&gt;
        end -- if fcnext&lt;br /&gt;
    until not fcnext&lt;br /&gt;
    return text --- when all functions are used up (or no valid function given) return the input text straight&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
function p.main(frame,fcn) -- gets the parameters and sets up to call proc&lt;br /&gt;
    local args=frame.args&lt;br /&gt;
    local parent=frame.getParent(frame)&lt;br /&gt;
    if parent then pargs=parent.args else pargs={} end&lt;br /&gt;
    local text=args.text or args[1] or pargs.text or pargs[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local nowiki=args.nowiki or pargs.nowiki&lt;br /&gt;
    fcn=(fcn or &amp;quot;&amp;quot;) ..  (args[&amp;quot;function&amp;quot;] or pargs[&amp;quot;function&amp;quot;] or &amp;quot;&amp;quot;)  &lt;br /&gt;
    --local page=mw.title.getCurrentTitle() --- in the long run this cheesy tactic won&amp;#039;t fly - I should rewrite as a proper module and recommend Module:Page invocation in the #invoke instead.&lt;br /&gt;
    --if page then text=page.getContent(page) else return &amp;quot;error didn&amp;#039;t get the page contents :(&amp;quot; end&lt;br /&gt;
    text=proc(text,fcn,args)&lt;br /&gt;
    if nowiki then text=&amp;quot;&amp;lt;nowiki&amp;gt;&amp;quot; .. text .. &amp;quot;&amp;lt;/nowiki&amp;gt;&amp;quot; end&lt;br /&gt;
    return frame:preprocess(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 --- the function &amp;quot;parameter&amp;quot; is added to the beginning of the list of functions to be performed as specified by &amp;quot;function =&amp;quot;.&lt;br /&gt;
function p.dewiki(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;dewiki &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.delink(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;delink &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.wikiall(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;wikiall &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.wikiline(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;wikiline &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.keepfile(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;keepfile &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.keepfile_dewiki(frame)&lt;br /&gt;
    return p.main(frame,&amp;quot;keepfile dewiki&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Amorymeltzer</name></author>
	</entry>
</feed>