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

import telebot
from telebot import types
token = ''
bot = telebot.TeleBot(token)
@bot.message_handler(commands = ['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
k1 = types.InlineKeyboardButton(text = 'Привет', callback_data = 'load_test')
markup.add(k1)
bot.send_message(message.chat.id, '**Привет**!', reply_markup = markup)
bot.polling()
Ответы (1 шт):
Вариант 1 - ЧЕРЕЗ HTML РАЗМЕТКУ
Используйте HTML-разметку для формирования различного форматирования текста, в данном случае вам подойдет тэг <b> </b>, а при отправке сообщения через send_message используйте параметр parse_mode='HTML'. Ваш код будет выглядеть следующим образом:
import telebot
from telebot import types
token = 'ВАШ ТОКЕН'
bot = telebot.TeleBot(token)
@bot.message_handler(commands = ['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
k1 = types.InlineKeyboardButton(text = 'Привет', callback_data = 'load_test')
markup.add(k1)
# формируем сообщение жирным шрифтом через HTML тэг
message_text = "<b>Привет</b>!"
bot.send_message(message.chat.id, message_text, reply_markup = markup, parse_mode='HTML')
bot.polling()
Результат будет выглядеть следующим образом:
Вариант 2 - ЧЕРЕЗ MarkdownV2
По сути передавая в качестве параметра parse_mode='MarkdownV2' в send_message мы можем использовать MarkdowvnV2 разметку, которая обладает своими правилами в оформлении. Мы должны обязательно экранировать восклицательный знак !, так как данный символ является инструкцией для MarkdownV2.
Ваш код:
import telebot
from telebot import types
token = 'ВАШ ТОКЕН'
bot = telebot.TeleBot(token)
@bot.message_handler(commands = ['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
k1 = types.InlineKeyboardButton(text = 'Привет', callback_data = 'load_test')
markup.add(k1)
# экранируем восклицательный знак и формируем через MarkdownV2 как жирный шрифт
message_text = "*Привет\\!*"
bot.send_message(message.chat.id, message_text, reply_markup = markup, parse_mode='MarkdownV2')
bot.polling()
Результат:
P.S. Если кому-то показалось, что шрифт не жирный, сравним в двух методах.
- HTML разметка:
...
message_text = "<b>Привет</b>! и обычный привет"
bot.send_message(message.chat.id, message_text, reply_markup = markup, parse_mode='HTML')
...
Результат:
Как можем видеть, первый Привет в жирном шрифте, другой в обычном, аналогично ниже.
- MarkdownV2 разметка:
...
message_text = "*Привет\\!* и обычный привет"
bot.send_message(message.chat.id, message_text, reply_markup = markup, parse_mode='MarkdownV2')
...
Результат:



