Подсветка синтаксиса в примерах кода Подсветка синтаксиса в примерах кода

 

Все очень просто, т.к. для этого используются специальные программы-скрипты. И об одном из этих скриптов я и решил рассказать - Highlight.js, который кстати используется и на этом сайте.

 

Скачать Highlight.js версия 7.3

 

Highlight.js - на данный момент является одним из популярнейших скриптом этого типа. Пользоваться им очень просто, потому что работает он автоматически: сам находит блоки кода, сам определяет язык, сам подсвечивает.

Этот автоматизм не только удобен, но и делает возможным подсветку кода, даже если текст набирается каким-нибудь синтаксисом вроде Markdown, где нет возможности легко и просто проставить нужный class для HTML-элемента кода.

Программа знает такие языки:

1. 1C
2. AVR Assembler
3. Apache
4. Axapta
5. Bash
6. C#
7. C++
8. CSS
9. DOS .bat
10. Delphi
11. Django
12. HTML, XML
13. Ini
14. Java
15. Javascript
16. Lisp
17. MEL (Maya Embedded Language)
18. PHP
19. Perl
20. Python
21. Python profile
22. RenderMan (RIB, RSL)
23. Ruby
24. SQL
25. Smalltalk
26. VBScript
27. diff

Установка:

Для установки highlight.js на ваш сайт необходимо вставить следующий код, где-нибудь в районе закрывающего тега body (перед тегом).

 

<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
  hljs.initHighlightingOnLoad();
</script>

 

Для уменьшения времени загрузки можно ограничить автоопределение языков списком используемых языков:

 

<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
  hljs.initHighlightingOnLoad('html', 'css');
</script>

 

Полный список классов для разных языков приведен в readme.rus.txt.

Для определения цветов подсветки используйте следующий код:

 

.comment {
  color: gray;
}

.keyword {
  font-weight: bold;
}

.python .string {
  color: blue;
}

.html .atribute .value {
  color: green;
}

 

разместите его перед закрывающим тегом head.

Использование:

В тексте статьи для подсветки синтаксиса исходного кода используйте следующую конструкцию:

 

<pre><code>...</code></pre>

 

для принудительного использования подсветки конкретного языка или для отказа от подсветки используйте параметр class тега code:

 

<pre><code class="html">...</code></pre>

 

<pre><code class="no-highlight">...</code></pre>

 

Лично я на данном сайте использую стиль sunburst.css из папки стилей /styles/ с небольшими изменениями (если вам нравится пользуйтесь).

МОЙ СТИЛЬ CSS:

В правом нижнем углу вы видите автоопределение документа: css, html, Javascript и т.д.:

pre code[class]:after {
  content: 'Документ:' attr(class);
  display: block; text-align: right;
  font: 1em / 1.3em 'Lucida Console', 'courier new', monospace;
  color: #646463;
  padding-top: 0.5em;
  text-shadow : 0px 1px 0px #000;
}

А ниже весь стиль целиком:

/*  Sunburst-like style (c) Sergey Tselovalnikov <info@s-sd.ru>  */

pre {
    background-image:url('/images/pre-bg.jpg');
    padding: 8px;
    box-shadow: 0px 1px 10px #000 inset;
}
pre code {
  display: block; padding: 0.5em;
  font: 1em / 1.3em 'Lucida Console', 'courier new', monospace;
  color: #f8f8f8;
  text-shadow : 0px 1px 0px #000;
}
pre code[class]:after {
  content: 'Документ:' attr(class);
  display: block; text-align: right;
  font: 1em / 1.3em 'Lucida Console', 'courier new', monospace;
  color: #646463;
  padding-top: 0.5em;
  text-shadow : 0px 1px 0px #000;
}
pre .comment,
pre .template_comment,
pre .javadoc {
  color: #aeaeae;
  font-style: italic;
}
pre .keyword,
pre .ruby .function .keyword,
pre .request,
pre .status,
pre .nginx .title {
  color: #E28964;
}
pre .function .keyword,
pre .sub .keyword,
pre .method,
pre .list .title {
  color: #99CF50;
}
pre .string,
pre .tag .value,
pre .cdata,
pre .filter .argument,
pre .attr_selector,
pre .apache .cbracket,
pre .date,
pre .tex .command {
  color: #65B042;
}
pre .subst {
  color: #DAEFA3;
}
pre .regexp {
  color: #E9C062;
}
pre .title,
pre .sub .identifier,
pre .pi,
pre .tag,
pre .tag .keyword,
pre .decorator,
pre .shebang,
pre .prompt {
  color: #89BDFF;
}
pre .class .title,
pre .haskell .type,
pre .smalltalk .class,
pre .javadoctag,
pre .yardoctag,
pre .phpdoc {
  text-decoration: underline;
}
pre .symbol,
pre .ruby .symbol .string,
pre .number {
  color: #3387CC;
}
pre .params,
pre .variable,
pre .clojure .attribute {
  color: #3E87E3;
}
pre .css .tag,
pre .rules .property,
pre .pseudo,
pre .tex .special {
  color: #CDA869;
}
pre .css .class {
  color: #9B703F;
}
pre .rules .keyword {
  color: #C5AF75;
}
pre .rules .value {
  color: #CF6A4C;
}
pre .css .id {
  color: #8B98AB;
}
pre .annotation,
pre .apache .sqbracket,
pre .nginx .built_in {
  color: #9B859D;
}
pre .preprocessor {
  color: #8996A8;
}
pre .hexcolor,
pre .css .value .number {
  color: #DD7B3B;
}
pre .css .function {
  color: #DAD085;
}
pre .diff .header,
pre .chunk,
pre .tex .formula {
  background-color: #0E2231;
  color: #F8F8F8;
  font-style: italic;
}
pre .diff .change {
  background-color: #4A410D;
  color: #F8F8F8;
}
pre .addition {
  background-color: #253B22;
  color: #F8F8F8;
}
pre .deletion {
  background-color: #420E09;
  color: #F8F8F8;
}
pre .coffeescript .javascript,
pre .javascript .xml,
pre .tex .formula,
pre .xml .javascript,
pre .xml .vbscript,
pre .xml .css,
pre .xml .cdata {
  opacity: 0.5;
}

 

Все остальную интересующую информацию Вы можете получить на официальном сайте программы.

Пользуйтесь дорогие друзья!

Новая статья о подсветке синтаксиса кода на SyntaxHighlighter, который позволяет реализовать красивую подсветку синтаксиса на любом сайте.


🔖 Выбор по тегам ×

Top