Подтвердить что ты не робот

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

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

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 файлов, которые являются частью одного и того же документа сфинкса. Можно ли сделать это, не добавляя выше script в каждый .rst файл?

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

4b9b3361

Ответ 1

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

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

  • В conf.py добавьте

    templates_path = ["templates"]
    
  • В каталоге 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.

Ответ 2

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

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

Ответ 3

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

Вызвать 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. И оба они могут принимать либо относительные пути к вашим статическим исходным dirs, либо полные URL-адреса для внешних ресурсов.