More languages
More actions
(Αντιγραφή προτύπου από αγγλόφωνη ΠΒ) |
μ (Βελτίωση στίξης και άλλες μικροδιορθώσεις) |
||
(Μία ενδιάμεση αναθεώρηση από τον ίδιο χρήστη δεν εμφανίζεται) | |||
Γραμμή 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 = "[[ | Title = "[[Βιβλιοθήκη:" .. LibraryTitle .. "|" .. Title .. "]]" | ||
end | end | ||
end | end | ||
Γραμμή 105: | Γραμμή 105: | ||
end | end | ||
if is_set (Section) then | if is_set (Section) then | ||
Chapter = Chapter .. " | Chapter = Chapter .. "· " .. Section | ||
end | end | ||
second_part = second_part .. " | second_part = second_part .. ". " .. "«" .. Chapter .. "»" | ||
end | end | ||
Γραμμή 125: | Γραμμή 125: | ||
if is_set (Page) and not is_set (Volume) then | if is_set (Page) and not is_set (Volume) then | ||
if tonumber(Page) ~= nil then | if tonumber(Page) ~= nil then | ||
Page = " | Page = "σ." .. " " .. Page | ||
else | else | ||
Page = " | Page = "σσ." .. " " .. Page | ||
end | end | ||
second_part = second_part .. " " .. parenthesis (Page) .. "." | second_part = second_part .. " " .. parenthesis (Page) .. "." | ||
Γραμμή 155: | Γραμμή 155: | ||
local span = mw.html.create ( 'span' ) | local span = mw.html.create ( 'span' ) | ||
span | span | ||
:attr( 'title', 'PDF | :attr( 'title', 'Λήψη PDF') | ||
:addClass('plainlinks') | :addClass('plainlinks') | ||
:tag( 'small' ) | :tag( 'small' ) | ||
Γραμμή 191: | Γραμμή 191: | ||
span | span | ||
:tag( 'small' ) | :tag( 'small' ) | ||
:attr( 'title', ' | :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 | :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 | :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 | :attr( 'title', 'Σύνδεσμος Marxists Internet Archive') | ||
:addClass('plainlinks') | :addClass('plainlinks') | ||
:tag( 'small' ) | :tag( 'small' ) |
Τελευταία αναθεώρηση της 10:58, 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 = "σ." .. " " .. 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