aboutsummaryrefslogtreecommitdiff
path: root/files/ru/orphaned/mdn/editor/syntax_highlighting/index.html
blob: 62f149e52ab55ff541647c07845d8350a54b49f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
---
title: Синтаксические выделения
slug: orphaned/MDN/Editor/Syntax_highlighting
tags:
  - Guide
  - Howto
  - MDN
  - MDN Meta
  - Редактор
  - Руководство
  - выделение
translation_of: MDN/Editor/Syntax_highlighting
original_slug: MDN/Editor/Синтаксические_выделения
---
<div>{{MDNSidebar}}</div>

<p class="summary"><span class="seoSummary">Синтаксическое выделение кода крайне полезно в статьях. Режим синтаксического выделения также используется в нашей системе шаблонов, чтобы определять, как использовать каждый отрывок кода при сборке в готовый экземпляр.</span></p>

<h2 id="Поддержка_синтаксических_выделений">Поддержка синтаксических выделений</h2>

<p>MDN поддерживает все периодически используемые нами на MDN языки (так же, как и те, что используются лишь иногда):</p>

<div class="threecolumns">
<ul>
 <li>Bash shell</li>
 <li>
  <p>C/C++</p>
 </li>
 <li>
  <p>CSS</p>
 </li>
 <li>HTML</li>
 <li>XML</li>
 <li>
  <p>Java</p>
 </li>
 <li>
  <p>JavaScript</p>
 </li>
 <li>
  <p>JSON</p>
 </li>
 <li>
  <p>PHP</p>
 </li>
 <li>
  <p>Python</p>
 </li>
 <li>
  <p>SQL </p>
 </li>
</ul>
</div>

<p>Синтаксические выделения делают код удобнее в прочтении, особенно когда статья переполнена другими видами текста. Выделения также помогают выделить ошибки в примерах и отрывках кода.</p>

<h2 id="Добавление_выделения">Добавление выделения</h2>

<p>Как правило, следует выделять любой блок {{HTMLElement("pre")}}, который представляет код, состоящий из более чем одной строчки; выделение однострочного кода будет зависеть от контекста.</p>

<p>Синтаксические выделения в примерах кода:</p>

<ol>
 <li>
  <p>Наберите или вставьте код в статью. Например:</p>

  <p>void main(int argc, char **argv) {</p>

  <p>printf("Привет, мир!\n");</p>

  <p>}</p>
 </li>
 <li>
  <p>Выделите текст и нажмите кнопку <strong>PRE</strong> в панели инструментов. Результат:</p>

  <pre class="notranslate">void main(int argc, char **argv) {

printf("Hello world\n");

}
</pre>
 </li>
 <li>
  <p class="brush: cpp">Нажмите кнопку <strong>Syntax Highlighter</strong> и выберите название соответствующего коду языка программирования. В нашем примере это C/C++:</p>

  <pre class="brush: cpp; notranslate">void main(int argc, char **argv) {

printf("Hello world\n");

}</pre>
 </li>
</ol>

<p>Вы можете немного упростить процесс, не нажимая кнопку <strong>PRE</strong> и сразу выбрав нужный вам язык. Добавление выделения автоматически вставит необходимый блок {{HTMLElement("pre")}}, если он ещё не на месте.</p>

<p>Далее представлен перевод раздела {{SectionOnPage("/en-US/docs/MDN/Contribute/Editor/Source_mode", "Выделение строк в режиме источника")}}:</p>

<h3 id="Выделение_линий_в_примере">Выделение линий в примере</h3>

<p>Блоки примеров кода устанавливаются кнопками <strong>PRE</strong> или <strong>Syntax Highlighter</strong> в <a href="https://wiki.developer.mozilla.org/ru/docs/MDN/Contribute/Editor/Basics/Toolbar#%D0%91%D0%BB%D0%BE%D0%BA%D0%B8">блоках панели инструментов</a>, но вы, возможно, захотите обратить внимание читателей на определённые строки кода. Единственный способ сделать это — открыть режим источника, найти там блок <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTML/Element/pre" title="The HTML &lt;pre> element represents preformatted text which is to be presented exactly as written in the HTML file."><code>&lt;pre&gt;</code></a>, содержащий код, и добавить в атрибут <code><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-class">class</a></code> тега <code>&lt;pre&gt;</code>  компонент <code>highlight</code>, отформатированный следующим образом:</p>

