Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Поддерживаемые теги

Теги подсветок синтаксисов

xBB включает теги для 76-и подсветок сантаксисов различных языков программирования, разметок, конфигурационных файлов и т.п. Подсветка реализована с помощью свободно распространяемой библиотеки GeSHi. Документацию по используемой версии GeSHi можно прочесть здесь.
 
Подсветка осуществляется с помощью специальных тегов BBCode, полный список которых приведен ниже. Имя тега - название подсвечиваемого языка. Кроме того, подсветка может осуществляться с помощью тега [code] в форме [code=Название_языка]. Все теги поддерживают следующие необязательные атрибуты:
  1. num - указывает на необходимость показа номеров строк. Если этому атрибуту присвоено целое неотрицательное значение, то нумерация строк начнется с этого значения.
     
  2. tab - задает ширину табуляции (положительное целое число).
     
  3. extra - перечисленные через запятую номера строк, которые неоходимо особо выделить. Этот атрибут ничего не делает, если опущен атрибут num.
     
  4. title - строка. Переопределяет заголовок кода.
     
  5. footer - строка. Подпись под кодом.

Примеры использования

Простейшая подсветка PHP с помощью тега [php]
BBCodeРезультат
[php]// Подключаем библиотеку xBB
require_once './bbcode.lib.php';
// Создаем объект и парсим $text
$bb = new bbcode($text);
echo $bb->get_html();[/php]
PHP
// Подключаем библиотеку xBB
require_once './bbcode.lib.php';
// Создаем объект и парсим $text
$bb = new bbcode($text);
echo $bb->get_html();

Простейшая подсветка PHP с помощью тега [code]
BBCodeРезультат
[code=php]/* Статистические сведения по обработке BBCode */
var $stat = array(
   'time_parse' => 0,  // Время парсинга
   'time_html' => 0,   // Время генерации HTML-а
   'count_tags' => 0,  // Число тегов BBCode
   'count_level' => 0  // Число уровней вложенности тегов BBCode
);[/code]
PHP
/* Статистические сведения по обработке BBCode */
var $stat = array(
    'time_parse' => 0// Время парсинга
    'time_html' => 0,   // Время генерации HTML-а
    'count_tags' => 0// Число тегов BBCode
    'count_level' => 0  // Число уровней вложенности тегов BBCode
);

Подсветка CSS с нумерацией строк
BBCodeРезультат
[css num]div.bb_code {
   margin-top: 0px;
   margin-right: 5px;
   margin-bottom: 10px;
   margin-left: 5px;
   padding: 5px;
   border-color: #a9b8c2;
   border-width: 1px;
   border-style: solid;
   color: #006600;
   font-family: Monaco,'Courier New',monospace;
   background-color: #fafafa;
}[/css]
CSS
  1. div.bb_code {
  2.     margin-top: 0px;
  3.     margin-right: 5px;
  4.     margin-bottom: 10px;
  5.     margin-left: 5px;
  6.     padding: 5px;
  7.     border-color: #a9b8c2;
  8.     border-width: 1px;
  9.     border-style: solid;
  10.     color: #006600;
  11.     font-family: Monaco,'Courier New',monospace;
  12.     background-color: #fafafa;
  13. }

Подсветка CSS с определенной нумерацией строк
BBCodeРезультат
[css num=100]div.bb_code_header {
   margin: -5px -5px 5px -5px;
   padding: 4px;
   border-width: 1px 1px 0px 1px;
   border-style: solid;
   border-color: #a9b8c2;
   color: #333333;
   background-color: #a9b8c2;
   font-size: 0.85em;
   font-weight: bold;
}
span.bb_code_lang:before {
   content: "Код: ";
}[/css]
CSS
  1. div.bb_code_header {
  2.     margin: -5px -5px 5px -5px;
  3.     padding: 4px;
  4.     border-width: 1px 1px 0px 1px;
  5.     border-style: solid;
  6.     border-color: #a9b8c2;
  7.     color: #333333;
  8.     background-color: #a9b8c2;
  9.     font-size: 0.85em;
  10.     font-weight: bold;
  11. }
  12. span.bb_code_lang:before {
  13.     content: "Код: ";
  14. }

Устанавливаем ширину табуляции в 4 символа
BBCodeРезультат
[css tab=4]div.bb_code_footer {
margin: 5px -5px -5px -5px;
padding: 4px;
border-width: 1px 0px 0px 0px;
border-style: solid;
border-color: #a9b8c2;
color: #333333;
font-size: 0.85em;
font-weight: bold;
text-align: center;
}[/css]
CSS
  1. div.bb_code_footer {
  2.     margin: 5px -5px -5px -5px;
  3.     padding: 4px;
  4.     border-width: 1px 0px 0px 0px;
  5.     border-style: solid;
  6.     border-color: #a9b8c2;
  7.     color: #333333;
  8.     font-size: 0.85em;
  9.     font-weight: bold;
  10.     text-align: center;
  11. }

