Директ парсинг: Как (и зачем) бесплатно парсить ключи и объявления конкурентов из Яндекс.Директ и Google Ads / Хабр

Как получить и зачем нужен список пользователей из Instagram Direсt, с которыми велась переписка? — Сервисы на vc.ru

В сети интернет часто задается вопрос, на который до недавних пор не было ответа: «Как получить список пользователей из Direct в Instagram?» или «Как спарсить ID аккаунтов из личного Direct Instagram?» или «Есть ли сервис или способ для парсинга ID аккаунтов Instagram, которые мне написали в Директ? На телефоне все они есть, а вот как их в базу спарсить — не знаю. Есть идеи?»

2123 просмотров

Так вот – идея наконец то есть! И не просто идея, а целое расширение для браузера Google Chrome, при помощи которого вы сможете в два клика получать список пользователей из вашего Instagram Direct! Расширение называется Direct Parser.

Direct Parser | Расширение для Google Chrome

Вы спросите: а зачем вообще нужен этот список пользователей, с которыми велась переписка?
Расширение будет полезно, если у вас имеются сотни или тысячи обращений клиентов в Директ и вы хотите:

· настроить ретаргетинговую кампанию по ним;

· cобрать всех клиентов в базу данных и возможно продать ее;

· настроить рассылку по пользователям Instagram;

· подобрать схожую аудиторию в Instagram;

· найти пользователей в других соц. сетях, например VK;

· для любых маркетинговых задач!

Подробнее рассмотрим в данной статье.

Итак, начнем с установки:

Расширение поставляется в виде архива с двумя файлами: папка с расширением и инструкция по установке.

Содержание архива Direct Parser с расширением

Установка происходит в три простых шага и занимает не более минуты:

1) Открываем Google Chrome и нажимаем на три точки — «Дополнительные настройки» — «Расширения».

Установка расширения Direct Parser в Google Chrome

2) Включаем «Режим разработчика», нажимаем на кнопку «Загрузить распакованное расширение»

Включение режима разработчика в Google Chrome

3) Выбираем папку с расширением и нажимаем «Выбрать».

Выбор папки, содержащий файлы расширения Direct Parser

Поздравляем, расширение установлено!

Вид установленного расширения Direct Parser в Google Chrome

Закрепляем расширение в панели быстрого доступа для удобства пользования. Установка производится один раз и не требует настройки.

Чтобы получить список пользователей из Instagram Direct переходим на веб-версию Инстаграм, при необходимости авторизуемся.
Обратите внимание: расширение установлено локально и не требует логина и пароля от вашего профиля. Вы можете авторизоваться и ДО установки расширения – оно будет работать в любом случае, т.к. данные для входа оно не использует!

Приступим к работе с расширением Direct Parser.

Шаг 1: Открываем расширение

Открытое расширение на странице Instagram Direct

Шаг 2: Листаем диалог до нужного периода времени или самого позднего сообщения, если вы хотите выгрузить всю базу переписок. Сообщения подгружаются партиями и между ними могут быть небольшие задержки.

Скроллинг диалогов в Instagram Direct до нужной даты

Шаг 3: Нажимаем на кнопку — «Начать сбор аккаунтов»

Получение списка пользователей в окне расширения

Шаг 4: Автоматически получаем список всех пользователей с которыми у вас была переписка в Директе.

Копирование списка пользователей из расширения Direct Parser

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

Список пользователей скопирован в приложение Word

Помимо парсинга пользователей из Instagram Direct расширение содержит ссылки на партнерские сервисы:

Первый сервис конвертирует полученный список профилей в ID (уникальные номера) для использования в рекламных кабинетах и работы с прочими программами, список которых есть в расширении.

Вторым партнерским сервисом является конвертер профилей Instagram в профили ВКонтакте. В итоге вы получаете из вашего списка профилей Instagram — список профилей ваших клиентов в ВК с дополнительной информацией: городом, датой рождения, возрастом и другими нужными данными. Сервис содержит множество дополнительных функций для самых разных задач.

Что еще можно делать с полученным списком пользователей из Instagram Direct для увеличения прибыли вашей организации?

Создавать аудитории для ретаргетинга для рекламных кампаний
Ваши рекламные объявления будут видеть клиенты, которые интересовались вашей продукцией, что существенно повысит эффективность объявлений и снизит цену рекламы.
Для этого: Получаем список пользователей с помощью расширения Direct Parser, при помощи партнерского сервиса получаем данные о пользователях и настраиваем рекламу по ним ВКонтакте. Либо, используя прочие функции сервиса, получаем дополнительные данные: телефоны, почту, и запускаем ретаргетинг в Facebook Ads.

Находить схожие аудитории
Массфолловинг будет гораздо эффективнее, если подписываться на схожие аудитории. При этом аудитории будут основаны на обращениях ваших клиентов и их друзьях.
Для этого: Получаем список пользователей с помощью расширения

