sync
[roojs1] / highlight / README.ru.md
1 # Highlight.js
2
3 Highlight.js — это инструмент для подсветки синтаксиса, написанный на JavaScript. Он работает
4 и в браузере, и на сервере. Он работает с практически любой HTML разметкой, не
5 зависит от каких-либо фреймворков и умеет автоматически определять язык.
6
7
8 ## Начало работы
9
10 Минимум, что нужно сделать для использования highlight.js на веб-странице — это
11 подключить библиотеку, CSS-стили и вызывать [`initHighlightingOnLoad`][1]:
12
13 ```html
14 <link rel="stylesheet" href="/path/to/styles/default.css">
15 <script src="/path/to/highlight.pack.js"></script>
16 <script>hljs.initHighlightingOnLoad();</script>
17 ```
18
19 Библиотека найдёт и раскрасит код внутри тегов `<pre><code>`, попытавшись
20 автоматически определить язык. Когда автоопределение не срабатывает, можно явно
21 указать язык в атрибуте class:
22
23 ```html
24 <pre><code class="html">...</code></pre>
25 ```
26
27 Список поддерживаемых классов языков доступен в [справочнике по классам][2].
28 Класс также можно предварить префиксами `language-` или `lang-`.
29
30 Чтобы отключить подсветку для какого-то блока, используйте класс `nohighlight`:
31
32 ```html
33 <pre><code class="nohighlight">...</code></pre>
34 ```
35
36 ## Инициализация вручную
37
38 Чтобы иметь чуть больше контроля за инициализацией подсветки, вы можете
39 использовать функции [`highlightBlock`][3] и [`configure`][4]. Таким образом
40 можно управлять тем, *что* и *когда* подсвечивать.
41
42 Вот пример инициализации, эквивалентной вызову [`initHighlightingOnLoad`][1], но
43 с использованием jQuery:
44
45 ```javascript
46 $(document).ready(function() {
47   $('pre code').each(function(i, block) {
48     hljs.highlightBlock(block);
49   });
50 });
51 ```
52
53 Вы можете использовать любые теги разметки вместо `<pre><code>`. Если
54 используете контейнер, не сохраняющий переводы строк, вам нужно сказать
55 highlight.js использовать для них тег `<br>`:
56
57 ```javascript
58 hljs.configure({useBR: true});
59
60 $('div.code').each(function(i, block) {
61   hljs.highlightBlock(block);
62 });
63 ```
64
65 Другие опции можно найти в документации функции [`configure`][4].
66
67
68 ## Web Workers
69
70 Подсветку можно запустить внутри web worker'а, чтобы окно
71 браузера не подтормаживало при работе с большими кусками кода.
72
73 В основном скрипте:
74
75 ```javascript
76 addEventListener('load', function() {
77   var code = document.querySelector('#code');
78   var worker = new Worker('worker.js');
79   worker.onmessage = function(event) { code.innerHTML = event.data; }
80   worker.postMessage(code.textContent);
81 })
82 ```
83
84 В worker.js:
85
86 ```javascript
87 onmessage = function(event) {
88   importScripts('<path>/highlight.pack.js');
89   var result = self.hljs.highlightAuto(event.data);
90   postMessage(result.value);
91 }
92 ```
93
94
95 ## Установка библиотеки
96
97 Highlight.js можно использовать в браузере прямо с CDN хостинга или скачать
98 индивидуальную сборку, а также установив модуль на сервере. На
99 [странице загрузки][5] подробно описаны все варианты.
100
101 **Не подключайте GitHub напрямую.** Библиотека не предназначена для
102 использования в виде исходного кода, а требует отдельной сборки. Если вам не
103 подходит ни один из готовых вариантов, читайте [документацию по сборке][6].
104
105 **Файл на CDN содержит не все языки.** Иначе он будет слишком большого размера.
106 Если нужного вам языка нет в [категории "Common"][5], можно дообавить его
107 вручную:
108
109 ```html
110 <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/languages/go.min.js"></script>
111 ```
112
113 **Про Almond.** Нужно задать имя модуля в оптимизаторе, например:
114
115 ```
116 r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js
117 ```
118
119
120 ## Лицензия
121
122 Highlight.js распространяется под лицензией BSD. Подробнее читайте файл
123 [LICENSE][7].
124
125
126 ## Ссылки
127
128 Официальный сайт билиотеки расположен по адресу <https://highlightjs.org/>.
129
130 Более подробная документация по API и другим темам расположена на
131 <http://highlightjs.readthedocs.io/>.
132
133 Авторы и контрибьюторы перечислены в файле [AUTHORS.ru.txt][8] file.
134
135 [1]: http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload
136 [2]: http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html
137 [3]: http://highlightjs.readthedocs.io/en/latest/api.html#highlightblock-block
138 [4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options
139 [5]: https://highlightjs.org/download/
140 [6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html
141 [7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
142 [8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.ru.txt