More languages
More actions
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 = "σ." .. " " .. Page else Page = "σσ." .. " " .. 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