Help:Sandkasten: Difference between revisions

From BlueM
Jump to navigation Jump to search
m (Sandkasten wurde nach Hilfe:Sandkasten verschoben)
No edit summary
Line 1: Line 1:
<math>y=x+2</math>
<HIGHLIGHTSYNTAX language="php3">
<?php
/**
* WikiMedia Extension for Code Syntax Highlighting with the [ http://www.beautifier.org | Beautifier Syntax Highlighting Engine].
*
* Parses any content defined within the <nowiki><highlightSyntax></highlightSyntax></nowiki> tag
* with the [ http://www.beautifier.org | Beautifier Syntax Highlighting Engine] and
* returns the HTML output.
* @author Lucas Hrabovsky <lucas@amie.st>
* @copyright © 2006 Amie Inc.
* @package MediaWiki
* @subpackage Extensions
* @filesource
*/
/**
* ----------------------------------------
* Configuration Vars.
* ----------------------------------------
* @string BEAUT_PATH The root path to your Beatuifier installation.
* @string LOCAL_SERVER_ROOT The root path to use when opening files on the local server for highlighting.
* @string OUTPUT_HIGHLIGHT_AS Whether to output the HTML as CSS friendly or not.  enum('CSS','HTML')
*/
$BEAUT_PATH = "/path/to/your/beautifier/installation/";
$LOCAL_SERVER_ROOT = "/pathtoyour/public_html/or/www/directory/";
$OUTPUT_HIGHLIGHT_AS = "HTML";
/**
* Add the syntax highlighting extension to the wgExtensionFunctions array.
*/
$wgExtensionFunctions[] = "syntaxHighlightingExtension";
/**
* Register the syntaxHighlightingExtension with the Wiki Parser and associate
* the highlightSyntax tag with the syntaxHighlightingRenderHtml function.
*/
function syntaxHighlightingExtension(){
        global $wgParser;
        $wgParser->setHook("HIGHLIGHTSYNTAX","syntaxHighlightingRenderHtml");
}
/**
* The callback function for converting the input text to HTML output.
*/
function syntaxHighlightingRenderHtml($input, $argv){
        /**
        * Pass in the globals defined above for use in the function.
        */
        global $BEAUT_PATH, $LOCAL_SERVER_ROOT, $OUTPUT_HIGHLIGHT_AS;
        /**
        * Require the two main files for the beautifier.
        */
        require_once ($BEAUT_PATH."Beautifier/Core.php");
 
        /**
        * If a specific language is requested load the relevant file and create the highlighter
        */
        $myhfile = null;
        if($argv["language"]){
                require_once ($BEAUT_PATH."HFile/HFile_".$argv["language"].".php");
 
                if (FALSE === eval("\$myhfile = new HFile_".$argv["language"]."();") ) {
                        $output .= "Error:1 Could not instantiate HFile_".$argv["language"]."()<br />";
                }
 
        }
 
        /**
        * Otherwise use php as a default
        */
        else
        {
                require_once ($BEAUT_PATH."HFile/HFile_php3.php");
                $myhfile = new HFile_php3();
        }
 
        /**
        * Sett up the highlight object based on whether
        * you want the output as CSS freindly or straight HTML.
        */
        if($OUTPUT_HIGHLIGHT_AS=="CSS"){
                require_once ($BEAUT_PATH."Output/Output_css.php");
                $outputter = new Output_css();
        }
        else {
                require_once ($BEAUT_PATH."Output/Output_HTML.php");
                $outputter = new Output_Html();
        }
 
        $highlighter = new Core($myhfile, $outputter);
 
        /**
        * The meat and potatoes...
        */
 
        /**
        * If the serverFile argument is passed in the tag, load the local file into the highlighter parser.
        */
        if($argv["serverFile"]){
                $output .= "<div style=\"font-weight: bold;\"><pre>\n";
                $output .= $highlighter->highlight_text($highlighter->load_file($serverRoot.$argv["serverFile"]));
                $output .= "</pre></div>";
                return $output;
        /**
        * If its a remote file, open it up and parse the returned contents.
        */
        } else if($argv["remoteFile"]){
                $openFileName = $argv["remoteFile"];
                $fp = fopen($openFileName, "r");
                if(!$fp){
                        $output = "Error: Syntax Highlighter could not open the file ".$openFileName."<br />";
                } else {
                        $fileContents = fread($fp, 8096);
                        fclose($fp);
                        $output .= "<div style=\"font-weight: bold;\"><h1>Code from <a href=\"".$argv["remoteFile"]."\">".$argv["remoteFile"]."</a></h1><pre>\n";
                        $output .= $highlighter->highlight_text($fileContents);
                        $output .= "</pre></div>";
                }
                return $output;
        /**
        * Else we just want to highlight the code within the syntaxHighlight tags.
        */
        } else {
                $output .= "<div style=\"font-weight: bold;\"><pre>\n";
                $output .= $highlighter->highlight_text($input);
                $output .= "</pre></div>";
                return $output;
        }
}
?>
</HIGHLIGHTSYNTAX>