Direct Parser, используем список в сервисе InstaPlus. При этом в настройках выбираем «Cобирать подписчиков» по списку пользователей (не подписки), что позволит собрать аудиторию со смежными интересами, возрастной группой и т.д. Помимо этого, мы можете использовать функцию Facebook Lookalike (когда вы загружаете в Facebook базу e-mail и телефонов ваших клиентов, а FB показывает вам максимально похожую аудиторию) и запустить рекламу в Instagram.

Создавать рассылки
Некоторые идеи для рассылок по пользователям, с которыми велась переписка в Direct:

· Расскажете об акциях и скидках. Сделайте Рассылку с условиями действующих акций и скидок по вашей собранной базе.

· Отправьте слова благодарности клиентам и попросите дать обратную связь по качеству товара или обслуживания.

· Оповестите аудиторию о старте специального предложения, действующего ограниченное время.

· Повысьте лояльность аудитории с помощью поздравительных сообщений.

Для этого: Получаем список пользователей с помощью расширения Direct Parser, создаем рассылки по спискам пользователей в таких сервисах, как: Tooligram и Funinsta.

Продать собственную базу клиентов
Для этого: Собрав список пользователей из своего Директ при помощи Direct Parser, вы сформируете клиентскую базу, которую можно продать в дальнейшем за приличную сумму.

Что делать со списком пользователей из Instagram Direct?

Обратите внимание, что для всех этих маркетинговых задач первым этапом является сбор списка пользователей, который осуществляется при помощи расширения Direct Parser.

Подробный обзор расширения Direct Parser доступен по ссылке ниже на YouTube:

Подробный обзор расширения Direct Parser на YouTube

Пишите в комментариях ваши идеи, как еще можно применить список пользователей из Instagram Direct!

Массовая Рассылка Директ + Парсинг ЦА в подарок за 500 руб., исполнитель Ruslan_bars85 – Kwork

Бесконечные бесплатные правки в рамках технического задания и условий заказа. Платить нужно только за те изменения, которые выходят за рамки первоначального заказа. Подробнее

К сожалению, продавец временно приостановил продажу данного кворка.
Смотрите похожие кворки в разделе Соцсети и SMM.

Ruslan_bars85

  • (2)

К сожалению, продавец временно приостановил продажу данного кворка.
Смотрите похожие кворки в разделе Соцсети и SMM.

Об этом кворке

Меня зовут Руслан, я занимаю массовой рассылкой в директ.

Надоело сливать бюджет на рекламу?

Не знаешь как привлечь клиентов?

Воспользуйся массовой рассылкой в lnstagram и клиенты не заставят себя ждать.

В разы дешевле обычной рекламы.

Ваша страничка в безопасности (бан/блок исключен).

Рассылка осуществляется со специально созданных аккаунтов.

Сбор и фильтрация целевой аудитории.

Предложение получают те пользователи, которым вы хотите предложить свой товар/услугу!

Подходит для любого бизнеса.

▪️Цена 1 сообщения 12 копеек

возможно более вкусные условия для вас)

Парсинг ЦА в подарок.

Важно! Ответы на самые часто-задаваемые вопросы:

1. Как осуществляется сбор ЦА:

По геолокация

По хэштегам

По подпискам и подписчикам аккаунтов конкурентов данной или смежной тематики

2. Как осуществляется фильтрация:

Наличие аватара (есть/нет/неважно)

Подписчики (от/до)

Подписки (от/до)

Количество постов (от/до) и тд.

других критериев фильтрации обсуждаем индивидуально

ПО возрасту, увлечениям, интересам, потребностям, сомнениям, РОСТУ, ВЕСУ фильтрация невозможна!

Эффективность рассылки в первую очередь зависит от правильного выбора ЦА

<p>Меня зовут Руслан, я занимаю массовой рассылкой в директ. </p><p>Надоело сливать бюджет на рекламу?</p><p>Не знаешь как привлечь клиентов?</p><p>Воспользуйся массовой рассылкой в lnstagram и клиенты не заставят себя ждать. </p><p>В разы дешевле обычной рекламы. </p><p>Ваша страничка в безопасности (бан/блок исключен). </p><p>Рассылка осуществляется со специально созданных аккаунтов. </p><p>Сбор и фильтрация целевой аудитории. </p><p>Предложение получают те пользователи, которым вы хотите предложить свой товар/услугу!</p><p>Подходит для любого бизнеса. </p><p>▪️Цена 1 сообщения 12 копеек</p><p>возможно более вкусные условия для вас)</p><p>Парсинг ЦА в подарок. </p><p>Важно! Ответы на самые часто-задаваемые вопросы:</p><p>1. Как осуществляется сбор ЦА:</p><p>По геолокация</p><p>По хэштегам</p><p>По подпискам и подписчикам аккаунтов конкурентов данной или смежной тематики</p><p>2. Как осуществляется фильтрация:</p><p>Наличие аватара (есть/нет/неважно)</p><p>Подписчики (от/до)</p><p>Подписки (от/до)</p><p>Количество постов (от/до) и тд. </p><p>других критериев фильтрации обсуждаем индивидуально</p><p>ПО возрасту, увлечениям, интересам, потребностям, сомнениям, РОСТУ, ВЕСУ фильтрация невозможна!</p><p>Эффективность рассылки в первую очередь зависит от правильного выбора ЦА</p>

