Módulo:IJC
Este módulo realiza funções de administração de conteúdos do curso Introdução ao Jornalismo Científico.
local p = {}
function glg(content, level)
local content = content
local level = level or "==="
local learning_goals = ""
local idx = string.find(content, '*learningGoals=', 1, true)
if idx then
content = string.sub(content, idx+15)
table_content = mw.text.split(content,"*learningGoals=")
learning_goals = gp(gp(table_content[1],'*numThreads'))
return string.char(10)..string.char(10)..level.."Objetivos de aprendizado"..level..string.char(10)..learning_goals
else
return learning_goals
end
end
function gp(content, sep)
local sep = sep or '='
local eoc = mw.ustring.find(content, sep , 1, true)
return string.sub(mw.ustring.sub(content,1,eoc),1,-2)
end
function gu(content)
local content = content
local unit = {}
local idx = string.find(content, '==unit|', 1, true)
if idx then
content = string.sub(content, idx+7)
table_content = mw.text.split(content,"==unit|")
for k, v in ipairs(table_content) do
unit[#unit+1] = '==='..gp(v)..'==='..glg(v,"====")--string.sub(mw.ustring.sub(v,1,mw.ustring.find(v, '=' , 1, true)),1,-2)
end
return string.char(10)..string.char(10)..table.concat(unit,string.char(10)..string.char(10))
else
return ''
end
end
function p.gs(frame)
local title = 'Introdução ao Jornalismo Científico/MoocIndex'
local content = mw.title.new(title):getContent()
local lesson = {}
local idx = string.find(content, '=lesson|' , 1, true)
content = string.sub(content, idx+8)
table_content = mw.text.split(content,"=lesson|")
for k, v in ipairs(table_content) do
lesson[#lesson+1] = '=='..gp(v)..'=='..gu(v)..glg(v)..string.char(10)..string.char(10)--string.sub(mw.ustring.sub(v,1,mw.ustring.find(v, '=' , 1, true)),1,-2)
end
return table.concat(lesson)
end
-------------------------------------------------------------------------------
-- gc (acrônimo para get content) pega o texto de uma linha da tabela de
-- conteúdos dinâmicos do curso de Introdução ao Jornalismo Científico.
-- "id" é um identificador único de uma linha da tabela
-------------------------------------------------------------------------------
function p.gc(frame)
local id = frame.args.id or frame.args[1] or '1'
local title = 'Introdução ao Jornalismo Científico/Conteúdos dinâmicos'
local content = mw.title.new(title):getContent()
local sub_content, phrase, ref = "", "", ""
local refs = {}
local index_ini, index_end = string.find(content, 'id=' .. '"' .. id .. '"', 1, true)
if index_ini and index_end then
sub_content = string.sub(content, index_ini+9)
local eoc_aux, eoc = string.find(sub_content,'id="botao_' .. id .. '"',1,true)
if eoc_aux and eoc then
sub_content = string.sub(sub_content,1,eoc)
local phrase_ini, phrase_end = string.find(sub_content,'id="texto_' .. id .. '"',1,true)
local ref_ini, ref_end = string.find(sub_content,'id="ref_' .. id .. '"',1,true)
local aula_ini, aula_end = string.find(sub_content,'id="aula_' .. id .. '"',1,true)
if phrase_ini and phrase_end then
phrase = string.sub(sub_content, phrase_end+4, ref_ini-3)
end
if ref_ini and ref_end then
ref = string.sub(sub_content, ref_end+4, aula_ini-3)
for ref_match in ref:gmatch("<ref>(.-)<\/ref>") do
table.insert(refs, frame:extensionTag{ name = 'ref', content = ref_match}..'<sup>[[File:Blue_pencil.svg|10px|link='..title..'#'..id..']]</sup>')
end
for ref_match in ref:gmatch("<ref name=.->(.-)<\/ref>") do
table.insert(refs, frame:extensionTag{ name = 'ref', content = ref_match}..'<sup>[[File:Blue_pencil.svg|10px|link='..title..'#'..id..']]</sup>')
end
end
end
end
return phrase..table.concat(refs)
end
return p