Revision as of 05:23, 24 August 2006

<HIGHLIGHTSYNTAX language="php3"> <?php /**

* WikiMedia Extension for Code Syntax Highlighting with the [ http://www.beautifier.org | Beautifier Syntax Highlighting Engine].
*
* Parses any content defined within the <highlightSyntax></highlightSyntax> tag
* with the [ http://www.beautifier.org | Beautifier Syntax Highlighting Engine] and 
* returns the HTML output.
* @author Lucas Hrabovsky <lucas@amie.st>
* @copyright © 2006 Amie Inc.
* @package MediaWiki
* @subpackage Extensions
* @filesource
*/

/**

* ----------------------------------------
* Configuration Vars.
* ----------------------------------------
* @string BEAUT_PATH The root path to your Beatuifier installation.
* @string LOCAL_SERVER_ROOT The root path to use when opening files on the local server for highlighting.
* @string OUTPUT_HIGHLIGHT_AS Whether to output the HTML as CSS friendly or not.  enum('CSS','HTML')
*/

$BEAUT_PATH = "/path/to/your/beautifier/installation/"; $LOCAL_SERVER_ROOT = "/pathtoyour/public_html/or/www/directory/"; $OUTPUT_HIGHLIGHT_AS = "HTML"; /**

* Add the syntax highlighting extension to the wgExtensionFunctions array.
*/

$wgExtensionFunctions[] = "syntaxHighlightingExtension"; /**

* Register the syntaxHighlightingExtension with the Wiki Parser and associate 
* the highlightSyntax tag with the syntaxHighlightingRenderHtml function.
*/

function syntaxHighlightingExtension(){

       global $wgParser;
       $wgParser->setHook("HIGHLIGHTSYNTAX","syntaxHighlightingRenderHtml");

} /**

* The callback function for converting the input text to HTML output.
*/

function syntaxHighlightingRenderHtml($input, $argv){

       /**
        * Pass in the globals defined above for use in the function.
        */
       global $BEAUT_PATH, $LOCAL_SERVER_ROOT, $OUTPUT_HIGHLIGHT_AS;
       /**
        * Require the two main files for the beautifier.
        */
       require_once ($BEAUT_PATH."Beautifier/Core.php");
       /**
        * If a specific language is requested load the relevant file and create the highlighter
        */
       $myhfile = null;
       if($argv["language"]){
               require_once ($BEAUT_PATH."HFile/HFile_".$argv["language"].".php");
               if (FALSE === eval("\$myhfile = new HFile_".$argv["language"]."();") ) {
                       $output .= "Error:1 Could not instantiate HFile_".$argv["language"]."()
"; }
       }
       /**
        * Otherwise use php as a default
        */
       else
       {
               require_once ($BEAUT_PATH."HFile/HFile_php3.php");
               $myhfile = new HFile_php3();
       }
       /**
        * Sett up the highlight object based on whether
        * you want the output as CSS freindly or straight HTML.
        */
       if($OUTPUT_HIGHLIGHT_AS=="CSS"){
               require_once ($BEAUT_PATH."Output/Output_css.php");
               $outputter = new Output_css();
       }
       else {
               require_once ($BEAUT_PATH."Output/Output_HTML.php");
               $outputter = new Output_Html();
       }
       $highlighter = new Core($myhfile, $outputter);
       /**
        * The meat and potatoes...
        */
       /**
        * If the serverFile argument is passed in the tag, load the local file into the highlighter parser.
        */ 
       if($argv["serverFile"]){

$output .= "

\n";
                $output .= $highlighter->highlight_text($highlighter->load_file($serverRoot.$argv["serverFile"]));
                $output .= "

";

               return $output;
       /**
        * If its a remote file, open it up and parse the returned contents.
        */
       } else if($argv["remoteFile"]){
               $openFileName = $argv["remoteFile"];
               $fp = fopen($openFileName, "r");
               if(!$fp){
                       $output = "Error: Syntax Highlighter could not open the file ".$openFileName."
"; } else { $fileContents = fread($fp, 8096); fclose($fp);

$output .= "

Code from <a href=\"".$argv["remoteFile"]."\">".$argv["remoteFile"]."</a>

\n";
                        $output .= $highlighter->highlight_text($fileContents);
                        $output .= "

";

               }
               return $output;
       /**
        * Else we just want to highlight the code within the syntaxHighlight tags.
        */
       } else {

$output .= "

\n";
                $output .= $highlighter->highlight_text($input);
                $output .= "

";

               return $output;
       }

} ?> </HIGHLIGHTSYNTAX>