Navigation Provider

Mit dem Navigation Provider auf andere Artikel und Abschnitte verlinken.

07.10.2026

Navigation Provider

Der nav Provider ermöglicht es, innerhalb von Knowledge-Base-Artikeln auf andere Artikel zu verlinken.

Die grundlegende Syntax lautet:

{nav:article-id}

Beispiel:

{nav:code-provider}

Der Link verweist auf den Artikel code-provider innerhalb der aktuellen Knowledge Base.

Eigener Linktext

Der Linktext kann nach einem | angegeben werden:

{nav:code-provider|Code Provider}

Dadurch wird nicht die Artikel-ID als Linktext verwendet, sondern:

Code Provider

Die allgemeine Syntax lautet:

{nav:article-id|Linktext}

Auf einen Abschnitt verlinken

Der Navigation Provider unterstützt auch Links auf einen bestimmten Anchor innerhalb eines Artikels.

Dazu wird der Anchor mit # an die Artikel-ID angehängt:

{nav:code-provider#provider-implementation}

Damit kann beispielsweise direkt auf den Abschnitt Provider implementieren verwiesen werden.

Anchor mit eigenem Linktext

Artikel und Linktext können kombiniert werden:

{nav:code-provider#provider-implementation|Provider implementieren}

Das ist besonders praktisch für Verweise innerhalb von Fließtext.

Beispiel:

Weitere Informationen findest du unter
{nav:code-provider#provider-implementation|Provider implementieren}.

Eigene Artikel verlinken

Ein einfacher Verweis auf einen Artikel:

Siehe auch {nav:code-provider|Code Provider}.

Oder ohne eigenen Linktext:

Siehe auch {nav:code-provider}.

Technische Umsetzung

Der Provider implementiert ICodeProvider:

public sealed class NavigationCodeProvider : ICodeProvider
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public NavigationCodeProvider(
        IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

    public string Name => "nav";

    public bool CanHandle(string value)
    {
        return value.StartsWith(
                   "{nav:",
                   StringComparison.OrdinalIgnoreCase)
               && value.EndsWith("}", StringComparison.Ordinal);
    }

    // ...
}

Der Provider ermittelt die aktuelle Knowledge Base aus der aktuellen Route und erzeugt daraus die entsprechende URL.

Dadurch muss in einem Artikel keine vollständige URL angegeben werden.

Warum der Navigation Provider?

Ohne Provider müsste ein Artikel beispielsweise eine vollständige URL enthalten:

[Code Provider](/knowledge/language/phishing/code-provider)

Das hat einige Nachteile:

  • die Knowledge-Base-ID ist fest im Inhalt enthalten
  • URLs müssen manuell gepflegt werden
  • Änderungen an der Routing-Struktur müssen in Artikeln angepasst werden
  • Inhalte sind stärker an die konkrete Website gebunden

Mit dem Navigation Provider reicht:

{nav:code-provider|Code Provider}

Der Provider erzeugt die URL automatisch.

Für einen Abschnitt kann beispielsweise verwendet werden:

{nav:code-provider#provider-implementation|Provider implementieren}

Der resultierende Link verweist auf:

/knowledge/{knowledgeBaseId}/code-provider#provider-implementation

Damit bleiben die eigentlichen Markdown-Inhalte unabhängig von der konkreten Knowledge-Base-URL.

Zusammenfassung

Die wichtigsten Varianten sind:

{nav:article-id}
{nav:article-id|Linktext}
{nav:article-id#anchor}
{nav:article-id#anchor|Linktext}

Beispiele:

{nav:code-provider}
{nav:code-provider|Code Provider}
{nav:code-provider#provider-implementation}
{nav:code-provider#provider-implementation|Provider implementieren}

Der Navigation Provider eignet sich damit sowohl für einfache Artikelverweise als auch für Querverweise auf konkrete Abschnitte innerhalb anderer Artikel.