Добавление тега javascript script в какое-то место, чтобы он работал для каждого файла в документации sphinx - PullRequest
13 голосов
/ 25 февраля 2012

Я использую Сфинкс, чтобы написать несколько заметок.Я использую расширение Mathjax для Math в примечаниях.Размер математики по умолчанию немного больше, чем хотелось бы.На странице Mathjax я обнаружил, что могу изменить этот размер, добавив следующий скрипт в файл HTML.

MathJax.Hub.Config({
  "HTML-CSS": {scale: 90}
});

Итак, я попытался добавить в файл .rst следующее:

.. raw:: html

    <script type="text/javascript" >
        MathJax.Hub.Config({
            "HTML-CSS": {
                scale: 90
            }
        });
    </script>

==========
Objective
==========

To change math size \\( \\alpha \\).

Вышеописанное прекрасно работает для математики в этом конкретном файле .rst.Но я хочу сделать это для многих различных файлов .rst, которые являются частью одного и того же документа sphinx.Возможно ли это сделать без добавления вышеуказанного скрипта в каждый файл .rst?

Спасибо, что прочитали это, и был бы признателен, если бы вы могли помочь.

Ответы [ 3 ]

16 голосов
/ 26 февраля 2012

Это можно сделать с помощью шаблона:

  1. Создайте папку с именем templates в каталоге проекта Sphinx.

  2. В конфигурации.py, добавить

    templates_path = ["templates"]
    
  3. В каталоге templates создайте файл с именем layout.html со следующим содержимым:

    {% extends "!layout.html" %}
    
    {%- block extrahead %} 
     <script type="text/javascript">
           MathJax.Hub.Config({
               "HTML-CSS": {
                   scale: 90
               }
           });
      </script>      
    {% endblock %}
    

Элемент <script> будет включен в <head> каждой сгенерированной HTML-страницы.

Блок шаблона extrahead по умолчанию пуст.Подробности смотрите в шаблонной документации Sphinx .

3 голосов
/ 27 января 2017

И третий подход, который не включает шаблоны:

Вызов add_javascript в функции setup в вашем проекте Sphinx conf.py :

# conf.py

# ... other settings ...

def setup(app):
    # (create a setup() function if you don't already have one;
    # or add to the existing setup() ...)
    app.add_javascript("mathjax-config.js")

Создайте файл "mathjax-config.js" в вашей исходной директории _static. (Проверьте параметр conf.py html_static_path, чтобы проверить статические каталоги, или определите один, если необходимо.) Sphinx скопирует его в выходной каталог во время сборки.

Существует также метод add_stylesheet для файлов CSS. И оба они могут указывать либо относительные пути к вашим статическим исходным каталогам, либо полные ссылки на внешние ресурсы.

3 голосов
/ 21 марта 2012

Другой метод:

Используйте параметр script_files в переопределенном файле layout.html.

...