Как получить обратно исходные «сырые» данные, создавшие пост?

Если вы используете Chrome для рабочего стола, вы можете использовать Ctrl+Shift+V, чтобы вставить текст без форматирования, вместо использования блокнота.

Также на странице настроек административного сайта вы можете отключить эту расширенную функцию вставки, сняв галочку с опции «enable rich text paste».

Спасибо, но моя цель — сохранить исходное форматирование из Microsoft Word (в необработанных данных), а не сводить всё к простому тексту.

В настоящее время Discourse удаляет множество элементов форматирования — например, размер и тип шрифта, при этом сохраняя другие (жирный и курсив, кажется, остаются). Для сравнения: в редакторе Gmail сохраняется всё форматирование.

Чтобы попытаться сохранить больше форматирования, я полагаю, альтернативой было бы загрузить документ Word (не вставлять текст в редактор, а загрузить сам файл). Проблема, как мне кажется, в том, что Discourse не отображает содержимое загруженного файла внутри поста (он просто показывает ссылку на загрузку).

Тогда вставьте необработанный HTML.

Здесь задействованы разные цели. Цель Gmail — сохранить всё форматирование, тогда как цель форума — оставить значимое подмножество форматирования, предотвращая злоупотребления (огромный текст, мигающий текст, ЧРЕЗМЕРНО КРУПНЫЕ ШРИФТЫ, раздражающие цвета и т. д.).

В качестве простого примера вот HTML-код простого текста, сгенерированный в Office и находящийся в буфере обмена как text/html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
	<title></title>
	<meta name="generator" content="LibreOffice 7.1.2.2 (Linux)"/>
	<style type="text/css">
		@page { size: 21.59cm 27.94cm; margin: 2cm }
		p { margin-bottom: 0.25cm; line-height: 115%; background: transparent }
	</style>
</head>
<body lang="en-CA" link="#000080" vlink="#800000" dir="ltr"><p style="margin-bottom: 0cm; line-height: 100%">
<b>Hello there</b><span style="font-weight: normal"> sunshine </span><i><span style="font-weight: normal">eh</span></i></p>
</body>
</html>

Это выглядит так:

@page { size: 21.59cm 27.94cm; margin: 2cm } p { margin-bottom: 0.25cm; line-height: 115%; background: transparent }

Hello there sunshine eh

Но при интерпретации через to-markdown.js вы получаете:

**Hello there** sunshine *eh*

Hello there sunshine eh

Вы не можете этого сделать, если не добавите его самостоятельно, как я сделал в этом посте. Если вам это действительно необходимо, спрячьте его в комментарии. Если вы хотите позже самостоятельно преобразовать его в Markdown, используйте что-то вроде pandoc.

Я поддерживаю переход на Markdown в сообщении, которое отображается другим, ради некоторой согласованности. Меня интересует именно исходный ввод.

Как получить исходный HTML документа Word, чтобы его можно было вставить?

Сохраните его как HTML из Word или скопируйте в буфер обмена и извлеките text/html явно из буфера обмена.

Если ваша единственная цель — иметь возможность обращаться к исходному вводу в будущем, этот компонент может вам подойти.

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

@jomaxro, какой синтаксис для необработанной разметки комментария?

Что именно вы спрашиваете? Вы спрашиваете, что такое Markdown? Например, https://commonmark.org/. Или вы спрашиваете, как получить исходный Markdown для поста? Например, /raw/123

Для отдельного сообщения вы можете добавить его ID в URL. Например, когда я делюсь вашим сообщением, ссылка выглядит так: https://meta.discourse.org/t/get-back-the-real-raw-data-that-created-a-post/189183/27, а https://meta.discourse.org/raw/189183/27 — это сырая версия вашего ответа.

@pfaffman, второй вариант. Спасибо, @Moin. Теперь это кажется очевидным… Извините.

@jomaxro, /raw/ не работает ни в одном из постов на discuss.kde.org/c/community/blogs/24. Например, на странице view-source:discuss.kde.org/raw/43656 я наблюдаю следующее:

<pre>Konqi | 2026-01-23 22:43:37 UTC | #1

&lt;p&gt;Утечка памяти — это невежливо. Это грязно, может указывать на логические ошибки, и благодаря мошенникам с ИИ оперативная память стала дорогой.
&lt;/p&gt;
&lt;hr&gt;
&lt;small&gt;Это сопроводительная тема обсуждения для оригинальной записи по адресу &lt;a href="https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed"&gt;https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed&lt;/a&gt;&lt;/small&gt;

-------------------------

</pre>

В то же время, когда details интерактивно разворачивается на discuss.kde.org/t/43656, я могу развернуть его до:

Можно ли это целесообразно реализовать на стороне основного сервера Discourse? Я наблюдала схожее поведение и на других, слегка кастомизированных экземплярах Discourse, поэтому и задаю этот вопрос.

Какую проблему вы пытаетесь решить?

Эти темы особенные, потому что они являются ссылками на большие посты.

Это исходный текст оригинального сообщения.

Текст исходного сообщения (OP) в этой теме выглядит так:

○ → curl https://discuss.kde.org/posts/132565/raw
<p>Утечка памяти — это невежливо. Это создаёт беспорядок, может указывать на логические ошибки, а благодаря аферистам, использующим ИИ, оперативная память стала дорогой.
</p>
<hr>
<small>Это тема для обсуждения, связанная с оригинальной записью по адресу <a href="https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed">https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed</a></small>

Это в точности то, что отображается в обработанной версии.

Речь не идёт о раскрытии блока details. При нажатии на Показать полный пост загружается что-то другое — это полное раскрытие встроенного контента, которое не берётся из исходного текста поста, а поступает из дополнительных метаданных поста.

Вы можете увидеть сетевой запрос в браузере при нажатии на эту кнопку; вот его эквивалент:

○ → curl -s -H 'accept: application/json' 'https://discuss.kde.org/posts/132565/expand-embed' | jq -r .cooked
<div><div>
            <p>Утечка памяти — это невежливо. Это создаёт беспорядок, может указывать на логические ошибки, а благодаря аферистам, использующим ИИ, оперативная память стала дорогой.</p>
…
…
…
<p>LSAN теперь включён для некоторых сборок CI Frameworks, но в идеале он должен быть включён для всех проектов KDE. И, разумеется, любые обнаруженные утечки должны быть исправлены.</p>
<p>Удачной борьбы с утечками!</p>
        </div></div>
<hr>
<small>Это тема для обсуждения, связанная с оригинальной записью по адресу <a href='https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed'>https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/?utm_source=atom_feed</a></small>

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

@supermathie, действительно. Большое спасибо! Очевидно, что API Discourse гораздо обширнее, чем я предполагал.