Тип: Реклама, таргетинг, ЦА

Вид: Рассылка

Язык перевода:

Объем услуги в кворке: 5 000 сообщений

Развернуть Свернуть

Рекомендуем уточнить у исполнителя возможные риски при слишком быстром или агрессивном увеличении количества подписчиков.

Свернуть

Гарантия возврата

Средства моментально вернутся на счет,
если что-то пойдет не так. Как это работает?

Расскажите друзьям об этом кворке

Прямой анализ графиков настроений

Дэвид Самуэль, Джереми Барнс, Робин Курц, Стефан Опен, Лиля Оврелид, Erik Velldal


Abstract
В этой статье показано, как семантический синтаксический анализатор на основе графов может быть применен к задаче структурированного анализа тональности, напрямую предсказывая графы тональностей из текста. Мы продвигаем современное состояние на 4 из 5 стандартных наборов тестов. Мы публикуем исходный код, модели и прогнозы.

Код антологии:
2022. Address:
Dublin, Ireland
Venue:
ACL
SIG:
Publisher:
Association for Computational Linguistics
Note:
Pages:
470–478
Language:
URL:
https://aclanthology.
org/2022.acl-short.51
DOI:
10.18653/v1/2022.acl-short.51
Bibkey:
Процитируйте (ACL):
Дэвид Сэмюэл, Джереми Барнс, Робин Курц, Стефан Опен, Лилия Оврелид и Эрик Веллдал. 2022. Прямой анализ графиков настроений. В материалах 60-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи) , страницы 470–478, Дублин, Ирландия. Ассоциация компьютерной лингвистики.
Процитировать (неофициально):
Прямой анализ графиков настроений (Samuel et al., ACL 2022)
Копировать цитирование:
PDF:
https://aclanthology.org/2022.acl-short.51.pdf
Программное обеспечение:
2022.Acl-short.51.software.zip
Видео:
https://aclanthology.org/2022.acl-short.51.mp4
код
Jerbarnes/Direct_parsing_TO_SENT_GRAPH
. Мнение Корпус

  • BibTeX
  • MODS XML
  • Endnote
  • Предварительно отформатированный
 @inproceedings{samuel-etal-2022-direct,
    title = "Прямой анализ для графиков настроений",
    автор = "Самуил, Давид и
      Барнс, Джереми и
      Курц, Робин и
      Опен, Стефан и
      {\O}врелид, Лиля и
      Веллдал, Эрик",
    booktitle = "Материалы 60-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи)",
    месяц = ​​май,
    год = "2022",
    address = "Дублин, Ирландия",
    издатель = "Ассоциация вычислительной лингвистики",
    url = "https://aclanthology. org/2022.acl-short.51",
    doi = "10.18653/v1/2022.acl-short.51",
    страницы = "470--478",
    abstract = "В этой статье показано, как семантический синтаксический анализатор на основе графов можно применять к задаче структурированного анализа тональности, напрямую предсказывая графы тональности из текста. Мы совершенствуем 4 из 5 стандартных наборов тестов. исходный код, модели и прогнозы.",
}
 
 

<моды>
    <информация о заголовке>
        Прямой анализ графиков тональности
    
    <название типа="личное">
        Дэвид
        Самуэль
        <роль>
            автор
        
    
    <название типа="личное">
        Джереми
        Барнс
        <роль>
            автор
        
    
    <название типа="личное">
        Робин
        Курц
        <роль>
            автор
        
    
    <название типа="личное">
        Стефан
        Открыть
        <роль>
            автор
        
    
    <название типа="личное">
        Лиля
        Øvrelid
        <роль>
            автор
        
    
    <название типа="личное">
        Эрик
        Веллдаль
        <роль>
            автор
        
    
    <информация о происхождении>
        2022-05
    
    текст
    
        <информация о заголовке>
            Материалы 60-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи)
        
        <информация о происхождении>
            Ассоциация компьютерной лингвистики
            <место>
                Дублин, Ирландия
            
        
        публикация конференции
    
    В этой статье показано, как семантический синтаксический анализатор на основе графов можно применить к задаче структурированного анализа тональности, непосредственно предсказывая графы тональностей из текста.  Мы продвигаем современное состояние на 4 из 5 стандартных наборов тестов. Мы публикуем исходный код, модели и прогнозы.
    samuel-etal-2022-direct
    10.18653/v1/2022.acl-short.51
    <местоположение>
        https://aclanthology.org/2022.acl-short.51
    
    <часть>
        <дата>2022-05
        <единица экстента="страница">
            470
            478
        
    


 
 %0 Материалы конференции
