Module:Version imprimable

Un livre de Wikilivres.
Aller à : navigation, rechercher
Lua-logo-nolabel.svg Documentation du module
Utilisé par {{imprimable}} pour réunir automatiquement toutes les pages d'un livre en une seule.
local p = {}
 
-- Cherche et renvoie le contenu des pages du sommaire placé en paramètre, pour créé une version imprimable du livre.
function p.affiche_livre(frame)
    local param = frame.args[1]
     if (param ~= nil and mw.text.trim(param) ~= '') then
        title = mw.title.new(param)
    else
        return 'Pas de sommaire trouvé'
    end
    text = title.getContent(title)
    local lines_ = mw.text.split(text, "\n")
    local lignes = {}
    for i,v in ipairs(lines_) do
		if string.sub(v, 1, 1) == "*" or string.sub(v, 1, 1) == "#" then
			-- Extrait les titres des pages
			chapter = mw.text.trim(mw.ustring.gsub(v, "[ \*\#\[<small>]*([^\|]*).*", "%1"))
			--chapter = title.getContent(title)
			--table.insert(lignes, chapter .. '\n')
			if (chapter ~= nil and chapter ~= '' and mw.title.new(chapter).exists) then
				table.insert(lignes, frame:expandTemplate{ title = ':' .. chapter } .. '\n\n')
			end
	    end
    end
 
 	debut = frame:expandTemplate{title = "Notice de version imprimable"} .. 
 		'\n' .. frame:expandTemplate{title = "Couverture de version imprimable"}
    fin = frame:expandTemplate{title = "GFDL"}
    local liste = debut .. table.concat(lignes, "\r\n") .. fin
    return liste
end
 
return p