Новый формат URL темы

Существует ли способ предсказать URL, который будет сгенерирован при создании новой темы, если известно название потока?

Причина моего вопроса: у меня настроен мастер, который создает новую тему после завершения. На основе ввода пользователя в полях название потока всегда следует определенному формату.

Вот в чем дело. Вместо использования DiscoTOC (у нас есть причины) первое сообщение в теме содержит много информации, а также оглавление темы. Тема ВСЕГДА будет состоять из 8 ответов, и каждый из них будет использовать шаблонный ответ для создания «названия» каждого ответа (1–7). Мастер генерирует заголовок с пустой гиперссылкой на каждый ответ, например:


[1. Повестка дня](/2)
[2. Файлы встречи](/3)
[3. Голосование во время встречи](/4)
[4. Протокол встречи - [Черновик] Предварительный вариант для обратной связи](/5)
[5. Протокол встречи - [Финальная версия] Рассмотрение для распространения](/6)
[6. Протокол встречи - [Копия для распространения] Голосование за утверждение протокола](/7)
[7. Зарезервировано](/8)

Суть вопроса в следующем: после того как мастер создает тему, он оставляет пользователю этот список в качестве оглавления (в этой категории он всегда одинаковый каждый месяц). Пользователю необходимо скопировать URL темы, а затем вставить его перед /Reply#, потому что способ генерации URL темы в Discourse включает номер потока (динамический) в самом конце URL. С помощью мастера я могу сгенерировать синтаксис всего URL, за исключением ID темы.

Существует ли способ сгенерировать URL до создания темы (когда ID темы еще нет), который Discourse проигнорирует из-за отсутствия ID темы, но при этом будет корректно ссылаться на тему? Это было бы чрезвычайно полезно в данном случае, а также, возможно, в некоторых других сценариях использования мастеров для автоматической генерации ссылок внутри создаваемой новой темы.

Почему мастер не считывает ответ от вызова создания темы, который содержит URL вновь созданной темы, и не возвращает его вашему пользователю?

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

Может быть, стоит настроить мастера так, чтобы он сначала создавал тему, чтобы получить её ID, а затем редактировал её с нужной информацией?

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

Проблема в том, что человек, отвечающий за это, назначается не по профессиональным качествам, а в результате выборов среди членов организации. Это конкретная выборная должность, и именно на неё возложена эта задача. В настоящее время всё сводится к тому, что каждый месяц в папку Dropbox просто кладут Word-документ. Переход на Discourse для некоторых наших задач, связанных с библиотечным стилем и ведением публичных записей, требует определённого периода обучения.

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

Тогда, может быть, попробовать через API? Я не до конца понимаю проблему, но кажется, у вас возникла дилемма «курица или яйцо». Обычно можно использовать только слаг без ID темы, например https://meta.discourse.org/t/new-topic-url-format, так что, возможно, это сработает.

Точно в цель, Джей.. ты попал в точку

Я думаю, дело сводится к тому, что мастер уже отвечает за создание заголовка темы, поэтому URL можно полностью предсказать, за исключением ID темы. Так есть ли способ, чтобы Discourse направлял пользователя к теме, если в URL отсутствует ID темы, или существует ли какое-либо правило через пользовательский плагин, позволяющее Discourse игнорировать ID темы, при условии, что остальная часть URL совпадает, за исключением ID темы?

Я думаю, что если слаг уникален и не начинается с цифры, он должен работать без topic_id.

Это работает, но невозможно перейти к конкретному ответу с помощью последнего /reply#, так как структура выглядит как домен/заголовок/ID_поста/номер_ответа. Пытаюсь найти способ перейти к ответу без указания ID_поста или используя какой-то универсальный заполнитель в этом поле.