Используйте другой шаблон для домашней страницы в Sphinx [duplicate]

Вы можете использовать asyncPype , если вы используете myEvents только в шаблоне.

Здесь пример с asyncPype и Angular4 HttpClient https://stackblitz.com/edit/angular -rhioqt? файл = приложение% 2Fevent.service.ts

9
задан egeloen 3 November 2012 в 15:23
поделиться

2 ответа

Для записи это решение гораздо более сложное, чем решение, но на данный момент я не нахожу что-то лучше ...

Прежде всего, вы должны понимать, что мое обходное решение основано на тему. В вашем документе вы используете тему (по умолчанию - один или пользовательский), но в любом случае вы используете тему. Эта тема разделена на другую часть (page, toc, ...), которая может быть индивидуально переопределена. Это переопределение может выполняться на другом уровне: сама тема или в каталоге настраиваемых шаблонов проекта (по умолчанию _templates) (настраивается в conf.py).

Моим обходным решением является переопределение page.html в директории _templates, которая представляет все страницы вашей документации. В этом шаблоне у вас есть доступ к pagename (относительный путь к документу каждого файла). Зная это, вы можете сделать некоторую условную проверку в этом шаблоне, чтобы определить, является ли это файлом, который вы хотите переопределить & amp; затем переопределите его. Если это не файл, который нужно переопределить, просто отмените поведение по умолчанию:

{% extends "layout.html" %}
{% block body %}
    {% if pagename == 'index' %}
        {% include 'custom/index.html' %}
    {% else %}
        {{ body }}
    {% endif %}
{% endblock %}

Как объясняют, это действительно звучит как взлома ...

10
ответ дан egeloen 22 August 2018 в 18:21
поделиться

Следует иметь возможность использовать переменную для определения шаблона для расширения от .

Таким образом, это может быть меньше «взлома». И вы полностью контролируете сгенерированный вывод (не только блок body).

layout.html:

{% extends meta.page_template|default('basic/page.html') %}

И в вашем index.rst вы используете тогда метаданные на уровне страницы :

index.rst:

:page_template: custom/index.html
<your normal index.rst content>
1
ответ дан Nick Volynkin 22 August 2018 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: