More languages
More actions
m (Fixed missing space for Archived code) |
m (Added option to use "website" as parameter) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
local function is_set (var) | local function is_set (var) | ||
return not (var == nil or var == ''); | return not (var == nil or var == ''); | ||
end | |||
local function italics (var) | |||
return "''" .. var .. "''" | |||
end | end | ||
Line 8: | Line 12: | ||
local pframe = frame:getParent() | local pframe = frame:getParent() | ||
local | local Author = pframe.args.author | ||
if is_set (pframe.args.journalist) then | |||
Author = pframe.args.journalist | |||
end | |||
local Date = pframe.args['date'] | local Date = pframe.args['date'] | ||
local Title = pframe.args.title | local Title = pframe.args.title | ||
local URL = pframe.args.url | local URL = pframe.args.url | ||
local | local Website = pframe.args.newspaper or pframe.args.website | ||
local ArchiveURL = pframe.args['archive-url'] | local ArchiveURL = pframe.args['archive-url'] | ||
local ArchiveDate = pframe.args['archive-date'] | local ArchiveDate = pframe.args['archive-date'] | ||
local Retrieved = pframe.args.retrieved | local Retrieved = pframe.args.retrieved | ||
local Quote = pframe.args.quote | |||
local Image = pframe.args.image | |||
local ImageCaption = pframe.args['image-caption'] | |||
if is_set (Date) then | if is_set (Author) then | ||
if is_set (Date) then | |||
first_part = Author .. " (" .. Date .. ")." | |||
else | |||
first_part = Author .. "." | |||
end | |||
else | else | ||
first_part = "" | |||
end | end | ||
if is_set (Image) then | |||
local span = mw.html.create ( 'span' ) | |||
span | |||
:wikitext('[[File:' .. Image .. '|center|300px|frameless]]') | |||
local br = mw.html.create ('br', selfClosing) | |||
if is_set(ImageCaption) then | |||
local caption = mw.html.create ('div') | |||
if is_set ( | caption | ||
:attr("style", "text-align:center;font-size:85%;") | |||
:wikitext(ImageCaption) | |||
first_part = tostring(span) .. tostring(caption) .. first_part | |||
else | else | ||
first_part = tostring(span) .. first_part | |||
end | end | ||
end | end | ||
Line 40: | Line 59: | ||
Title = "[" .. URL .. " " .. "\"" .. Title .. "\"" .. "]" | Title = "[" .. URL .. " " .. "\"" .. Title .. "\"" .. "]" | ||
end | end | ||
if not is_set ( | if not is_set (Author) then | ||
if is_set (Date) then | |||
Title = Title .. " (" .. Date .. ")." | Title = Title .. " (" .. Date .. ")." | ||
else | else | ||
Title = Title .. "." | Title = Title .. "." | ||
end | |||
end | |||
second_part = Title | |||
else | else | ||
second_part = "" | |||
end | end | ||
if is_set( | if is_set(Website) then | ||
third_part = "''" .. Website .. "''." | |||
else | else | ||
third_part = "" | |||
end | end | ||
Line 59: | Line 80: | ||
if is_set(ArchiveURL) then | if is_set(ArchiveURL) then | ||
if is_set(ArchiveDate) then | if is_set(ArchiveDate) then | ||
fourth_part = "[" .. ArchiveURL .. " " .. "Archived" .. "]" .. " " .. " from the original on" .. " " .. ArchiveDate .. "." | |||
else | else | ||
fourth_part = "[" .. ArchiveURL .. " " .. "Archived" .. "]" .. " from the original." | |||
end | end | ||
else | else | ||
fourth_part = "" | |||
end | end | ||
if is_set (Retrieved) then | if is_set (Retrieved) then | ||
fifth_part = "Retrieved" .. " " .. Retrieved .. "." | |||
else | else | ||
fifth_part = "" | |||
end | 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 (first_part) then | |||
if is_set ( | first_part = first_part .. " " | ||
end | end | ||
if is_set ( | if is_set (second_part) then | ||
second_part = second_part .. " " | |||
end | end | ||
if is_set ( | if is_set (third_part) then | ||
third_part = third_part .. " " | |||
end | end | ||
if is_set ( | if is_set (fourth_part) then | ||
fourth_part = fourth_part .. " " | |||
end | end | ||
Render = | Render = first_part .. second_part .. third_part .. fourth_part .. fifth_part | ||
return Render | return Render | ||
end | end | ||
return p | return p |
Latest revision as of 13:05, 13 December 2022
local p = {}
local function is_set (var)
return not (var == nil or var == '');
end
local function italics (var)
return "''" .. var .. "''"
end
function p.cite( frame )
local pframe = frame:getParent()
local Author = pframe.args.author
if is_set (pframe.args.journalist) then
Author = pframe.args.journalist
end
local Date = pframe.args['date']
local Title = pframe.args.title
local URL = pframe.args.url
local Website = pframe.args.newspaper or pframe.args.website
local ArchiveURL = pframe.args['archive-url']
local ArchiveDate = pframe.args['archive-date']
local Retrieved = pframe.args.retrieved
local Quote = pframe.args.quote
local Image = pframe.args.image
local ImageCaption = pframe.args['image-caption']
if is_set (Author) then
if is_set (Date) then
first_part = Author .. " (" .. Date .. ")."
else
first_part = Author .. "."
end
else
first_part = ""
end
if is_set (Image) then
local span = mw.html.create ( 'span' )
span
:wikitext('[[File:' .. Image .. '|center|300px|frameless]]')
local br = mw.html.create ('br', selfClosing)
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
if is_set (Title) then
if is_set (URL) then
Title = "[" .. URL .. " " .. "\"" .. Title .. "\"" .. "]"
end
if not is_set (Author) then
if is_set (Date) then
Title = Title .. " (" .. Date .. ")."
else
Title = Title .. "."
end
end
second_part = Title
else
second_part = ""
end
if is_set(Website) then
third_part = "''" .. Website .. "''."
else
third_part = ""
end
if is_set(ArchiveURL) then
if is_set(ArchiveDate) then
fourth_part = "[" .. ArchiveURL .. " " .. "Archived" .. "]" .. " " .. " from the original on" .. " " .. ArchiveDate .. "."
else
fourth_part = "[" .. ArchiveURL .. " " .. "Archived" .. "]" .. " from the original."
end
else
fourth_part = ""
end
if is_set (Retrieved) then
fifth_part = "Retrieved" .. " " .. Retrieved .. "."
else
fifth_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 (first_part) then
first_part = first_part .. " "
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
Render = first_part .. second_part .. third_part .. fourth_part .. fifth_part
return Render
end
return p