Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Citation: Difference between revisions

From ProleWiki, the proletarian encyclopedia
No edit summary
No edit summary
Line 51: Line 51:
:addClass('plainlinks')
:addClass('plainlinks')
:tag( 'small' )
:tag( 'small' )
:wikitext('[' .. PDF .. ' [PDF]' .. ']')
:wikitext('[' .. PDF .. " " .. '[PDF<nowiki>]</nowiki>' .. ']')
return span
return span
end
end

Revision as of 20:56, 27 October 2021

local p = {}

local function is_set (var)
	return not (var == nil or var == '');
end

function p.cite( frame )
	local pframe = frame:getParent()

	local Author = pframe.args.author
	local Year = pframe.args.year
	local Chapter = pframe.args.chapter
	local Title = pframe.args.title
	local Page = pframe.args.page
	local PDF = pframe.args.pdf
	local City = pframe.args.city
	local Publisher = pframe.args.publisher
	local ISBN = pframe.args.isbn
	local DOI = pframe.args.doi
	local LG = pframe.args.lg

	if is_set (Author) then
		if is_set (Year) then
			x1 = Author .. " (" .. Year .. ")" .. ". "
			else
				x1 = Author .. ". "
		end
		else
			x1 = ""
	end
	
	if is_set (Chapter) then
		x2 = "'" .. Chapter .. "'" .. " in " .. "''" .. Title .. "''"
		else
			x2 = "''" .. Title .. "''"
	end
	
	if is_set (Page) then
		if tonumber(Page) ~= nil then
			Page = "p. " .. Page
			else
				Page = "pp. " .. Page
		end
			x2 = x2 .. " (" .. Page .. ")"
	end
	
	if is_set (PDF) then
		local span = mw.html.create ( 'span' )
		span
		:attr( 'title', 'PDF download')
		:addClass('plainlinks')
		:tag( 'small' )
		:wikitext('[' .. PDF .. " " .. '[PDF<nowiki>]</nowiki>' .. ']')
		return span
		end
		
	return x1 .. x2
end
return p