Extension:BlueM
Jump to navigation
Jump to search
A simple extension for making syntax highlighting of BlueM input files easier. It converts the tag <bluem> to <source lang="bluem">, so that the extension SyntaxHighlight can highlight the syntax.
<?php
$wgExtensionCredits['parserhook']['BlueM'] = array(
'path' => __FILE__,
'name' => 'BlueM',
'author' => array( 'Felix Froehlich'),
'description' => 'Converts the tag <code><nowiki><bluem></nowiki></code> to <code><nowiki><source lang="bluem"></nowiki></code> so that the extension [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi SyntaxHighlight] can highlight the syntax.',
'url' => 'http://wiki.bluemodel.org/index.php/Extension:BlueM',
'version' => '1.0',
);
$wgHooks['ParserFirstCallInit'][] = 'wfBluemParserInit';
// Hook our callback function into the parser
function wfBlueMParserInit( Parser $parser ) {
$parser->setHook( 'bluem', 'wfparseBlueM' );
// Always return true from this function. The return value does not denote
// success or otherwise have meaning - it just must always be true.
return true;
}
// Execute
function wfparseBlueM( $input, array $args, Parser $parser, PPFrame $frame ) {
return $parser->recursiveTagParse( "<source lang=\"bluem\">{$input}<\/source>", $frame ); // <-- repair the closing source tag before use!
}
Save the following file as bluem.php in the geshi language file directory:
<?php
/*************************************************************************************
* bluem.php
* --------
* Author: Felix Froehlich (felix@bluemodel.org)
* Copyright: (c) 2008 Felix Froehlich
* Release Version: 1.0.8.5
* Last Modified: $Date: 2009/10/09 11:00:00 $
*
* BlueM language file for GeSHi.
*
* CHANGES
* -------
*
* TODO
* ----
*
*************************************************************************************
*
* This file is part of GeSHi.
*
* GeSHi is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* GeSHi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GeSHi; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
************************************************************************************/
$language_data = array (
'LANG_NAME' => 'bluem',
'COMMENT_SINGLE' => array(),
'COMMENT_MULTI' => array(),
'COMMENT_REGEXP' => array(1 => '/^\*.*?$/mi'), //Zeile fängt mit * an
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array(),
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
1 => array('J', 'N'),
2 => array(),
3 => array()
),
'SYMBOLS' => array(0 => '|'),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
2 => false,
3 => false,
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: blue;',
2 => '',
3 => ''
),
'COMMENTS' => array(
1 => 'color: #808080; font-style:italic;',
2 => '',
'MULTI' => ''
),
'ESCAPE_CHAR' => array(
0 => ''
),
'BRACKETS' => array(
0 => ''
),
'STRINGS' => array(
0 => ''
),
'NUMBERS' => array(
0 => 'color: red;'
),
'METHODS' => array(
1 => '',
2 => ''
),
'SYMBOLS' => array(
0 => 'color: #808080; font-style:italic;' // |-Zeichen
),
'REGEXPS' => array(
1 => 'color: orange;', //Datum
2 => 'color: orange;' //Nur Uhrzeit
),
'SCRIPT' => array(
0 => '',
1 => '',
2 => '',
3 => ''
)
),
'URLS' => array(
1 => '',
2 => '',
3 => '',
4 => ''
),
'OOLANG' => false,
'OBJECT_SPLITTERS' => array(),
'REGEXPS' => array(
1 => "[^\d]\d\d\.\d\d(\.\d{2,4})?(\s\d\d:\d\d)?[^\d]", //Datum
2 => "[^\d]\d\d:\d\d[^\d]" //Nur Uhrzeit
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(),
'HIGHLIGHT_STRICT_BLOCK' => array(
0 => true,
1 => true,
2 => true,
3 => true
)
);
?>