aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/ru/books/fdp-primer/structure/_index.adoc
blob: 5069df761ead194ae1214fbe78f703d0cdd8a9bd (plain) (blame)
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
---
description: 'Структура каталогов документации, используемая в проекте документации FreeBSD'
next: books/fdp-primer/doc-build
params:
  path: /books/fdp-primer/structure/
prev: books/fdp-primer/working-copy
showBookMenu: 'true'
tags: ["directory structure", "organization"]
title: 'Глава 4. Структура каталогов документации'
weight: 5
---

[[structure]]
= Структура каталогов документации
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 4
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/fdp-primer/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

Файлы и каталоги в дереве *doc/* следуют структуре, преследующей цели:

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

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

[[structure-top]]
== Верхний уровень, doc/

В разделе *doc/* есть три подраздела, документация и веб-сайт имеют одинаковую структуру.

[cols="20%,80%", frame="none", options="header"]
|===
| Каталог
| Использование

| *documentation*
| Содержит все статьи и книги в формате AsciiDoc.
Содержит подкаталоги для дальнейшей категоризации информации по языкам.

| *tools*
| Содержит набор инструментов для перевода документации и веб-сайта с использованием link:https://weblate.org/en/[Weblate].
Экземпляр Weblate доступен link:https://translate-dev.freebsd.org[здесь].

| *shared*
| Содержит файлы, не относящиеся к различным переводам документации.
Включает подкаталоги для дальнейшей категоризации информации по языкам, а также три файла для хранения данных об авторах, выпусках и зеркалах.
Этот каталог является общим для `documentation` и `website`.

| * website*
| Содержит ссылку link:https://www.FreeBSD.org[FreeBSD website] в формате AsciiDoc.
Содержит подкаталоги для дальнейшей категоризации информации по языкам.
|===

[[structure-locale]]
== Каталоги

Эти каталоги содержат документацию и веб-сайт. Документация организована в подкаталоги ниже этого уровня, следуя структуре каталогов link:https://gohugo.io/getting-started/directory-structure/[Hugo].

[cols="20%,80%", frame="none", options="header"]
|===
| Каталог
| Использование


| * archetypes*
| Содержит шаблоны для создания новых статей, книг и веб-страниц.
Дополнительную информацию смотрите link:https://gohugo.io/content-management/archetypes/[здесь].

| *config*
| Содержат файлы конфигурации Hugo.
Один основной файл и по одному файлу для каждого языка.
Для получения дополнительной информации смотрите link:https://gohugo.io/getting-started/configuration/[здесь].

| *content*
| Содержат книги, статьи и веб-страницы.
Для каждого доступного перевода документации существует отдельный каталог, например `en` и `zh-tw`.

| *data*
| Содержит пользовательские данные для сборки веб-сайта в формате link:https://en.wikipedia.org/wiki/TOML[TOML].
Этот каталог используется для хранения событий, новостей, пресс-релизов и т.д.
Для получения дополнительной информации ознакомьтесь link:https://gohugo.io/templates/data-templates/[здесь].

| *static*
| Содержат статические ресурсы.
Изображения, бюллетени безопасности, pgpkeys и т.д.
Подробнее смотрите link:https://gohugo.io/content-management/static-files/[здесь].

| * themes*
| Содержите шаблоны в виде файлов `.html`, которые определяют внешний вид веб-сайта.
Для получения дополнительной информации посмотрите link:https://gohugo.io/templates/[здесь].

| *tools*
| Содержит инструменты, используемые для улучшения сборки документации.
Например, для генерации оглавления книг и т.д.

| *beastie.png*
| Это изображение не нуждается в представлении ;)

| *LICENSE*
| Лицензия документации, общих материалов и веб-сайта. Лицензия BSD с 2 пунктами.

| *Makefile*
| Файл *Makefile* определяет процесс сборки документации и веб-сайта.
|===

[[structure-document]]
== Информация, относящаяся к документу

Этот раздел содержит особые примечания о конкретных документах, которыми управляет FDP.

[[structure-document-books]]
== Книги: books/

Книги написаны в AsciiDoc.

Для каждой книги FreeBSD тип документа AsciiDoc (также известный как doctype) — это `book` (книга). Книги содержат ``part`` (части), каждая из которых включает несколько ``chapter`` (глав).

Когда документ преобразуется в HTML 5 (с использованием встроенного бэкенда `html5`):

* Уровень раздела AsciiDoc 0 (`=`) в начале `главы` `книги` будет `<h1>`
* Уровень секции AsciiDoc 1 (`==`) должен использоваться для первого логического раздела главы и будет преобразован в `<h2>`
* Уровень раздела AsciiDoc 2 (`===`) должен использоваться для первого логического подраздела и будет преобразован в `<h3>`

– и так далее. Ссылка: link:https://docs.asciidoctor.org/asciidoc/latest/sections/titles-and-levels/[Заголовки и уровни разделов | Документация Asciidoctor].

[[structure-document-books-physical]]
=== Физическая организация

В каталоге books находится множество файлов и каталогов, все с одинаковой структурой.

[[structure-document-books-physical-index]]
==== _index.adoc

Файл *_index.adoc* определяет некоторые переменные AsciiDoc, которые влияют на преобразование исходного кода AsciiDoc в другие форматы, а также содержит оглавление, список примеров, список рисунков, список таблиц и раздел с аннотацией.

[[structure-document-books-physical-book]]
==== book.adoc

Файл *book.adoc* определяет некоторые переменные AsciiDoc, которые влияют на преобразование исходного кода AsciiDoc в другие форматы, а также включает оглавление, список примеров, список рисунков, список таблиц, раздел с аннотацией и все главы. Этот файл используется для генерации PDF с помощью `asciidoctor-pdf` и для создания книги в виде одной страницы `html`.

[[structure-document-books-physical-part]]
==== part*.adoc
Файлы **part*.adoc** содержат краткое введение к одной части книги.

[[structure-document-handbook-physical-chapters]]
==== directory/_index.adoc

Каждая глава Руководства хранится в файле с именем *_index.adoc* в отдельном каталоге от других глав.

Например, вот пример заголовка одной главы:

[source.programlisting, asciidoc]
....
---
title: Chapter 8. Configuring the FreeBSD Kernel
part: Part II. Common Tasks
prev: books/handbook/multimedia
next: books/handbook/printing
---

[[kernelconfig]]
= Настройка ядра FreeBSD
...
....

При создании HTML5-версии Handbook это приведёт к формированию файла *kernelconfig/index.html*.

Быстрый взгляд покажет, что существует множество каталогов с отдельными файлами *_index.adoc*, включая *basics/_index.adoc*, *introduction/_index.adoc* и *printing/_index.adoc*.

[IMPORTANT]
====
Не называйте главы или каталоги в соответствии с их порядком в Руководстве. Этот порядок может измениться при реорганизации содержания Руководства. Реорганизация должна быть возможной без переименования файлов, за исключением случаев, когда целые главы перемещаются вверх или вниз по иерархии.
====

[[structure-document-articles]]
== Статьи: articles/

Статьи написаны в AsciiDoc.

Статьи организованы как документ AsciiDoc `article`. Статьи разделены на разделы (`=`), подразделы (`==`, `===`) и так далее.

[[structure-document-articles-physical]]
=== Физическая организация

На каждый статью приходится один файл *_index.adoc*.

[[structure-document-articles-physical-index]]
==== _index.adoc

Файл *_index.adoc* содержит все переменные AsciiDoc и контент.

Например, это образец одной статьи, структура довольно похожа на главу книги:

[source.programlisting, asciidoc]
....
---
title: Why you should use a BSD style license for your Open Source Project
authors:
  - author: Bruce Montague
    email: brucem@alumni.cse.ucsc.edu
trademarks: ["freebsd", "intel", "general"]
---

= Почему вы должны использовать лицензию в стиле BSD для вашего Open Source проекта
:doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental:

'''

toc::[]

[[intro]]
== Введение
....

== Управление списками участников

Проект FreeBSD отмечает вклад участников в нескольких различных списках в документации и печатных материалах. В этом разделе описано, как команда документации управляет изменениями в этих списках.

=== Списки отношений наставника и нового коммиттера

Начиная с FreeBSD 7.0, FreeBSD поддерживает link:https://cgit.freebsd.org/src/tree/share/misc[три списка отношений наставник/подопечный] — один для исходного кода, один для портов и один для документации. Эти файлы имеют формат *«.dot»* и предназначены для использования с популярным пакетом для построения графиков graphics/graphviz[], доступным как пакет или порт FreeBSD.

[NOTE]
====
man:dot[1] устанавливается как часть пакета или порта: graphics/graphviz[]. Программа [.filename]#dot# читает файлы в формате *".dot"* и создает графическое изображение направленного графа.
====

Три файла часто служат учебным опытом для новых коммиттеров всех трёх команд, которым поручается добавить себя и своего наставника в соответствующий файл в качестве их первого коммита. Каждый файл содержит раздел «current» для новых коммиттеров, раздел «alumni» для случаев возврата прав на коммит и раздел «mentor / mentee», отображающий взаимоотношения. Формат каждой записи поясняется в начале файла.

=== Общий список участников

extref:{contributors}[Участники] проекта FreeBSD поддерживаются в формате статьи. Исходный файл для управления статьёй *Участники* находится по адресу:

[subs=+quotes]
----
doc
 /documentation
   /content
     /{language}
       /articles
         /contributors
           [.filename]#_index.adoc# – Contains a list of include files that apply to each section.
           [.filename]#_index.po# – Translation page
           [.filename]#contrib-develinmemoriam.adoc# - content of “In Memoriam” section
           [.filename]#contrib-develinmemoriam.po# – Translation page
----

Копии этого каталога contributors могут существовать в других каталогах с контентом на различных языках.

Обратите внимание, что файл [.filename]#contrib-develinmemoriam.adoc# также находится в этом каталоге. Дополнительную информацию смотрите ниже.

Файл [.filename]#contributors/_index.adoc# представляет собой набор включаемых файлов. Включаемые файлы перечислены в разделе, специфичном для Hugo, в исходном файле. Раздел разделён на несколько частей с помощью операторов "ifdef::". Существует подраздел для вывода на веб-сайт и подраздел для вывода вне веб-сайта (включая PDF).

Текст каждого раздела страницы *Участники* содержит оператор "include::". Например, запись для "Экс-участники менеджера портов" выглядит как `include::{include-contrib-portmgralumni}[]`. Это подключает текст об экс-участниках менеджера портов в итоговый вывод.

Чтобы внести изменения, отредактируйте соответствующий include-файл:

[subs=+quotes]
----
include-contrib-committers:     [.filename]#~/doc/shared/contrib-committers.adoc#
include-contrib-corealumni:     [.filename]#~/doc/shared/contrib-corealumni.adoc#
include-contrib-develalumni:    [.filename]#~/doc/shared/contrib-develalumni.adoc#
include-contrib-portmgralumni:  [.filename]#~/doc/shared/contrib-portmgralumni.adoc#
include-contrib-additional:     [.filename]#~/doc/shared/contrib-additional.adoc#
include-contrib-386bsd:         [.filename]#~/doc/shared/contrib-386bsd.adoc#

Также отредактируйте файл [.filename]#authors.adoc#:  [.filename]#~/doc/shared/authors.adoc#
и все связанные с ним переводы.

----

В общем случае, если добавляется новый человек, требуется лишь одно изменение — его можно добавить в соответствующий включаемый файл. Если человек переводится из статуса «текущий» в «бывший», необходимо два изменения: одно для удаления и одно для добавления в соответствующие файлы. Порядок записей для всех файлов указан в таблице ниже.

[cols="25%,25%,25%,25%", frame="none", options="header"]
|===
| Назначение | Якорь раздела | Файл в ~/doc/shared/ | Спецификация порядка
| *Разработчики FreeBSD* | include-contrib-committers | [.filename]#contrib-committers.adoc# | упорядочено по алфавиту по фамилии
| *Бывшие члены основной команды* | include-contrib-corealumni | [.filename]#contrib-corealumni.adoc# | приблизительно в обратном хронологическом порядке
| *Бывшие члены команды разработчиков* | include-contrib-develalumni | [.filename]#contrib-develalumni.adoc# | приблизительно в обратном хронологическом порядке
| *Бывшие члены команды управления портами* | include-contrib-portmgralumni | [.filename]#contrib-portmgralumni.adoc# | приблизительно в обратном хронологическом порядке
| *Дополнительные участники проекта FreeBSD* | include-contrib-additional | [.filename]#contrib-additional.adoc# | упорядочено по алфавиту по имени
| *Участники, предоставившие патчи для 386BSD Patch Kit* | include-contrib-386bsd | [.filename]#contrib-386bsd.adoc# | упорядочено по алфавиту по имени
| *Участники проекта центрального сервера* | Файл include не используется | [.filename]#contributors/_index.adoc# | неупорядоченное
| *Прямое финансирование* | Файл include не используется | [.filename]#contributors/_index.adoc# | неупорядоченное
| *Участники, предоставившие оборудование* | Файл include не используется | [.filename]#contributors/_index.adoc# | неупорядоченное
| *Особые участники* | Файл include не используется | [.filename]#contributors/_index.adoc# | неупорядоченное
|===

=== Раздел "Памяти"

Когда уведомляют сообщество BSD о смерти члена сообщества, следует использовать следующую процедуру:

. Используйте файл [.filename]#~/doc/shared/authors.adoc# для поиска имени человека и ссылки на атрибут, например `{foobsd}`.
. Если они являются текущим членом одной или нескольких команд проекта FreeBSD в [.filename]#~/doc/website/content/en/administration.adoc#, удалите все упоминания их атрибута. Также выполните следующие правки:
+
* [.filename]#~/doc/shared/contrib-committers.adoc# - Удалите ссылку на атрибут.
* [.filename]#~/doc/shared/contrib-corealumni.adoc# - Если они являются _действующим_ членом основной команды, создайте запись с указанием дат начала и окончания.
* [.filename]#~/doc/shared/contrib-develalumni.adoc# - Добавьте ссылку на атрибут и даты активности в качестве коммиттера.
* [.filename]#~/doc/shared/contrib-portmgralumni.adoc# - Добавьте ссылку на атрибут при необходимости.
* [.filename]#~/doc/shared/contrib-additional.adoc# — Удалите запись.
* [.filename]#~/doc/shared/contrib-386bsd.adoc# - Это исключительно исторический документ. Изменения не требуются.
+
. В файле [.filename]#~/doc/shared/authors.adoc# закомментируйте (используя одну обратную косую черту '\') адрес электронной почты, чтобы избежать создания ссылки "mailto:". См. пример для `itojun` ниже:
+
[source.programlisting, asciidoc]
....
[shared/authors.adoc]

[..]

:itojun-name: Jun-ichiro Itoh
:itojun-email: \itojun@FreeBSD.org
:itojun: {itojun-name} <{itojun-email}>

[..]
....
+
. Поскольку участник скончался (что следует перепроверить), добавьте его в файл [.filename]#contrib-develinmemoriam.adoc# "Памяти ушедших".
+
Постарайтесь найти информацию, подкрепленную фактами, о его вкладе в FreeBSD за прошедшие годы и добавьте её к записи в файле. Для этого может потребоваться запрос в списках рассылки разработчиков, обращение к коллегам, связь с Фондом FreeBSD или поиск в журналах коммитов.
+
Чтобы узнать дату их первого коммита, используйте:
+
[source.programlisting, asciidoc]
....
% cd ~/src
% git log --reverse --author=foobsd     # search for first commit of foobsd
....
+
Это выведет их коммиты в обратном порядке. Дата первого коммита будет вверху.
+
Убедитесь, что формат дат соответствует другим записям:
+
[source.programlisting, asciidoc]
....
(год начала предоставления права коммита - год окончания предоставления права коммита; RIP год ухода)

Например:

* Foo BSD (2007 - 2010; RIP 2016)
....
+
Проверьте порядок записей в файле.
+
[cols="25%,25%,25%,25%", frame="none", options="header"]
|===
| Назначение | Якорь раздела | Файл в ~/doc/documentation/content/{язык}/articles/contributors/ | Спецификация порядка
| *Команда разработчиков: Памяти ушедших* | [.filename]#contrib-develinmemoriam.adoc# | [.filename]#contrib-develinmemoriam.adoc# | приблизительно в обратном хронологическом порядке
|===
+
Смотрите файл "In Memoriam" для похожих записей.
+
. Наконец, если применимо, переместите запись участника с правами коммиттера из раздела «current» в раздел «alumni» соответствующего link:https://cgit.freebsd.org/src/tree/share/misc[списка отношений наставник / подопечный] с указанием соответствующей даты. Изменять отношения наставник / подопечный не требуется.