Подсветка синтаксиса

В некоторых статьях может потребоваться публикация исходного кода. Для удобства чтения, рекомендуется использовать в оформлении либо SyntaxHighlighter 3.0.83, либо Generic Syntax Highlighter (GeSHi) для подсветки синтаксиса соответствующих блоков. Самую полную информацию об этих инструментах можно будет посмотреть на их сайтах.

SyntaxHighlighter 3.0.83

Выделяемый код следует заключать в тег <sxh>

<sxh язык>
 Исходный код 
</sxh>

Например, код на с++

<sxh c++>
 #include <iostream>
 using namespace std;
 void main()
 {
   cout << "Hello World!" << endl;
 } 
</sxh>

Будет выглядеть так: <sxh c++> #include <iostream> using namespace std; void main() {

 cout << "Hello World!" << endl;

} </sxh> А на php

<sxh php>
<?php 
 Echo "Hello, World!";
?> </sxh>

Так: <sxh php> <?php Echo «Hello, World!»; ?> </sxh>

SyntaxHighlighter поддерживает более тонкую настройку отображения кода. Доступны команды first-line (указывает начальную нумерацию строк), highlight (позволяет выделять наиболее важные строки в блоке) и title (название блока). Например:

<sxh csharp; first-line: 27; highlight: [27,28,29,30,38]; title: HelloWorldOnC#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}
</sxh>

Установит начало отсчета на 27 строку, подсветит указанные пять строк и присвоит блоку название «HelloWorldOnC#».

<sxh csharp; first-line: 27; highlight: [27,28,29,30,38]; title: HelloWorldOnC#> using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace HelloWorld {

  class Program
  {
      static void Main(string[] args)
      {
          Console.WriteLine("Hello, World!");
      }
  }

} </sxh>

Поддерживаемые языки

Включенные кисти:

«shCore.js», «shLegacy.js», «shAutoloader.js», «shBrushCpp.js», «shBrushCSharp.js», «shBrushCss.js», «shBrushDelphi.js», «shBrushJava.js», «shBrushPhp.js», «shBrushSql.js».

Отключенные кисти:

«shBrushJavaFX.js», «shBrushAS3.js», «shBrushBash.js», «shBrushColdFusion.js», «shBrushAppleScript.js», «shBrushDiff.js», «shBrushErlang.js», «shBrushGroovy.js», «shBrushPlain.js», «shBrushPowerShell.js», «shBrushSass.js», «shBrushScala.js», «shBrushJScript.js», «shBrushPerl.js», «shBrushPython.js», «shBrushRuby.js», «shBrushVb.js», «shBrushXml.js».

Если вам будет не хватать какой-то из отключенных кистей — свяжитесь со мной, это просто.

GeSHi (Generic Syntax Highlighter)

По-другому исходный код можно оформить с помощью GeSHi. В данном случае следует использовать тег <code язык></code>

Пример на c++

 #include <iostream>
 using namespace std;
 void main()
 {
   cout << "Hello World!" << endl;
 } 

И на php:

<?php 
 Echo "Hello, World!";
?> 

Кроме того, GeSHi позволяет использовать тег <file>, благодаря которому блоки кода могут быть доступны для загрузки

<file язык название_файла.расширение>
Код
</file>

Попробуем взять код на с++

<file cpp HelloWorld.cpp>
#include <iostream>
 using namespace std;
 void main()
 {
   cout << "Hello World!" << endl;
 } 
</file>

Получится:

HelloWorld.cpp
#include <iostream>
 using namespace std;
 void main()
 {
   cout << "Hello World!" << endl;
 } 

Если вам не нужна подсветка, но нужен загружаемый файл, поставьте прочерк (-) на месте кода языка: <code - myfile.foo>.

Поддерживаемые языки

В целом, поддерживаются все языки, поддерживаемые GeSHi:
4cs, abap, actionscript-french, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, ecmascript, eiffel, email, erlang, fo, fortran, freebasic, fsharp, gambas, genero, genie, gdb, glsl, gml, gnuplot, groovy, gettext, gwbasic, haskell, hicest, hq9plus, html, icon, idl, ini, inno, intercal, io, j, java5, java, javascript, jquery, kixtart, klonec, klonecpp, latex, lisp, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, modula2, modula3, mmix, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, perl, perl6, per, pf, php-brief, php, pike, pic16, pixelbender, plsql, postgresql, povray, powerbuilder, powershell, progress, prolog, properties, providex, purebasic, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, vala, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xbasic, xml, xorg_conf, xpp, z80.

Печать/экспорт