SyntaxHighlighter von Alex Gorbatchev gehört zu den am meisten verwendeten Syntax Highlightern im Web. Freshbooks, ASP .Net Forums, wordpress.com, Aptana, Mozilla Developer Center, SitePoint und das Yahoo Developer Network nutzen diese Art der Code Darstellung. Nicht ohne Grund: GPL oder MIT Lizenz, Broserkompatibilität, nette Features, eine saubere und performante Umsetzung sowie eine große Auswahl an Plugins für praktisch jedes Software die im Netz eingesetzt wird haben es zu dieser Größe gemacht.

 

Version 3 hat, neben verschiedenen anderen Neuerungen, auch einen Autoloader um die benötigten Scripte nach dem dom ready event nachzuladen (lazy loading). Diese Funktionalität ist in die neuste Version meiner TYPO3 Extension eingeflossen. Bisher wurde das in meiner Extension von jQuery (mithilfe von beautyOfCode von Lars Corneliussen) übernommen, was immer eine gewisse Abhängigkeit darstellte.

 

Seit version 7.0.0 meiner Extension kann diese auch standalone also ohne jQuery betrieben werden. Die jQuery Unterstützung bleibt weiterhin vorhanden, damit SyntaxHighlighter Version 2 auch weiterhin im progressive enhancement modus betrieben werden kann.

 

Um auch den Einsatz von script merging und minification Tools zu ermöglichen wurden für Version 3 ein natives und ein jQuery gestütztes dom ready event implementiert. Dies ermöglicht eine Auslagerung des Java-Script codes in eine externe Datei. Ein Beispiel findet sich im Quellcode dieser Seite.

 

SyntaxHighlighter v3 kommt etwas schlanker daher als sein Vorgänger. Zum kopieren des Quellcodes wird jetzt kein Flash mehr eingesetzt. Probiert mal einen Doppelklick:

/**
 * Plugin 'Sourcecode (beautyOfCode)' for the 'beautyofcode' extension.
 */
class tx_beautyofcode_pi1 extends tslib_pibase {
	var $prefixId      	= 'tx_beautyofcode_pi1';		// Same as class name
	var $scriptRelPath 	= 'pi1/class.tx_beautyofcode_pi1.php';	// Path to this script relative to the extension dir.
	var $extKey        	= 'beautyofcode';	// The extension key.
	var $pi_checkCHash 	= true;
	
	/**
	 * The main method of the PlugIn
	 *
	 * @param	string		$content: The PlugIn content
	 * @param	array		$conf: The PlugIn configuration
	 * @return	The content that is displayed on the website
	 */
	 
	function main($content,$conf) {
		$this->conf = $conf;
		$this->pi_setPiVarDefaults();
		
		return $content;
	}
}
beautyofcode Extension: Beispiel Code

Die Extension ist bereits im TER verfügbar. Anregungen und Bugs nehme ich gerne im forge entgegen:

http://forge.typo3.org/projects/extension-beautyofcode/issues

 

 

Die Kommentarfunktion ist für diesen Artikel deaktiviert.

0 Kommentare