GeSHI
14 July 2008
Comments
GeSHi czylo Generic Syntax Highlighter to klasa służąca do wyświetlania pokolorowanej składni kodu wielu języków programistycznych. Obecnie GeSHi obsługuje języki takie jak: HTML, CSS, C, PHP, JAVA, SQL i inne.Podstawowe opcje GeSHi
Wraz z klasą mamy plik example.php - jest to w pełni działający skrypt pokazujący możliwości klasy. Wpisujemy kod, wybieramy język i wysyłamy formularz. Zaczniemy od podstaw. Oto przykład kodu kolorującego składnię wybranego języka:<?php
<?PHP
include('geshi.php');
$language = 'php'; // język kodu
$patch = 'geshi/'; // ścieżka do plików językowych
ob_start(); // tworzymy zmienną przechowującą kod do pokolorowania
?>
echo $foo;
// tutaj jakiś kod PHP do kolorowania
<?PHP
$source = ob_get_contents();
// Cały powyższy kod znajduje się w zmiennej $source
ob_end_clean();
// Tworzymy nowy obiekt klasy
$geshi = new GeSHi($source, $language, $path);
// Wyświetlamy
echo $geshi->parse_code();
<?PHP
ob_start(); // tworzymy zmienną przechowującą kod do pokolorowania
?>
echo $foo;
// tutaj jakiś kod PHP do kolorowania
<?PHP
$source = ob_get_contents();
// Cały powyższy kod znajduje się w zmiennej $source
ob_end_clean();
$language = 'php'; // język kolorowanego kodu
include('geshi.php');
// Tworzymy obiekt
$geshi = new GeSHi($source, $language);
$geshi->enable_classes();
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5); // Numerowanie wierszy
$geshi->set_overall_style('font-size: 90%; color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true); // ogólne formatowanie (obramowanie i tło)
$geshi->set_line_style('font: normal normal 95% 'Courier New', Courier, monospace; color: #003030;', 'font: bold normal 95% 'Courier New', Courier, monospace; color: #006060;', true); // wygląd numerów wieszy
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>GeSHi examples</title>
<style type="text/css">
<!--
<?php
echo $geshi->get_stylesheet(); // style dla danego kodu
?>
-->
</style></head><body>
<?php
// wyświetlenie wyniku
echo $geshi->parse_code();
?>
Po szczegółowy opis odsyłam do dokumentacji klasy (w katalogu doc/)
RkBlog
Comment article