Toggle menu
Toggle personal menu
Δεν έχετε συνδεθεί
Your IP address will be publicly visible if you make any edits.

Module:Citation: Διαφορά μεταξύ των αναθεωρήσεων

Από την ΠρολεΒίκι, την προλεταριακή εγκυκλοπαίδεια
(Αντιγραφή προτύπου από αγγλόφωνη ΠΒ)
 
(Μετάφραση προσθέτου)
Γραμμή 15: Γραμμή 15:
function p.cite( frame )
function p.cite( frame )
local pframe = frame:getParent()
local pframe = frame:getParent()
local Author = pframe.args.author
local Author = pframe.args['συγγραφέας'] or pframe.args.author
local Year = pframe.args.year or pframe.args['date']
local Year = pframe.args['έτος'] or pframe.args.year or pframe.args['date']
local Chapter = pframe.args.chapter
local Chapter = pframe.args['κεφάλαιο'] or pframe.args.chapter
local ChapterURL = pframe.args['chapter-url']
local ChapterURL = pframe.args['url-κεφαλαίου'] or pframe.args['chapter-url']
local Section = pframe.args.section
local Section = pframe.args['ενότητα'] or pframe.args.section
local Title = pframe.args.title
local Title = pframe.args['τίτλος'] or pframe.args.title
local TitleURL = pframe.args['title-url']
local TitleURL = pframe.args['url-έργου'] or pframe.args['title-url']
local LibraryTitle = pframe.args['library-title']
local LibraryTitle = pframe.args['τίτλος-βιβλιοθήκης'] or pframe.args['library-title']
local Volume = pframe.args.volume
local Volume = pframe.args['τόμος'] or pframe.args.volume
local Series = pframe.args.series or pframe.args.journal
local Series = pframe.args['σειρά'] or pframe.args.series or pframe.args.journal
local Trans = pframe.args['trans-title']
local Trans = pframe.args['πρωτότυπος-τίτλος'] or pframe.args['trans-title']
local TransLang = pframe.args['trans-lang']
local TransLang = pframe.args['γλώσσα-πρωτοτύπου'] or pframe.args['trans-lang']
local Page = pframe.args.page or pframe.args.pages
local Page = pframe.args['σελ'] or pframe.args.page or pframe.args.pages
local PDF = pframe.args.pdf
local PDF = pframe.args.pdf
local City = pframe.args.city
local City = pframe.args['τόπος'] or pframe.args['πόλη'] or pframe.args.city
local Publisher = pframe.args.publisher or pframe.args.via
local Publisher = pframe.args['εκδότης'] or pframe.args.publisher or pframe.args.via
local ISBN = pframe.args.isbn or pframe.args.issn
local ISBN = pframe.args.isbn or pframe.args.issn
local ISSN = false
local ISSN = false
Γραμμή 39: Γραμμή 39:
local LG = pframe.args.lg
local LG = pframe.args.lg
local MIA = pframe.args.mia
local MIA = pframe.args.mia
local Quote = pframe.args.quote
local Quote = pframe.args['απόφθεγμα'] or pframe.args.quote
local Image = pframe.args.image
local Image = pframe.args['εικόνα'] or pframe.args.image
local ImageCaption = pframe.args['image-caption']
local ImageCaption = pframe.args['λεζάντα-εικόνας'] or pframe.args['image-caption']
local Dotless = pframe.args.dotless
local Dotless = pframe.args.dotless


Γραμμή 90: Γραμμή 90:
Title = "[" .. TitleURL .. " " .. Title .. "]"
Title = "[" .. TitleURL .. " " .. Title .. "]"
else if is_set (LibraryTitle) then
else if is_set (LibraryTitle) then
Title = "[[Library:" .. LibraryTitle .. "|" .. Title .. "]]"
Title = "[[Βιβλιοθήκη:" .. LibraryTitle .. "|" .. Title .. "]]"
end
end
end
end
Γραμμή 155: Γραμμή 155:
local span = mw.html.create ( 'span' )
local span = mw.html.create ( 'span' )
span
span
:attr( 'title', 'PDF download')
:attr( 'title', 'Λήψη PDF')
:addClass('plainlinks')
:addClass('plainlinks')
:tag( 'small' )
:tag( 'small' )
Γραμμή 191: Γραμμή 191:
span
span
:tag( 'small' )
:tag( 'small' )
:attr( 'title', 'The ISSN Portal')
:attr( 'title', 'Το πόρταλ του ISSN')
:wikitext('[' .. "https://portal.issn.org/resource/ISSN/" .. ISBN .. " " .. "ISSN " .. ISBN .. ']')
:wikitext('[' .. "https://portal.issn.org/resource/ISSN/" .. ISBN .. " " .. "ISSN " .. ISBN .. ']')
else
else
Γραμμή 210: Γραμμή 210:
local span = mw.html.create ( 'span' )
local span = mw.html.create ( 'span' )
span
span
:attr( 'title', 'Sci-Hub link')
:attr( 'title', 'Σύνδεσμος Sci-Hub')
:addClass('plainlinks')
:addClass('plainlinks')
:tag( 'small' )
:tag( 'small' )
Γραμμή 220: Γραμμή 220:
local span = mw.html.create ( 'span' )
local span = mw.html.create ( 'span' )
span
span
:attr( 'title', 'Library Genesis link')
:attr( 'title', 'Σύνδεσμος Library Genesis')
:addClass('plainlinks')
:addClass('plainlinks')
:tag( 'small' )
:tag( 'small' )
Γραμμή 230: Γραμμή 230:
local span = mw.html.create ( 'span' )
local span = mw.html.create ( 'span' )
span
span
:attr( 'title', 'Marxists Internet Archive link')
:attr( 'title', 'Σύνδεσμος Marxists Internet Archive')
:addClass('plainlinks')
:addClass('plainlinks')
:tag( 'small' )
:tag( 'small' )

