Как разместить документацию Sphinx на страницах GitHub?

#github #github-pages #python-sphinx #python-packaging

#github #github-страницы #python-sphinx #python-упаковка

Вопрос:

Недавно я написал пакет Python и сгенерировал некоторую документацию, используя Sphinx. Я добавил документацию в репозиторий GitHub проекта и теперь хотел бы разместить статические страницы. Я прочитал в Интернете, что вы можете использовать страницы GitHub для этого.

Таким образом, я убедился, что включил страницы GitHub для общедоступного репозитория и выбрал docs папку для корневого каталога.

В настоящее время я сталкиваюсь с:

 404 Files not Found Error 
 

каждый раз, когда я пытаюсь получить доступ к ссылке проекты.

Текущая иерархия каталога docs структурирована следующим образом:

 - docs
   - source
       - index.rst
       - installation.rst
       - conf.py
       - examples.rst
   - Makefile
 

Я прочитал несколько вещей в Интернете, таких как это, которые, по-видимому, подразумевают, что проблема может возникнуть, если у вас есть подкаталоги (т. е. для меня в этом случае проблема может заключаться в том, что у меня есть отдельный source каталог в docs каталоге, а не только все файлы в одном каталоге). Я думаю, что это может быть проблемой, единственная часть — я не уверен, как это решить.

Должен ли я выбрать все файлы в source подкаталоге и переместить их в каталог docs с Makefile помощью? Как мне это сделать? Это должна быть структура, которую я использую для отслеживания их в Git, поэтому, возможно, мне придется изменить способ их отслеживания Git?

Любые ссылки на ресурсы или примеры были бы весьма признательны.

Редактировать: я смотрю на это репозиторий, в частности, там, где кажется, что документы размещаются на страницах GitHub и загружаются в репозиторий в .rst формате файла. Может быть, это как-то связано с Jekyll или что-то в этом роде?


Обновлено:

Редактирование 2: в итоге я удалил .rst файлы из репозитория (отследил их из git) и поместил .html файлы в каталог сборки. Поскольку GitHub Pages требует, чтобы документы находились в корневом /docs каталоге, я просто скопировал .html файлы в /docs корневую папку в репозитории. Однако проблема, с которой я сталкиваюсь, заключается в том, что сейчас тема строится неправильно, и я получаю только скелетную версию index.html сборки.

Я определил, что это, вероятно, как-то связано с _static тем, что файлы не включены или некоторые другие файлы, необходимые для правильной сборки темы. Мой вопрос в том, как должна выглядеть структура каталогов этого проекта?

Есть ли у нас, например,:

 /docs
   _static
   index.html
 

Какие файлы нам нужно включить, чтобы документация Sphinx была собрана правильно, и на каком уровне каждый из файлов / папок должен находиться в /docs корневом каталоге?

Другими словами, я получаю проблему, связанную с темой, подробно описанную в этом сообщении в блоге. Я попытался просто переместить _static папку вверх по каталогу на уровень с index.html файлом, но это, похоже, не решило проблему.

Комментарии:

1. На страницах GitHub могут размещаться только статические HTML-страницы и / или скрипты Jekyll. Итак, в вашем случае вы можете генерировать HTML-страницы только из источника reStructuredText, а затем отправлять эти HTML-страницы (и вспомогательные файлы) в репозиторий Git для отображения на страницах GitHub. Хостинг reStructuredText source не будет работать.

2. Есть ли ссылка на пример для этого или? Я видел несколько репозиториев, в которых размещаются документы, но, похоже, в репозиторий не загружены файлы HTML.

3. Это действительно зависит от того, какие репозитории вы имеете в виду. Во многих таких репозиториях напрямую размещается реструктурированный текст и ссылки на ReadTheDocs для рендеринга, а не на страницы GitHub.

Ответ №1:

Поскольку вы указали на репозиторий, на который вы смотрели, теперь можно рассказать, как этот автор заставляет все работать.

Фактический рабочий процесс создания / развертывания документа находится в конфигурации CircleCI, https://github.com/amueller/dabl/blob/main/.circleci/config.yml

Он просто выполняет следующее,

  1. Используется build_doc.sh для создания HTML-страниц и других артефактов.
  2. Используется push_doc.sh для копирования всех артефактов в репозиторий с поддержкой GitHub Pages, https://github.com/amueller/amueller.github.io

Итак, как я уже прокомментировал, этот автор размещает только HTML-страницы и другие артефакты, сгенерированные Sphinx (поскольку это то, чего желает GitHub Pages), но не реструктурированные текстовые исходные файлы.

Комментарии:

1. Спасибо за ваш ответ. Учитывая эту информацию, было бы проще повторно загрузить / заменить все мои .rst файлы в репозитории на HTML-файлы? Затем они будут автоматически подобраны страницами GitHub, верно?