<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://outwar.info/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AFile_link</id>
	<title>Module:File link - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://outwar.info/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AFile_link"/>
	<link rel="alternate" type="text/html" href="https://outwar.info/w/index.php?title=Module:File_link&amp;action=history"/>
	<updated>2026-04-03T17:54:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://outwar.info/w/index.php?title=Module:File_link&amp;diff=97&amp;oldid=prev</id>
		<title>Wangsta thug: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://outwar.info/w/index.php?title=Module:File_link&amp;diff=97&amp;oldid=prev"/>
		<updated>2023-07-09T22:27:42Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module provides a library for formatting file wikilinks.&lt;br /&gt;
&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local checkType = require(&amp;#039;libraryUtil&amp;#039;).checkType&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	checkType(&amp;#039;_main&amp;#039;, 1, args, &amp;#039;table&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our&lt;br /&gt;
	-- own function to get the right error level.&lt;br /&gt;
	local function checkArg(key, val, level)&lt;br /&gt;
		if type(val) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
			error(string.format(&lt;br /&gt;
				&amp;quot;type error in &amp;#039;%s&amp;#039; parameter of &amp;#039;_main&amp;#039; (expected string, got %s)&amp;quot;,&lt;br /&gt;
				key, type(val)&lt;br /&gt;
			), level)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret = {}&lt;br /&gt;
&lt;br /&gt;
	-- Adds a positional parameter to the buffer.&lt;br /&gt;
	local function addPositional(key)&lt;br /&gt;
		local val = args[key]&lt;br /&gt;
		if not val then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		checkArg(key, val, 4)&lt;br /&gt;
		ret[#ret + 1] = val&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Adds a named parameter to the buffer. We assume that the parameter name&lt;br /&gt;
	-- is the same as the argument key.&lt;br /&gt;
	local function addNamed(key)&lt;br /&gt;
		local val = args[key]&lt;br /&gt;
		if not val then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		checkArg(key, val, 4)&lt;br /&gt;
		ret[#ret + 1] = key .. &amp;#039;=&amp;#039; .. val&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Filename&lt;br /&gt;
	checkArg(&amp;#039;file&amp;#039;, args.file, 3)&lt;br /&gt;
	ret[#ret + 1] = &amp;#039;File:&amp;#039; .. args.file&lt;br /&gt;
&lt;br /&gt;
	-- Format&lt;br /&gt;
	if args.format then&lt;br /&gt;
		checkArg(&amp;#039;format&amp;#039;, args.format)&lt;br /&gt;
		if args.formatfile then&lt;br /&gt;
			checkArg(&amp;#039;formatfile&amp;#039;, args.formatfile)&lt;br /&gt;
			ret[#ret + 1] = args.format .. &amp;#039;=&amp;#039; .. args.formatfile&lt;br /&gt;
		else&lt;br /&gt;
			ret[#ret + 1] = args.format&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Border&lt;br /&gt;
	if yesno(args.border) then&lt;br /&gt;
		ret[#ret + 1] = &amp;#039;border&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	addPositional(&amp;#039;location&amp;#039;)&lt;br /&gt;
	addPositional(&amp;#039;alignment&amp;#039;)&lt;br /&gt;
	addPositional(&amp;#039;size&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;upright&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;link&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;alt&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;page&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;class&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;lang&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;start&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;end&amp;#039;)&lt;br /&gt;
	addNamed(&amp;#039;thumbtime&amp;#039;)&lt;br /&gt;
	addPositional(&amp;#039;caption&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	return string.format(&amp;#039;[[%s]]&amp;#039;, table.concat(ret, &amp;#039;|&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &amp;#039;Template:File link&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	if not origArgs.file then&lt;br /&gt;
		error(&amp;quot;&amp;#039;file&amp;#039; parameter missing from [[Template:File link]]&amp;quot;, 0)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Copy the arguments that were passed to a new table to avoid looking up&lt;br /&gt;
	-- every possible parameter in the frame object.&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		-- Make _BLANK a special argument to add a blank parameter. For use in&lt;br /&gt;
		-- conditional templates etc. it is useful for blank arguments to be&lt;br /&gt;
		-- ignored, but we still need a way to specify them so that we can do&lt;br /&gt;
		-- things like [[File:Example.png|link=]].&lt;br /&gt;
		if v == &amp;#039;_BLANK&amp;#039; then&lt;br /&gt;
			v = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Wangsta thug</name></author>
	</entry>
</feed>