Index: Poem.php =================================================================== --- Poem.php (révision 98042) +++ Poem.php (copie de travail) @@ -50,10 +50,11 @@ $tag = $parser->insertStripItem( "
", $parser->mStripState ); + $text = preg_replace_callback( '#^(:+)(.+)$#m', 'wfPoemIndentVerse', $in ); $text = preg_replace( array( "/^\n/", "/\n$/D", "/\n/" ), array( "", "", "$tag\n" ), - $in ); + $text ); $text = preg_replace_callback( '/^( +)/m', 'wfPoemReplaceSpaces', $text ); $text = $parser->recursiveTagParse( $text, $frame ); @@ -70,8 +71,16 @@ } /** - * Callback for preg_replace_callback() + * Callbacks for preg_replace_callback() */ function wfPoemReplaceSpaces( $m ) { return str_replace( ' ', ' ', $m[1] ); } + +function wfPoemIndentVerse( $m ) { + $attribs = array( + 'class' => 'indented', + 'style' => 'display:inline-block; margin-left:' . strlen( $m[1] ) . 'em' + ); + return Html::rawElement( 'span', $attribs, $m[2] ); +}