%T Прямой анализ графиков настроений
%A Самуэль, Дэвид
%А Барнс, Джереми
%А Курц, Робин
% А Оупен, Стефан
%А Оврелид, Лиля
% А Веллдал, Эрик
%S Материалы 60-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи)
%D 2022
%8 мая
%I Ассоциация компьютерной лингвистики
%C Дублин, Ирландия
%F samuel-etal-2022-direct
%X В этой статье показано, как семантический синтаксический анализатор на основе графов можно применить к задаче структурированного анализа тональности, непосредственно предсказывая графы тональностей из текста.  Мы продвигаем современное состояние на 4 из 5 стандартных наборов тестов. Мы публикуем исходный код, модели и прогнозы.
%R 10.18653/v1/2022.acl-короткий.51
%U https://aclanthology.org/2022.acl-short.51
%U https://doi.org/10.18653/v1/2022.acl-short.51
%Р 470-478
 
Уценка (неформальная)

[Прямой анализ графиков настроений](https://aclanthology.org/2022.acl-short.51) (Samuel et al., ACL 2022)

  • Прямой анализ графиков настроений ( Samuel et al., ACL 2022)
ACL
  • Дэвид Сэмюэл, Джереми Барнс, Робин Курц, Стефан Опен, Лилия Оврелид и Эрик Веллдал. 2022. Прямой анализ графиков настроений. In Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers) , страницы 470–478, Дублин, Ирландия. Ассоциация компьютерной лингвистики.

Расширения синтаксиса

MyST-Parser легко настраивается, используя присущую парсеру markdown-it-py «подключаемость». Следующие синтаксисы являются необязательными (отключены по умолчанию) и могут быть включены через файл конфигурации sphinx conf. py (см. также Конфигурация). Их цель, как правило, состоит в том, чтобы добавить больше синтаксисов , дружественных к Markdown ; часто включает и отображает плагины markdown-it-py, которые расширяют спецификацию CommonMark.

Чтобы включить все описанные ниже синтаксисы:

 myst_enable_extensions = [
    "аммат",
    "attrs_inline",
    "колон_забор",
    "дефлист",
    "долларовая математика",
    "список полей",
    "html_уведомление",
    "html_изображение",
    "inv_ссылка",
    "связать",
    «замены»,
    "умные кавычки",
    "перечеркнутый",
    "замещение",
    "список заданий",
]
 

Изменено в версии 0.13.0: myst_enable_extensions заменяет предыдущие параметры конфигурации: admonition_enable , figure_enable , dmath_enable , amsmath_enable , deflist_enable , html_img_enable

Типография

Добавление "smartquotes" к myst_enable_extensions (в файле конфигурации sphinx conf. py ) автоматически преобразует стандартные котировки в их варианты открытия/закрытия:

Добавление "замен" на myst_enable_extensions (в сфинксе conf.py файл конфигурации) автоматически преобразует некоторые распространенные типографские тексты

текст

преобразованный

(с) , (с)

©

(тм) , (тм)

(правый) , (правый)

®

(р) , (р)

§

+-

±

...

?....

?. .

!....

!..

????????

???

!!!!!

!!!

,

,

--

---

Зачеркнутый

Новое в версии 0.17.0.

Расширение зачеркнуто позволяет тексту с разделителями ~~ зачеркивать (горизонтальную линию) поверх него. Например, ~~зачеркнутый с *акцентом*~~ отображается как: зачеркнутый с акцентом .

Предупреждение

В настоящее время это расширение поддерживается только для вывода HTML, и вам нужно будет подавить предупреждение myst.strikethrough (см. Предупреждения сборки)

Математические ярлыки

Математика анализируется путем добавления к параметру списка myst_enable_extensions в файле конфигурации sphinx conf. py одного или обоих:

Эти параметры включают соответствующие плагины парсера Markdown, как подробно описано в руководстве по плагинам markdown-it.

