Aller au contenu

Module:Citation bloc

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 17 avril 2018 à 16:58 et modifiée en dernier par Zebulon84 (discuter | contributions) (les guillemets aussi doivent être gérés par le modules dans ce cas). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

Module technique utilisé par {{Citation bloc}}.

local p = {}

function p.intercaleParagraphes(frame)

    -- il faudrait normalement utiliser mw.ustring.gsub(),
    -- mais dans ce cas précis gsub() convient aussi, et il est plus performant

    local source, count = frame.args.source
        :gsub('(%S) *\n *\n *\n *\n', '%1</p><p><br></p><p>')
        :gsub('(%S) *\n *\n *\n'    , '%1</p><p><br>')
        :gsub('(%S) *\n *\n'        , '%1</p><p>')

    return source
end

function p.intercaleParagraphesBaS(frame)

    -- il faudrait normalement utiliser mw.ustring.gsub(),
    -- mais dans ce cas précis gsub() convient aussi, et il est plus performant
    
    local title = mw.title.getCurrentTitle()
    local source = frame.args.source
    
    if ( title.isTalkPage or title.namespace == 2 or title.namespace == 4 or title.namespace == 828 )
    	and  source:match( '\n' )
    then
	    source = source
	        :gsub('\n([*#:;]+)'         , function (puce) return '<br>' .. mw.text.nowiki(puce) end)
	        :gsub('(%S) *\n *\n *\n *\n', '%1</p><p><br></p><p>')
	        :gsub('(%S) *\n *\n *\n'    , '%1</p><p><br>')
	        :gsub('(%S) *\n *\n'        , '%1</p><p>')
	        :gsub('(%S) *\n'            , '%1 ')
		
		return '<p>« ' .. source .. ' »</p>'
    end
    return '« ' .. frame.args.source .. ' »\n'
end


return p