<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikistudy.byjuho.fi/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AFootnotes</id>
	<title>Module:Footnotes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wikistudy.byjuho.fi/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AFootnotes"/>
	<link rel="alternate" type="text/html" href="https://wikistudy.byjuho.fi/w/index.php?title=Module:Footnotes&amp;action=history"/>
	<updated>2026-04-06T05:24:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikistudy.byjuho.fi/w/index.php?title=Module:Footnotes&amp;diff=2182&amp;oldid=prev</id>
		<title>Jukeboksi: 1 revision: Importing citation templates based on the ones shown in  w:Wikipedia:Citation templates</title>
		<link rel="alternate" type="text/html" href="https://wikistudy.byjuho.fi/w/index.php?title=Module:Footnotes&amp;diff=2182&amp;oldid=prev"/>
		<updated>2015-01-30T17:06:38Z</updated>

		<summary type="html">&lt;p&gt;1 revision: Importing citation templates based on the ones shown in  &lt;a href=&quot;https://www.wikipedia.org/wiki/Wikipedia:Citation_templates&quot; class=&quot;extiw&quot; title=&quot;w:Wikipedia:Citation templates&quot;&gt;w:Wikipedia:Citation templates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;f = {&lt;br /&gt;
	args_default = {&lt;br /&gt;
		bracket_left = &amp;quot;&amp;quot;,&lt;br /&gt;
		bracket_right = &amp;quot;&amp;quot;,&lt;br /&gt;
		bracket_year_left = &amp;quot;&amp;quot;,&lt;br /&gt;
		bracket_year_right = &amp;quot;&amp;quot;,&lt;br /&gt;
		postscript = &amp;quot;&amp;quot;,&lt;br /&gt;
		page = &amp;quot;&amp;quot;,&lt;br /&gt;
		pages = &amp;quot;&amp;quot;,&lt;br /&gt;
		location = &amp;quot;&amp;quot;,&lt;br /&gt;
		page_sep = &amp;quot;, p.&amp;amp;nbsp;&amp;quot;,&lt;br /&gt;
		pages_sep = &amp;quot;, pp.&amp;amp;nbsp;&amp;quot;,&lt;br /&gt;
		ref = &amp;quot;&amp;quot;,&lt;br /&gt;
		P1 = &amp;quot;&amp;quot;,&lt;br /&gt;
		P2 = &amp;quot;&amp;quot;,&lt;br /&gt;
		P3 = &amp;quot;&amp;quot;,&lt;br /&gt;
		P4 = &amp;quot;&amp;quot;,&lt;br /&gt;
		P5 = &amp;quot;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function trim( str )&lt;br /&gt;
	if str == nil then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
	return str:match( &amp;quot;^%s*(.-)%s*$&amp;quot;);&lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
function core( args )&lt;br /&gt;
	local result;&lt;br /&gt;
&lt;br /&gt;
	if args.P5 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = args.P1 .. &amp;#039; et al. &amp;#039; .. args.bracket_year_left .. args.P5 .. &lt;br /&gt;
		args.bracket_year_right;&lt;br /&gt;
	elseif args.P4 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = args.P1 .. &amp;#039;, &amp;#039; .. args.P2 .. &amp;#039; &amp;amp;amp; &amp;#039; .. args.P3 .. &amp;#039; &amp;#039; .. &lt;br /&gt;
		args.bracket_year_left .. args.P4 .. args.bracket_year_right;&lt;br /&gt;
	elseif args.P3 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = args.P1 .. &amp;#039; &amp;amp;amp; &amp;#039; .. args.P2 .. &amp;#039; &amp;#039; .. args.bracket_year_left .. &lt;br /&gt;
		args.P3 .. args.bracket_year_right;&lt;br /&gt;
	else&lt;br /&gt;
		result = trim( args.P1 .. &amp;#039; &amp;#039; .. args.bracket_year_left .. args.P2 .. &lt;br /&gt;
		args.bracket_year_right )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.ref ~= &amp;#039;none&amp;#039; then&lt;br /&gt;
		if args.ref ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			result = &amp;quot;[[#&amp;quot; .. mw.uri.anchorEncode(args.ref) .. &amp;quot;|&amp;quot; .. result .. &amp;quot;]]&amp;quot;;&lt;br /&gt;
		else&lt;br /&gt;
			result = &amp;quot;[[#CITEREF&amp;quot; .. mw.uri.anchorEncode(args.P1 .. args.P2 .. args.P3 .. args.P4 .. args.P5) .. &amp;quot;|&amp;quot; .. result .. &amp;quot;]]&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.page ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = result .. args.page_sep .. args.page;&lt;br /&gt;
	elseif args.pages ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = result .. args.pages_sep .. args.pages;&lt;br /&gt;
	end      &lt;br /&gt;
&lt;br /&gt;
	if args.location ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = result .. &amp;quot;, &amp;quot; .. args.location;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	result = args.bracket_left .. result .. args.bracket_right .. args.postscript;&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function f.harvard_core( frame )&lt;br /&gt;
	local args = {};&lt;br /&gt;
	local pframe = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	args.bracket_left = pframe.args.BracketLeft or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.bracket_right = pframe.args.BracketRight or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.bracket_year_left = pframe.args.BracketYearLeft or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.bracket_year_right = pframe.args.BracketYearRight or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.postscript = pframe.args.Postscript or &amp;quot;&amp;quot;;&lt;br /&gt;
	if &amp;#039;none&amp;#039; == args.postscript then&lt;br /&gt;
		args.postscript = &amp;#039;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	args.page = pframe.args.Page or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.pages = pframe.args.Pages or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.location = pframe.args.Location or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.page_sep = pframe.args.PageSep or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.pages_sep = pframe.args.PagesSep or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.ref = pframe.args.REF or &amp;quot;{{{REF}}}&amp;quot;;&lt;br /&gt;
	args.P1 = trim( pframe.args.P1 ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P2 = trim( pframe.args.P2 ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P3 = trim( pframe.args.P3 ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P4 = trim( pframe.args.P4 ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P5 = trim( pframe.args.P5 ) or &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	return core( args );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function f.harvard_citation( frame )&lt;br /&gt;
	local args = f.args_default;&lt;br /&gt;
	pframe = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	args.bracket_left = &amp;quot;(&amp;quot;;&lt;br /&gt;
	args.bracket_right = &amp;quot;)&amp;quot;;&lt;br /&gt;
	args.page = pframe.args.p or pframe.args.page or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.pages = pframe.args.pp or pframe.args.pages or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.location = pframe.args.loc or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.ref = pframe.args.ref or pframe.args.Ref or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P1 = trim( pframe.args[1] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P2 = trim( pframe.args[2] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P3 = trim( pframe.args[3] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P4 = trim( pframe.args[4] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P5 = trim( pframe.args[5] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	return core( args );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function f.harvard_citation_no_bracket( frame )&lt;br /&gt;
	local args = f.args_default;&lt;br /&gt;
	pframe = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	args.page = pframe.args.p or pframe.args.page or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.pages = pframe.args.pp or pframe.args.pages or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.location = pframe.args.loc or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.ref = pframe.args.ref or pframe.args.Ref or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P1 = trim( pframe.args[1] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P2 = trim( pframe.args[2] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P3 = trim( pframe.args[3] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P4 = trim( pframe.args[4] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P5 = trim( pframe.args[5] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	return core( args );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function f.sfn( frame )&lt;br /&gt;
	local args = f.args_default;&lt;br /&gt;
	for k, v in pairs( frame.args ) do											-- for {{sfnp}}, override default with values provided in the #invoke:&lt;br /&gt;
		args[k] = v;	   &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	pframe = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	args.postscript = pframe.args.postscript or pframe.args.ps or &amp;quot;.&amp;quot;;&lt;br /&gt;
	if &amp;#039;none&amp;#039; == args.postscript then&lt;br /&gt;
		args.postscript = &amp;#039;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
	args.page = pframe.args.p or pframe.args.page or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.pages = pframe.args.pp or pframe.args.pages or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.location = pframe.args.loc or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.ref = pframe.args.ref or pframe.args.Ref or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P1 = trim( pframe.args[1] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P2 = trim( pframe.args[2] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P3 = trim( pframe.args[3] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P4 = trim( pframe.args[4] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
	args.P5 = trim( pframe.args[5] ) or &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	local result = core( args );&lt;br /&gt;
	local name = &amp;quot;FOOTNOTE&amp;quot; .. args.P1 .. args.P2 .. &lt;br /&gt;
	args.P3 .. args.P4 .. args.P5 .. args.page .. args.pages .. args.location;&lt;br /&gt;
&lt;br /&gt;
	result = frame:extensionTag{ name = &amp;quot;ref&amp;quot;, args = {name=name}, content=result };&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return f;&lt;/div&gt;</summary>
		<author><name>Jukeboksi</name></author>
	</entry>
</feed>