DiscoTOC - automatic table of contents

Здравствуйте…

У меня возникла проблема с использованием DiscoTOC, возможно, у кого-то есть идея.

Представьте, что DiscoToc работает идеально для какой-то темы, например:

  • ссылка a — добавляет «link-a-1» в конец
  • ссылка b — добавляет «link-b-2» в конец

Допустим, я поделился ссылкой a с кем-то: («…link-a-1»).

Теперь представьте, что я изменил порядок тем (поместил «ссылку b» первой).
При использовании DiscoToc это выглядит так:

  • ссылка b — добавляет «link-b-1» в конец
  • ссылка a — добавляет «link-a-2» в конец

И с этого момента ссылка, которой я поделился, больше не работает.
Я поделился («…link-a-1»), но теперь правильная ссылка — («…link-a-2»).

Буду очень признателен, если у кого-то есть какие-либо идеи.

2 лайка

ОШИБКА!

Автоматически генерируемые тире (короткое и длинное) из групп в 2 или 3 дефиса больше не работают при активном DiscoTOC. Вместо — или — они возвращаются к отображению как -- или ---.

2 лайка

Надеемся, что появится возможность в один клик открывать функцию просмотра папок для всех постов!

1 лайк

2024-11-02T22:00:00Z
Отчёт об ошибке: при щелчке на каталог отображаемое положение содержимого не соответствует расположению каталога.

По сути, текущая страница «https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143» также расположена неверно.

Можете ли вы уточнить и привести пример? Для меня TOC загружается и работает как ожидалось на всех моих экземплярах форума Discourse.

Страница, на которую вы ссылались, загружается корректно, и TOC работает.

2 лайка

Спасибо за ваш ответ. Сейчас я не нашёл проблему, но в тот момент она действительно была.

Сообщение было разделено на новую тему: Добавить кнопку в компонент темы TOC

Режим чтения конфликтует с Disco TOC

Кажется, мы не можем использовать одновременно Таблицу содержания (от DiscoTOC, обязательную для больших документов) и Режим чтения (также обязательный для больших документов).

Список TOC перекрывает и скрывает иконку режима чтения (а также иконку меню действий с сообщением).

4 лайка

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

Это решение, которое сэкономит ручные усилия.

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

Однако, полагаю, это лучше реализовать в функции кнопки ССЫЛКА: когда вы нажимаете её, вы можете ввести поиск темы, которую ищете, но сейчас у вас появилась бы новая опция верхнего уровня, например:

«Вывести ссылки: все заголовки тем из категории X» кнопка :slight_smile:

Я предполагаю, что сортировка по дате темы (новая/старая) с переключателем была бы полезной.

Это, вероятно, запрос на новую функцию, но я решил спросить здесь, так как это более уместно, поскольку я рассматривал вариант использования с DiscoTOC, чтобы делать это вручную.

Возможно, ИИ это делает, но мы не используем функции ИИ. Возможно, это действительно больше соответствует расширению функции кнопки ССЫЛКА, чем DiscoTOC, и область применения может быть шире, чем даже я представляю.

Предполагаю, это довольно очевидно, но этот компонент не работает с компонентом стилизации записей блога, так как тот скрывает боковую панель.

Предлагаю добавить опцию «встроенное оглавление», как это было раньше в плагине, если есть интерес к их совместной работе.

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

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

1 лайк

Я хотел бы поделиться некоторыми замечаниями по поводу плагина DiscoTOC. В большинстве тем Discourse боковая панель оглавления отображается с подходящей шириной, что обеспечивает корректную обработку длинных заголовков. Однако при использовании темы Horizon ширина боковой панели заметно меньше, из-за чего длинные заголовки переносятся на несколько строк. Это снижает читаемость и влияет на общую визуальную согласованность интерфейса.

Не могли бы вы, пожалуйста, рассмотреть возможность изучения этой проблемы именно для темы Horizon и изучить варианты调整的 ширины боковой панели для более удобного отображения длинных заголовков? Я считаю, что решение этой проблемы улучшит пользовательский опыт для многих пользователей темы Horizon.

Спасибо за вашу работу и за то, что рассмотрели это предложение.