Изменено в версии 0.13.0: myst_dmath_enable=True и myst_amsmath_enable=True устарели и заменены на myst_enable_extensions = ["dollarmath", "amsmath"] 9{математика}`

Экранирование долларов

Math можно экранировать (инвертировать), добавив \ перед первым символом, например. \$a$ отображается как $a$. Экранирование также можно использовать внутри математики, например. $a=\$3$ отображается как \(a=\$3\).

И наоборот, \\ отменяет экранирование, поэтому \\$a$ отображается как \\(a\).

Математика на уровне блока может быть указана с помощью знаков $$ , которые обертывают математический блок, который вы хотите проанализировать. Например: 92 \]

Это лучшее уравнение (1)

Есть несколько других опций для управления математическим анализом доллара:

myst_dmath_allow_space=False приведет к тому, что встроенная математика будет анализироваться только в том случае, если нет начальных/конечных пробелов, например. $a$ , но не $a$ или $a$ .

myst_dmath_allow_digits=False приведет к тому, что встроенная математика будет анализироваться только в том случае, если нет начальных/конечных цифр, например. $a$ , но не 1$a$ или $a$2 .

Обе эти опции могут быть полезны, если вы также хотите использовать $ в качестве денежной единицы.

Новое в версии 0.14.0: myst_dmath_double_inline опция

Чтобы разрешить отображение математики (т. е. $$ ) во встроенном контексте, установите myst_dmath_double_inline = True ( False по умолчанию). Это позволяет, например:

 Следовательно, для $\alpha \in (0, 1)$
$$
  \mathbb P (\alpha \bar{X} \ge \mu) \le \alpha;
$$
т. е. $[\alpha \bar{X}, \infty)$ — нижняя односторонняя $1-\alpha$ доверительная граница для $\mu$.
 

Следовательно, для \(\alpha \in (0, 1)\)

\[ \mathbb P (\alpha \bar{X} \ge \mu) \le \alpha; \]

т. е. \([\alpha \bar{X}, \infty)\) является нижней односторонней \(1-\alpha\) доверительной границей для \(\mu\).

Математика в других элементах блока

Math также будет работать при вложении в другие блочные элементы, такие как списки или кавычки:

 - Список
- $$ а = 1 $$
> Блочная цитата
> $$ а = 1 $$
 
  • Список А

  • \[ а = 1 \]

Блочная цитата

\[ а = 1 \]

Прямая математика LaTeX

Хотите использовать amsmath LaTeX напрямую, без долларов? См. параметр расширенного синтаксиса.

Mathjax и математический анализ

При построении HTML с использованием расширения sphinx.ext.mathjax (включено по умолчанию) Если Dollarmath включен, Myst-Parser внедряет классы tex2jax_ignore (MathJax v2) и mathjax_ignore (MathJax v3) в раздел верхнего уровня каждого документа MyST и добавляет следующую конфигурацию MathJax по умолчанию:

MathJax версии 2 (см. препроцессор tex2jax:

 MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})
 

MathJax версии 3 (см. параметры документа):

 window.MathJax = {"options": {"processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}
 

Это гарантирует, что MathJax обрабатывает только математику, идентифицированную расширениями Dollarmath и amsmath или указанную в математика директив.

Чтобы изменить это поведение, установите пользовательское регулярное выражение для определения обрабатываемых классов HTML, например myst_mathjax_classes="math|myclass" , или установите myst_update_mathjax=False , чтобы запретить это переопределение и обрабатывать все элементы HTML.

Линкифай

Добавление "linkify" к myst_enable_extensions (в файле конфигурации sphinx conf.py ) автоматически идентифицирует "голые" веб-URL и добавляет гиперссылки:

www. example.com -> www.example.com

Чтобы сопоставляться только URL-адресам, начинающимся со схемы, например http://example.com , установите myst_linkify_fuzzy_links=False .

Важно

Для этого расширения необходимо установить linkify-it-py. Либо напрямую; pip install linkify-it-py или через pip install myst-parser[linkify] .

Замены (с Jinja2)

Добавление "замена" to myst_enable_extensions (в файле конфигурации sphinx conf.py ) позволит вам добавлять замены, добавленные либо в conf.py , используя myst_substitutions :

 myst_substitutions = {
  "key1": "Я **замена**"
}
 

или вверху файла, во вступительной части (см. этот раздел):

 ---
мист:
  замены:
    key1: "Я **подмена**"
    ключ2: |
      ```{примечание}
      {{ключ1}}
      ```
    ключ3: |
      ```{изображение} img/fun-fish. png
      :alt: рыбный
      : ширина: 200 пикселей
      ```
    ключ4: пример
---
 

Important

Ключи во вступительной части имеют приоритет над ключами в conf.py .

Вы можете использовать эти замены как встроенные или как блоки, и вы даже можете вкладывать замены в другие замены (но циклические ссылки запрещены):

Ввод Markdown

 Встроенный: {{ key1 }}
Уровень блока:
{{ключ2}}
| столбец1 | столбец2 |
| -------- | -------- |
| {{key2}} | {{key3}} |
 

Визуализированный вывод

Встроенный: я замена

Уровень блока:

Примечание

Я замена

col1

цвет2

Примечание

Я замена

Важно

Замены будут оцениваться только там, где вы обычно используете Markdown, например. не в кодовых блоках:

 ```
{{ключ1}}
```
 
 {{ ключ1 }}
 

Следует также с осторожностью использовать неподходящие директивы для встроенных замен. Это может привести к неожиданным результатам.

Ссылки на подстановку

оцениваются как выражения Jinja2, которые могут использовать фильтры, а также содержат среду Sphinx в контексте (как env ). Поэтому вы можете делать такие вещи, как:

 - версия: {{ env.config.version }}
- имя документа: {{ env.имя документа | верхний }}
- {{ "а" + "б" }}
 

При необходимости вы также можете изменить разделитель, например, установив в конф.py :

 myst_sub_delimiters = ["|", "|"]
 

Проанализирует: || "а" + "б" || . Однако это следует изменять с осторожностью, чтобы не повлиять на другие синтаксисы.

Точная логика обработки замен:

  1. Объедините глобальные замены (указанные в conf.py ) с заменами вступительной части, чтобы создать переменный контекст (вступительная часть имеет приоритет)

  2. Добавить сфинкса env в переменный контекст

  3. Создайте строковое содержимое для рендеринга с помощью Jinja2 (передав ему переменный контекст)

  4. Если замена является встроенной, а не директивой, рендеринг игнорирует синтаксис блоков (например, списки или блочные кавычки), в противном случае рендеринг выполняется со всеми правилами синтаксиса.

Замены и URL-адреса

Подстановки нельзя использовать напрямую в URL-адресах, например [ссылка](https://{{key4}}.com) или . Однако, поскольку замены Jinja2 позволяют использовать методы Python, вы можете использовать форматирование строк или замены:

 {{ '[ссылка](https://{}.com)'.format(key4) }}
{{ ''.replace('REPLACE', env.docname) }}
 

ссылка

https://myst-parser.readthedocs.io/en/latest/syntax/Optional.html

Заборы кода с использованием двоеточий

Путем добавления "colon_fence" к myst_enable_extensions (в конфигурационном файле sphinx conf.py ), вы также можете использовать разделители ::: для обозначения барьеров кода вместо ``` .

