Ячейка Markdown в блокноте Jupyter
Блокнот Jupyter (ранее Блокнот IPython) — это интерактивная вычислительная среда на базе Интернета для создания документов блокнота Jupyter. Markdown — это легкий и популярный язык разметки, который является стандартом письма для ученых и аналитиков данных. Он часто преобразуется в соответствующий HTML-код, с помощью которого процессор Markdown позволяет легко обмениваться им между различными устройствами и людьми. В этом руководстве вы узнаете, как использовать и писать с помощью различных тегов разметки с помощью Jupyter Notebook.
В этом уроке вы узнаете, как использовать следующее:
- Заголовки
- Цветные ящики
- Блок Блок
- Моноспект Фонт
- Встроенный код
- Математические символические символы и равенства Laatex
- 1111111111111111111112.
- Жирный и курсивный текст
- Горизонтальные линии
- Геометрические фигуры
- Нумерованные и неупорядоченные списки
- Внутренние и внешние ссылки
- Таблица
- Изображение
- Уценка GitHub со вкусом
Текст можно добавить в блокноты Jupyter, используя ячейки Markdown. Вы можете изменить тип ячейки на Markdown с помощью меню «Ячейка», панели инструментов или сочетания клавиш m . Markdown — это популярный язык разметки, являющийся надмножеством HTML . Его можно активировать в блокноте Jupyter следующим образом:
выберите параметр уценки на вкладке выше.
Заголовки
Вы можете добавить заголовки, начав строку с одного (или нескольких) символов #, за которыми следует пробел, как в следующем примере:
Ввод:
Вывод:
Используйте требуемый заголовок в соответствии с контекстом
Заголовки также можно использовать с заголовком
здесь.
Цветные поля для заметок
Используйте теги div для создания цветного поля для заметок. Не весь код уценки работает внутри тега div, поэтому внимательно просмотрите цветные поля! Например, чтобы выделить слово жирным шрифтом, окружите его текстом вместо двух звездочек или подчеркивания.
Блоки для заметок : Используйте синие блоки для советов и заметок. Если это примечание, вам не нужно включать слово «Примечание».
Ввод:
Вывод:
Это примечание, ячейка уценки.
Ввод:
Выход:
Это пример ячейки уценки
Предупреждающие окна: Старайтесь избегать предупреждающих окон, насколько это возможно.
Ввод:
Вывод:
Это предупреждающая ячейка уценки. Например, если у вас есть много связанного контента, на который можно ссылаться, возможно, вы решите использовать зеленые поля для связанных ссылок из каждого раздела записной книжки.
Ввод:
Вывод:
Это успешная ячейка уценки. Все с отступом до следующего возврата каретки.
используйте «>» * x раз. где x — количество раз, которое вы хотите сделать отступом для данного текста.
Ввод:
Вывод:
Пример вложенного блока с отступом
Они также могут быть получены с помощью
text
Вход:
Выход:
Пример использования цитаты блока с использованием
tag. знак «- » с двумя пробелами после него или пробел, тире и пробел «-«, чтобы создать круговой маркер. Чтобы создать подпункт, используйте табуляцию, тире и два пробела. Вы также можете использовать звездочку («*») вместо тире, и это работает так же.
Ввод:
Вывод:
Пример круглых, квадратных и вложенных маркеров
Моноширинный шрифт сзади с одинарной кавычкой `
900 вокруг текста). Используйте моноширинный шрифт для пути к файлу и имени файла, а также для ввода текста или текста сообщения, который видят пользователи.
![]()
Ввод:
Вывод:
Пример моноширинного шрифта
Встроенный код
Вы можете внедрить код, предназначенный для иллюстрации, вместо выполнения в Python:
Раздел «Код» — это часть, которая определяет код разных языков программирования и может быть отображена там, где встроенный код начинается с «`внутренний код идет сюда`» назад- галочки вокруг него, но блок кода начинается с трех обратных кавычек ‘ «` здесь идет код строки блока «` ‘. Кроме того, тег разметки для раздела «Код» — «<код>код идет сюда<код>».
Ввод:
Использование Markdown
Выход:
Использование Markdown для представления секции кода Python
Вход:
. код python
Математический символ и уравнения LaTeX
Математический символ в Markdown включен в «$ математическое выражение идет сюда $», заключенное в символ доллара, и в разметке вы можете перейти по этой ссылке для более подробной информации: Математические операторы.
Ниже вы можете увидеть пример использования математических символов.
Используйте этот код: $ математические символы $. Вы можете включать математические выражения как встроенные: ei?+1=0 , так и отображаемые:
Выражение в отдельной строке
Встроенные выражения можно добавлять, окружая латексный код $:
Ввод:
Вывод:
Это встроенное представление математического выражения
Выражения в отдельной строке окружены $$:
Вход:
Выход:
Это набросок математического выражения
. строку, а оставшееся содержимое начинается с новой строки в примере, показанном ниже.
Ввод:
Вывод:
«br tags and it awesome» появляется в новой строке».
Жирный и курсивный текст
Вы можете использовать теги , ‘**’ т.
е. ‘двойная звездочка’ или ‘__’ т.е. ‘двойное подчеркивание’ для получения полужирного текста со следующим синтаксисом .
Ввод:
Вывод:
Пример полужирного текста.
Вы можете использовать теги , ‘*’ т. е. одну звездочку или ‘_’ т. е. одиночное подчеркивание, чтобы получить курсивный текст для следующего синтаксиса. Не оставляйте пробел между звездочкой и текстом, потому что он считается маркером.
Вход:
Выход:
Пример курсического текста
Горизонтальные линии
Вы можете получить горизонтальную линию, используя Markdown ‘ -‘ Три гифена или метки маркировки
Markup
.Оба приведенных выше синтаксиса отображают горизонтальную линию от одного конца до другого после нажатия «Выполнить».
Ввод:
Выход:
Example of horizontal lines
Ordered and Unordered lists
Ordered lists :
Input :
or
Output :
This is an пример упорядоченного списка
Неупорядоченные списки : Неупорядоченный список представляет собой маркированный список, который получается с использованием тега
и заканчивается тегом
, см.пример ниже:
В качестве альтернативы неупорядоченный список может начинаться с символа «-» с пробелом, что дает символ черного круга, а также может начинаться с символа «*» с пробелом, что дает символ черного квадрата.
Вывод:
Это пример ненумерованного списка
Внутренние и внешние ссылки код, который делает ссылку кликабельной.
[Название раздела](#division_ID)
Пример вышеизложенного можно увидеть ниже, где определенный идентификатор связан с разделом и кликабельной ссылкой, полученной после нажатия «Выполнить» на панели инструментов.
Ввод :
Вывод :
Это внутренняя ссылка
или
или
, которая начинается с атрибутаВвод:
Вывод:
Внутренняя ссылка с тегом > тег, т.
е. обозначает якорь, который определяет ссылку, и у него есть атрибут «href», также называемый гиперссылкой, который содержит целевой адрес ссылки или URL-адрес, а тексты между тегами видны и можно щелкнуть, чтобы открыть адрес назначения, как показано ниже.
Ввод:
В качестве альтернативы он также может начинаться с __(URL-адрес сайта)__, где двойное подчеркивание находится с обеих сторон, текстовая ссылка заключена в квадратную скобку, а URL-адрес для сайт заключен в круглые скобки, за которыми следует URL-адрес.
Вход:
Выход:
Пример внешнего звена
Таблица
Таблица содержит информацию в строках и колонках и построена комбинацией ‘|’ I.E. вертикальная черта» для разделения каждого столбца и «-», т. е. символ дефиса, для создания заголовка, где пустая строка, т. е. комбинация вертикальной вертикальной черты и тире для отображения формата таблицы.
![]()
Кроме того, вы можете варьировать ячейки, примерно совмещая их со столбцами, и блокнот автоматически изменит размер содержимого в данной ячейке.
Ввод:
Кроме того, Markdown можно использовать для построения таблиц, где
используется для определения ширины таблицы в процентах. текст вместе с заголовком таблицы описывается тегом
, который находится в верхней части таблицы, а остальные записи в таблице задаются тегом , т. е. тегом данных таблицы. Ввод:
Вывод:
Пример таблицы необходимое изображение, как показано ниже.
Вставка изображения с помощью панели инструментов
выберите файл с вашего ПК
или вы также можете вставить изображение с помощью тега
:
Ввод:
Выход:
Вставка изображения с использованием
Tag
.
Запись WebApp поддерживает ароматизированную марку Github.
Результат:
Это уценка GitHub со вкусом
Использование nbconvert в качестве библиотеки — nbconvert 7.2.9vert 7.2.9vertдокументация
В этой записной книжке вы познакомитесь с программным API nbconvert и узнаете, как его можно использовать в различных контекстах.
Для демонстрации будет использован отличный пост в блоге @jakevdp. Эта записная книжка не будет посвящена использованию инструмента командной строки. Внимательный читатель заметит, что в процессе преобразования данные не считываются и не записываются на диск. Это связано с тем, что nbconvert был разработан для работы в памяти, поэтому он также хорошо работает в базе данных или в веб-среде.
Краткий обзор
Авторы и права: Джонатан Фредерик (@jdfreder на github)
Основной принцип nbconvert заключается в создании экземпляра
Exporter
, который управляет конвейером, через который конвертируются записные книжки.![]()
Сначала загрузите блокнот @jakevdp (если у вас нет
запросов
, установите его, запустив, или если у вас не установлен pip, вы можете найти его на PYPI):
запросов на установку pip из urllib.request import urlopen url = 'https://jakevdp.github.io/downloads/notebooks/XKCD_plots.ipynb' ответ = urlopen(url).read().decode() ответ[0:60] + '...' 906:00'{\n "ячейки": [\n {\n "cell_type": "уценка",\n "метаданные": ...'Ответ представляет собой строку JSON, представляющую записную книжку Jupyter.
Далее мы прочитаем ответ, используя nbformat. Это гарантирует, что структура блокнота действительна. Обратите внимание, что формат в памяти и на диске немного отличаются. В частности, на диске многострочные строки могут быть разбиты на список строк.
формат импорта nb jake_notebook = nbformat.reads (ответ, as_version = 4) jake_notebook.cells[0] 906:00{'cell_type': 'уценка', 'метаданные': {}, 'source': '# графики XKCD в Matplotlib'}API nbformat возвращает специальный тип словаря.
В этом примере вам не нужно беспокоиться о деталях структуры (если вам интересно, см. документацию по nbformat).API nbconvert предоставляет некоторые базовые средства экспорта для распространенных форматов и значений по умолчанию. Вы начнете с использования одного из них. Сначала вы импортируете один из этих экспортеров (в частности, экспортер HTML), затем создадите его экземпляр, используя большинство значений по умолчанию, а затем вы будете использовать его для обработки блокнота, который мы скачали ранее.
из traitlets.config импортировать конфигурацию # 1. Импорт экспортера из nbconvert импорт HTMLExporter # 2. Создайте экспортер. Мы пока используем «классический» шаблон; мы узнаем больше деталей # позже о дальнейшей настройке экспортера. html_exporter = HTMLExporter (template_name = 'классический') # 3. Обработайте блокнот, который мы загрузили ранее (тело, ресурсы) = html_exporter.from_notebook_node(jake_notebook)Экспортер возвращает кортеж, содержащий исходный код преобразованной записной книжки, а также словарь ресурсов.
В данном случае исходным кодом является просто необработанный HTML:
печать (тело [: 400] + '...')Блокнот <тип стиля="текст/CSS"> pre {высота строки: 125%; } тд.линенос.... 906:00Если вы понимаете HTML, вы заметите, что некоторые общие теги опущены, например, тег
body
. Эти теги включены в стандартныйHtmlExporter
, который был бы создан, если бы мы не изменили файлtemplate_file
.Список ресурсов содержит (среди прочего) извлеченные
.png
,.jpg
и т. д. из блокнота, если это применимо. Базовый экспортер HTML оставляет рисунки как встроенные в base64, но вы можете настроить его для извлечения рисунков.Итак, на данный момент ресурсный словарь должен быть в основном пустым, за исключением ключа, содержащего CSS, и нескольких других, содержание которых будет очевидным:
печать ("Ресурсы:", resources.keys()) print("Метаданные:", ресурсы['метаданные'].keys()) print("Встраивание:", ресурсы['встраивание'].keys()) print("Расширение:", ресурсы['output_extension'])Ресурсы: dict_keys(['метаданные', 'output_extension', 'устаревшие', 'тема', 'include_css', 'include_lab_theme', 'include_js', 'include_url', 'require_js_url', 'mathjax_url', 'jquery_url', ' jupyter_widgets_base_url', 'widget_renderer_url', 'html_manager_semver_range', 'should_sanitize_html', 'встраивание', 'raw_mimetypes', 'global_content_filter']) Метаданные: dict_keys(['имя']) Встраивание: dict_keys(['css']) Расширение: .html 906:00Exporter
не имеют состояния, поэтому вы не сможете извлечь какую-либо полезную информацию, кроме их конфигурации. Вы можете повторно использовать экземпляр экспортера для преобразования другой записной книжки.В дополнение к
методам from_notebook_node
, использованным выше, каждый экспортер предоставляет методыfrom_file
иfrom_filename
.Пользовательские препроцессоры
Существует бесконечное количество преобразований, которые вы можете применить к записной книжке. В особо сложных случаях вы можете захотеть создать свои собственные
Препроцессор
. Выше, когда мы настроили список препроцессоров, принимаемыхHTMLExporter
, мы передали строку — это может быть любое допустимое имя модуля. Итак, если вы создадите свой собственный препроцессор, вы можете включить его в тот же список, и он будет использоваться экспортером.Чтобы создать свой собственный препроцессор, вам нужно создать подкласс
nbconvert.preprocessors.Preprocessor
и перезаписать либо препроцессор, либо
preprocess_cell 9.0591 методы.
Пример
Следующая демонстрация добавляет возможность исключить ячейку по индексу.
![]()
Примечание. Инъекция клеток аналогична и здесь не рассматривается. Если вы хотите вставлять статическое содержимое в начало/конец записной книжки, используйте настраиваемый шаблон.
из импорта трейлетов Integer из nbconvert.preprocessors импортировать препроцессор класс PelicanSubCell (препроцессор): """Специальный препроцессор Pelican для удаления некоторых ячеек блокнота""" # Я также мог бы прочитать ячейки из nb.metadata.pelican, если бы кто-то написал расширение JS, # но пока я останусь с настраиваемым значением. start = Integer(0, help="первая конвертируемая ячейка блокнота").tag(config=True) end = Integer(-1, help="последняя ячейка записной книжки для преобразования").tag(config=True) препроцессор def (self, nb, resources): self.log.info("Я оставлю только ячейки от %d до %d", self.start, self.end) nb.cells = nb.cells[self.start : self.end] возврат NB, ресурсы 906:00Здесь создается экспортер Pelican, который принимаетпрепроцессоров PelicanSubCell
и объект конфигурациив качестве параметров.
Это может показаться излишним, но с помощью системы конфигурации вы можете зарегистрировать неактивный препроцессор на всех экспортерах и активировать его из файлов конфигурации или из командной строки.
# Создайте новый объект конфигурации, который настраивает как новый препроцессор, так и экспортер с = Конфигурация () c.PelicanSubCell.start = 4 c.PelicanSubCell.end = 6 c.RSTExporter.preprocessors = [PelicanSubCell] # Создайте наш новый, настроенный экспортер, который использует наш собственный препроцессор пеликан = RSTExporter(config=c) # Обработать блокнот печать (пеликан. from_notebook_node (jake_notebook) [0]) 906:00Иногда при показе схематических сюжетов это тип фигуры I. хотите отобразить. Но рисовать его вручную - боль: я бы предпочел просто использовать матплотлиб. Проблема в том, что matplotlib слишком точен. Попытка дублирование этого рисунка в matplotlib приводит к чему-то вроде этого: .. код :: ipython3 Изображение('http://jakevdp.github.com/figures/mpl_version.png') .. изображение:: output_5_0.png Программное создание шаблонов
из импорта jinja2 DictLoader дл = DictLoader( { 'нижний колонтитул': """ {%- расширяет 'lab/index.html.j2' -%} {% нижний колонтитул блока%} ФОООООООООООООООООООООООООООООООООО {% нижний колонтитул конечного блока %} """ } ) exportHTML = HTMLExporter(extra_loaders=[dl], template_file='нижний колонтитул') (тело, ресурсы) = exportHTML.from_notebook_node(jake_notebook) для l в body.split('\n')[-4:]: печать (л) 906:00ФООООООООООООООООООООООООООООООООООВ реальном мире используется
@jakevdp использует Pelican и Jupyter Notebook для ведения блога. Pelican будет программно использовать nbconvert для создания поста в блоге. Посмотрите Pythonic Preambulations for Jake в блоге.@damianavila написал плагин Nikola для написания сообщений в блоге в виде блокнотов и разрабатывает js-расширение для публикации блокнотов одним щелчком мыши из веб-приложения.
![]()