Moduuli:FacebookCite
Jedipediasta, vapaasta Tähtien sota-tietosanakirjasta tänään, 11. tammikuuta 2025
Siirry navigaatioonSiirry hakuunTämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:FacebookCite/ohje
-- <nowiki>
-- Tämä moduuli toteuttaa mallineen [[Malline:FacebookCite]].
local p = {}
local lang = mw.language.getContentLanguage()
local currentTitle = mw.title.getCurrentTitle()
local function makeCategoryLink(cat)
-- "Category" is split out here so that the module isn't put into the
-- category "%s" when the page is saved.
return string.format('[[%s:%s]]', 'Luokka', cat)
end
local function formatDate(format, date)
local success, date = pcall(lang.formatDate, lang, format, date)
if success then
return date
end
end
local function makeLinkedDate(date)
return formatDate('[[j. F"ta"]] [[Y]]', date)
end
local function makeArchiveLink(archive)
if archive:find('^http') then
return string.format('[%s %s]', archive, 'linkki varmuuskopioon')
elseif mw.title.new(archive, 'Tiedosto').fileExists then
return string.format('[[:Tiedosto:%s|%s]]', archive, 'kuvakaappaus')
else
return string.format('[[:en:File:%s|%s]]', archive, 'kuvakaappaus')
end
end
function p._main(args)
local ret = {}
-- Shortcut function for adding new strings
local function add(val)
ret[#ret + 1] = val
end
-- Facebook icon
add('[[Tiedosto:Facebook_icon.svg|14px|link=https://facebook.com]] ')
-- Start citation details.
if args.profilelink then
add(string.format(
'%s ([https://www.facebook.com/%s @%s]) [[wikipedia:fi:Facebook|Facebookissa]]',
args.author, args.profilelink, args.profilelink
))
end
-- Link or archive link
if args.url then
add(string.format(
'[https://www.facebook.com/%s %s].',
args.url, args.description
))
end
-- Date posted
do
if args.dateposted then
add(string.format(' (%s).', makeLinkedDate(args.dateposted)))
end
end
-- Quote
if args.quote then
add(string.format(' ”%s”', args.quote))
end
-- Archive
if args.url then
if args.archivedate then
add(string.format(' <small>([https://web.archive.org/web/%s/https://facebook.com/%s linkki varmuuskopioon]</small>', args.archivedate, args.url))
elseif args.archiveurl then
local archive = makeArchiveLink(args.archiveurl)
add(string.format(' <small>(%s)</small>', archive))
elseif args.image then
add(string.format(' <small>([[:en:%s|linkki varmuuskopioon]])</small>', args.image))
elseif args.nobackup then
add(string.format(' <small>(ei linkkiä varmuuskopioon)</small>'))
else
add(string.format(' <small>([https://web.archive.org/web/https://facebook.com/%s linkki varmuuskopioon]</small>', args.url))
end
end
-- Screenshot tracking category
if args.url
and not args.archiveurl
and not args.archivedate
and not args.image
and not args.nobackup
and currentTitle.namespace == 0
then
add(makeCategoryLink('Sivut, joissa on puuttuvia arkistolinkkejä'))
end
if args.userpage
or args.link
or args.archive
or args.noimage
then
add(makeCategoryLink('Sivut, joissa on mallineparametrivirheitä'))
end
return table.concat(ret)
end
function p.main(frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
v = v:match('^%s*(.-)%s*$') -- trim whitespace
if v ~= '' then
args[k] = v
end
end
if args[1] then
args.profilelink = args[1]
end
if args[2] then
args.url = args[2]
end
if args[3] then
args.author = args[3]
end
return p._main(args)
end
return p
-- </nowiki>