Преимущество использования двоеточий вместо обратных галочек заключается в том, что содержимое отображается правильно, когда вы работаете в любом стандартном редакторе Markdown. Он идеально подходит для директив типа предупреждения (как описано в Директивах) или таблиц с заголовками, например:

Ввод уценки

 ::: {примечание}
Этот текст является **стандартным** _Markdown_
:::
:::{table} Это **стандартный** заголовок _Markdown_
:выравнивание: по центру
:ширина: сетка
азбука | мнп | xyz
--- | --- | ---
123 | 456 | 789:::
 

Примечание

Этот текст является стандартным Markdown

Это стандартный Markdown title

абв

МНП

хиз

123

456

789

Подобно обычным директивам, эти директивы также могут быть вложенными:

 ::::{важно}
:::{примечание}
Этот текст является **стандартным** _Markdown_
:::
::::
 

Важно

Примечание

Этот текст является стандартным Уценка

, а также можно использовать опции параметров:

 :::{предостережение} Это *также* **Markdown**
:класс: предупреждение
Этот текст является **стандартным** _Markdown_
:::
 

Этот также Уценка

Этот текст стандартный Уценка

Предупреждающие директивы

Изменено в версии 0. 13.0: myst_admonition_enable устарело и заменено myst_enable_extensions = ["colon_fence"] (см. выше). Кроме того, классы теперь должны быть установлены с опцией :class: myclass .

См. также Предостережения в формате HTML.

Списки определений

Путем добавления "deflist" в myst_enable_extensions (в файле конфигурации sphinx conf.py ), вы сможете использовать списки определений. Списки определений используют плагин markdown-it-py deflist, который сам основан на спецификации списка определений Pandoc.

Этот синтаксис может быть полезен, например, как альтернатива вложенным маркированным спискам:

  • Срок 1

    • Определение

  • Срок 2

    • Определение

Использование вместо:

 Термин 1
: Определение
Срок 2
: Определение
 
Термин 1

Определение

Термин 2

Определение

Из документации Pandoc:

Каждый термин должен помещаться на одной строке, за которой может следовать пустая строка, а также одно или несколько определений. Определение начинается с двоеточия или тильды, которые могут иметь отступ в один или два пробела.

Термин может иметь несколько определений, и каждое определение может состоять из одного или нескольких блочных элементов (абзаца, блока кода, списка и т. д.)

Вот более сложный пример, демонстрирующий некоторые из этих возможностей:

Термин с уценкой

Определение со ссылкой

Второй абзац

Второе определение

Термин 2

Определение 2a

Определение 2b

Термин 3
 Кодовый блок
 

Котировка

Окончательное определение, которое может включать даже изображения:

Это было создано из:

 Термин *с уценкой*
: Определение [со ссылкой] (синтаксис/списки определений)
  Второй абзац
: второе определение
Срок 2
  ~ Определение 2а
  ~ Определение 2б
Срок 3
: блок кода
: > Цитата
: Окончательное определение, которое может даже включать изображения:
   png" alt="fishy">
 

Списки задач

Добавив "список задач" в myst_enable_extensions (в файле конфигурации sphinx conf.py ), вы сможете использовать списки задач. Списки задач используют плагин списков задач markdown-it-py, и применяются к элементам списка уценки, начинающимся с [ ] или [x] :

 - [ ] Предмет, который нужно сделать
- [x] Готовый предмет
 
  • Предмет, который нужно сделать

  • Готовое изделие

Списки полей

Новое в версии 0.16.0.

Списки полей — это сопоставления имен полей с телами полей, на основе синтаксиса reStructureText.

 :только имя:
: имя: тело
:*Вложенный синтаксис*: И имя, и тело сообщения могут содержать **вложенный синтаксис**.
:Paragraphs: Так как маркер поля может быть достаточно длинным, второй
   и последующие строки абзаца не должны совпадать
   с первой строкой.
:Выравнивание 1: Если тело поля начинается с первой строки. ..
              Затем все тело поля должно иметь одинаковый отступ.
