Html теги телеграмм бот

Bot API 5.6

This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc.

Field Type Description
type String Type of the entity. Currently, can be “mention” ( @username ), “hashtag” ( #hashtag ), “cashtag” ( $USD ), “bot_command” ( /start@jobs_bot ), “url” ( https://telegram.org ), “email” ( do-not-reply@telegram.org ), “phone_number” ( +1-212-555-0123 ), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames)

sendMessage

Use this method to send text messages. On success, the sent Message is returned.

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of sent messages from forwarding and saving

Formatting options

The Bot API supports basic formatting for messages. You can use bold, italic, underlined, strikethrough, and spoiler text, as well as inline links and pre-formatted code in your bots’ messages. Telegram clients will render them accordingly. You can use either markdown-style or HTML-style formatting.

Message entities can be nested, providing following restrictions are met:
— If two entities have common characters then one of them is fully contained inside another.
bold, italic, underline, strikethrough, and spoiler entities can contain and can be part of any other entities, except pre and code.
— All other entities can’t contain each other.

Читайте также:  Java binary class name
MarkdownV2 style

To use this mode, pass MarkdownV2 in the parse_mode field. Use the following syntax in your message:

*bold \*text* _italic \*text_ __underline__ ~strikethrough~ ||spoiler|| *bold _italic bold ~italic bold strikethrough ||italic bold strikethrough spoiler||~ __underline italic bold___ bold*
HTML style

To use this mode, pass HTML in the parse_mode field. The following tags are currently supported:

bold, bold italic, italic underline, underline strikethrough, strikethrough, strikethrough italic bold italic bold strikethrough  underline italic bold bold

forwardMessage

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the forwarded message from forwarding and saving

copyMessage

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendPhoto

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendAudio

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendDocument

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendVideo

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendAnimation

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendVoice

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendVideoNote

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving
Читайте также:  Остаток от деления программа питон

sendMediaGroup

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent messages from forwarding and saving

sendLocation

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendVenue

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendContact

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendPoll

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendDice

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding

sendSticker

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendInvoice

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

sendGame

Parameter Type Required Description
protect_content Boolean Optional Protects the contents of the sent message from forwarding and saving

Источник

Styled text with message entities

Telegram supports styled text using message entities.

A client that wants to send styled messages would simply have to integrate a Markdown/HTML parser, and generate an array of message entities by iterating through the parsed tags.

Nested entities are supported.

Entity length

Special care must be taken to consider the length of strings when generating message entities as the number of UTF-16 code units, even if the message itself must be encoded using UTF-8.

Unicode codepoints and encoding

A Unicode code point is a number ranging from 0x0 to 0x10FFFF , usually represented using U+0000 to U+10FFFF syntax.
Unicode defines a codespace of 1,112,064 assignable code points within the U+0000 to U+10FFFF range.
Each of the assignable codepoints, once assigned by the Unicode consortium, maps to a specific character, emoji or control symbol.

The Unicode codespace is further subdivided into 17 planes:

  • Plane 1: U+0000 to U+FFFF : Basic Multilingual Plane (BMP)
  • Planes 2-17: U+00000 to U+10FFFF : Multiple supplementary planes as specified by the Unicode standard

Since storing a 21-bit number for each letter would result in a waste of space, the Unicode consortium defines multiple encodings that allow storing a code point into a smaller code unit:

UTF-8

UTF-8 » is a Unicode encoding that allows storing a 21-bit Unicode code point into code units as small as 8 bits.
UTF-8 is used by the MTProto and Bot API when transmitting and receiving fields of type string.

UTF-16

UTF-16 » is a Unicode encoding that allows storing a 21-bit Unicode code point into one or two 16-bit code units.

UTF-16 is used when computing the length and offsets of entities in the MTProto and bot APIs, by counting the number of UTF-16 code units (not code points).

Computing entity length

  • Code points in the BMP ( U+0000 to U+FFFF ) count as 1, because they are encoded into a single UTF-16 code unit
  • Code points in all other planes count as 2, because they are encoded into two UTF-16 code units (also called surrogate pairs)

A simple, but not very efficient way of computing the entity length is converting the text to UTF-16, and then taking the byte length divided by 2 (=number of UTF-16 code units).

However, since UTF-8 encodes codepoints in non-BMP planes as a 32-bit code unit starting with 0b11110 , a more efficient way to compute the entity length without converting the message to UTF-16 is the following:

  • If the byte marks the beginning of a 32-bit UTF-8 code unit (all bytes starting with 0b11110 ) increment the count by 2, otherwise
  • If the byte marks the beginning of a UTF-8 code unit (all bytes not starting with 0b10 ) increment the count by 1.
length := 0 for byte in text < if (byte & 0xc0) != 0x80 < length += (byte >= 0xf0 ? 2 : 1) > >

Note: the length of an entity must not include the length of trailing newlines or whitespaces, rtrim entities before computing their length: however, the next offset must include the length of newlines or whitespaces that precede it.

Allowed entities

For example the following HTML/Markdown aliases for message entities can be used:

  • messageEntityBold =>bold , bold , **bold**
  • messageEntityItalic =>italic , italic *italic*
  • messageEntityCode =>code , `code`
  • messageEntityStrike =>strike , strike , strike , ~~strike~~
  • messageEntityUnderline =>underline
  • messageEntityPre =>
    code

    ,

The following entities can also be used to mention users:

A number of other entities are also available, see the type page for the full list ».

Источник

Стилизация текста в telegram. Разметка markdown и html

Небольшой обзор того, как работает разметка в telegram, как в нем стилизовать текст при помощи markdown и html.

Сразу оговорюсь: в интернете множество статей про то, как делать отложенные посты, добавлять к ним кнопки и оформлять их с помощью @controllerbot и аналогов. Эта статья совсем о другом.

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

стилизация с помощью контекстного меню

В конце статьи также приведен список горячих клавиш.

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

Markdown довольно обширный язык и в телеграм представлена лишь малая часть его возможностей. На самом деле, с его помощью вы можете писать целые статьи. Ознакомиться с синтаксисом можно по ссылке

Markdown в телеграм

Итак, заходим на официальный сайт телеграм, идем в стилизацию текста и видим поддерживаемую разметку:

стилизация с официального сайта telegram.org

Однако, если просто вставить всю указанную markdown разметку в телеграм, то мы получим следующее:

Не работает курсивное начертание. Вероятно, в telegram давно не обновляли эту страницу и некоторые правила поменялись, а некоторые добавились. В стандартной разметке markdown действительно для курсива используется одна «звездочка», однако, в телеграм работает двойное подчеркивание. А с помощью || можно сделать скрытый текст, который появился относительно недавно. И вот мы получаем полный список полноценно работающих «команд»:

**сам ты жирный**
__курсив__
`код`
~~перечеркнутый~~
«`блок кода«`
||скрытый текст||

Но что со ссылками? Ссылки в разметке markdown выглядят вот так:

Однако, по умолчанию они не работают (только в telegram x для android)

На официальном сайте указан инлайн-бот @bold — с помощью него можно вдохнуть жизнь в ссылку, однако, при этом, бот оставит свой след на нашем сообщении:

пример использования @bold

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

В этом боте работает свой вариант markdown:

Все-таки для ссылки я бы использовал контекстное меню или горячие клавиши — это гораздо удобнее.

Как там HTML?

В целом, html-разметка тоже работает, но уже с другим инлайн-ботом. Нужно всего лишь написать:

И далее нужный нам текст с поддерживаемыми html-тегами. Вот их полный список:

Этот бот работает с markdown, точно также как @bold, нужно лишь добавить «md»:

Горячие клавиши

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

Для windows:
ctrl + B = Жирный
ctrl + I = Курсив
ctrl + U = Подчеркнутый
ctrl + shift + X = Перечеркнутый
ctrl + shift + M = Моноширинный (код)
ctrl + shift + N = Очистить стили

Для macos:
com + U = Ссылка
com + B = Жирный
com + I = Курсив
com + shift + U = Подчеркнутый
com + shift + X = Перечеркнутый
com + shift + K = Моноширинный (код)
com + shift + P = Скрытый текст

Источник

Оцените статью