Skip to content

Commit

Permalink
Merge pull request #21 from applehat/patch-1
Browse files Browse the repository at this point in the history
Add support for cs and cards tags.
  • Loading branch information
NilsEnevoldsen committed Mar 13, 2018
2 parents f7ba81f + 0740fd2 commit 5fe07b3
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/Hooks.php
Expand Up @@ -21,6 +21,8 @@ public static function onParserFirstCallInit( &$parser ) {
$parser->setHook( 'deck', 'MediaWiki\Extension\ScryfallLinks\Hooks::renderScryfallDeck' );
$parser->setHook( 'c', 'MediaWiki\Extension\ScryfallLinks\Hooks::renderScryfallLink' );
$parser->setHook( 'card', 'MediaWiki\Extension\ScryfallLinks\Hooks::renderScryfallLink' );
$parser->setHook( 'cs', 'MediaWiki\Extension\ScryfallLinks\Hooks::renderScryfallMultiLink' );
$parser->setHook( 'cards', 'MediaWiki\Extension\ScryfallLinks\Hooks::renderScryfallMultiLink' );
return true;
}

Expand Down Expand Up @@ -141,6 +143,37 @@ public static function renderScryfallLink( $input, array $args, $parser, $frame
return self::outputLink( $input, $set, $anchor );
}

/**
* Render <cs>
* @param string $input Some input
* @param array $args Some args
* @param Parser $parser A parser
* @param PPFrame $frame A PPFrame
* @return string
*/
public static function renderScryfallMultiLink( $input, array $args, $parser, $frame ) {
$parser->getOutput()->addModules( 'ext.scryfallLinks.tooltip' );
$input = $parser->recursiveTagParse( $input, $frame );

// Break input into array by lines
$lines = explode( "\n", $input );

if ( count($lines) ) {
$return = "";
foreach( $lines as $line ) {
if ( !empty( $line ) ) {
$return .= self::outputLink( $line, '', $line ). "\n";
}
$return .= "\n";
}
$return = trim($return); // don't add extra line breaks around tag
return $return;
} else {
// return input if failure
return $input;
}
}

/**
* Create link
* @param string $card Card name
Expand Down

0 comments on commit 5fe07b3

Please sign in to comment.