Переопределяем заголовок
BBCodeРезультат
[php title="Код из файла Code.php"]
/* Альтернативные названия языков и их трансляция в обозначения GeSHi */
var $lang_synonym = array(
   'c++'    => 'cpp',
   'c#'     => 'csharp',
   'html'   => 'html4strict',
   'html4'  => 'html4strict',
   'js'     => 'javascript',
   'ocaml'  => 'ocaml-brief',
   'oracle' => 'oracle8',
   't-sql'  => 'tsql',
   'vb.net' => 'vbnet',
);[/php]
Код из файла Code.php
  1.  
  2. /* Альтернативные названия языков и их трансляция в обозначения GeSHi */
  3. var $lang_synonym = array(
  4.     'c++'    => 'cpp',
  5.     'c#'     => 'csharp',
  6.     'html'   => 'html4strict',
  7.     'html4'  => 'html4strict',
  8.     'js'     => 'javascript',
  9.     'ocaml'  => 'ocaml-brief',
  10.     'oracle' => 'oracle8',
  11.     't-sql'  => 'tsql',
  12.     'vb.net' => 'vbnet',
  13. );

Подписываем код
BBCodeРезультат
[php footer="Код из файла Code.php"]// Формируем подпись под кодом
if (isset($this->attrib['footer'])) {
   $content = htmlspecialchars(
       $this->attrib['footer']
   );
   $content = '<div class="bb_code_footer">'
       . $content . '</div>';
   $result .= $content;
}[/php]
PHP
  1. // Формируем подпись под кодом
  2. if (isset($this->attrib['footer'])) {
  3.     $content = htmlspecialchars(
  4.         $this->attrib['footer']
  5.     );
  6.     $content = '<div class="bb_code_footer">'
  7.         . $content . '</div>';
  8.     $result .= $content;
  9. }

Выделяем особые строки
BBCodeРезультат
[php num extra=2,7]// Класс для тега [hr]
class Xbb_Tags_Hr extends bbcode {
   var $is_close = true;
   var $rbr = 1;
   var $behaviour = 'hr';
   function get_html($tree = null) {
       return '<hr class="bb" />';
   }
}[/php]
PHP
  1. // Класс для тега [hr]
  2. class Xbb_Tags_Hr extends bbcode {
  3.     var $is_close = true;
  4.     var $rbr = 1;
  5.     var $behaviour = 'hr';
  6.     function get_html($tree = null) {
  7.         return '<hr class="bb" />';
  8.     }
  9. }

Тег [code] без указания подсвечиваемого синтаксиса, равносилен конструкции [code=text] или тегу [text]. В этом случае, посветка отсутствует.
 
