Подсветка синтаксиса языков

Правила доступа, права и обязанности пользователей. Предложения по созданию и обсуждение новых форумов. Назначение и снятие локальных администраторов и модераторов. Жалобы и предложения по работе форума.

Модератор: xdsl

Подсветка синтаксиса языков

Сообщение xdsl 22 янв 2011, 03:07

Добавил к форуму подсветку синтаксиса. За базу взял мод Syntax Highlighter 1.0.12 (http://www.phpbb.com/customise/db/mod/syntax_highlighter/), основанный на php-библиотеке geshi (http://sourceforge.net/projects/geshi/), которая поддерживает синтаксическую подсветку более чем сотни языков. Повозиться пришлось изрядно, начиная с создания русского языкового модуля и заканчивая исправлением багов в моде, однако оно того стоило, на мой взгляд.

Работать с подсветкой очень просто. Для этого используется тег syntax с атрибутом lang с названием языка или просто тег на базе названия языка:
Пример 1:
Код: Выделить всё
[syntax lang=pascal]
begin
  writeln('hello');
end.
[/syntax]

Подсветка синтаксиса: [ Загрузить ] [ Скрыть ]
Подсветка синтаксиса языка pascal
begin
  writeln('hello');
end.

Пример 2:
Код: Выделить всё
[cpp]
#include <iostream>
int main() {
using namespace std;
cout << "Hello, World!" << endl;
return 0;
}
[/cpp]

Подсветка синтаксиса: [ Загрузить ] [ Скрыть ]
Подсветка синтаксиса языка cpp
#include <iostream>
int main() {
 using namespace std;
 cout << "Hello, World!" << endl;
 return 0;
}
 

При необходимости можно нумеровать строки (атрибут lines=n) и указывать имя файла для загрузки (атрибут file=имя)
Пример 3:
Код: Выделить всё
[cpp lines=n file=1.cpp]
#include <iostream>
int main() {
using namespace std;
cout << "Hello, World!" << endl;
return 0;
}
[/cpp]

Подсветка синтаксиса: (1.cpp) [ Загрузить ] [ Скрыть ]
Подсветка синтаксиса языка cpp
  1. #include <iostream>
  2. int main() {
  3.  using namespace std;
  4.  cout << "Hello, World!" << endl;
  5.  return 0;
  6. }
  7.  

Если нет уверенности в поддержке нужного языка или в его аббревиатуре, то можно воспользоваться тегом version
Пример 4:
Код: Выделить всё
[version /]

Syntax Highlighter Версия: 1.0.12 Релиз: 1 Сборка: 32
Syntax Highlighter based on the XS BBCode parser.
Поддерживаются следующие теги BBCode: version, syntax, abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp, cpp-qt, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml, ocaml-brief, oobas, oracle11, oracle8, pascal, per, perl, php, php-brief, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xhtml, xml, xorg_conf, xpp, z80

(139) Поддерживаемые языки: abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp, cpp-qt, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml, ocaml-brief, oobas, oracle11, oracle8, pascal, per, perl, php, php-brief, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xhtml, xml, xorg_conf, xpp, z80


Существует еще несколько атрибутов, но они, на мой взгляд, не слишком важны, поэтому с ними предлагаю ознакомиться, например, здесь: http://www.phpbb.com/community/viewtopic.php?f=70&t=1564165
xdsl
 
Сообщения: 1236
Зарегистрирован: 09 дек 2008, 05:16
Откуда: ВЦ ШГПИ
Полное имя: Слинкин Д.А.

Вернуться в Наш форум

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron