Во-первых, вам нужно импортировать ParseMode
из telegram
следующим образом:
from telegram import ParseMode
Затем вам нужно указать parse_mode=ParseMode.HTML
.Вот рабочий пример:
def jordan(bot, update):
chat_id = update.message.chat.id
with open('JordanPeterson.jpg', 'rb') as jordan_picture:
caption = "<a href='https://twitter.com/jordanbpeterson'>Jordan B. Peterson</a>"
bot.send_photo(
chat_id,
photo=jordan_picture,
caption=caption,
parse_mode=ParseMode.HTML
)
И мы видим, что это работает:

Обновление: на самом деле, оба parse_mode='html'
(как подсказывают @ slackmart ) и parse_mode='HTML'
, что вы использовали себя, работайте на меня!
Другое обновление (согласно вашему комментарию ): Вы можно использовать несколько тегов.Вот пример одного с hyperlink
, bold
и italic
:

Еще одно обновление: Относительно вашего комментарий :
... есть ли у меня ограничения на теги HTML?Я не могу использовать что-то вроде <img>
или <br>
, чтобы нарисовать линию
Честно говоря,

Вот что я сделал!
Теперь вы пытаетесь отформатировать заголовок изображения, используя HTML
, то есть вы форматируете text
, поэтому, очевидно, вы можетене использовать "что-то вроде <img>
."Это должен быть тег для форматирования текста (плюс <a>
).И даже не все из них!Я считаю, что вы можете использовать только эти: <a>
, <b>
, <strong>
, <i>
и <em>
.
Если вы попытаетесь использовать тег форматирования текста, такой как <del>
, онвыдаст вам эту ошибку:
Невозможно проанализировать сущности: не поддерживается начальный тег "del" со смещением байтов 148
Какой позор! Я бы хотел сделать что-то подобное в подписях к изображениям. или что-то подобное!