:Выравнивание 2:
  Если тело поля начинается на следующей строке...
  Тогда отступ всегда два пробела.
:блоки:
  Помимо абзацев, в теле поля может использоваться любой синтаксис блока:
  - Мне
  - Сам
  - я
  ```питон
  print("Привет, мир!")
  ```
 
только имя:
имя:

корпус

Вложенный синтаксис :

И имя, и тело могут содержать вложенный синтаксис .

Абзацы:

Поскольку маркер поля может быть довольно длинным, второй и последующие строки абзаца не должны совпадать с первой строкой.

Выравнивание 1:

Если тело поля начинается с первой строки…

Тогда все тело поля должно иметь одинаковый отступ.

Выравнивание 2:

Если тело поля начинается на следующей строке…

Тогда отступ всегда два пробела.

блоков:

Помимо абзацев, в теле поля может использоваться любой синтаксис блока:

  • Я

  • Сам

  • я

 print("Привет, мир!")
 

Известный случай использования списков полей для использования в строках документации API, как это используется в средствах визуализации строк документации Sphinx:

 ```{py:function} send_message(отправитель, приоритет)
Отправить сообщение получателю
:param str sender: человек, отправляющий сообщение
:param priority: Приоритет сообщения, может быть от 1 до 5. 
:тип приоритет: int
:return: идентификатор сообщения
:rtype: интервал
:поднимает ValueError: если message_body превышает 160 символов
```
 
send_message( отправитель , приоритет )

Отправить сообщение получателю

Параметры:
  • отправитель ( стр ) – Лицо, отправляющее сообщение

  • priority ( int ) — Приоритет сообщения, может быть числом 1-5

Возвращает:

идентификатор сообщения

Тип возврата:

целое число

Поднимает:

ValueError – если message_body превышает 160 символов

Примечание

В настоящее время sphinx.ext.autodoc не поддерживает MyST, см. Использование sphinx.ext.autodoc в файлах Markdown.

Встроенные атрибуты

Новое в версии 0. 19: эта функция есть в бета-версии и может измениться в будущих версиях. Он заменяет предыдущее расширение attrs_image , которое теперь устарело.

Путем добавления "attrs_inline" в myst_enable_extensions (в файле конфигурации sphinx conf.py ), вы можете включить синтаксический анализ встроенных атрибутов после определенных встроенных синтаксисов. Это адаптировано из встроенных атрибутов djot, а также связанные с пролетами в квадратных скобках pandoc.

Атрибуты указываются в фигурных скобках после встроенного синтаксиса. Внутри фигурных скобок распознается следующий синтаксис:

.
  • .foo указывает foo как класс. Таким образом можно дать несколько классов; они будут объединены.

  • #foo указывает foo в качестве идентификатора. Элемент может иметь только один идентификатор; если задано несколько идентификаторов, используется последний.

  • key="value" или key=value определяет атрибут "ключ-значение". Кавычки не нужны, когда значение полностью состоит из Буквенно-цифровые символы ASCII или _ или : или - . Обратная косая черта может использоваться внутри значений в кавычках. Примечание поддерживаются только определенные клавиши, см. ниже.

  • % начинается комментарий, который заканчивается следующим % или концом атрибута ( } ).

