fix(wikijs): make sidebar nav targets absolute

The default theme renders sidebar links with href=target verbatim, without
targetType or leading-slash handling. Page targets stored without a leading
slash resolved relatively (e.g. from /betrieb/x, 'Sicherheit' went to
/betrieb/betrieb/sicherheit -> 404), and the home item's empty target was a
dead link. Prefix page targets with '/' and point home at '/'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Thore Cimbal
2026-08-14 12:00:00 +00:00
co-authored by Claude Opus 4.8
parent 56653ffd0c
commit 9f8eed3193
+7 -2
View File
@@ -268,8 +268,13 @@ def set_navigation(jwt: str):
# Admins); die Seiten sind ohnehin per checkAccess für Anwender gesperrt.
admin = [1, 3]
def lnk(i, label, icon, path, g=None):
# Das Default-Theme rendert den Sidebar-Link wortwörtlich als href=target (ohne
# targetType-/Slash-Behandlung). Page-Targets MUESSEN daher absolut sein, sonst
# loesen sie relativ auf (von /betrieb/x aus -> /betrieb/<target> -> 404). Wiki.js'
# eigener Editor speichert /<locale>/<path>; hier /<path> (namespacing=false), passend
# zu allen Inhalts-Links.
return {"id": i, "kind": "link", "label": label, "icon": icon,
"targetType": "page", "target": path,
"targetType": "page", "target": "/" + path,
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
def hdr(i, label, g=None):
return {"id": i, "kind": "header", "label": label, "icon": "",
@@ -277,7 +282,7 @@ def set_navigation(jwt: str):
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
items = [
{"id": "home", "kind": "link", "label": "Startseite", "icon": "mdi-home",
"targetType": "home", "target": "", "visibilityMode": "all", "visibilityGroups": []},
"targetType": "home", "target": "/", "visibilityMode": "all", "visibilityGroups": []},
hdr("hanw", "Anwenderdokumentation"),
lnk("a1", "Registrierung", "mdi-account-plus", "anwender/registrierung"),
lnk("a2", "Anmelden & Konto", "mdi-login", "anwender/anmelden-und-konto"),