Есть ли способ распечатать один пост в теме?

Есть ли способ распечатать отдельный пост в теме, а не всю тему целиком?

Не совсем, вы можете использовать что-то вроде https://meta.discourse.org/raw/79562/78, чтобы получить исходный Markdown, но это будет сырой Markdown, а не отформатированный текст.

Сегодня во время сессии вопросов и ответов я поднял вопрос об улучшении поддержки печати. Вот старая тема на META, где я обсуждал аналогичные проблемы и предлагал её возродить. (Кажется, была ещё одна такая тема.)

Было бы очень полезно иметь возможность выбирать, какие именно посты включать при печати темы.

Также были бы полезны опции форматирования для печатной версии, поскольку хорошее оформление для отображения на экране не всегда совпадает с оптимальным форматированием для печати.

Для печати предусмотрен отдельный CSS.

Я не уверен, как реализовать выборочную печать публикаций.

Я пробовал экспериментировать с этим. Это вроде работает, но есть некоторые недостатки, которые мне нужно будет устранить.

У вас будет несколько способов распечатать пост в формате PDF:

  • Использование сторонней библиотеки, преобразующей HTML в PDF (обычно читает HTML-узел, пытается клонировать CSS и генерирует PDF с нуля (или преобразует в canvas, а затем в PDF) — обычно это тяжело и подвержено ограничениям.

  • Открытие окна и клонирование HTML/CSS. Затем вы вызываете функцию печати ОС для этого окна. Правильное извлечение/настройка CSS кажется ненадёжным/медленным, не учитывает стили для печати, а окно может быть заблокировано.

  • Использование встроенной функции ОС «Сохранить как PDF»: — Основная проблема — сообщить ОС, что именно нужно печатать.

(Я не исследовал все варианты)

Я попробовал последний вариант и нашёл трюк с CSS (не мой), который по сути изолирует пост (то есть скрывает всё остальное), а затем программно вызывает функцию печати ОС.

Демо:

Несколько проблем на данный момент:

  • Вы теряете позицию предыдущего поста, когда стили становятся видимыми.
  • Иногда элементы не успевают скрыться до открытия окна печати.

Это немного хитро, но работает, и опора на возможности ОС — это большой плюс, на мой взгляд. :smile:

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

Это правда! Должна быть возможность сделать этот код вызываемым для функции «Вывести всё». Если у вас есть бюджет и вы работаете в режиме самостоятельного хостинга (или на корпоративной версии), это должно быть возможно.

РЕДАКТИРОВАНИЕ: Стоп. Стоп. Стоп. Насколько я помню, Control-P показывает весь топик, но я только что попробовал, и он просто

Я думал, что это проблема только на Meta, но я проверил несколько других форумов, и там тоже не отображаются все сообщения. Это похоже на ошибку, но, очевидно, я не уделял этому внимания уже несколько лет.

И странно то, что если вы НЕ вошли в систему, система, похоже, показывает всю тему. Это всё ещё не то, что я хотел бы видеть, но это может быть улучшением по сравнению с простой печатью из браузера.

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

Я поделился идеей выбора постов для печати или экспорта внутри команды. Пока неясно, будем ли мы работать над этим и когда, но то, что нужно что-то сделать, уже на нашем радаре.

Для этого существует альфа-версия TC:

В наших сообществах по-прежнему возникает необходимость в передаче внутренней информации из обсуждений на другие платформы, например, в чат-группы Signal или Threema. Для этого случая должна быть возможность выбора конкретной публикации (например, протокола встречи, созданного совместно в формате wiki-текста) для печати и экспорта в PDF.

Вы посмотрели на компонент темы, на который я ссылался выше? Он отлично справится с этой задачей.

работает только для сотрудников

Привет, @nathank-! Я поэкспериментировал с GitHub - discourse/clean-export · GitHub. Ты прав, похоже, для этого требуются права TL4 или администратора.

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

Да, тогда его нужно будет переместить из меню администратора поста (ключ) в обычное меню поста.

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

… и разрешение на редактирование вики связано с настройкой edit_wiki_post_allowed_groups

Я мог бы смириться с таким ограничением, если бы оно было технически неизбежным. С точки зрения безопасности «риск» при печати темы такой же, как и при печати всей ветки.