MkDocs
MkDocs – это бесплатный статический генератор сайтов , предназначенный для создания проектной документации. Документация размещается с помощью бесплатных сервисов, например Read The Docs, или же на собственном сервере.
MkDocs написан на Python. Исходные файлы документации написаны на Markdown и настроены с помощью одного файла конфигурации YAML. Генератор сайтов MkDocs в качестве исходных материалов поддерживает файлы как формата markdown (.md) так и формата html.
Этапы установки:
-
Установка pip (если версия Python 3.4 или новее, то возможно pip уже установлен)- get-pip.py - Команда для установки
python get-pip.py
-
Установка mkdocs - команда
pip install mkdocs
Создание нового проекта:
-
Выполнить команды в командной строке -
mkdocs new my-project
,cd my-project
. Существует один файл конфигурации с именемmkdocs.yml
и папка с именемdocs
, которая будет содержать исходные файлы документации. -
Запустите сервер, выполнив команду -
mkdocs serve
-
Откройте
http://127.0.0.1:8000/
в своем браузере, и вы увидите, что отображается домашняя страница по умолчанию. Сервер разработки также поддерживает автоматическую перезагрузку и будет перестраивать вашу документацию всякий раз, когда что-либо изменяется в файле конфигурации, каталоге документации или каталоге темы. -
Откройте
docs/index.md
документ в выбранном вами текстовом редакторе, измените начальный заголовок и сохраните изменения. Ваш браузер автоматически перезагрузится, и вы сразу увидите обновленную документацию. -
Теперь отредактируйте файл конфигурации:
mkdocs.yml
. Изменитеsite_name
настройку и сохраните файл. -
Добавьте вторую страницу в документацию -
docs/about.md
-
Поскольку сайт документации будет включать в себя некоторые навигационные заголовки, можно отредактировать файл конфигурации
mkdocs.yml
и добавить некоторую информацию о порядке, заголовке и вложенности каждой страницы в навигационный заголовок, добавивnav
параметр: nav:- Home: index.md
- About: about.md
-
Теперь изменим файл конфигурации, чтобы изменить способ отображения документации, изменив тему. Отредактируем
mkdocs.yml
файл и добавимtheme
параметр (например:read the docs
). -
Изменение значка фавиконки. По умолчанию MkDocs использует значок избранного MkDocs . Чтобы использовать другой значок, создайте
img
подкаталог в docs каталоге и скопируйте свой пользовательскийfavicon.ico
файл в этот каталог. MkDocs автоматически обнаружит этот файл и будет использовать его в качестве значка фавикона. -
Создание сайта. Сбор документации - команда
mkdocs build
. Это создаст новый каталог с именемsite
.
Развертывание:
Сайт документации использует только статические файлы, поэтому вы сможете разместить его практически из любого места. Просто загрузите содержимое всего site
каталога туда, где вы размещаете свой веб-сайт, и все готово.
Страницы проекта.
Сайты Project Pages проще, поскольку файлы сайта развертываются в ветке в репозитории проекта ( gh-pages по умолчанию). После того, как вы откроете основную рабочую ветку (обычно master) репозитория git, в которой хранится исходная документация для вашего проекта, выполните следующую команду:
mkdocs gh-deploy
Вот и все! За кулисами MkDocs создаст ваши документы и с помощью инструмента ghp-import
зафиксирует их в gh-pages
ветке и отправит gh-pages
ветку на GitHub.
Модернизация документации.
Следующий этап — это добавление сайта в систему контроля версии (СКВ) и написание скрипта, который сам собирал бы нам сайт как только мы сохраним новую его версию.
Воспользуемся git-ом как СКВ и Gitlab CI для обработки действий.
Теперь, когда репозиторий создан и связан с Gitlab, создадим в папке с исходными материалами файл .gitlab-ci.yml
stages
:
- build
build_docs_job:
stage: build
only:
- /^master$/
- merge_requests
image:
name: squidfunk/mkdocs-material
entrypoint: [""]
script:
- 'mkdocs build --site-dir site'
artifacts:
name: "site_$($CI_PIPELINE_IID)"
paths:
- site
Этим файлом мы указали Gitlab CI собирать сайт каждый раз, когда появляются новые коммиты в ветке master
. Также потребуется установить Gitlab Runner
на машину, которая и будет собирать сайт по написанной в файле .gitlab-ci.yml
«инструкции».