Список тегов подсветок:
  1. [actionscript] - подсвечивает язык ActionScript.
     
  2. [ada] - подсвечивает язык Ada. Пример:
     
    Ada
    1. with Ada.Text_IO;
    2.  
    3. procedure Hello is
    4. begin
    5.    Ada.Text_IO.Put_Line("Hello, world!");
    6. end Hello;

  3. [apache] - подсвечивает текст конфигурационных файлов Apache.
     
  4. [applescript] - подсвечивает язык AppleScript.
     
  5. [asm] - подсвечивает язык x86 Assembler, основанном на синтаксисе NASM.
     
  6. [asp] - подсвечивает язык ASP. Пример:
     
    ASP
    1. <html>
    2. <body>
    3.  
    4. <% Response.Write("Hello World!") %>
    5.  
    6. </body>
    7. </html>

  7. [autoit] - подсвечивает язык AutoIt. Пример:
     
    AutoIt
    1.   ; display a message dialog
    2.   Msgbox(0,"Example","Hello World!")

  8. [bash] - подсвечивает GNU Bourne-Again Shell.
     
  9. [blitzbasic] - подсвечивает язык BlitzBasic.
     
  10. [bnf] - подсвечивает Backus–Naur form. Пример:
     
    bnf
    1. <postal-address> ::= <name-part> <street-address> <zip-part>
    2.  
    3.      <name-part> ::= <personal-part> <last-name> <opt-jr-part> <EOL>
    4.                    | <personal-part> <name-part>
    5.  
    6.  <personal-part> ::= <first-name> | <initial> "."
    7.  
    8. <street-address> ::= <opt-apt-num> <house-num> <street-name> <EOL>
    9.  
    10.       <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>

  11. [c] - подсвечивает язык C.
     
  12. [c++] - подсвечивает язык C++. Пример:
     
    C++
    1. #include <iostream> // for std::cout
    2. using namespace std; // import std:: names
    3.  
    4. int main()
    5. {
    6.    cout << "Hello World!" << endl;
    7.    return 0;
    8. }

  13. [c_mac] - подсвечивает язык C for Macs.
     
  14. [c#] - подсвечивает язык C#. Пример:
     
    C#
    1. main()
    2. {
    3.     printf("hello, world\n");
    4. }

  15. [caddcl] - подсвечивает язык CAD DCL (Dialog Control Language).
     
  16. [cadlisp] - подсвечивает язык AutoCAD V.12..2005 и все версии IntelliCAD.
     
  17. [cfdg] - подсвечивает язык CFDG.
     
  18. [cfm] - подсвечивает язык ColdFusion Markup. Пример:
     
    ColdFusion
    1. <cfquery name="nameofquery" datasource="odbc_connection" username="simple" password="enough">
    2.   SELECT * FROM table
    3.   WHERE field = 'whateveryouaresearchingfor'
    4. </cfquery>
    5. <cfoutput query="nameofquery">
    6. #field_from_query#
    7. <!--- Выше находится объявление переменной, а это — просто комментарий. --->
    8. </cfoutput>

  19. [code] - универсальный тег для вывода программных кодов. Название подсвечиваемого языка можно указать так: [code="Имя языка"]. Если язык не указан, код не будет подсвечен.
     
  20. [cpp-qt] - подсвечивает язык C++ с расширением QT.
     
  21. [css] - подсвечивает таблицы стилей CSS. Пример:
     
    CSS
    1. span.bb_attrib_name {
    2.     color: #999900;
    3. }

  22. [d] - подсвечивает язык D.
     
  23. [delphi] - подсвечивает язык Delphi (Object Pascal). Пример:
     
    Delphi
    1. procedure THelloWorld.Put;
    2.  begin
    3.    WriteLn('Hello, World!');
    4.  end;

  24. [diff] - подсвечивает язык Diff-output.
     
  25. [div] - подсвечивает язык DIV.
     
  26. [dos] - подсвечивает команды DOS.
     
  27. [eiffel] - подсвечивает язык Eiffel. Пример:
     
    Eiffel
    1.    class
    2.        HELLO_WORLD
    3.    create
    4.        make
    5.    feature
    6.       make
    7.          do
    8.             io.put_string ("Hello, world!")
    9.             io.put_new_line
    10.          end
    11.    end

  28. [fortran] - подсвечивает язык Fortran.
     
  29. [freebasic] - подсвечивает язык FreeBASIC. Пример:
     
    FreeBasic
    1. Print "Hello, World!"
    2. Sleep

  30. [gml] - подсвечивает скриптовый язык GML (Game Maker Language). Пример:
     
    GML
    1. show_message("Hello World!");

  31. [groovy] - подсвечивает язык Groovy.
     
  32. [html4] - подсвечивает разметку HTML 4.01 Strict. Пример:
     
    HTML
    1. <HTML>
    2. <HEAD></HEAD>
    3. <BODY><P ALIGN="CENTER">Hello World!</P></BODY>
    4. </HTML>

  33. [idl] - подсвечивает язык Unoidl.
     
  34. [ini] - подсвечивает INI-файлы.
     
  35. [inno] - подсвечивает язык Inno Script language.
     
  36. [io] - подсвечивает язык Io. Пример:
     
    Io
    1. "Hello, world!" println

  37. [java] - подсвечивает язык Java. Пример:
     
    Java
    1. // Hello.java
    2. public class Hello {
    3.     public static void main(String[] args) {
    4.         System.out.println("Hello, World!");
    5.     }
    6. }

  38. [java5] - подсвечивает язык Java(TM) 2 Platform Standard Edition 5.0.
     
  39. [js] - подсвечивает язык JavaScript.
     
  40. [latex] - подсвечивает язык разметки LaTeX.
     
  41. [lisp] - подсвечивает язык Generic Lisp. Пример:
     
    Lisp
    1. (print (list 'Hello 'world))

  42. [lua] - подсвечивает язык LUA.
     
  43. [matlab] - подсвечивает язык Matlab M.
     
  44. [mirc] - подсвечивает язык mIRC Scripting. Пример:
     
    mIRC Scripting
    1. alias hello {
    2.   echo -a Hello World!
    3. }

  45. [mpasm] - подсвечивает язык Microchip Assembler.
     
  46. [mysql] - подсвечивает язык MySQL. Пример:
     
    MySQL
    1. SELECT 'Hello World!' FROM mytable;

  47. [nsis] - подсвечивает язык Nullsoft Scriptable Install System.
     
  48. [objc] - подсвечивает язык Objective C.
     
  49. [ocaml] - подсвечивает язык OCaml (Objective Caml). Пример:
     
    OCaml
    1. print_endline "Hello world!";;

  50. [oobas] - подсвечивает язык OpenOffice.org Basic.
     
  51. [oracle] - подсвечивает язык Oracle 8 SQL.
     
  52. [pascal] - подсвечивает язык Pascal.
     
  53. [perl] - подсвечивает язык Perl. Пример:
     
    Perl
    1. #!/usr/bin/perl
    2. print "Hello, world!\n";

  54. [php] - подсвечивает язык PHP.
     
  55. [plsql] - подсвечивает язык Oracle 9.2 PL/SQL. Пример:
     
    PL/SQL
    1. number1 NUMBER(2);
    2. number2 NUMBER(2) := 17;
    3. text VARCHAR2(12) := 'Hello world';
    4. SELECT street_number INTO number1 FROM address WHERE name='Smith';

  56. [pre] - синоним для тега [code].
     
  57. [python] - подсвечивает язык Python.
     
  58. [qbasic] - подсвечивает язык QBasic/QuickBASIC.
     
  59. [reg] - подсветка для Microsoft Registry Editor.
     
  60. [robots] - подсвечивает файл robots.txt.
     
  61. [ruby] - подсвечивает язык Ruby. Пример:
     
    Ruby
    1. $ irb
    2. irb(main):001:0> puts "Hello, World"
    3. Hello, World
    4. => nil
    5. irb(main):002:0> 1+2
    6. => 3

  62. [sas] - подсвечивает язык SAS code.
     
  63. [scheme] - подсвечивает язык Scheme. Пример:
     
    Scheme
    1. (begin
    2.    (display "Hello, World!")
    3.    (newline))

  64. [sdlbasic] - подсвечивает язык sdlBasic.
     
  65. [smalltalk] - подсвечивает язык Smalltalk. Пример:
     
    Smalltalk
    1.   Transcript show: 'Hello, world!'.

  66. [smarty] - подсвечивает язык шаблонов Smarty.
     
  67. [sql] - подсвечивает язык запросов SQL.
     
  68. [t-sql] - подсвечивает язык T-SQL.
     
  69. [tcl] - подсвечивает язык TCL/iTCL. Пример:
     
    TCL
    1. puts "Hello, world!"

  70. [text] - текст без подсветки, соответствующий простому текстовому файлу.
     
  71. [thinbasic] - подсвечивает язык thinBasic.
     
  72. [vb] - подсвечивает язык Visual Basic. Пример:
     
    Visual Basic
    1. Private Sub Form1_Paint()
    2. Print "Hello World"
    3. End Sub

  73. [vb.net] - подсвечивает язык VB.NET. Пример:
     
    vb.net
    1. Private Sub Command1_Click()
    2.     MsgBox "Hello, World"
    3. End Sub

  74. [vhdl] - подсвечивает язык VHDL (VHSICADL, very high speed integrated circuit HDL).
     
  75. [visualfoxpro] - подсвечивает язык Visual FoxPro.
     
  76. [winbatch] - подсвечивает скриптовый язык WinBatch.
     
  77. [xml] - подсвечивает язык разметки XML. Пример:
     
    XML
    1. <?xml version="1.0" encoding="windows-1251"?>
    2. <test>Hello, World</test>

  78. [z80] - подсвечивает язык ZiLOG Z80 Assembler.
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2008-02-01 10:07:31

Метки материала: теги BBCode, xBB, PHP, code, pre, GeSHi, подсветка кода, примеры BBCode


6 комментариев

29.05.2009 19:58:26 #
Opera Гость qeos
как размер шрифта изменить?
26.12.2007 01:14:13 #
Mozilla Firefox dima
Полностью на русском нет нигде! Но добавление подсветок в эту либу элементарно. Чтобы создать/пофиксить подсветку не нужно даже и доку читать. Достаточно посмотреть, как устроены прочие файлы подсветок.
25.12.2007 18:21:06 #
Opera Гость tester
И может у кого есть дока по этой библиотеке полность на русском ???
25.12.2007 18:17:13 #
Opera Гость tester
то , что я вижу - это фиговая подсветка ....
может кто подскажет как сделать на основе этой библиотеки свою собственную подсветку синтаксиса ???
25.12.2007 18:10:53 #
Opera Гость tester
ZiLOG Z80 Assembler
ld hl,22ff44
inc hl
add hl,da
dec hl

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2019, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.