Module:Pg
La documentation pour ce module peut être créée à Module:Pg/Documentation
local p = {}
-- dans l'espace de nom Page reçoit un numéro de page du livre et renvoie le lien vers la bonne page du DjVu
function p.b2dt(frame)
local base = mw.title.getCurrentTitle()
local pageData="Module:Data/"..base.rootText
local parent = frame:getParent()
local ok,page = pcall(mw.loadData,pageData)
local pageDisplay = parent.args[1]
if string.find(pageDisplay,"%.") then
pageDisplay=string.sub(pageDisplay,1,string.find(pageDisplay,"%.")-1)
end
if parent.args[2] then
pageDisplay=parent.args[2]
end
if ok then
return '[[Page:'..base.rootText..'/'..page.b2d[parent.args[1]]..'|'..pageDisplay..']]'
end
return parent.args[1]
end
-- dans ns0 reçoit un numéro de page du livre et renvoie le lien vers la section qui contient la page
function p.b2ns0(frame)
local titre=mw.title.getCurrentTitle()
local test=titre:getContent()
local pageData="Module:Data/"..string.match(test,'index="([^"]-)"')
local ok,page = pcall(mw.loadData,pageData)
local parent = frame:getParent()
local pageDisplay = parent.args[1]
if string.find(pageDisplay,"%.") then
pageDisplay=string.sub(pageDisplay,1,string.find(pageDisplay,"%.")-1)
end
if parent.args[2] then
pageDisplay=parent.args[2]
end
if ok then
pageDjvu=page.b2d[parent.args[1]]
for i,v in pairs(page.cap) do
if pageDjvu >= v.from and pageDjvu <=v.to then
return '[['..v.nom.."#pagename"..pageDjvu..'|'..pageDisplay..']]'
end
end
end
return parent.args[1]
end
--Crée les d2b et b2d d'une livre de l'espace Index (Livre:) -- p.msP('Livre:Backer - Bidasari.djvu')
function p.msP(titreLivre) --FIXME ,frame
local d2b = {}
local b2d = {}
local frame = mw.getCurrentFrame() --FIXME à supprimer
frame = frame:newChild{ title = titreLivre }
mw.log(frame:getTitle()) --FIXME à supprimer
if ( not frame ) then error ("Merci de fournir un argument frame à la fonction p.msP") end
-- récupère le contenu de la page
local page = mw.title.new(titreLivre)
if not page:inNamespace('Index') then
error ("Ce n'est pas une page d'Index")
end
local text = page:getContent()
-- récupère le page list et le parse, on obtient un strip marker
text = string.sub(text,string.find(text,"|Pages=")+7,string.find(text,"|Tomes=")-1)
text = frame:preprocess(text)
-- ERREUR
mw.log(text)--FIXME à supprimer
mw.log(frame:getTitle()..type(text)..string.len(text))--FIXME à supprimer
text = mw.text.unstrip(text) --FIXME ne marche plus depuis 1.25
mw.log(type(text)..string.len(text))--FIXME à supprimer
return text
end
return p