Файлы и директории

С помощью правильного именования исходных файлов вы можете задавать:

  • порядок страниц внутри одного раздела (для директорий без _nav.yaml),
  • имена выходных файлов при сборке HTML (для файлов без permalink).

В этом разделе описано поведение Собираки по умолчанию, без специальной настройки, а также упоминаются способы изменить это поведение. Примеры приведены для файлов с расширением .md (Markdown), но такое же поведение актуально и для файлов с расширением .rst.

Управление сортировкой страниц #

По умолчанию Собирака сортирует подразделы на каждом уровне иерархии по алфавиту. Поддиректории участвуют в сортировке наравне с файлами.

Если в директории есть индексный файл, Собирака ставит его на первое место.

├── _index.md
├── introduction.md
├── setup
│   ├── _index.md
│   ├── linux.md
│   ├── macos.md
│   └── windows.md
├── requirements.md
└── usage.md

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

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

├── _index.md
├── 1-introduction.md
├── 2-requirements.md
├── 3-setup
│   ├── _index.md
│   ├── 1-windows.md
│   ├── 2-macos.md
│   └── 3-linux.md
└── usage.md

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

Управление именами выходных файлов #

По умолчанию при сборке HTML Собирака формирует путь к конечному файлу из основной части имени исходного файла (без расширения, опционального знака подчёркивания в начале и числового префикса). К именам файлов добавляется расширение .html.

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

├── _index.md          →  /index.html
├── 1-introduction.md  →  /introduction.html
├── 2-requirements.md  →  /requirements.html
├── 3-setup            →  /setup/
│   ├── _index.md      →  /setup/index.html
│   ├── 1-windows.md   →  /setup/windows.html
│   ├── 2-macos.md     →  /setup/macos.html
│   └── 3-linux.md     →  /setup/linux.html
└── usage.md           →  /usage.html

Альтернативный способ задать расположение выходного файла HTML — указать свойство permalink в метаданных исходного файла.

Директории и индексные файлы #

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

Каждый раздел в документации всегда имеет индексную страницу. В иерархии эта страница находится уровнем выше, чем все остальные страницы из её директории, то есть на одном уровне со страницами из родительского раздела. Собирака загружает индексную страницу из файла с именем “index” или числовым префиксом “0” (примеры: 0.md, 0-contents.md, _index.md), а если такого файла нет — автоматически генерирует простую индексную страницу с оглавлением.

При сборке в PDF содержимое такой страницы отображается в начале раздела, а при сборке в HTML страница становится файлом index.html. Большинство веб-серверов поддерживают index.html как имя файла по умолчанию, что позволяет видеть индексную страницу и по ссылке вида /example/index.html, и по более красивой ссылке вида /example/.

Изменения формата имён файлов #

Описанный выше формат именования файлов используется Собиракой по умолчанию и подходит для большинства проектов документации. Однако при желании можно задать произвольный другой формат. Для этого измените настройку paths.naming_scheme в файле конфигурации.

Например, с помощью этой настройки вы можете:

  • использовать после числового префикса другой разделитель вместо дефиса;
  • использовать для индексной страницы другое имя вместо _index.md;
  • игнорировать определённый суффикс в имени.

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

Пример. Предположим, вы переносите большой массив страниц из существующей базы знаний (например, из Confluence) в новый проект на Собираке. В первое время вам может часто понадобиться искать разделы документации по их прежним идентификаторам. Чтобы упростить работу, можно сохранить эти идентификаторы прямо в именах новых файлов, например: setup.12345.md. Чтобы такие идентификаторы игнорировались и не попадали в имена выходных файлов, можно использовать регулярные выражения вроде такого:

(?P<stem> .+ ) ( \.\d+ )?