Подписаться через RSS2Email.ru
|
Показать HTML | Показать BBCode
Поддерживаемые теги
Теги подсветок синтаксисов
xBB включает теги для 76-и подсветок сантаксисов различных языков программирования, разметок, конфигурационных файлов и т.п. Подсветка реализована с помощью свободно распространяемой библиотеки GeSHi. Документацию по используемой версии GeSHi можно прочесть здесь.
Подсветка осуществляется с помощью специальных тегов BBCode, полный список которых приведен ниже. Имя тега - название подсвечиваемого языка. Кроме того, подсветка может осуществляться с помощью тега [code] в форме [code=Название_языка]. Все теги поддерживают следующие необязательные атрибуты:
- num - указывает на необходимость показа номеров строк. Если этому атрибуту присвоено целое неотрицательное значение, то нумерация строк начнется с этого значения.
- tab - задает ширину табуляции (положительное целое число).
- extra - перечисленные через запятую номера строк, которые неоходимо особо выделить. Этот атрибут ничего не делает, если опущен атрибут num.
- title - строка. Переопределяет заголовок кода.
- footer - строка. Подпись под кодом.
Примеры использования
Простейшая подсветка PHP с помощью тега [php]| BBCode | Результат
|
|---|
[php]// Подключаем библиотеку xBB
require_once './bbcode.lib.php';
// Создаем объект и парсим $text
$bb = new bbcode($text);
echo $bb->get_html();[/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] | /* Статистические сведения по обработке 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] | 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 с определенной нумерацией строк| 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] | 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: "Код: ";
}
|
Устанавливаем ширину табуляции в 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] | 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;
}
|
Переопределяем заголовок| 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] |
/* Альтернативные названия языков и их трансляция в обозначения 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',
);
|
Подписываем код| 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] | // Формируем подпись под кодом
if (isset($this->attrib['footer'])) {
$content = htmlspecialchars(
$this->attrib['footer']
);
$content = '<div class="bb_code_footer">'
. $content . '</div>';
$result .= $content;
}
|
Выделяем особые строки| 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] | // Класс для тега [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" />';
}
}
|
Тег [code] без указания подсвечиваемого синтаксиса, равносилен конструкции [code=text] или тегу [text]. В этом случае, посветка отсутствует.
Список тегов подсветок:
[actionscript] - подсвечивает язык ActionScript.
[ada] - подсвечивает язык Ada. Пример:
with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
[apache] - подсвечивает текст конфигурационных файлов Apache.
[applescript] - подсвечивает язык AppleScript.
[asm] - подсвечивает язык x86 Assembler, основанном на синтаксисе NASM.
[asp] - подсвечивает язык ASP. Пример:
<html>
<body>
<% Response.Write("Hello World!") %>
</body>
</html>
[autoit] - подсвечивает язык AutoIt. Пример:
; display a message dialog
Msgbox(0, "Example", "Hello World!")
[bash] - подсвечивает GNU Bourne-Again Shell.
[blitzbasic] - подсвечивает язык BlitzBasic.
[bnf] - подсвечивает Backus–Naur form. Пример:
<postal-address> ::= <name-part> <street-address> <zip-part>
<name-part> ::= <personal-part> <last-name> <opt-jr-part> <EOL>
| <personal-part> <name-part>
<personal-part> ::= <first-name> | <initial> "."
<street-address> ::= <opt-apt-num> <house-num> <street-name> <EOL>
<zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
[c] - подсвечивает язык C.
[c++] - подсвечивает язык C++. Пример:
#include <iostream> // for std::cout
using namespace std; // import std:: names
int main()
{
cout << "Hello World!" << endl;
return 0;
}
[c_mac] - подсвечивает язык C for Macs.
[c#] - подсвечивает язык C#. Пример:
main()
{
printf("hello, world\n");
}
[caddcl] - подсвечивает язык CAD DCL (Dialog Control Language).
[cadlisp] - подсвечивает язык AutoCAD V.12..2005 и все версии IntelliCAD.
[cfdg] - подсвечивает язык CFDG.
[cfm] - подсвечивает язык ColdFusion Markup. Пример:
<cfquery name="nameofquery" datasource="odbc_connection" username="simple" password="enough">
SELECT * FROM table
WHERE field = 'whateveryouaresearchingfor'
</cfquery>
<cfoutput query="nameofquery">
#field_from_query#
<!--- Выше находится объявление переменной, а это — просто комментарий. --->
</cfoutput>
[code] - универсальный тег для вывода программных кодов. Название подсвечиваемого языка можно указать так: [code="Имя языка"]. Если язык не указан, код не будет подсвечен.
[cpp-qt] - подсвечивает язык C++ с расширением QT.
[css] - подсвечивает таблицы стилей CSS. Пример:
span.bb_attrib_name {
color: #999900;
}
[d] - подсвечивает язык D.
[delphi] - подсвечивает язык Delphi (Object Pascal). Пример:
procedure THelloWorld.Put;
begin
WriteLn('Hello, World!');
end;
[diff] - подсвечивает язык Diff-output.
[div] - подсвечивает язык DIV.
[dos] - подсвечивает команды DOS.
[eiffel] - подсвечивает язык Eiffel. Пример:
class
HELLO_WORLD
create
make
feature
make
do
io.put_string ("Hello, world!")
io.put_new_line
end
end
[fortran] - подсвечивает язык Fortran.
[freebasic] - подсвечивает язык FreeBASIC. Пример:
Print "Hello, World!"
Sleep
[gml] - подсвечивает скриптовый язык GML (Game Maker Language). Пример:
[groovy] - подсвечивает язык Groovy.
[html4] - подсвечивает разметку HTML 4.01 Strict. Пример:
<HTML>
<HEAD></HEAD>
<BODY><P ALIGN="CENTER">Hello World!</P></BODY>
</HTML>
[idl] - подсвечивает язык Unoidl.
[ini] - подсвечивает INI-файлы.
[inno] - подсвечивает язык Inno Script language.
[io] - подсвечивает язык Io. Пример:
[java] - подсвечивает язык Java. Пример:
// Hello.java
public class Hello {
public static void main (String[] args ) {
System. out. println("Hello, World!");
}
}
[java5] - подсвечивает язык Java(TM) 2 Platform Standard Edition 5.0.
[js] - подсвечивает язык JavaScript.
[latex] - подсвечивает язык разметки LaTeX.
[lisp] - подсвечивает язык Generic Lisp. Пример:
(print (list 'Hello 'world))
[lua] - подсвечивает язык LUA.
[matlab] - подсвечивает язык Matlab M.
[mirc] - подсвечивает язык mIRC Scripting. Пример:
alias hello {
echo -a Hello World!
}
[mpasm] - подсвечивает язык Microchip Assembler.
[mysql] - подсвечивает язык MySQL. Пример:
SELECT 'Hello World!' FROM mytable;
[nsis] - подсвечивает язык Nullsoft Scriptable Install System.
[objc] - подсвечивает язык Objective C.
[ocaml] - подсвечивает язык OCaml (Objective Caml). Пример:
print_endline "Hello world!";;
[oobas] - подсвечивает язык OpenOffice.org Basic.
[oracle] - подсвечивает язык Oracle 8 SQL.
[pascal] - подсвечивает язык Pascal.
[perl] - подсвечивает язык Perl. Пример:
[php] - подсвечивает язык PHP.
[plsql] - подсвечивает язык Oracle 9.2 PL/SQL. Пример:
[pre] - синоним для тега [code].
[python] - подсвечивает язык Python.
[qbasic] - подсвечивает язык QBasic/QuickBASIC.
[reg] - подсветка для Microsoft Registry Editor.
[robots] - подсвечивает файл robots.txt.
[ruby] - подсвечивает язык Ruby. Пример:
$ irb
irb(main):001:0> puts "Hello, World"
Hello, World
=> nil
irb(main):002:0> 1+2
=> 3
[sas] - подсвечивает язык SAS code.
[scheme] - подсвечивает язык Scheme. Пример:
(begin
(display "Hello, World!")
(newline))
[sdlbasic] - подсвечивает язык sdlBasic.
[smalltalk] - подсвечивает язык Smalltalk. Пример:
Transcript show: 'Hello, world!'.
[smarty] - подсвечивает язык шаблонов Smarty.
[sql] - подсвечивает язык запросов SQL.
[t-sql] - подсвечивает язык T-SQL.
[tcl] - подсвечивает язык TCL/iTCL. Пример:
[text] - текст без подсветки, соответствующий простому текстовому файлу.
[thinbasic] - подсвечивает язык thinBasic.
[vb] - подсвечивает язык Visual Basic. Пример:
Private Sub Form1_Paint()
Print "Hello World"
End Sub
[vb.net] - подсвечивает язык VB.NET. Пример:
Private Sub Command1_Click()
MsgBox "Hello, World"
End Sub
[vhdl] - подсвечивает язык VHDL (VHSICADL, very high speed integrated circuit HDL).
[visualfoxpro] - подсвечивает язык Visual FoxPro.
[winbatch] - подсвечивает скриптовый язык WinBatch.
[xml] - подсвечивает язык разметки XML. Пример:
<?xml version="1.0" encoding="windows-1251"?>
<test>Hello, World</test>
[z80] - подсвечивает язык ZiLOG Z80 Assembler.
Последнее редактирование: 2008-02-01 10:07:31
Метки материала:
теги BBCode, xBB, PHP, code, pre, GeSHi, подсветка кода, примеры BBCode
6 комментариев
Гость tester
ld hl,22ff44
inc hl
add hl,da
dec hl
Гость tester
то , что я вижу - это фиговая подсветка ....
может кто подскажет как сделать на основе этой библиотеки свою собственную подсветку синтаксиса ???
Гость tester
И может у кого есть дока по этой библиотеке полность на русском ???
dima
Полностью на русском нет нигде! Но добавление подсветок в эту либу элементарно. Чтобы создать/пофиксить подсветку не нужно даже и доку читать. Достаточно посмотреть, как устроены прочие файлы подсветок.
Гость qeos
как размер шрифта изменить?
Оставьте, пожалуйста, свой комментарий к публикации
|