Всем привет!
Я в процессе разработки плагина, который пытается загружать страницы, на которые есть вики-ссылки в виде связанных ссылок.
У меня уже работает базовая реализация, но мне не нравится текущий дизайн, и я хотел бы узнать, не упустил ли я какие-либо API, которые могли бы сделать этот процесс более плавным.
Вот мой текущий подход: discourse-wikilinks/assets/javascripts/initializers/wikilinks-init.js at main · dvargas92495/discourse-wikilinks · GitHub
Кратко:
- использую
api.reopenWidgetдля виджетаpost-links, чтобы переопределить методhtml. - при первом рендеринге виджета запрашиваю заголовок темы, а затем ищу темы, в заголовке которых есть [[title]].
- после получения ответа планирую повторный рендеринг с данными ответа, используя флаг, чтобы избежать бесконечной загрузки при следующем рендеринге.
Этот подход неоптимален, потому что:
- между первоначальным рендерингом и отображением остальных данных возникает задержка.
- флаг, предотвращающий бесконечную загрузку, кажется подверженным ошибкам в будущем.
- мне приходится делать два API-запроса: один для получения заголовка темы (который, вероятно, доступен выше в дереве виджетов), а другой — для ссылок.
- мне приходится копировать и вставлять оригинальный метод
htmlвиджета в код своего плагина, что делает его уязвимым для форков.
Есть ли какие-то идеи, как смягчить эти проблемы? В идеале я хотел бы изменить исходный вызов loadTopicView, чтобы включить вики-ссылки.
Также, предоставляет ли Discourse или кто-либо из сообщества консультации по звонкам? Я бы с радостью оплатил звонок с экспертом, чтобы глубоко разобраться в архитектуре Discourse и узнать, какие плагины доступны. Я уже ознакомился с большей частью документации по разработке и довольно много перемещался по кодовой базе.