<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bestpressey.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AR</id>
	<title>Module:R - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bestpressey.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AR"/>
	<link rel="alternate" type="text/html" href="https://bestpressey.net/index.php?title=Module:R&amp;action=history"/>
	<updated>2026-10-06T23:40:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://bestpressey.net/index.php?title=Module:R&amp;diff=1164&amp;oldid=prev</id>
		<title>imported&gt;Ahecht: Remove redundant line</title>
		<link rel="alternate" type="text/html" href="https://bestpressey.net/index.php?title=Module:R&amp;diff=1164&amp;oldid=prev"/>
		<updated>2026-10-01T14:03:17Z</updated>

		<summary type="html">&lt;p&gt;Remove redundant line&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local rp = {}&lt;br /&gt;
local r = {}&lt;br /&gt;
local hyphen2dash = require(&amp;#039;Module:String2&amp;#039;).hyphen_to_dash&lt;br /&gt;
local lang = require(&amp;#039;Module:Lang&amp;#039;)&lt;br /&gt;
local trim_quotes = require(&amp;#039;Module:trim quotes&amp;#039;)._trim&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local plainText = require(&amp;#039;Module:Plain text&amp;#039;)._main&lt;br /&gt;
local mt = {__call = function (t, v) t[#t+1] = v end}&lt;br /&gt;
&lt;br /&gt;
local notblank = function(v) return (v or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; end&lt;br /&gt;
local isblank = function(v) return (v or &amp;#039;&amp;#039;) == &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
local pageTest = {pages = 1, pp = 1, page = 1, p = 1}&lt;br /&gt;
local wrapTest = {yes = 1, y = 1, forced = 1, f = 1}&lt;br /&gt;
&lt;br /&gt;
-- get first non-empty argument from a list of names&lt;br /&gt;
local function firstArg(args, ...)&lt;br /&gt;
	for i = 1, select(&amp;#039;#&amp;#039;, ...) do&lt;br /&gt;
		local n = select(i, ...)&lt;br /&gt;
		local v = args[n]&lt;br /&gt;
		if notblank(v) then return v end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function firstArgN(s, args, ...)&lt;br /&gt;
	for i = 1, select(&amp;#039;#&amp;#039;, ...) do&lt;br /&gt;
		local n = select(i, ...)&lt;br /&gt;
		local v = args[n .. s]&lt;br /&gt;
		if notblank(v) then return v end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:page_needed]]&lt;br /&gt;
-- may replace with lua implementation at some point&lt;br /&gt;
local function page_needed(frame, date, reason)&lt;br /&gt;
	return frame:expandTemplate{title=&amp;#039;Page needed&amp;#039;, args = {date = date, reason = reason}}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:R/langcode]]&lt;br /&gt;
-- Only for template/module use: |language=code/name&lt;br /&gt;
function r._langcode(language)&lt;br /&gt;
	language = language or &amp;#039;&amp;#039;&lt;br /&gt;
	local tag, result = lang._tag_from_name{language}&lt;br /&gt;
	if result then&lt;br /&gt;
		return tag&lt;br /&gt;
	elseif lang._is_ietf_tag(language) then&lt;br /&gt;
		return language&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;mis&amp;#039; -- use language code &amp;quot;mis&amp;quot; for any unrecognized language&lt;br /&gt;
end&lt;br /&gt;
function r.langcode(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return r._langcode(args.language)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:R/where]] sub-template&lt;br /&gt;
-- Only for template/module use: |plural=pages |singular=page |location=in-source-location |spacing=character&lt;br /&gt;
function r._where(params)&lt;br /&gt;
	local out = setmetatable({}, mt)&lt;br /&gt;
&lt;br /&gt;
	if notblank(params.plural) then&lt;br /&gt;
		out(params.plural)&lt;br /&gt;
		if notblank(params.singular) then&lt;br /&gt;
			out(&amp;quot;,&amp;quot; .. (params.spacing or &amp;quot;&amp;quot;) .. &amp;quot;[&amp;quot; .. params.singular .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	elseif notblank(params.singular) then&lt;br /&gt;
		out(params.singular)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if notblank(params.location) then&lt;br /&gt;
		if notblank(params.plural) or notblank(params.singular) then&lt;br /&gt;
			out(&amp;quot;,&amp;quot; .. (params.spacing or &amp;quot;&amp;quot;))&lt;br /&gt;
		end&lt;br /&gt;
		out(params.location)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(out)&lt;br /&gt;
end&lt;br /&gt;
function r.where(frame)&lt;br /&gt;
	return r._where(getArgs(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:R/superscript]]&lt;br /&gt;
-- Only for template/module use: |wrap=n[o]/y[es]/f[orced] |leadin=value |prefix=value |pp=value |where=value |sup-where=value |quote-where=value |quote=value |language=value |translation=value |suffix=value&lt;br /&gt;
function r._superscript(params)&lt;br /&gt;
	if not params or isblank(params.where) then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local out = setmetatable({}, mt)&lt;br /&gt;
	&lt;br /&gt;
	-- &amp;quot;wrap&amp;quot; if wrap is &amp;quot;yes&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;f&amp;quot; or &amp;quot;forced&amp;quot;, else &amp;quot;nowrap&amp;quot;&lt;br /&gt;
	local wrap = wrapTest[string.ulower(params.wrap or &amp;#039;&amp;#039;)]&lt;br /&gt;
	out(&amp;#039;&amp;lt;sup class=&amp;quot;reference &amp;#039; .. (wrap and &amp;quot;&amp;quot; or &amp;quot;no&amp;quot;) .. &amp;#039;wrap&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	--prefix, if there&amp;#039;s a quote&lt;br /&gt;
	if notblank(params.quote) and notblank(params.prefix) then&lt;br /&gt;
		out(params.prefix)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- open tooltip span&lt;br /&gt;
	out(&amp;#039;&amp;lt;span title=&amp;quot;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- Lead-in text (escaped)&lt;br /&gt;
	local whereText = notblank(params[&amp;quot;quote-where&amp;quot;]) and params[&amp;quot;quote-where&amp;quot;]&lt;br /&gt;
		or (params[&amp;quot;where&amp;quot;] or &amp;quot;&amp;quot;)&lt;br /&gt;
	local tooltipText = plainText((params.leadin or &amp;quot;&amp;quot;) .. &amp;quot;: &amp;quot; .. whereText, false)&lt;br /&gt;
	out(mw.text.encode(tooltipText, &amp;#039;&amp;lt;&amp;gt;&amp;quot;&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
	-- Quotation block if present&lt;br /&gt;
	if notblank(params.quote) then&lt;br /&gt;
		local quoteTab = setmetatable({}, mt)&lt;br /&gt;
		if notblank(params.language) then&lt;br /&gt;
			local langText = lang._is_ietf_tag(params.language) and lang._name_from_tag{params.language} or params.language&lt;br /&gt;
			quoteTab(&amp;quot;&amp;amp;#32;(&amp;quot; .. langText .. &amp;quot;)&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		quoteTab(&amp;quot;&amp;amp;#58; &amp;amp;quot;&amp;quot; .. trim_quotes(params.quote) ..&lt;br /&gt;
			&amp;quot;&amp;amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		if notblank(params.translation) then&lt;br /&gt;
			quoteTab(&amp;quot;&amp;amp;#10;Translation: &amp;amp;quot;&amp;quot; ..&lt;br /&gt;
				trim_quotes(params.translation) .. &amp;quot;&amp;amp;quot;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local quoteText = plainText(table.concat(quoteTab), false)&lt;br /&gt;
		out(&amp;quot;&amp;amp;#10;Quotation&amp;quot; .. mw.text.encode(quoteText, &amp;#039;&amp;lt;&amp;gt;&amp;quot;&amp;#039;) ..&lt;br /&gt;
			&amp;#039;&amp;quot; class=&amp;quot;tooltip tooltip-dashed&amp;quot; style=&amp;quot;border-bottom: 1px dashed;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- close tooltip span&lt;br /&gt;
	out(&amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- prefix, if not inserted above&lt;br /&gt;
	if (isblank(params.quote)) and notblank(params.prefix) then&lt;br /&gt;
		out(params.prefix)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--pp and sup-where&lt;br /&gt;
	out(params.pp or &amp;#039;&amp;#039;)&lt;br /&gt;
	out(params[&amp;#039;sup-where&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- suffix&lt;br /&gt;
	if notblank(params.quote) then&lt;br /&gt;
		out(&amp;quot;&amp;lt;/span&amp;gt;&amp;quot; .. (params.suffix or &amp;quot;&amp;quot;))&lt;br /&gt;
	else&lt;br /&gt;
		out((params.suffix or &amp;quot;&amp;quot;) .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	out(&amp;quot;&amp;lt;/sup&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	return table.concat(out)&lt;br /&gt;
end&lt;br /&gt;
function r.superscript(frame)&lt;br /&gt;
	return r._superscript(getArgs(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:R/ref]]&lt;br /&gt;
function r._ref(params, frame)&lt;br /&gt;
	frame = frame or mw.getCurrentFrame()&lt;br /&gt;
	local out = setmetatable({}, mt)&lt;br /&gt;
	&lt;br /&gt;
	local contextSectionName = mw.uri.anchorEncode(&lt;br /&gt;
			&amp;#039;cite_sect-&amp;#039; ..&lt;br /&gt;
			trim_quotes(params[1] or &amp;#039;&amp;#039;) ..	&amp;#039;-&amp;#039; ..&lt;br /&gt;
			trim_quotes(params[2] or &amp;#039;&amp;#039;) .. &amp;#039;-&amp;#039; .. &lt;br /&gt;
			trim_quotes(&lt;br /&gt;
				(notblank(params.page) and params.page or hyphen2dash(params.pages or &amp;#039;&amp;#039;, &amp;#039; &amp;#039;)) ..&lt;br /&gt;
				(params.location or &amp;#039;&amp;#039;)&lt;br /&gt;
			)&lt;br /&gt;
		)&lt;br /&gt;
	local contentId = notblank(params[&amp;#039;content-id&amp;#039;]) and mw.uri.anchorEncode(params[&amp;#039;content-id&amp;#039;]) or nil&lt;br /&gt;
	local whereArgs = {&lt;br /&gt;
		plural = hyphen2dash(params.pages, &amp;#039; &amp;#039;),&lt;br /&gt;
		singular = params.page,&lt;br /&gt;
		location = params.location,&lt;br /&gt;
		spacing = &amp;#039;&amp;amp;#32;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	local quoteWhereArgs = {&lt;br /&gt;
		plural = hyphen2dash(params[&amp;#039;quote-pages&amp;#039;], &amp;#039; &amp;#039;),&lt;br /&gt;
		singular = params[&amp;#039;quote-page&amp;#039;],&lt;br /&gt;
		location = params[&amp;#039;quote-location&amp;#039;],&lt;br /&gt;
		spacing = &amp;#039;&amp;amp;#32;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	local refArgs = {name = params[1] or &amp;#039;&amp;#039;, group = params[2] or &amp;#039;&amp;#039;}&lt;br /&gt;
	&lt;br /&gt;
	-- Debug facility&lt;br /&gt;
	if notblank(params.debug) then&lt;br /&gt;
		out(&amp;quot;DEBUG: &amp;quot;)&lt;br /&gt;
		for k, v in pairs(params) do&lt;br /&gt;
			out(k .. &amp;quot;=&amp;quot; .. (v or &amp;#039;&amp;#039;) .. &amp;quot;, &amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		out(&amp;quot;. Potential context-section-name:&amp;quot;)&lt;br /&gt;
		out(contextSectionName .. &amp;#039;&amp;quot;.&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Opening &amp;quot;support context&amp;quot; span&lt;br /&gt;
	local lst&lt;br /&gt;
	if notblank(params.section) then&lt;br /&gt;
		local section = (params.section == &amp;#039;yes&amp;#039; or params.section == &amp;#039;y&amp;#039;) and&lt;br /&gt;
			contextSectionName or params.section&lt;br /&gt;
		lst = frame:callParserFunction(&amp;#039;#lst&amp;#039;, {&lt;br /&gt;
			mw.title.getCurrentTitle().fullText,&lt;br /&gt;
			section&lt;br /&gt;
		})&lt;br /&gt;
		if notblank(lst) then&lt;br /&gt;
			out(&amp;#039;&amp;lt;templatestyles src=&amp;quot;Template:Tooltip/styles.css&amp;quot;/&amp;gt;&amp;#039;)&lt;br /&gt;
			out(&amp;#039;&amp;lt;span class=&amp;quot;rt-commentedText tooltip tooltip-dotted&amp;quot;&amp;#039; ..&lt;br /&gt;
				&amp;#039;title=&amp;quot;Context: &amp;amp;quot;&amp;#039; .. mw.text.encode(plainText(lst, false), &amp;#039;&amp;lt;&amp;gt;&amp;quot;&amp;#039;) ..&lt;br /&gt;
				&amp;#039;&amp;amp;quot;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--First call to create reference link (variants identical except for dir):&lt;br /&gt;
	if notblank(params[&amp;#039;link-id&amp;#039;]) then&lt;br /&gt;
		out(&amp;#039;&amp;lt;span id=&amp;quot;&amp;#039; .. mw.uri.anchorEncode(params[&amp;#039;link-id&amp;#039;]) ..&lt;br /&gt;
			&amp;#039;class=&amp;quot;citation&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local refContent = setmetatable({}, mt)&lt;br /&gt;
	if (isblank(params.annotation)) then&lt;br /&gt;
		if contentId then&lt;br /&gt;
			refContent(&amp;#039;&amp;lt;span id=&amp;quot;&amp;#039; .. contentId .. &amp;#039;&amp;quot; class=&amp;quot;citation&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
			refContent(params.reference or &amp;#039;&amp;#039;)&lt;br /&gt;
			refContent(&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			refContent(params.reference or &amp;#039;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		refContent(params.postscript or &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if notblank(params.direction) then&lt;br /&gt;
		refArgs.dir = params.direction&lt;br /&gt;
	end&lt;br /&gt;
	out(frame:extensionTag(&amp;#039;ref&amp;#039;, table.concat(refContent), refArgs))&lt;br /&gt;
	&lt;br /&gt;
	if notblank(params[&amp;#039;link-id&amp;#039;]) then&lt;br /&gt;
		out(&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Optional second call to append data to reference (variants identical except for dir):&lt;br /&gt;
	if notblank(params.annotation) then&lt;br /&gt;
		refContent = setmetatable({}, mt)&lt;br /&gt;
		if pageTest[params.annotation] then&lt;br /&gt;
			if notblank(firstArg(params, &amp;#039;pages&amp;#039;, &amp;#039;page&amp;#039;, &amp;#039;location&amp;#039;)) then&lt;br /&gt;
				refContent(&amp;#039;&amp;amp;#8204;&amp;#039;)&lt;br /&gt;
				if contentId then&lt;br /&gt;
					refContent(&amp;#039;&amp;lt;span id=&amp;quot;&amp;#039; .. contentId .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				refContent(params.leadin or &amp;#039;&amp;#039;)&lt;br /&gt;
				refContent(r._where(whereArgs))&lt;br /&gt;
				if contentId then&lt;br /&gt;
					refContent(&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
			end&lt;br /&gt;
		elseif ({quote = 1, q = 1})[params.annotation] then&lt;br /&gt;
			refContent(&amp;#039;&amp;amp;#8204;&amp;#039;)&lt;br /&gt;
			if pageTest[firstArg(params, &amp;#039;quote-pages&amp;#039;, &amp;#039;quote-page&amp;#039;, &amp;#039;quote-location&amp;#039;)] then&lt;br /&gt;
				if notblank(firstArg(params, &amp;#039;pages&amp;#039;, &amp;#039;page&amp;#039;, &amp;#039;location&amp;#039;)) then&lt;br /&gt;
					refContent(params.leadin or &amp;#039;&amp;#039;)&lt;br /&gt;
					refContent(r._where(whereArgs) .. &amp;#039;:&amp;amp;#32;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				refContent(params.leadin or &amp;#039;&amp;#039;)&lt;br /&gt;
				refContent(r._where(quoteWhereArgs) .. &amp;#039;:&amp;amp;#32;&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			refContent(&amp;#039;&amp;lt;q &amp;#039;)&lt;br /&gt;
			if contentId then&lt;br /&gt;
				refContent(&amp;#039;id=&amp;quot;&amp;#039; .. contentId .. &amp;#039;&amp;quot; &amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			local qcli = firstArg(params, &amp;#039;quote-cite&amp;#039;, &amp;#039;link-id&amp;#039;)&lt;br /&gt;
			if notblank(qcli) then&lt;br /&gt;
				refContent(&amp;#039;cite=&amp;quot;#&amp;#039; .. (mw.uri.anchorEncode(qcli)) .. &amp;#039;&amp;quot; &amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			if notblank(params.language) then&lt;br /&gt;
				local langcode = r._langcode(params.language)&lt;br /&gt;
				refContent(&amp;#039;lang=&amp;quot;&amp;#039; .. langcode .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
				refContent(&amp;#039;&amp;lt;bdi lang=&amp;quot;&amp;#039; .. langcode .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				refContent(&amp;#039;&amp;gt;&amp;lt;bdi&amp;gt;&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			refContent(trim_quotes(params.quote or &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;/bdi&amp;gt;&amp;lt;/q&amp;gt;&amp;#039;)&lt;br /&gt;
			if notblank(params.translation) then&lt;br /&gt;
				refContent(&amp;#039;&amp;amp;#32;&amp;amp;#91;&amp;lt;bdi &amp;#039;)&lt;br /&gt;
				if notblank(params.language) then&lt;br /&gt;
					refContent(&amp;#039;lang=&amp;quot;&amp;#039; .. r._langcode(params.language) .. &amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				refContent(&amp;#039;&amp;gt;&amp;#039; .. trim_quotes(params.translation .. &amp;#039;&amp;lt;/bdi&amp;gt;&amp;amp;#93;&amp;#039;))&lt;br /&gt;
			end&lt;br /&gt;
		elseif contentId then&lt;br /&gt;
			refContent(&amp;#039;&amp;lt;span id=&amp;quot;&amp;#039; .. contentId ..&lt;br /&gt;
				&amp;#039; class=&amp;quot;citation&amp;quot;&amp;gt;&amp;#039; .. (params.leadin or &amp;#039;&amp;#039;) ..&lt;br /&gt;
				params.annotation .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			refContent((params.leadin or &amp;#039;&amp;#039;) .. params.annotation)&lt;br /&gt;
		end&lt;br /&gt;
		refContent(params.postscript or &amp;#039;&amp;#039;)&lt;br /&gt;
		refArgs = {follow = params[1] or &amp;#039;&amp;#039;, group = params[2] or &amp;#039;&amp;#039;}&lt;br /&gt;
		if notblank(params.direction) then&lt;br /&gt;
			refArgs.dir = params.direction&lt;br /&gt;
		end&lt;br /&gt;
		out(frame:extensionTag(&amp;#039;ref&amp;#039;, table.concat(refContent), refArgs))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Superscript pages and tooltip for help, pages, quotes:&lt;br /&gt;
	local ssAma = string.ulower(params.style or &amp;#039;&amp;#039;) == &amp;#039;ama&amp;#039;&lt;br /&gt;
	-- p/pp is only used in superscript label, therefore it does not contain any qp params&lt;br /&gt;
	local ssPp = &amp;#039;&amp;#039;&lt;br /&gt;
	if ssAma and (isblank(params[&amp;#039;no-pp&amp;#039;])) then&lt;br /&gt;
		if notblank(params.pages) then&lt;br /&gt;
			ssPp = &amp;#039;pp&amp;#039;&lt;br /&gt;
		elseif notblank(params.page) then&lt;br /&gt;
			ssPp = &amp;#039;p&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- leadin is only used in tooltip&lt;br /&gt;
	local ssLeadin = &amp;#039;Page&amp;amp;nbsp;/ location&amp;#039;&lt;br /&gt;
	if pageTest[firstArg(params, &amp;#039;quote-pages&amp;#039;, &amp;#039;quote-page&amp;#039;, &amp;#039;quote-location&amp;#039;)] then&lt;br /&gt;
		if notblank(params.pages) then&lt;br /&gt;
			ssLeadin = &amp;#039;Pages&amp;#039;&lt;br /&gt;
		elseif notblank(params.page) then&lt;br /&gt;
			ssLeadin = &amp;#039;Page&amp;#039;&lt;br /&gt;
		elseif notblank(params.location) then&lt;br /&gt;
			ssLeadin = &amp;#039;Location&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif notblank(params[&amp;#039;quote-pages&amp;#039;]) then&lt;br /&gt;
		ssLeadin = &amp;#039;Pages&amp;#039;&lt;br /&gt;
	elseif notblank(params[&amp;#039;quote-page&amp;#039;]) then&lt;br /&gt;
		ssLeadin = &amp;#039;Page&amp;#039;&lt;br /&gt;
	elseif notblank(params[&amp;#039;quote-location&amp;#039;]) then&lt;br /&gt;
		ssLeadin = &amp;#039;Location&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	out(r._superscript{&lt;br /&gt;
		prefix = ssAma and &amp;#039;(&amp;#039; or &amp;#039;&amp;amp;#58;&amp;amp;hairsp;&amp;#039;,&lt;br /&gt;
		suffix = ssAma and &amp;#039;)&amp;#039; or &amp;#039;&amp;amp;hairsp;&amp;#039;,&lt;br /&gt;
		pp = ssPp,&lt;br /&gt;
		leadin = ssLeadin,&lt;br /&gt;
		where = r._where(whereArgs), -- where must not include qp params&lt;br /&gt;
		[&amp;#039;sup-where&amp;#039;] = r._where{ -- sup-where same as where, but with improved list spacing for superscript&lt;br /&gt;
			plural = hyphen2dash(params.pages, &amp;#039;&amp;amp;hairsp;&amp;#039;),&lt;br /&gt;
			singular = params.page,&lt;br /&gt;
			location = params.location,&lt;br /&gt;
			spacing=&amp;#039;&amp;amp;hairsp;&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
		[&amp;#039;quote-where&amp;#039;] = r._where( -- quote-where must not contain normal in-source-location params&lt;br /&gt;
			pageTest[firstArg(params, &amp;#039;quote-pages&amp;#039;, &amp;#039;quote-page&amp;#039;, &amp;#039;quote-location&amp;#039;)] and&lt;br /&gt;
			whereArgs or quoteWhereArgs&lt;br /&gt;
		),&lt;br /&gt;
		quote = params.quote,&lt;br /&gt;
		language = params.language,&lt;br /&gt;
		translation = params.translation,&lt;br /&gt;
		[&amp;#039;wrap&amp;#039;] = params[&amp;#039;wrap&amp;#039;]&lt;br /&gt;
	})&lt;br /&gt;
	&lt;br /&gt;
	-- Closing &amp;quot;support context&amp;quot; span:&lt;br /&gt;
	if notblank(params.section) and notblank(lst) then&lt;br /&gt;
		out(&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Page needed functionality:&lt;br /&gt;
	if notblank(params[&amp;#039;needed-reason&amp;#039;]) then&lt;br /&gt;
		local pnReason = ({yes = 1, y = 1})[params[&amp;#039;needed-reason&amp;#039;]] and&lt;br /&gt;
			&amp;#039;No reason given&amp;#039; or params[&amp;#039;needed-reason&amp;#039;]&lt;br /&gt;
		out(page_needed(frame, params[&amp;#039;needed-date&amp;#039;], pnReason))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Line wrapping functionality:&lt;br /&gt;
	if wrapTest[string.ulower(params.wrap or &amp;#039;&amp;#039;)] then&lt;br /&gt;
		out(&amp;quot;&amp;amp;#8203;&amp;quot;) --zero-width space&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--End of code&lt;br /&gt;
	return table.concat(out)&lt;br /&gt;
end&lt;br /&gt;
function r.ref(frame)&lt;br /&gt;
	return r._ref(getArgs(frame), frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function r._r(args, frame)&lt;br /&gt;
	frame = frame or mw.getCurrentFrame()&lt;br /&gt;
	local output = setmetatable({}, mt)&lt;br /&gt;
	-- ### 1 ###&lt;br /&gt;
	output(r._ref({&lt;br /&gt;
		[1]				= firstArg(args, &amp;#039;name1&amp;#039;, &amp;#039;name&amp;#039;, &amp;#039;n1&amp;#039;, &amp;#039;n&amp;#039;, 1),&lt;br /&gt;
		[2]				= firstArg(args, &amp;#039;group&amp;#039;, &amp;#039;grp&amp;#039;, &amp;#039;g&amp;#039;),&lt;br /&gt;
		direction		= firstArg(args, &amp;#039;direction1&amp;#039;, &amp;#039;direction&amp;#039;, &amp;#039;dir1&amp;#039;, &amp;#039;dir&amp;#039;),&lt;br /&gt;
		page			= firstArg(args, &amp;#039;page1&amp;#039;, &amp;#039;page&amp;#039;, &amp;#039;p1&amp;#039;, &amp;#039;1p&amp;#039;, &amp;#039;p&amp;#039;),&lt;br /&gt;
		pages			= firstArg(args, &amp;#039;pages1&amp;#039;, &amp;#039;pages&amp;#039;, &amp;#039;pp1&amp;#039;, &amp;#039;1pp&amp;#039;, &amp;#039;pp&amp;#039;),&lt;br /&gt;
		location		= firstArg(args, &amp;#039;location1&amp;#039;, &amp;#039;location&amp;#039;, &amp;#039;loc1&amp;#039;, &amp;#039;1loc&amp;#039;, &amp;#039;loc&amp;#039;, &amp;#039;at1&amp;#039;, &amp;#039;at&amp;#039;),&lt;br /&gt;
		[&amp;#039;quote-page&amp;#039;]	= firstArg(args, &amp;#039;quotation-page1&amp;#039;, &amp;#039;quotation-page&amp;#039;, &amp;#039;quote-page1&amp;#039;, &amp;#039;quote-page&amp;#039;, &amp;#039;qp1&amp;#039;, &amp;#039;qp&amp;#039;),&lt;br /&gt;
		[&amp;#039;quote-pages&amp;#039;]	= firstArg(args, &amp;#039;quotation-pages1&amp;#039;, &amp;#039;quotation-pages&amp;#039;, &amp;#039;quote-pages1&amp;#039;, &amp;#039;quote-pages&amp;#039;, &amp;#039;qpp1&amp;#039;, &amp;#039;qpp&amp;#039;),&lt;br /&gt;
		[&amp;#039;quote-location&amp;#039;] = firstArg(args,&lt;br /&gt;
			&amp;#039;quotation-location1&amp;#039;, &amp;#039;quotation-location&amp;#039;, &amp;#039;quote-location1&amp;#039;, &amp;#039;quote-location&amp;#039;, &amp;#039;quote-loc1&amp;#039;, &amp;#039;quote-loc&amp;#039;,&lt;br /&gt;
			&amp;#039;quote-at1&amp;#039;, &amp;#039;quote-at&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		quote			= firstArg(args, &amp;#039;quotation1&amp;#039;, &amp;#039;quotation&amp;#039;, &amp;#039;quote1&amp;#039;, &amp;#039;quote&amp;#039;, &amp;#039;q1&amp;#039;, &amp;#039;q&amp;#039;),&lt;br /&gt;
		language		= firstArg(args, &lt;br /&gt;
			&amp;#039;quotation-language1&amp;#039;, &amp;#039;quotation-language&amp;#039;, &amp;#039;quote-language1&amp;#039;, &amp;#039;quote-language&amp;#039;, &amp;#039;quotation-lang1&amp;#039;,&lt;br /&gt;
			&amp;#039;quotation-lang&amp;#039;, &amp;#039;quote-lang1&amp;#039;, &amp;#039;quote-lang&amp;#039;, &amp;#039;ql1&amp;#039;, &amp;#039;ql&amp;#039;, &amp;#039;language1&amp;#039;, &amp;#039;language&amp;#039;, &amp;#039;lang1&amp;#039;, &amp;#039;language&amp;#039;, &amp;#039;l1&amp;#039;, &amp;#039;l&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		translation		= firstArg(args,&lt;br /&gt;
			&amp;#039;translation-quotation1&amp;#039;, &amp;#039;translation-quotation&amp;#039;, &amp;#039;trans-quotation1&amp;#039;, &amp;#039;trans-quotation&amp;#039;, &amp;#039;translation-quote1&amp;#039;,&lt;br /&gt;
			&amp;#039;translation-quote&amp;#039;, &amp;#039;trans-quote1&amp;#039;, &amp;#039;trans-quote&amp;#039;, &amp;#039;tq1&amp;#039;, &amp;#039;tq&amp;#039;, &amp;#039;translation1&amp;#039;, &amp;#039;translation&amp;#039;, &amp;#039;trans1&amp;#039;, &amp;#039;trans&amp;#039;,&lt;br /&gt;
			&amp;#039;t1&amp;#039;, &amp;#039;t&amp;#039;, &amp;#039;xlat1&amp;#039;, &amp;#039;xlat&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		[&amp;#039;quote-cite&amp;#039;]	= firstArg(args, &amp;#039;quotation-cite1&amp;#039;, &amp;#039;quotation-cite&amp;#039;, &amp;#039;quote-cite1&amp;#039;, &amp;#039;quote-cite&amp;#039;, &amp;#039;qc1&amp;#039;, &amp;#039;qc&amp;#039;),&lt;br /&gt;
		reference		= firstArg(args,&lt;br /&gt;
			&amp;#039;reference1&amp;#039;, &amp;#039;references&amp;#039;, &amp;#039;reference&amp;#039;, &amp;#039;notes&amp;#039;, &amp;#039;note&amp;#039;, &amp;#039;content&amp;#039;, &amp;#039;text&amp;#039;, &amp;#039;refn1&amp;#039;, &amp;#039;refn&amp;#039;, &amp;#039;refs&amp;#039;, &amp;#039;r1&amp;#039;, &amp;#039;r&amp;#039;&lt;br /&gt;
		),&lt;br /&gt;
		annotation		= firstArg(args, &amp;#039;annotation1&amp;#039;, &amp;#039;annotation&amp;#039;, &amp;#039;annot1&amp;#039;, &amp;#039;annot&amp;#039;, &amp;#039;a1&amp;#039;, &amp;#039;a&amp;#039;),&lt;br /&gt;
		leadin			= args.leadin,&lt;br /&gt;
		postscript		= firstArg(args, &amp;#039;postscript&amp;#039;, &amp;#039;postscript1&amp;#039;, &amp;#039;ps&amp;#039;, &amp;#039;ps1&amp;#039;, &amp;#039;1ps&amp;#039;),&lt;br /&gt;
		section			= firstArg(args, &amp;#039;section1&amp;#039;, &amp;#039;section&amp;#039;, &amp;#039;sec1&amp;#039;, &amp;#039;sec&amp;#039;, &amp;#039;s1&amp;#039;, &amp;#039;s&amp;#039;),&lt;br /&gt;
		[&amp;#039;needed-reason&amp;#039;] = firstArg(args, &amp;#039;needed-reason1&amp;#039;, &amp;#039;needed-reason&amp;#039;, &amp;#039;needed1&amp;#039;, &amp;#039;needed&amp;#039;, &amp;#039;reason&amp;#039;),&lt;br /&gt;
		[&amp;#039;needed-date&amp;#039;]	= firstArg(args, &amp;#039;needed-date&amp;#039;, &amp;#039;date&amp;#039;),&lt;br /&gt;
		wrap			= args.wrap,&lt;br /&gt;
		[&amp;#039;no-pp&amp;#039;]		= firstArg(args, &amp;#039;no-pp&amp;#039;, &amp;#039;nopp&amp;#039;),&lt;br /&gt;
		style			= args.style,&lt;br /&gt;
		[&amp;#039;content-id&amp;#039;]	= firstArg(args, &amp;#039;ref1&amp;#039;, &amp;#039;1ref&amp;#039;, &amp;#039;ref&amp;#039;, &amp;#039;id1&amp;#039;, &amp;#039;id&amp;#039;),&lt;br /&gt;
		[&amp;#039;link-id&amp;#039;]		= firstArg(args, &amp;#039;link-id1&amp;#039;, &amp;#039;link-id&amp;#039;),&lt;br /&gt;
		[&amp;#039;debug&amp;#039;]		= args[&amp;#039;debug&amp;#039;]&lt;br /&gt;
	}, frame))&lt;br /&gt;
&lt;br /&gt;
	-- ### 2+ ###&lt;br /&gt;
	local n = 2&lt;br /&gt;
	while firstArg(args, &amp;quot;name&amp;quot; .. n, &amp;quot;n&amp;quot; .. n, n) ~= nil do&lt;br /&gt;
		output(r._ref({&lt;br /&gt;
			[1]				= firstArg(args, &amp;#039;name&amp;#039; .. n, &amp;#039;n&amp;#039; .. n, n),&lt;br /&gt;
			[2]				= firstArg(args, &amp;#039;group&amp;#039;, &amp;#039;grp&amp;#039;, &amp;#039;g&amp;#039;),&lt;br /&gt;
			direction		= firstArgN(n, args, &amp;#039;direction&amp;#039;, &amp;#039;dir&amp;#039;),&lt;br /&gt;
			page			= firstArg(args, &amp;#039;page&amp;#039; .. n, &amp;#039;p&amp;#039; .. n, n .. &amp;#039;p&amp;#039;),&lt;br /&gt;
			pages			= firstArg(args, &amp;#039;pages&amp;#039; .. n, &amp;#039;pp&amp;#039; .. n, n .. &amp;#039;pp&amp;#039;),&lt;br /&gt;
			location		= firstArg(args, &amp;#039;location&amp;#039; .. n, &amp;#039;loc&amp;#039; .. n, n .. &amp;#039;loc&amp;#039;, &amp;#039;at&amp;#039; .. n),&lt;br /&gt;
			[&amp;#039;quote-page&amp;#039;]	= firstArgN(n, args, &amp;#039;quotation-page&amp;#039;, &amp;#039;quote-page&amp;#039;, &amp;#039;qp&amp;#039;),&lt;br /&gt;
			[&amp;#039;quote-pages&amp;#039;]	= firstArgN(n, args, &amp;#039;quotation-pages&amp;#039;, &amp;#039;quote-pages&amp;#039;, &amp;#039;qpp&amp;#039;),&lt;br /&gt;
			[&amp;#039;quote-location&amp;#039;] = firstArgN(n, args, &amp;#039;quotation-location&amp;#039;, &amp;#039;quote-location&amp;#039;, &amp;#039;quote-loc&amp;#039;, &amp;#039;quote-at&amp;#039;),&lt;br /&gt;
			quote			= firstArgN(n, args, &amp;#039;quotation&amp;#039;, &amp;#039;quote&amp;#039;, &amp;#039;q&amp;#039;),&lt;br /&gt;
			language		= firstArgN(n, args,&lt;br /&gt;
				&amp;#039;quotation-language&amp;#039;, &amp;#039;quote-language&amp;#039;,	&amp;#039;quotation-lang&amp;#039;, &amp;#039;quote-lang&amp;#039;, &amp;#039;ql&amp;#039;, &amp;#039;language&amp;#039;, &amp;#039;lang&amp;#039;, &amp;#039;l&amp;#039;&lt;br /&gt;
			),&lt;br /&gt;
			translation		= firstArgN(n, args,&lt;br /&gt;
				&amp;#039;translation-quotation&amp;#039;, &amp;#039;trans-quotation&amp;#039;, &amp;#039;translation-quote&amp;#039;, &amp;#039;trans-quote&amp;#039;, &amp;#039;tq&amp;#039;, &amp;#039;translation&amp;#039;, &amp;#039;trans&amp;#039;, &amp;#039;t&amp;#039;,&lt;br /&gt;
				&amp;#039;xlat&amp;#039;&lt;br /&gt;
			),&lt;br /&gt;
			[&amp;#039;quote-cite&amp;#039;]	= firstArgN(n, args, &amp;#039;quotation-cite&amp;#039;, &amp;#039;quote-cite&amp;#039;, &amp;#039;qc&amp;#039;),&lt;br /&gt;
			reference		= firstArgN(n, args, &amp;#039;reference&amp;#039;, &amp;#039;refn&amp;#039;, &amp;#039;r&amp;#039;),&lt;br /&gt;
			annotation		= firstArgN(n, args, &amp;#039;annotation&amp;#039;, &amp;#039;annot&amp;#039;, &amp;#039;a&amp;#039;),&lt;br /&gt;
			leadin			= args.leadin,&lt;br /&gt;
			postscript		= firstArg(args, &amp;#039;postscript&amp;#039; .. n, &amp;#039;ps&amp;#039; .. n, n .. &amp;#039;ps&amp;#039;, &amp;#039;postscript&amp;#039;, &amp;#039;ps&amp;#039;),&lt;br /&gt;
			section			= firstArgN(n, args, &amp;#039;section&amp;#039;, &amp;#039;sec&amp;#039;, &amp;#039;s&amp;#039;),&lt;br /&gt;
			[&amp;#039;needed-reason&amp;#039;] = firstArgN(n, args, &amp;#039;needed-reason&amp;#039;, &amp;#039;needed&amp;#039;),&lt;br /&gt;
			[&amp;#039;needed-date&amp;#039;]	= firstArg(args, &amp;#039;needed-date&amp;#039;, &amp;#039;date&amp;#039;),&lt;br /&gt;
			[&amp;#039;wrap&amp;#039;]		= args[&amp;#039;wrap&amp;#039;],&lt;br /&gt;
			[&amp;#039;no-pp&amp;#039;]		= firstArg(args, &amp;#039;no-pp&amp;#039;, &amp;#039;nopp&amp;#039;),&lt;br /&gt;
			style			= args.style,&lt;br /&gt;
			[&amp;#039;content-id&amp;#039;]	= firstArg(args, &amp;#039;ref&amp;#039; .. n, n .. &amp;#039;ref&amp;#039;, &amp;#039;id&amp;#039; .. n),&lt;br /&gt;
			[&amp;#039;link-id&amp;#039;]		= args[&amp;#039;link-id&amp;#039; .. n],&lt;br /&gt;
			[&amp;#039;debug&amp;#039;]		= args[&amp;#039;debug&amp;#039;],&lt;br /&gt;
		}, frame))&lt;br /&gt;
		n = n + 1&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(output)&lt;br /&gt;
end&lt;br /&gt;
function r.r(frame)&lt;br /&gt;
	return r._r(getArgs(frame), frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:Rp]]&lt;br /&gt;
function rp._rp(args, frame)&lt;br /&gt;
	frame = frame or mw.getCurrentFrame()&lt;br /&gt;
	-- If needed param is present and non-empty, show {{page needed}}&lt;br /&gt;
	if notblank(args.needed) then&lt;br /&gt;
		return page_needed(frame, args.date, args.reason)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- prefix/suffix depending on style&lt;br /&gt;
	local ama = string.ulower(args.style or &amp;quot;&amp;quot;) == &amp;quot;ama&amp;quot;&lt;br /&gt;
	local prefix = ama and &amp;quot;(&amp;quot; or &amp;quot;&amp;amp;#58;&amp;amp;hairsp;&amp;quot;&lt;br /&gt;
	local suffix = ama and &amp;quot;)&amp;quot; or &amp;quot;&amp;amp;hairsp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- p/pp is only used in superscript label, therefore it does not contain any qp params&lt;br /&gt;
	local pp = &amp;quot;&amp;quot;&lt;br /&gt;
	if ama and isblank(args[&amp;quot;no-pp&amp;quot;]) and isblank(args.nopp) then&lt;br /&gt;
		if notblank(args.pages) or notblank(args.pp) then&lt;br /&gt;
			pp = &amp;quot;pp&amp;quot;&lt;br /&gt;
		elseif notblank(args.page) or notblank(args.p) then&lt;br /&gt;
			pp = &amp;quot;p&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- leadin is only used in tooltip&lt;br /&gt;
	local leadin&lt;br /&gt;
	local quote_switch = firstArg(args, &amp;quot;quotation-pages&amp;quot;, &amp;quot;quote-pages&amp;quot;, &amp;quot;qpp&amp;quot;,&lt;br /&gt;
		&amp;quot;quotation-page&amp;quot;, &amp;quot;quote-page&amp;quot;, &amp;quot;qp&amp;quot;,&lt;br /&gt;
		&amp;quot;quotation-location&amp;quot;, &amp;quot;quote-location&amp;quot;, &amp;quot;quote-loc&amp;quot;, &amp;quot;quote-at&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if not pageTest[quote_switch] then&lt;br /&gt;
		if notblank(firstArg(args, &amp;quot;quotation-pages&amp;quot;, &amp;quot;quote-pages&amp;quot;, &amp;quot;qpp&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Pages&amp;quot;&lt;br /&gt;
		elseif notblank(firstArg(args, &amp;quot;quotation-page&amp;quot;, &amp;quot;quote-page&amp;quot;, &amp;quot;qp&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Page&amp;quot;&lt;br /&gt;
		elseif notblank(firstArg(args, &amp;quot;quotation-location&amp;quot;, &amp;quot;quote-location&amp;quot;, &amp;quot;quote-loc&amp;quot;, &amp;quot;quote-at&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Location&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not leadin then&lt;br /&gt;
		--either the quote_switch wasn&amp;#039;t &amp;#039;pages&amp;#039;, &amp;#039;pp&amp;#039;, &amp;#039;page&amp;#039;,&lt;br /&gt;
		-- or &amp;#039;p&amp;#039;, or the &amp;#039;quotation&amp;#039; params were all blank/nil&lt;br /&gt;
		if notblank(firstArg(args, &amp;quot;pages&amp;quot;, &amp;quot;pp&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Pages&amp;quot;&lt;br /&gt;
		elseif notblank(firstArg(args, &amp;quot;page&amp;quot;, &amp;quot;p&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Page&amp;quot;&lt;br /&gt;
		elseif notblank(firstArg(args, &amp;quot;location&amp;quot;, &amp;quot;loc&amp;quot;, &amp;quot;at&amp;quot;)) then&lt;br /&gt;
			leadin = &amp;quot;Location&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			leadin = &amp;quot;Page&amp;amp;nbsp;/ location&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- where must not include qp params&lt;br /&gt;
	local where = r._where{&lt;br /&gt;
		plural = hyphen2dash(firstArg(args, &amp;quot;pages&amp;quot;, &amp;quot;pp&amp;quot;, &amp;quot;1&amp;quot;), &amp;#039;&amp;amp;#32;&amp;#039;),&lt;br /&gt;
		singular = firstArg(args, &amp;quot;page&amp;quot;, &amp;quot;p&amp;quot;),&lt;br /&gt;
		location = firstArg(args, &amp;quot;location&amp;quot;, &amp;quot;loc&amp;quot;, &amp;quot;at&amp;quot;),&lt;br /&gt;
		spacing = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- sup-where same as where, but with improved list spacing for superscript&lt;br /&gt;
	local sup_where = r._where{&lt;br /&gt;
		plural = hyphen2dash(firstArg(args, &amp;quot;pages&amp;quot;, &amp;quot;pp&amp;quot;, &amp;quot;1&amp;quot;), &amp;#039;&amp;amp;hairsp;&amp;#039;),&lt;br /&gt;
		singular = firstArg(args, &amp;quot;page&amp;quot;, &amp;quot;p&amp;quot;),&lt;br /&gt;
		location = firstArg(args, &amp;quot;location&amp;quot;, &amp;quot;loc&amp;quot;, &amp;quot;at&amp;quot;),&lt;br /&gt;
		spacing = &amp;quot;&amp;amp;hairsp;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- quote-where must not contain normal in-source-location params&lt;br /&gt;
	local quote_where&lt;br /&gt;
	if pageTest[quote_switch] then&lt;br /&gt;
		quote_where = r._where{&lt;br /&gt;
			plural = hyphen2dash(firstArg(args, &amp;quot;pages&amp;quot;, &amp;quot;pp&amp;quot;, 1), &amp;#039; &amp;#039;),&lt;br /&gt;
			singular = firstArg(args, &amp;quot;page&amp;quot;, &amp;quot;p&amp;quot;),&lt;br /&gt;
			location = firstArg(args, &amp;quot;location&amp;quot;, &amp;quot;loc&amp;quot;, &amp;quot;at&amp;quot;),&lt;br /&gt;
			spacing = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		quote_where = r._where{&lt;br /&gt;
			plural = hyphen2dash(firstArg(args, &amp;quot;quotation-pages&amp;quot;, &amp;quot;quote-pages&amp;quot;, &amp;quot;qpp&amp;quot;), &amp;#039; &amp;#039;),&lt;br /&gt;
			singular = firstArg(args, &amp;quot;quotation-page&amp;quot;, &amp;quot;quote-page&amp;quot;, &amp;quot;qp&amp;quot;),&lt;br /&gt;
			location = firstArg(args, &amp;quot;quotation-location&amp;quot;, &amp;quot;quote-location&amp;quot;, &amp;quot;quote-loc&amp;quot;, &amp;quot;quote-at&amp;quot;),&lt;br /&gt;
			spacing = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local zws = &amp;quot;&amp;quot;&lt;br /&gt;
	if wrapTest[string.ulower(args.wrap or &amp;#039;&amp;#039;)] then&lt;br /&gt;
		zws = &amp;quot;&amp;amp;#8203;&amp;quot; --zero-width space&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return r._superscript{&lt;br /&gt;
		prefix = prefix,&lt;br /&gt;
		suffix = suffix,&lt;br /&gt;
		pp = pp,&lt;br /&gt;
		leadin = leadin,&lt;br /&gt;
		[&amp;quot;where&amp;quot;] = where,&lt;br /&gt;
		[&amp;quot;sup-where&amp;quot;] = sup_where,&lt;br /&gt;
		[&amp;quot;quote-where&amp;quot;] = quote_where,&lt;br /&gt;
		quote = firstArg(args, &amp;quot;quotation&amp;quot;, &amp;quot;quote&amp;quot;, &amp;quot;q&amp;quot;),&lt;br /&gt;
		language = firstArg(args, &amp;quot;quotation-language&amp;quot;, &amp;quot;quote-language&amp;quot;,&lt;br /&gt;
			&amp;quot;quotation-lang&amp;quot;, &amp;quot;quote-lang&amp;quot;, &amp;quot;ql&amp;quot;, &amp;quot;language&amp;quot;, &amp;quot;lang&amp;quot;, &amp;quot;l&amp;quot;),&lt;br /&gt;
		translation = firstArg(args, &amp;quot;translation-quotation&amp;quot;, &amp;quot;trans-quotation&amp;quot;,&lt;br /&gt;
			&amp;quot;translation-quote&amp;quot;, &amp;quot;trans-quote&amp;quot;, &amp;quot;tq&amp;quot;, &amp;quot;translation&amp;quot;, &amp;quot;trans&amp;quot;,&lt;br /&gt;
			&amp;quot;t&amp;quot;, &amp;quot;xlat&amp;quot;),&lt;br /&gt;
		[&amp;quot;wrap&amp;quot;] = args.wrap&lt;br /&gt;
	} .. zws&lt;br /&gt;
end&lt;br /&gt;
function rp.rp(frame)&lt;br /&gt;
	return rp._rp(getArgs(frame), frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	[&amp;#039;&amp;#039;] = r.r,&lt;br /&gt;
	r = r.r,&lt;br /&gt;
	_r = r._r,&lt;br /&gt;
	rp = rp.rp,&lt;br /&gt;
	_rp = rp._rp,&lt;br /&gt;
	ref = r.ref,&lt;br /&gt;
	_ref = r._ref,&lt;br /&gt;
	where = r.where,&lt;br /&gt;
	_where = r._where,&lt;br /&gt;
	langcode = r.langcode,&lt;br /&gt;
	_langcode = r._langcode,&lt;br /&gt;
	superscript = r.superscript,&lt;br /&gt;
	_superscript = r._superscript&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>imported&gt;Ahecht</name></author>
	</entry>
</feed>