Sphinx
Sphinx – это генератор документации. Его можно использовать для совместной работы над документами. Ниже описано, как организовать рабочий процесс с использованием сервиса Github.
Ссылки
Подготовка окружения
Подготовить окружение на macOS можно с помощью пакетного менеджера Homebrew . Это можно сделать только один раз. На глобальном уровне для всей системы в целом.
- Git
# Установить
brew install git
# Проверить версию
git --version
# Обновить
brew update
brew upgrade git
- Python 3.x
# Установить
brew install python
# Проверить версию
python3 --version
# Обновить
brew upgrade python
- Pipx
# Установить pipx
brew install pipx
# Проверить версию pipx
pipx --version
# Обновить pipx
python3 -m pip install --upgrade pipx
# Установить приложение
pipx install <название_приложения>
# Проверить установленные приложения
pipx list
# Обновить все приложения
pipx ensureversions
# Удалить приложение
pipx uninsall <название_приложения>
- Sphinx
# Установить
brew install sphinx-doc
# или
pipx install sphinx-doc
# Проверить версию
sphinx-build --version
# Обновить
pipx upgrade sphinx
Быстрый старт
1. Создать репозиторий
- Зарегистрироваться на Github . Войти в аккаунт.
- Создать новый Github-репозиторий. Например,
myrepo-docs
. - Склонировать созданный репозиторий на компьютер:
git clone <SSH>
Подробнее о работе с Github – в официальной документации .
2. Инициализировать проект
- Внутри склонированного репозитория создать папку
docs
, чтобы файлы Sphinx-проекта располагались в отдельной директории:
mkdir docs
- В терминале перейти в созданную директорию
myrepo-docs/docs
. Выполнить команду для инициализации sphinx-проекта:
cd myrepo-docs/docs
sphinx-quickstart
В процессе инициализации система задаст вопросы:
Вопросы | Ответы |
---|---|
Разделить каталоги исходных файлов и результатов сборки (y/n) [n]: | y |
Название проекта*: | myrepo-docs |
Имя(ена) автора(ов)*: | author |
Релиз проекта []*: | 1.0.0 |
Язык проекта [en]*: | ru |
Примеч.: сведения, отмеченные *
, можно будет изменить в файле conf.py
.
- Запушить изменения в удаленный репозиторий:
git status
git add .
git commit -m "build: initialize sphinx, add file structure"
git push -u origin main
Примеч.: пустые папки в удаленный Github-репозиторий не отправляются. Они остаются только в локальном репозитории.
3. Установить расширения
В папке с проектом выполнить команду:
pipx install <название_расширения>
Расширение | Назначение |
---|---|
sphinx-autobuild | Позволяет отслеживать изменения генерируемых html-файлов. Использует горячую перезагрузку браузера |
Файловая структура проекта
Файловая структура проекта после выполнения всех предыдущих шагов:
- conf.py
- index.rst
- make.bat
- Makefile
- .gitignore
- README.md
Наименование | Назначение |
---|---|
docs | Папка с документацией Sphinx-проекта |
build | Папка для генерации выходных документов в форматах: HTML, PDF, LaTeX |
source | Папка для размещения исходных файлов |
_static | Папка для размещения исходных файлов, не содержащих исходный код (например, изображения). После генерации выходных документов эта папка служит источником для вложений |
_templates | Папка для размещения шаблонов документов |
conf.py | Конфигурационный файл. Содержит ключевые параметры Sphinx-проекта |
index.rst | Корневой документ. Объединяет документацию в единую иерархию. Служит мастер-документом или страницей приветсвия. Содержит оглавление |
make.bat | Скрипт для упрощения некоторых распространенных операций Sphinx-проекта |
Makefile | Файл, содержащий инструкции для выходных документов, генереруемых командой make |
.gitignore | Файл с исключениями. Указанные в нем файлы и папки не будут публиковаться в удаленном репозитории |
README.md | Файл с описанием проекта (репозитория) |
Сборка документации
Ручная сборка
В папке с проектом выполнить команду:
sphinx-build -M html 'docs/source/' 'docs/build/'
Эта команда сгенерирует документацию в формате html
. Возьмет исходные файлы из директории docs/source/
и поместит результат в целевую директорию docs/build/
.
Если в браузере открыть файл docs/build/html/index.html
, то отобразится сайт с документацией.