'revisionuser',
'subpagename',
'subpagenamee',
+ 'pipetrick',
+ 'pipetricke',
'talkspace',
'talkspacee',
'subjectspace',
$parser->setFunctionHook( 'talkpagenamee', array( __CLASS__, 'talkpagenamee' ), SFH_NO_HASH );
$parser->setFunctionHook( 'subjectpagename', array( __CLASS__, 'subjectpagename' ), SFH_NO_HASH );
$parser->setFunctionHook( 'subjectpagenamee', array( __CLASS__, 'subjectpagenamee' ), SFH_NO_HASH );
- $parser->setFunctionHook( 'pipetrick', array( __CLASS__, 'pipetrick' ) );
+ $parser->setFunctionHook( 'pipetrick', array( __CLASS__, 'pipetrick' ), SFH_NO_HASH );
+ $parser->setFunctionHook( 'pipetricke', array( __CLASS__, 'pipetricke' ), SFH_NO_HASH );
$parser->setFunctionHook( 'tag', array( __CLASS__, 'tagObj' ), SFH_OBJECT_ARGS );
$parser->setFunctionHook( 'formatdate', array( __CLASS__, 'formatDate' ) );
return $parser->getPipeTrickLink( $text );
}
+ /**
+ * Performs the pipetrick and then url encodes the result
+ */
+ static function pipetricke( $parser, $link = '', $text = '' ) {
+ return wfUrlEncode( str_replace( ' ', '_', CoreParserFunctions::pipetrick( &$parser, $link, $text ) ) );
+ }
+
/**
* Return the number of pages in the given category, or 0 if it's nonexis-
* tent. This is an expensive parser function and can't be called too many
$subjPage = $this->mTitle->getSubjectPage();
$value = $subjPage->getPrefixedUrl();
break;
+ case 'pipetrick':
+ $text = $this->mTitle->getText();
+ $value = $this->getPipeTrickText( $text );
+ break;
+ case 'pipetricke':
+ $text = $this->mTitle->getText();
+ $value = wfUrlEncode( str_replace( ' ', '_', $this->getPipeTrickText( $text ) ) );
+ break;
case 'revisionid':
// Let the edit saving system know we should parse the page
// *after* a revision ID has been assigned.
'talkpagenamee' => array( 1, 'TALKPAGENAMEE' ),
'subjectpagename' => array( 1, 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
'subjectpagenamee' => array( 1, 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
+ 'pipetrick' => array( 1, 'PIPETRICK' ),
+ 'pipetricke' => array( 1, 'PIPETRICKE' ),
'msg' => array( 0, 'MSG:' ),
'subst' => array( 0, 'SUBST:' ),
'safesubst' => array( 0, 'SAFESUBST:' ),
'plural' => array( 0, 'PLURAL:' ),
'fullurl' => array( 0, 'FULLURL:' ),
'fullurle' => array( 0, 'FULLURLE:' ),
- 'pipetrick' => array( 0, 'PIPETRICK:' ),
'lcfirst' => array( 0, 'LCFIRST:' ),
'ucfirst' => array( 0, 'UCFIRST:' ),
'lc' => array( 0, 'LC:' ),
!! end
!! test
-Magic Word: {{#PIPETRICK:}}
+Magic Word: {{PIPETRICK}}
!! options
title=[[Some (page)]]
!! input
-{{#pipetrick:Hello (one)}}
-{{#pipetrick:World, hi|}}
-{{#pipetrick:|Other}}
+{{PIPETRICK}}
+{{PIPETRICK:Hello (one)}}
+{{PIPETRICK:World, hi|}}
+{{PIPETRICK:|Other}}
!! result
-<p>Hello
+<p>Some
+Hello
World
Other (page)
</p>
!! end
+!! test
+Magic Word: {{PIPETRICKE}}
+!! options
+title=[[Some other (page)]]
+!! input
+{{PIPETRICKE}}
+{{PIPETRICKE:User:Ævar Arnfjörð Bjarmason}}
+{{PIPETRICKE:#Something to do|}}
+{{PIPETRICKE:|The?last}}
+!! result
+<p>Some_other
+%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
+Something_to_do
+The%3Flast_(page)
+</p>
+!! end
+
+
!! test
Magic Word: {{REVISIONID}}
!! input