Почему математические формулы не отображаются в Sphinx/pythonhosted.org?

Я не уверен, где именно проблема.

Я разработал пакет Python под названием hwrt, документация которого размещена на pythonhosted.org (официальном сайте, где setuputils автоматически кладет это).

Я позволяю Sphinx автоматически генерировать документацию из строк документации. Строки документации некоторых модулей содержат математику, например следующую строку документации из features.py:

"""Take the first ``points_per_stroke=20`` points coordinates of the first
   ``strokes=4`` strokes as features. This leads to
   :math:`2 \cdot \text{points\_per\_stroke} \cdot \text{strokes}`
   features.
   If ``points`` is set to 0, the first ``points\_per\_stroke`` point
   coordinates and the \verb+pen_down+ feature is used. This leads to
   :math:`3 \cdot \text{points_per_stroke}` features."""

Но когда я перехожу к https://pythonhosted.org/hwrt/features.html#hwrt.features.ConstantPointCoordinates не отображает математику с mathjax. Почему это так и как я могу это исправить?

Мой conf.py для Sphinx имеет

extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.intersphinx',
    'sphinx.ext.todo',
    'sphinx.ext.coverage',
    'sphinx.ext.mathjax'
]

person Martin Thoma    schedule 16.11.2014    source источник


Ответы (1)


Следующее предложение см. в документации Sphinx по поддержке математики:

Имейте в виду, что когда вы добавляете математическую разметку в строки документации Python, читаемые autodoc, вам нужно либо удвоить все обратные косые черты, либо использовать необработанные строки Python (r"raw").

Следуя этому совету, вы должны изменить свое первое математическое предложение, например, на

:math:`2 \\cdot \\text{points\\_per\\_stroke} \\cdot \\text{strokes}`

Обновить

Ваша проблема в том, что вы получаете доступ к pythonhosted через https, но пытаетесь загрузить файл mathjax через http, который по умолчанию заблокирован. См. сообщение об ошибке в консоли Chrome.

Страница по адресу 'https://pythonhosted.org/hwrt/features.html#hwrt.features.ConstantPointCoordinates» был загружен через HTTPS, но запускал небезопасное содержимое из «http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML.': этот контент также следует загружать через HTTPS.

Попробуйте изменить https://pythonhosted.org/hwrt/features.html#hwrt.features.ConstantPointCoordinates на http://pythonhosted.org/hwrt/features.html#hwrt.features.ConstantPointCoordinates, и все отображается просто отлично.

Решение состоит в том, что вы не жестко кодируете, а опускаете протокол для импортированной библиотеки javascript. Вместо запуска внешнего javascript с помощью http://cdn.mathjax.org/... используйте только //cdn.mathjax.org/...

См. этот вопрос на SO и http://blog.jonathanoliver.com/http-and-https-with-google-cdn/ Больше подробностей

Еще один источник для чтения, посвященный именно вашей проблеме, — https://github.com/MDanalysis/mdanalysis/issues/182

person halex    schedule 16.11.2014
comment
Примечание из будущего: срок службы cdn.mathjax.org подходит к концу, проверьте mathjax .org/cdn-shutting-down для советов по миграции. - person Peter Krautzberger; 12.04.2017
comment
Еще одно замечание из будущего: pythonhosted.org, по-видимому, теперь доступен только для чтения и устарел, как было указано два года назад mail.python.org/pipermail/distutils-sig/2015-May/026381.html - person orbeckst; 23.04.2017