DEV Community

Cover image for Как сделать TG Instant View из страницы Notion
artpani
artpani

Posted on

2 2 2 2 2

Как сделать TG Instant View из страницы Notion

Как верстать в Notion

Чтобы все отображалось и работало, верстать страницу в Notion нужно придерживаясь следующих правил:

  • Заголовок страницы станет заголовком Instant View(далее - IV).
  • Все изображения должны быть вставлены через /embed, обычная вставка прикрутит картинке URL amazonaws таким образом, что IV Bot телеграмма не сможет зафетчить ее.
  • Если какие-то абзацы нужно будет отобразить как Blockquote, в Notion нужно сделать этот блок типом Quote.

Как Blockquote выглядит в IV

Как Blockquote выглядит в IV


Как этот же блок верстался в Notion

Как этот же блок верстался в Notion

Вообще делать большие статьи в IV вряд ли получится и навешивать много сложных блоков в статью тоже не стоит, чем проще - тем лучше.

Как настроить шаблон IV

Идем в My Templates и вставляем в поле ссылку на статью и жмем Enter

Чтобы получить ссылку на страницу в Notion, нужно выбрать Share в правом верхнем углу экрана и сменить тумблер Share to web

В появившимся окне по центру нужно прописать правила, по которым IV Bot будет парсить структуру страницы. Минимально рабочий шаблон такой:

~version: "2.1"
body: //body
title: "@head//title"
@replace_tag(<figure>): $body//p[.//img]
# <aside> ://p[contains(text(), '<aside>')]
author: "eclipse_it"
Enter fullscreen mode Exit fullscreen mode

~version” - без указания версии рендер крашится

body: //body” - тут указывается самый узкий в плане вложенности блок с полезным контентом. При создании шаблона IV для обычного блога достаточно указать какой-нибудь article, если имеется такой тег:

body: //article
Enter fullscreen mode Exit fullscreen mode

или div с id=”content”:

body: //div[@id="cover"]
Enter fullscreen mode Exit fullscreen mode

или div с классом “content-page”, например:

body: //div[has-class("content-page")]
Enter fullscreen mode Exit fullscreen mode

“title: @head//title” - Заголовок будет помещен в теге <title>, ловим его оттуда

@replace_tag(<figure>): $body//p[.//img]” - не спрашивайте Да, Notion помещает тег <img> внутрь <p>, парсер на этом ломается

author: "eclipse_it"" - название канала или имя автора

“# <aside> ://p[contains(text(), '<aside>')]” - тут можно строку удалить, я пока не особо понял, как решить эту проблему. Дело в том, что блок Callout из Notion

Callout из Notion

В HTML-коде выглядит вот так

В HTML-коде выглядит вот так

Поэтому необходимо как-то преобразовать данный <p>

Как прикрутить IV к посту

После того, как макет настроен, надо нажать Track Changes в правом верхнем углу, после чего Mark as checked.

Чтобы получить линк —> View in Telegram

Полученную ссылку нужно вставить в пост, но чтобы не засорять ссылкой текст, можно воспользоваться невидимым символом “ㅤ” (имеет код “U+3164”, “&#12644”), на который вешаем ссылку.

Пустой символ

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs