Wie man Breadcrumbs hinzufügt?

Als ich mir das genauer angesehen habe, wurde Anfang dieses Jahres eine Breadcrumbs-Komponente zu Discourse hinzugefügt: FEATURE: Introduce DBreadcrumbs components (#27049) · discourse/discourse@1239178 · GitHub. Sie wird derzeit nur auf ausgewählten Admin-Seiten gerendert.

Ich habe eine Testkomponente zur Darstellung von Breadcrumbs erstellt: Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. Die aktuelle Vorlage ist:

  <template>
    {{#if this.currentPage}}
      {{bodyClass "has-breadcrumbs"}}
      <ul class="breadcrumbs {{concat '--' settings.plugin_outlet}}">
        <li class="breadcrumbs__item --home">
          {{#if this.homePage}}
            {{i18n "js.home"}}
          {{else}}
            <a href="/">{{i18n "js.home"}}</a>
          {{/if}}
        </li>
        {{#if this.parentCategory}}
          <li class="breadcrumbs__item --parent">
            <a href="/c/{{this.parentCategoryLink}}">
              {{this.parentCategoryName}}</a>
          </li>
        {{/if}}
        {{#unless this.homePage}}
          <li class="breadcrumbs__item --current">
            {{this.currentPage}}
          </li>
        {{/unless}}
      </ul>
    {{/if}}
  </template>

Ich habe jetzt einen Branch erstellt, der die neue DBreadcrumbs-Komponente verwendet: Files · dbreadcrumbs · Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. Das würde die Vorlage übersichtlicher machen und wahrscheinlich generell für bessere Konsistenz und Barrierefreiheit sorgen:

  <template>
    {{#if this.currentPage}}
      {{bodyClass "has-breadcrumbs"}}
      <DBreadcrumbsContainer class="{{concat '--' settings.plugin_outlet}}" />
      <DBreadcrumbsItem @path="/" @label={{i18n "js.home"}} />
      {{#if this.parentCategory}}
        <DBreadcrumbsItem
          @path="/c/{{this.parentCategoryLink}}"
          @label={{this.parentCategoryName}}
        />
      {{/if}}
      {{#unless this.homePage}}
        <DBreadcrumbsItem @path="" @label={{this.currentPage}} />
      {{/unless}}
    {{/if}}
  </template>

Bei der Verwendung von DBreadcrumbsItem werden jedoch die Reihenfolge der übergeordneten Kategorie und der Unterkategorie in der gerenderten Komponente vertauscht. Die aktuelle Kategorie wird zuerst eingefügt:

Ich frage mich, ob das an diesem Verhalten liegt, das in der Commit-Nachricht angegeben ist?

  • DBreadcrumbsItem - Die Komponente, die einen LinkTo für den Breadcrumb-Pfad registriert. Der Breadcrumb-Pfad wird basierend auf der Reihenfolge angezeigt, in der diese Elemente auf der Seite gerendert werden.