Я только начинаю экспериментировать с этим (без агентного кодинга).
У меня сложилось впечатление, что не потребуется много усилий, чтобы превратить это в компонент темы, который контролирует только главную страницу сайта — например, уже использующего тему Horizon. Это было бы глупо?
Кроме того, я заметил пару проблем:
Блок «Предстоящие события» не сортирует темы
Он просто выгружает темы событий по дате создания; это совершенно бесполезно!!
На ask.discourse.com предлагается такой тип изменения для исправления этой ситуации, и я могу подтвердить, что это работает (простите за отсутствие критического человеческого мышления):
@bind
async fetchEvents() {
const count = this.args.count || 5;
const results = await ajax("discourse-post-event/events");
if (!results.events?.length) {
return null;
}
const now = new Date();
// Разделяем прошлые и будущие события, затем сортируем по возрастанию даты начала
const upcoming = results.events
.filter((e) => new Date(e.starts_at) >= now)
.sort((a, b) => new Date(a.starts_at) - new Date(b.starts_at));
return upcoming.slice(0, count);
}
Блок «Баннеры категорий» не учитывает настройки
Он отображается во всех категориях (а не только в указанных), и, похоже, не обновляется при навигации (только при перезагрузке страницы).