Module:InterviewArchive
Jump to navigation
Jump to search
Documentation for this module may be created at Module:InterviewArchive/doc
local p = {}
local function generateInterview(interview, frame)
local output = {}
frame:extensionTag( 'templatestyles', '', { src = 'Template:Interview/styles.css' } );
table.insert(output, '<div class="mnbox" id="' .. interview.title .. '">')
table.insert(output, '<div class="ivimage" style="display:table-cell; vertical-align:top;">')
if interview.cover ~= '' then
table.insert(output, '[[File:' .. interview.cover .. '||90px]]')
else
table.insert(output, '[[File:NoPicAv.png|90px]]')
end
table.insert(output, '</div>')
table.insert(output, '<div style="display:table-cell; width:100%;">')
table.insert(output, '<div class="column">')
table.insert(output, '<div class="diamond" style="background:' .. frame:preprocess('{{Color|' .. interview.part .. '}}') .. '; text-align:center; padding:0.5%;">')
table.insert(output, '<span class="fadeinimg" style="float: left; margin-left:5px;">')
table.insert(output, '[[File:JJLSymbol.png|20px|link=#' .. interview.title .. '|Link to this section]]</span>')
table.insert(output, "'''Interview:" .. interview.title .. "'''")
table.insert(output, '</div>')
table.insert(output, '<div style="padding-left:1%; font-size:90%;">')
if interview.translation then
table.insert(output, frame:preprocess('{{Tag|' .. interview.translation .. '}}'))
end
if interview.transcript then
table.insert(output, frame:preprocess('{{Tag|' .. interview.transcript .. '}}'))
end
table.insert(output, frame:preprocess('{{Tag|' .. interview.media .. '}}'))
table.insert(output, frame:preprocess('{{Tag|' .. interview.type .. '}}'))
table.insert(output, frame:preprocess('{{Align|{{Tag|Date=' .. interview.date .. '}}|right}}'))
local interviewees = table.concat(interview.interviewee, ', ')
table.insert(output, '<div class="interviewee" style="display:table-row;">👤 ' .. interviewees .. '</div>')
table.insert(output, '<div style="display:table-row;">📜 ')
for _, tag in ipairs(interview.tags) do
table.insert(output, frame:preprocess('{{Tag|' .. tag .. '}}'))
end
table.insert(output, '</div></div></div></div>')
table.insert(output, '<div style="padding-left:1%; text-align:center; font-size:95%;">')
table.insert(output, '</div></div></div>')
return table.concat(output)
end
function p.generateArchive(frame)
local content = mw.loadJsonData('JoJo Wiki:Interviews').interviews
local output = {}
for _, interview in ipairs(content) do
table.insert(output, generateInterview(interview, frame))
end
return table.concat(output, '\n')
end
return p