2 лайка

Тема: Сбой компонента discoTOC в локали персидского языка

Окружение: Форум с локалью по умолчанию, установленной на «персидский».

Затронутый компонент: discoTOC

Описание: Когда локаль по умолчанию форума настроена на «персидский», компонент discoTOC работает некорректно.

Конкретные симптомы:

  1. Элементы интерфейса для кнопок «Хронология» и «Содержание» не отображаются.
  2. После того как пользователь отправляет ответ в тему, представление оглавления автоматически скрывается, отображается представление хронологии, и не предоставляется никакой интерактивный элемент для восстановления представления оглавления.

Касаясь вышеуказанных инструкций по использованию компонента discoTOC, у меня есть несколько технических вопросов для уточнения:

  1. В шаге 1 говорится о написании темы с заголовками, а в шаге 2 — об использовании конкретной кнопки. Если я выполню шаг 1, структурировав тему с помощью маркдаун-заголовков (например, ##, ###), но пропущу нажатие кнопки «toc» в меню шестерёнки (шаг 2), будет ли компонент discoTOC всё ещё автоматически генерировать или отображать оглавление исключительно на основе заголовков? По сути, является ли нажатие кнопки обязательным для корректной работы компонента или же это просто триггер для вставки конкретного элемента?
  2. В чём точное назначение или функциональность кнопки «toc» в меню шестерёнки? Как эта кнопка должна использоваться в рабочем процессе редактора тем?
  3. Отдельно я столкнулся с фрагментом <div data-theme-toc="true"> </div>. Не могли бы вы объяснить его точную роль в сочетании с discoTOC? Что контролирует этот элемент div, и как его следует внедрить или настроить в содержимом темы, чтобы повлиять на генерацию или отображение оглавления?

Спасибо за подробное объяснение.

Не уверен, достаточно ли это технически, но компоненту нужен как <div data-theme-toc="true"></div>, так и заголовки в посте, чтобы корректно сгенерировать оглавление (TOC).

Если <div data-theme-toc="true"></div> не вставлен, пост останется просто постом с заголовками. А если добавить этот тег без заголовков, TOC не сгенерируется (в настройках компонента также есть параметр «TOC min heading», который по умолчанию равен 3. Значит, для отображения TOC в посте должно быть как минимум 3 заголовка).

Кнопка «Вставить оглавление» автоматически добавляет <div data-theme-toc="true"></div> в пост, но вы можете скопировать этот код или ввести его вручную — результат будет тем же.

Надеюсь, это поможет. :crossed_fingers:


Дополнительно: Мне только что мягко напомнили, что если вы используете настройки компонента Auto TOC categories и Auto TOC tags, то вставлять <div data-theme-toc="true"></div> не нужно. :+1:

7 лайков

Кроме того… теперь для этого есть настройка (Включить TOC для ответов), так что вы можете добавить TOC и в ответ. :partying_face:

4 лайка

Интересно, можно ли сделать оглавление для ответов по умолчанию, если в ответе есть разные уровни структуры…
или есть какие-то опасения по этому поводу?

После того как я какое-то время использовал функцию «Ответить с оглавлением», я считаю, что это имеет большой смысл.

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

3 лайка

У меня возникло несколько проблем:

  1. Если я пытаюсь добавить оглавление в тему, которая изначально была создана без оглавления, это не работает. Это нормально? Кажется, что это работает только если создать тему с оглавлением. Редактирование темы не помогает.
  2. В теме, где я успешно создал оглавление, при клике на заголовки в оглавлении страница не прокручивается к соответствующему заголовку.
  3. Похоже, что оглавление создаётся только для заголовков уровня ##. У меня есть заголовки ###, но они не отображаются.

Я недавно делал это здесь, на Meta, в своей теме о компоненте темы, и всё сработало

1 лайк

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

Хорошо знать, что теперь оно отображается.

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

Что касается остальных проблем, они тоже теперь решены. Не понимаю… вот так дела…

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

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

Я уже рад, что всё работает как ожидалось, так что это лишь деталь, которая станет вишенкой на торте, если это возможно реализовать.