Добавление или редактирование учебников в виде Jupyter notebooks#
Под doc/source/ В папке дерева SciPy можно найти несколько
документов, написанных в формате MyST Markdown. Содержимое этих файлов
выполняется при сборке документации SciPy (локально или на CI), и любые
выходные данные, сгенерированные выполнением, отображаются в итоговых HTML-файлах. Кроме
того, их можно сделать интерактивными на сайте документации SciPy,
используя
jupyterlite-sphinx
расширение.
Если у вас есть документ, написанный в формате Jupyter notebook ( .ipynb файл)
и хотели бы отправить его как часть документации SciPy, есть два
варианта: вы можете преобразовать его в файл MyST Markdown и работать с .md
только файл, или вы можете сопоставить ваш .ipynb файл с .md файл и работать с обоими. Обратите внимание, что .ipynb файлы не должен должен быть отправлен в документацию SciPy.
В этом документе мы рассматриваем преобразование в файл MyST Markdown. Для получения дополнительной информации о MyST-NB, Jupytext и сопряжении блокнотов, вы также можете обратиться к Парный учебник по NumPy Tutorials. Для получения дополнительной информации обратитесь к Документация MyST-NB.
Как преобразовать .ipynb файл в .md файл#
Если вам не нужно сохранять .ipynb файл и хотите работать только с MyST
Markdown, выполните следующие шаги.
Установить jupytext инструмент, используя
pip install jupytextилиconda install jupytext -c conda-forge;В терминале выполните
jupytext notebook.ipynb --to myst, гдеnotebook.ipynbдолжен быть заменен файлом, который вы хотите преобразовать.
Теперь, полученный .md файл (в формате MyST Markdown) должен содержать
преамбулу, подобную приведённой ниже, указывающую, что его содержимое будет выполнено
при сборке документации SciPy:
---
jupytext:
text_representation:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.14.0
kernelspec:
display_name: Python 3 (ipykernel)
language: python
name: python3
---
Вам не нужно редактировать этот преамбулу, так как она генерируется автоматически.
Ссылки, форматирование и изображения#
При преобразовании блокнота в файл MyST Markdown может потребоваться настроить часть содержимого в соответствии с синтаксисом MyST Markdown.
Внешние ссылки: MyST Markdown использует стандартный синтаксис Markdown для ссылок. Например,
[link text](https://www.example.com).Внутренние ссылки: Для внутренних перекрестных ссылок, таких как ссылки на классы или функции SciPy, а также intersphinx ссылок, можно использовать следующий синтаксис:
{role}`link text, где` roleможет бытьref,class,funcили любую другую роль, которую вы бы использовали с reST. Например, чтобы связаться сscipy.stats.bartlettфункция, используйте{func}`scipy.stats.bartlett`.Форматирование: MyST Markdown поддерживает стандартное форматирование Markdown, такое как жирный текст, курсив и блоки кода. Например, чтобы сделать текст жирным, можно использовать двойные звёздочки:
**bold text**. Чтобы сделать текст моноширинным/отформатированным как код, можно использовать одиночный обратные кавычки:`code`.Изображения: Если ваша тетрадь содержит статические изображения, вы можете включить их в файл MyST Markdown, используя следующий синтаксис:
. Изображения обычно хранятся в той же папке, что и файл MyST Markdown, но вы также можете использовать относительные пути для ссылки на изображения в других папках. Обратите внимание, что выходы выполненных ячеек не должны включаться в систему контроля версий, так как они будут автоматически сгенерированы при выполнении блокнота во время сборки документации SciPy.Ссылки на страницы MyST Markdown: MyST Markdown поддерживает добавление якорей ссылок, которые могут использоваться для ссылки на конкретные страницы или разделы документов из других документов. Чтобы добавить якорь на страницу, добавьте
(anchor_name)=в желаемое место документа для ссылки. С других страниц markdown вы можете ссылаться на этот якорь, используя следующий синтаксис:{ref}`anchor_name`. С других страниц reST вы можете ссылаться на этот якорь, используя следующий синтаксис::ref:`anchor_name`.
Создание интерактивного блокнота#
Если вы хотите включить интерактивность для вашего блокнота при его отображении на сайте документации SciPy, вам нужно добавить следующий фрагмент в начале файла markdown:
```{eval-rst}
.. notebooklite:: .md
:new_tab: True
```
где должно быть заменено на имя файла, с которым вы
работаете. Это создаст кнопку, позволяющую пользователям открыть блокнот
в новой вкладке и взаимодействовать с ним. См.
Тест Бартлетта на равенство дисперсий
(и его источник)
для примера.
Примечание
Для простоты мы не хотим, чтобы определённые ячейки блокнота были видны в отображаемой документации. Мы можем скрыть их, добавив "jupyterlite_sphinx_strip"
в раздел тегов соответствующей метаданной ячейки. Чтобы сделать это в
Markdown файле, добавьте следующий фрагмент прямо перед ячейкой, которую хотите скрыть:
+++ {"tags": ["jupyterlite_sphinx_strip"]}
Обратите внимание, что +++ обозначения должны идти парами, окружая ячейку, которую вы хотите скрыть.
Посетите Документация директивы NotebookLite для получения дополнительных деталей и опций.
Открытие файлов MyST Markdown в приложении Jupyter Notebook#
Если у вас есть jupytext установленный инструмент позволяет открывать MyST Markdown .md
файлы в приложении Jupyter Notebook и выполнять их, как вы бы делали
с .ipynb файл.
Преобразование .rst файлы в MyST Markdown#
Для преобразования reStructuredText (.rst) файл в MyST Markdown (.md), вы можете следовать инструкциям по форматированию выше. Вы также можете использовать такие инструменты, как
RST-to-MyST для автоматизации преобразования, но обратите внимание, что может потребоваться проверка, чтобы убедиться в правильности преобразования. В частности, некоторые директивы reStructuredText могут потребовать обертывания в {eval-rst} Директива MyST, как показано ниже:
Some Markdown here
```{eval-rst}
.. some_rest_directive_here::
:some_option: some_value
```
Some more Markdown here