* integrate Poem extension into core (patch by Nathaniel Herman)
This commit is contained in:
parent
2861a4862c
commit
8f521476a8
3 changed files with 40 additions and 1 deletions
1
CREDITS
1
CREDITS
|
|
@ -53,6 +53,7 @@ following names for their contribution to the product.
|
|||
* Michael De La Rue
|
||||
* Mike Horvath
|
||||
* Mormegil
|
||||
* Nathaniel Herman
|
||||
* RememberTheDot
|
||||
* ST47
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ The following extensions are migrated into MediaWiki 1.14:
|
|||
* RenderHash
|
||||
* NoMoveUserPages
|
||||
* Special:Nuke to mass delete all pages created by a user
|
||||
* Poem (patch by Nathaniel Herman)
|
||||
|
||||
=== New features in 1.14 ===
|
||||
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ class Parser
|
|||
$this->mTransparentTagHooks = array();
|
||||
$this->mFunctionHooks = array();
|
||||
$this->mFunctionSynonyms = array( 0 => array(), 1 => array() );
|
||||
$this->mDefaultStripList = $this->mStripList = array( 'nowiki', 'gallery' );
|
||||
$this->mDefaultStripList = $this->mStripList = array( 'nowiki', 'gallery', 'poem' );
|
||||
$this->mUrlProtocols = wfUrlProtocols();
|
||||
$this->mExtLinkBracketedRegex = '/\[(\b(' . wfUrlProtocols() . ')'.
|
||||
'[^][<>"\\x00-\\x20\\x7F]+) *([^\]\\x0a\\x0d]*?)\]/S';
|
||||
|
|
@ -3304,6 +3304,9 @@ class Parser
|
|||
case 'gallery':
|
||||
$output = $this->renderImageGallery( $content, $attributes );
|
||||
break;
|
||||
case 'poem':
|
||||
$output = $this->renderPoem( $content, $attributes );
|
||||
break;
|
||||
default:
|
||||
if( isset( $this->mTagHooks[$name] ) ) {
|
||||
# Workaround for PHP bug 35229 and similar
|
||||
|
|
@ -4173,6 +4176,40 @@ class Parser
|
|||
return $ig->toHTML();
|
||||
}
|
||||
|
||||
/** Renders any text in between <poem></poem> tags
|
||||
* based on http://www.mediawiki.org/wiki/Extension:Poem
|
||||
*/
|
||||
|
||||
function renderPoem( $in, $param=array() ) {
|
||||
|
||||
/* using newlines in the text will cause the parser to add <p> tags,
|
||||
* which may not be desired in some cases
|
||||
*/
|
||||
$nl = isset( $param['compact'] ) ? '' : "\n";
|
||||
|
||||
$tag = $this->insertStripItem( "<br />", $this->mStripState );
|
||||
$text = preg_replace(
|
||||
array( "/^\n/", "/\n$/D", "/\n/", "/^( +)/me" ),
|
||||
array( "", "", "$tag\n", "str_replace(' ',' ','\\1')" ),
|
||||
$in );
|
||||
$text = $this->recursiveTagParse( $text );
|
||||
|
||||
// Pass HTML attributes through to the output.
|
||||
$attribs = Sanitizer::validateTagAttributes( $param, 'div' );
|
||||
|
||||
// Wrap output in a <div> with "poem" class.
|
||||
if( isset( $attribs['class'] ) ) {
|
||||
$attribs['class'] = 'poem ' . $attribs['class'];
|
||||
} else {
|
||||
$attribs['class'] = 'poem';
|
||||
}
|
||||
|
||||
return wfOpenElement( 'div', $attribs ) .
|
||||
$nl .
|
||||
trim( $text ) .
|
||||
"$nl</div>";
|
||||
}
|
||||
|
||||
function getImageParams( $handler ) {
|
||||
if ( $handler ) {
|
||||
$handlerClass = get_class( $handler );
|
||||
|
|
|
|||
Loading…
Reference in a new issue