Αναθεώρηση της 10:43, 14 Απριλίου 2024

Documentation for this module may be created at Module:Citation/τεκμηρίωση

local p = {}

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

local function italics (var)
	return "<i>" .. var .. "</i>"
end

local function parenthesis (var)
	return "(" .. var .. ")"
end

function p.cite( frame )
	local pframe = frame:getParent()
	local Author = pframe.args['συγγραφέας'] or pframe.args.author
	local Year = pframe.args['έτος'] or pframe.args.year or pframe.args['date']
	local Chapter = pframe.args['κεφάλαιο'] or pframe.args.chapter
	local ChapterURL = pframe.args['url-κεφαλαίου'] or pframe.args['chapter-url']
	local Section = pframe.args['ενότητα'] or pframe.args.section
	local Title = pframe.args['τίτλος'] or pframe.args.title
	local TitleURL = pframe.args['url-έργου'] or pframe.args['title-url']
	local LibraryTitle = pframe.args['τίτλος-βιβλιοθήκης'] or pframe.args['library-title']
	local Volume = pframe.args['τόμος'] or pframe.args.volume
	local Series = pframe.args['σειρά'] or pframe.args.series or pframe.args.journal
	local Trans = pframe.args['πρωτότυπος-τίτλος'] or pframe.args['trans-title']
	local TransLang = pframe.args['γλώσσα-πρωτοτύπου'] or pframe.args['trans-lang']
	local Page = pframe.args['σελ'] or pframe.args.page or pframe.args.pages
	local PDF = pframe.args.pdf
	local City = pframe.args['τόπος'] or pframe.args['πόλη'] or pframe.args.city
	local Publisher = pframe.args['εκδότης'] or pframe.args.publisher or pframe.args.via
	local ISBN = pframe.args.isbn or pframe.args.issn
	local ISSN = false
	if is_set(pframe.args.issn) then
		ISSN = true
	end
	local DOI = pframe.args.doi
	local LG = pframe.args.lg
	local MIA = pframe.args.mia
	local Quote = pframe.args['απόφθεγμα'] or pframe.args.quote
	local Image = pframe.args['εικόνα'] or pframe.args.image
	local ImageCaption = pframe.args['λεζάντα-εικόνας'] or pframe.args['image-caption']
	local Dotless = pframe.args.dotless


	if is_set (Author) then
		if is_set (Year) then
			first_part = Author .. " " .. parenthesis (Year) .. "."
			else
				first_part = Author .. "."
		end
		else
			first_part = ''
	end
	
	if is_set (Quote) then
		Quote = string.gsub(Quote,"\n","<br>")
		Quote = "“" .. Quote .. "”"
		local div = mw.html.create ('div')
		div
		:attr("style", "width:80%; margin-left:10%;")
		:wikitext(Quote)
		local br = mw.html.create ('br', selfClosing)
		first_part = italics(tostring(div)) .. tostring(br) .. first_part
	end
	
	if is_set (Image) then
		local span = mw.html.create ( 'span' )
		span
		:wikitext('[[File:' .. Image .. '|center|300px|frameless]]')

		if is_set(ImageCaption) then 
			local caption = mw.html.create ('div')
			caption
			:attr("style", "text-align:center;font-size:85%;")
			:wikitext(ImageCaption)
			first_part = tostring(span) .. tostring(caption) .. first_part
			else
				first_part = tostring(span) .. first_part
		end
				
	end
	
	-- second part: Title(URL), Series, Volume, Chapter(URL), Year, Page, Trans(Lang), PDF
	local second_part = ''

	if is_set (Title) then
		if is_set (TitleURL) then
			Title = "[" .. TitleURL .. " " .. Title .. "]"
			else if is_set (LibraryTitle) then
				Title = "[[Βιβλιοθήκη:" .. LibraryTitle .. "|" .. Title .. "]]"
			end
		end
		Title = italics(Title)
		if not is_set (Series) then
			if is_set (Volume) then
				Title = Title .. ", vol. " .. Volume
			end
		end
		second_part = Title
		if is_set (Chapter) then
			if is_set (ChapterURL) then
				Chapter = "[" .. ChapterURL .. " " .. Chapter .. "]"
			end
			if is_set (Section) then
				Chapter = Chapter .. "; " .. Section
			end
			second_part = second_part .. ": " .. "'" .. Chapter .. "'"
		end
		
		if not is_set (Author) then
			if is_set (Year) then
				second_part = second_part .. " " .. parenthesis (Year)
			end
		end
		
		if is_set (Trans) then
			if is_set (TransLang) then
				second_part = second_part .. " " .. "(" .. TransLang .. ": " .. Trans .. ")"
				else
					second_part = second_part .. " " .. parenthesis (Trans)
			end
		end
		if is_set (Page) and not is_set (Volume) then
			if tonumber(Page) ~= nil then
				Page = "p." .. " " .. Page
				else
					Page = "pp." .. " " .. Page
			end
				second_part = second_part .. " " .. parenthesis (Page) .. "."
			else
				second_part = second_part .. "."
		end
	end
	
	if is_set (Series) then
		if is_set (Volume) then
			Series = Series .. ", vol." .. Volume
		end

		if is_set (Page) and is_set (Volume) and is_set (Series) then
			if tonumber(Page) ~= nil then
				Page = "p." .. " " .. Page
				else
					Page = "pp." .. " " .. Page
			end
				second_part = second_part .. " " .. Series  .. " " .. parenthesis (Page) .. "."
			else
				second_part = second_part .. " " .. Series .. "."
		end
	end
	
	if is_set (PDF) then
		local span = mw.html.create ( 'span' )
		span
		:attr( 'title', 'Λήψη PDF')
		:addClass('plainlinks')
		:tag( 'small' )
		:wikitext('[' .. PDF .. " " .. mw.text.nowiki('[PDF]') .. ']')
		second_part = second_part .. " " .. tostring(span)
	end
	
	-- third part: City, Publisher
	
	if is_set (City) then
		if is_set (Publisher) then
			third_part = City .. ": " .. Publisher .. "."
			else
				third_part = City .. "."
		end
	end

	if not is_set(City) then
		if is_set (Publisher) then
			third_part = Publisher .. "."
			else
				third_part = ''
		end
	end
	
	-- fourth part: ISBN, DOI, Library Genesis, Marxists Internet Archive

	fourth_part = ''

	if is_set (ISBN) then
		local span = mw.html.create ( 'span' )
		span
		:addClass('plainlinks')
		if (ISSN) then
			span
			:tag( 'small' )
			:attr( 'title', 'Το πόρταλ του ISSN')
			:wikitext('[' .. "https://portal.issn.org/resource/ISSN/" .. ISBN .. " " .. "ISSN " .. ISBN .. ']')
			else
				span
				:tag( 'small' )
				:attr( 'title', 'WorldCat')
				:wikitext('[' .. "https://www.worldcat.org/search?qt=worldcat_org_all&q=" .. ISBN .. " " .. "ISBN " .. ISBN .. ']')
		end
		fourth_part = fourth_part .. tostring(span)
	end

	if is_set (DOI) then
		local doispan = mw.html.create ( 'span' )
		doispan
		:tag('small')
		:wikitext("doi: " .. DOI)
		fourth_part = fourth_part .. " " .. tostring(doispan)
		local span = mw.html.create ( 'span' )
		span
		:attr( 'title', 'Σύνδεσμος Sci-Hub')
		:addClass('plainlinks')
		:tag( 'small' )
		:wikitext('[' .. "https://sci-hub.se/" .. DOI .. " " .. mw.text.nowiki('[HUB]') .. ']')
		fourth_part = fourth_part .." " .. tostring(span)
	end
	
	if is_set (LG) then
		local span = mw.html.create ( 'span' )
		span
		:attr( 'title', 'Σύνδεσμος Library Genesis')
		:addClass('plainlinks')
		:tag( 'small' )
		:wikitext('[' .. LG .. " " .. mw.text.nowiki('[LG]') .. ']')
		fourth_part = fourth_part .." " .. tostring(span)
	end
	
	if is_set (MIA) then
		local span = mw.html.create ( 'span' )
		span
		:attr( 'title', 'Σύνδεσμος Marxists Internet Archive')
		:addClass('plainlinks')
		:tag( 'small' )
		:wikitext('[' .. MIA .. " " .. mw.text.nowiki('[MIA]') .. ']')
		fourth_part = fourth_part .." " .. tostring(span)
	end
		
	
	if is_set (second_part) then
		second_part = " " .. second_part
	end
	
	if is_set (third_part) then
		third_part = " " .. third_part
	end
	
	if is_set (fourth_part) then
		fourth_part = " " .. fourth_part
	end
	
	local render = first_part .. second_part .. third_part .. fourth_part
	
	-- trim render
	
	render = string.gsub(render,"^%s*(.-)%s*$","%1")
	
	if Dotless then
		render = render:sub(1,-2)
	end

	return render
end
return p