Ссылки на кнопки боковой панели и скрипты

Я хочу добавить это в виде кнопки в боковую панель (меню «гамбургер») — «Ещё» или в нижней части боковой панели, а затем подключить JavaScript. Как получить доступ к боковой панели Discourse для этого?

Я сделал следующее, но это не сработало.
Я поместил это в тег компонента.

<div class="sidebar-custom-sections">
  <ul class="sidebar-more-section-links-details-content-main">
    <li data-list-item-name="Install" class="sidebar-section-link-wrapper" id="sidebar_install_wrapper">
      <a href="#" rel="noopener noreferrer" target="_self" data-link-name="Install" class="sidebar-section-link sidebar-row" id="sidebar_install_button">
        <span class="sidebar-section-link-prefix icon">
          <svg class="fa d-icon d-icon-download svg-icon prefix-icon svg-string" xmlns="http://www.w3.org/2000/svg">
            <use href="#download"></use>
          </svg>
        </span>
        <span class="sidebar-section-link-content-text">
          Установить
        </span>
      </a>
    </li>
  </ul>
</div>

Если вы имеете в виду добавление новой ссылки здесь:

то вы можете использовать API addCommunitySectionLink. Пример приведён в комментарии.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.gjs#L2414-L2471

<script>
api.addCommunitySectionLink({
  name: "unread",
  route: "discovery.unread",
  title: I18n.t("some.unread.title"),
  text: I18n.t("some.unread.text"),
  icon: "fa-envelope"
});
</script>

Я вставил это в секцию HTML тела компонента вот так, но, похоже, оно не добавляется в раздел «Ещё». Неужели нельзя сделать это таким способом?

Вместо этого используйте следующий код в Head:

<script type="text/discourse-plugin" version="0.8">
    api.addCommunitySectionLink({
      name: "unread",
      route: "discovery.unread",
      title: I18n.t("some.unread.title"),
      text: I18n.t("some.unread.text"),
      icon: "fa-envelope"
    });
</script>

<script type="text/discourse-plugin" version="0.8"> важен, если вы хотите использовать API.

Это должно работать лучше. :+1:

    api.addCommunitySectionLink({
      name: "install",
      route: "/install",
      title: "install",
      text: "install",
      icon: "download"
    });
</script>```
Я попытался добавить вышеуказанный код в представление боковой панели, но это не сработало, поэтому я написал его в формате ниже, ссылаясь на существующий путь. Однако, когда появляется кнопка и я нажимаю на неё, скрипт, похоже, работает некорректно. Странно, но скрипт работает, когда я нажимаю кнопку «Тема», а не созданную мной кнопку. Скрипт, который должен быть подключён, также был размещён в заголовке HTML.
```<script type="text/discourse-plugin" version="0.8">
    api.addCommunitySectionLink({
      name: "install",
      route: "discovery.latest",
      title: "install",
      text: "install",
      icon: "download"
    });
</script>```