diff --git a/src/markdown/MdParser.cpp b/src/markdown/MdParser.cpp index a2dba20..92060de 100644 --- a/src/markdown/MdParser.cpp +++ b/src/markdown/MdParser.cpp @@ -478,46 +478,35 @@ private: const char *info = cmark_node_get_fence_info(n); const QString lang = normalizeLang(QString::fromUtf8(info ? info : "")); const QString code = QString::fromUtf8(cmark_node_get_literal(n)); - // Telegram-стиль как на скрине: тёмно-синий пузырь (#2e4d6a) с кодом, время и галочки внизу справа // Сохраняем оригинал для копирования QString codeId; if (m_impl) { codeId = QStringLiteral("code_%1").arg(m_impl->codeCounter++); m_impl->codeBlocks.insert(codeId, code); } - // Форсируем тёмную тему подсветки для контраста на синем фоне Telegram-пузыря + // Подсветка — тёмная тема для контраста на синем фоне (как в Telegram) CodeHighlighter hl(m_repo); const QString highlighted = hl.highlight(code, lang, true); - // Переопределяем lang после highlight (highlight уже сделал) - const QString langDisplay = lang.isEmpty() ? "text" : esc(lang); const QString cls = lang.isEmpty() ? QString() : QStringLiteral(" class=\"language-%1\"").arg(esc(lang)); - // Время как в Telegram — текущее время рендера (можно заменить на lastModified) - const QString timeStr = QTime::currentTime().toString("hh:mm"); - // Telegram bubble: #3a5068 или #2e4d6a, скругления 12, тень, max-width 85% - const QString bubbleBg = "#3b5a7a"; // тёмно-синий как на скрине #2e4d6a → #3b5a7a чуть светлее - const QString codeColor = "#ffffff"; - // Кнопка копирования — в правом верхнем углу пузыря, как в ТГ при наведении - // Делаем её заметной: полупрозрачная, скруглённая, с hover/active через CSS + // Telegram-пузырь как на скрине: #2e4d6a / #3b5a7a, скругления 12-16, без времени + const QString bubbleBg = "#2e4d6a"; + // Кнопка копирования — строго справа вверху, hover/active через CSS const QString copyLink = codeId.isEmpty() ? QString() - : QStringLiteral("📋").arg(codeId); + : QStringLiteral("📋 Копировать").arg(codeId); - // Пузырь Telegram: используем таблицу для совместимости с QTextDocument (не поддерживает position:absolute) - // Верхняя строка — язык слева и кнопка справа, средняя — код, нижняя — время и галочки справа + // Чистый пузырь без времени, только код + кнопка return QStringLiteral( - "
| %2 | " - "%3 | " - "
"
- "%5"
+ ""
+ ""
+ "%3"
"