Например, следующая уценка:

 - [Отрывок текста с атрибутами]{#spanid .bg-warning},
  {ref}`ссылка на диапазон `
- `Литерал с атрибутами`{#literalid .bg-warning},
  {ref}`ссылка на литерал 
- Автоссылка с атрибутами: {.bg-warning title="a title"}
- [Ссылка с атрибутами](синтаксис/атрибуты){#linkid .bg-warning},
  {ref}`ссылка на ссылку `
- ![Изображение с атрибутом](img/fun-fish. png){#imgid .bg-warning w=100px align=center}
  {ref}`ссылка на изображение `
 

будет проанализировано как:

  • Фрагмент текста с атрибутами, ссылка на пролет

  • Литерал с атрибутами , ссылка на литерал

  • Автоссылка с атрибутами: https://example.com

  • Ссылка с атрибутами, ссылка на ссылку

  • ссылка на изображение

атрибуты "ключ-значение"

идентификатор и class поддерживаются для всех встроенных синтаксисов, но для каждого синтаксиса поддерживаются только определенные атрибуты ключ-значение.

Для литералов поддерживаются следующие атрибуты:

Для изображений поддерживаются следующие атрибуты (эквивалентно директиве image ):

  • ширина / w определяет ширину изображения (в % , px , em , см и т. д.)

  • height / h определяет высоту изображения (в px , em , см и т.д.)

  • align / a определяет масштаб изображения ( слева , по центру или справа )

HTML-изображения

MyST предоставляет несколько различных вариантов синтаксиса для включения изображений в вашу документацию, как описано ниже.

Первый — это стандартный синтаксис Markdown:

 ![рыбный](img/fun-fish.png)
 

Это правильно скопирует изображение в папку сборки и отобразит его во всех выходных форматах (HTML, TeX и т. д.). Однако он ограничен в конфигурации, которую можно применить, например, в настройке ширины.

Как обсуждалось выше, MyST позволяет использовать директивы, такие как изображение и рисунок (см. документацию sphinx):

 ```{изображение} img/fun-fish. png
:alt: рыбный
:класс: бг-первичный
: ширина: 200 пикселей
:выравнивание: по центру
```
 

Теперь можно установить дополнительные параметры, однако, в отличие от синтаксиса Markdown, этот синтаксис не будет отображать изображение в обычных средствах просмотра Markdown (например, при просмотре файлов на GitHub).

Последний вариант — прямое использование HTML, который также анализируется MyST. Обычно это плохой вариант, потому что HTML обрабатывается как необработанный текст во время процесса сборки, поэтому sphinx не распознает, что файл изображения должен быть скопирован, и не будет выводить HTML в выходных форматах, отличных от HTML.

Парсинг HTML вам в помощь!

Путем добавления "html_image" к myst_enable_extensions (в файле конфигурации sphinx conf.py ), MySt-Parser попытается преобразовать любые изолированные теги img (т. е. не завернутые в какой-либо другой HTML) во внутреннее представление, используемое в sphinx.

 fishy
fishy
 

Допустимые атрибуты эквивалентны image директива: src, alt, class, width, height и name. Любые другие атрибуты будут удалены.

HTML-изображение также можно использовать в качестве встроенного!

Я встроенное изображение:

Цифры уценки

Путем добавления "colon_fence" в myst_enable_extensions (в файле конфигурации sphinx conf.py ), мы можем комбинировать два вышеуказанных расширенных синтаксиса, для создания полностью совместимой с Markdown версии директивы фигура с именем цифра-md .

Изменено в версии 0.13.0: myst_figure_enable с директивой figure устарела и заменена на myst_enable_extensions = ["colon_fence"] и figure-md .

Блок рисунка должен содержать только два компонента; изображение в синтаксисе Markdown или HTML и один абзац для заголовка.

Заголовок является необязательным и используется в качестве эталона рисунка:

 :::{figure-md} рис-цель
:класс: мой класс
fishy
Это подпись в **Markdown**
:::
 

Это подпись на Markdown

Как мы видим здесь, на установленную нами цель можно сослаться:

 [Иди к рыбе!](фиг-мишень)
 

Иди к рыбе!

Предостережения HTML

Путем добавления "html_admonition" в myst_enable_extensions (в sphinx conf.py Файл конфигурации), вы можете включить синтаксический анализ

блоков HTML. Эти блоки будут внутренне преобразованы в директивы предупреждений Sphinx, поэтому будут корректно работать для всех выходных форматов. Это полезно, когда вы заботитесь о просмотре «исходного» Markdown, например, в Jupyter Notebooks.

Если первым элементом в div является

или

, то он будет установлен как заголовок предупреждения. Весь внутренний текст (и заголовок) будет проанализирован как MyST-Markdown, а все классы и необязательное имя будут переданы предупреждению:

 

Это **название**

Это *контент*

Это заголовок

Это контент

Во время рендеринга Sphinx оба атрибута class и name будут использоваться Sphinx, но любые другие атрибуты, такие как стиль , будут отброшены.

Предупреждение

В блоке не может быть пустых строк, иначе они будут считаны как два отдельных блока. Если вы хотите использовать несколько абзацев, их можно заключить в

:

 <дел>

Абзац 1

Абзац 2

Примечание

Пункт 1

Пункт 2

Вы также можете вкладывать предупреждения HTML:

 <дел>

Некоторый **контент**

<дел>
*название*

Абзац 1

Абзац 2

Примечание

Некоторые материалы

A Название

Пункт 1

Пункт 2

Прямая математика LaTeX

Путем добавления "amsmath" к myst_enable_extensions (в файле конфигурации sphinx conf. py ), вы можете включить прямой анализ уравнений amsmath LaTeX. Эти математические среды верхнего уровня затем будут проанализированы напрямую:

уравнение, многострочный, сбор, выравнивание, выравнивание, выравнивание, матрица, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, eqnarray.

Как и ожидалось, среды, оканчивающиеся на *, не будут нумероваться, например:

 \начать{собирать*}
а_1=b_1+c_1\\
a_2=b_2+c_2-d_2+e_2
\end{собрать*}
\начать{выравнивать}
а_{11}& =b_{11}&
  а_{12}& =b_{12}\\
а_{21}& =b_{21}&
  а_{22}& =b_{22}+c_{22}
\end{выравнивание}
 

\[\начать{собирать*} а_1=b_1+c_1\\ a_2=b_2+c_2-d_2+e_2 \конец{собрать*}\]

(2)\[\begin{выравнивание} а_{11}& =b_{11}& а_{12}& =b_{12}\\ а_{21}& =b_{21}& а_{22}& =b_{22}+c_{22} \конец{выравнивание}\]

Примечание

\метки внутри среды в настоящее время не идентифицированы, поэтому на них нельзя ссылаться. Мы надеемся реализовать это в будущем обновлении (см.