<ul>
 <li>
  <p><code>highlight[<em>НомерСтроки1</em><em>НомерСтроки2</em>, ..., <em>НомерСтрокиN</em>]</code></p>
 </li>
 <li>
  <p><code>highlight[<em>НомерСтрокиНачальной</em>-<em>НомерСтрокиКонечной</em>, ..., <em>НомерСтрокиN</em>]</code></p>
 </li>
</ul>

<pre class="notranslate">"hightlight[" <a href="https://wiki.developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Source_mode#highlight-line-number-list">&lt;список-номеров-строк&gt;</a> "]"

<strong>Где:</strong>
<a id="highlight-line-number-list" name="highlight-line-number-list">&lt;список-номеров-строк&gt;</a> = <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/Value_definition_syntax#Brackets">[</a> <a href="https://wiki.developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Source_mode#highlight-line-number">&lt;номер-строки&gt;</a> <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/Value_definition_syntax#Single_bar">|</a> <a href="https://wiki.developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Source_mode#highlight-line-range">&lt;диапазон-строк&gt;</a> <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/Value_definition_syntax#Brackets">]</a><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/Value_definition_syntax#Hash_mark">#</a>
<a id="highlight-line-range" name="highlight-line-range">&lt;диапазон-строк&gt;</a> = <a href="https://wiki.developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Source_mode#highlight-line-number">&lt;номер-строки&gt;</a> - <a href="https://wiki.developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Source_mode#highlight-line-number">&lt;line-number&gt;</a>
<a id="highlight-line-number" name="highlight-line-number">&lt;номер-строки&gt;</a> = &lt;токен&gt;</pre>

<p>К примеру, если есть тег <code>&lt;pre class="brush: js;"&gt;</code>, и вы хотите выделить строки 4 и 7, то вы меняете тег: <code>&lt;pre class="brush: js; highlight[4, 7]"&gt;</code>.</p>

<p>Давайте взглянем на более полный пример:</p>

<div style="overflow: auto;">
<table class="fullwidth-table">
 <thead>
  <tr>
   <th scope="col">До выделения</th>
   <th scope="col">С выделением</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>
    <pre class="brush: js; notranslate">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

var path1 = new Path2D();
path1.rect(10, 10, 100, 100);

var path2 = new Path2D(path1);
path2.moveTo(220, 60);
path2.arc(170, 60, 50, 0, 2 * Math.PI);

ctx.stroke(path2);
</pre>

    <p>Здесь тег {{HTMLElement("pre")}} равен: <code>&lt;pre class="brush: js;"&gt;</code></p>
   </td>
   <td>
    <pre class="brush: js; highlight[4, 7] notranslate">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

var path1 = new Path2D();
path1.rect(10, 10, 100, 100);

var path2 = new Path2D(path1);
path2.moveTo(220, 60);
path2.arc(170, 60, 50, 0, 2 * Math.PI);

ctx.stroke(path2);</pre>

    <p>А здесь тег <code>&lt;pre&gt;</code> был изменён на: <code>&lt;pre class="brush: js; highlight[4, 7]"&gt;</code></p>
   </td>
  </tr>
 </tbody>
</table>
</div>

<div class="blockIndicator note">
<p>Выделенные строки не отображаются в редакторе MDN.</p>
</div>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li><a href="/ru/docs/MDN/Contribute/Structures/Live_samples">Шаблоны</a></li>
 <li><a href="/ru/docs/MDN/Contribute/Editor">Руководство по MDN редактору</a></li>
 <li><a href="/ru/docs/MDN/Getting_started">Mozilla - Быстрый старт!</a></li>
</ul>

<div>{{EditorGuideQuicklinks}}</div>