Skip to content

Commit 89fe2b5

Browse files
authored
docs(nav): fix sidebar nesting, dynamic language switcher, and delete translations page (#5535)
1 parent 19d10a1 commit 89fe2b5

31 files changed

Lines changed: 223 additions & 204 deletions

.agent_memory/session_context.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,25 @@
33
# Do NOT edit or remove previous entries — stale state claims cause agent confusion.
44
# Format: ## YYYY-MM-DD — <summary>
55

6+
## 2026-05-20 — Replaced standalone translations landing page with dynamic global header language switcher dropdown
7+
- Deleted redundant standalone page `docs/en/translations.md` and updated `docs/README.md` to reflect layout change.
8+
- Completely re-engineered `docs/_includes/language_switcher.html` to:
9+
1. Dynamically parse active page paths and locales, matching default English pages with translated variants.
10+
2. Bind button text to native active language names (e.g., displaying "Беларуская" instead of hardcoded "English").
11+
3. Pre-verify file existence in `site.pages` to only render valid translation links, preventing any 404 errors.
12+
4. Automatically hide the language switcher on English pages that do not have translations available yet.
13+
- Modified custom CSS styles in `docs/_includes/head_custom.html` to use `right: 0; left: auto;` layout alignment, preventing dropdown menu overflows on smaller screens.
14+
- Successfully built and verified live documentation pages in the browser using the browser subagent, confirming fully operational dynamic swappers.
15+
- Ran quality and validation checks: `./gradlew generateDocsBundle validateDocsBundle spotlessCheck detekt` (100% SUCCESSFUL).
16+
17+
## 2026-05-20 — Fixed Jekyll documentation site left navigation nesting and sub-page visibility
18+
- Cleaned up redundant and brittle dynamic default scope parent settings in `docs/_config.yml`.
19+
- Added explicit `parent: User Guide` front-matter fields to all 17 English user guide markdown files under `docs/en/user/`.
20+
- Added explicit `parent: Developer Guide` front-matter fields to all 9 English developer guide markdown files under `docs/en/developer/`.
21+
- Run and verified Gradle documentation bundle compilation: `./gradlew generateDocsBundle validateDocsBundle` (PASSED: 672 pages).
22+
- Validated formatting and static analysis rules: `./gradlew spotlessApply spotlessCheck detekt` (100% green).
23+
- Successfully completed full baseline compilation checks with `./gradlew assembleDebug`.
24+
625
## 2026-05-20 — Completely overhauled, simplified, and pushed Flatpak offline source automation
726
- Completely retired the third-party `flatpak-gradle-generator` plugin and its associated complex configuration and library overrides (removed ~150 lines of boilerplate).
827
- Implemented a native JVM-based custom Gradle task `GenerateFlatpakSourcesTask` inside `gradle/flatpak.gradle.kts` which walks the post-compilation Gradle cache and generates a perfectly sorted, deduplicated `flatpak-sources.json` in under 3 seconds.

docs/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ docs/
1717
│ ├── developer/ ← Developer Guide pages
1818
│ ├── index.md ← Site home page
1919
│ ├── user.md ← User Guide nav parent
20-
│ ├── developer.md ← Developer Guide nav parent
21-
│ └── translations.md ← Translations landing page
20+
│ └── developer.md ← Developer Guide nav parent
2221
├── fr-rFR/ ← French (Crowdin-generated)
2322
│ └── user/ ← Translated user guide
2423
├── de-rDE/ ← German (Crowdin-generated)

docs/_config.yml

Lines changed: 76 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -30,171 +30,169 @@ defaults:
3030
- scope:
3131
path: "en/user/"
3232
values:
33-
parent: User Guide
3433
layout: default
3534
- scope:
3635
path: "en/developer/"
3736
values:
38-
parent: Developer Guide
3937
layout: default
4038
# Locale-translated pages are excluded from main nav but still rendered.
4139
# They use a dedicated locale layout with a back-link to the English version.
4240
# Auto-generated from Android app locales (values-* resource dirs).
4341
- scope:
44-
path: "ar"
42+
path: "ar-rSA"
4543
values:
4644
layout: locale_page
47-
locale: ar
45+
locale: ar-rSA
4846
nav_exclude: true
4947
- scope:
50-
path: "be"
48+
path: "be-rBY"
5149
values:
5250
layout: locale_page
53-
locale: be
51+
locale: be-rBY
5452
nav_exclude: true
5553
- scope:
56-
path: "bg"
54+
path: "bg-rBG"
5755
values:
5856
layout: locale_page
59-
locale: bg
57+
locale: bg-rBG
6058
nav_exclude: true
6159
- scope:
62-
path: "ca"
60+
path: "ca-rES"
6361
values:
6462
layout: locale_page
65-
locale: ca
63+
locale: ca-rES
6664
nav_exclude: true
6765
- scope:
68-
path: "cs"
66+
path: "cs-rCZ"
6967
values:
7068
layout: locale_page
71-
locale: cs
69+
locale: cs-rCZ
7270
nav_exclude: true
7371
- scope:
74-
path: "de"
72+
path: "de-rDE"
7573
values:
7674
layout: locale_page
77-
locale: de
75+
locale: de-rDE
7876
nav_exclude: true
7977
- scope:
80-
path: "el"
78+
path: "el-rGR"
8179
values:
8280
layout: locale_page
83-
locale: el
81+
locale: el-rGR
8482
nav_exclude: true
8583
- scope:
86-
path: "es"
84+
path: "es-rES"
8785
values:
8886
layout: locale_page
89-
locale: es
87+
locale: es-rES
9088
nav_exclude: true
9189
- scope:
92-
path: "et"
90+
path: "et-rEE"
9391
values:
9492
layout: locale_page
95-
locale: et
93+
locale: et-rEE
9694
nav_exclude: true
9795
- scope:
98-
path: "fi"
96+
path: "fi-rFI"
9997
values:
10098
layout: locale_page
101-
locale: fi
99+
locale: fi-rFI
102100
nav_exclude: true
103101
- scope:
104-
path: "fr"
102+
path: "fr-rFR"
105103
values:
106104
layout: locale_page
107-
locale: fr
105+
locale: fr-rFR
108106
nav_exclude: true
109107
- scope:
110-
path: "ga"
108+
path: "ga-rIE"
111109
values:
112110
layout: locale_page
113-
locale: ga
111+
locale: ga-rIE
114112
nav_exclude: true
115113
- scope:
116-
path: "gl"
114+
path: "gl-rES"
117115
values:
118116
layout: locale_page
119-
locale: gl
117+
locale: gl-rES
120118
nav_exclude: true
121119
- scope:
122-
path: "he"
120+
path: "iw-rIL"
123121
values:
124122
layout: locale_page
125-
locale: he
123+
locale: iw-rIL
126124
nav_exclude: true
127125
- scope:
128-
path: "hr"
126+
path: "hr-rHR"
129127
values:
130128
layout: locale_page
131-
locale: hr
129+
locale: hr-rHR
132130
nav_exclude: true
133131
- scope:
134-
path: "ht"
132+
path: "ht-rHT"
135133
values:
136134
layout: locale_page
137-
locale: ht
135+
locale: ht-rHT
138136
nav_exclude: true
139137
- scope:
140-
path: "hu"
138+
path: "hu-rHU"
141139
values:
142140
layout: locale_page
143-
locale: hu
141+
locale: hu-rHU
144142
nav_exclude: true
145143
- scope:
146-
path: "is"
144+
path: "is-rIS"
147145
values:
148146
layout: locale_page
149-
locale: is
147+
locale: is-rIS
150148
nav_exclude: true
151149
- scope:
152-
path: "it"
150+
path: "it-rIT"
153151
values:
154152
layout: locale_page
155-
locale: it
153+
locale: it-rIT
156154
nav_exclude: true
157155
- scope:
158-
path: "ja"
156+
path: "ja-rJP"
159157
values:
160158
layout: locale_page
161-
locale: ja
159+
locale: ja-rJP
162160
nav_exclude: true
163161
- scope:
164-
path: "ko"
162+
path: "ko-rKR"
165163
values:
166164
layout: locale_page
167-
locale: ko
165+
locale: ko-rKR
168166
nav_exclude: true
169167
- scope:
170-
path: "lt"
168+
path: "lt-rLT"
171169
values:
172170
layout: locale_page
173-
locale: lt
171+
locale: lt-rLT
174172
nav_exclude: true
175173
- scope:
176-
path: "nl"
174+
path: "nl-rNL"
177175
values:
178176
layout: locale_page
179-
locale: nl
177+
locale: nl-rNL
180178
nav_exclude: true
181179
- scope:
182-
path: "no"
180+
path: "no-rNO"
183181
values:
184182
layout: locale_page
185-
locale: no
183+
locale: no-rNO
186184
nav_exclude: true
187185
- scope:
188-
path: "pl"
186+
path: "pl-rPL"
189187
values:
190188
layout: locale_page
191-
locale: pl
189+
locale: pl-rPL
192190
nav_exclude: true
193191
- scope:
194-
path: "pt"
192+
path: "pt-rPT"
195193
values:
196194
layout: locale_page
197-
locale: pt
195+
locale: pt-rPT
198196
nav_exclude: true
199197
- scope:
200198
path: "pt-rBR"
@@ -203,58 +201,64 @@ defaults:
203201
locale: pt-rBR
204202
nav_exclude: true
205203
- scope:
206-
path: "ro"
204+
path: "ro-rRO"
207205
values:
208206
layout: locale_page
209-
locale: ro
207+
locale: ro-rRO
210208
nav_exclude: true
211209
- scope:
212-
path: "ru"
210+
path: "ru-rRU"
213211
values:
214212
layout: locale_page
215-
locale: ru
213+
locale: ru-rRU
216214
nav_exclude: true
217215
- scope:
218-
path: "sk"
216+
path: "sk-rSK"
219217
values:
220218
layout: locale_page
221-
locale: sk
219+
locale: sk-rSK
222220
nav_exclude: true
223221
- scope:
224-
path: "sl"
222+
path: "sl-rSI"
225223
values:
226224
layout: locale_page
227-
locale: sl
225+
locale: sl-rSI
228226
nav_exclude: true
229227
- scope:
230-
path: "sq"
228+
path: "sq-rAL"
231229
values:
232230
layout: locale_page
233-
locale: sq
231+
locale: sq-rAL
234232
nav_exclude: true
235233
- scope:
236-
path: "sr"
234+
path: "sr-rLatn"
237235
values:
238236
layout: locale_page
239-
locale: sr
237+
locale: sr-rLatn
240238
nav_exclude: true
241239
- scope:
242-
path: "sv"
240+
path: "srp"
243241
values:
244242
layout: locale_page
245-
locale: sv
243+
locale: srp
246244
nav_exclude: true
247245
- scope:
248-
path: "tr"
246+
path: "sv-rSE"
249247
values:
250248
layout: locale_page
251-
locale: tr
249+
locale: sv-rSE
252250
nav_exclude: true
253251
- scope:
254-
path: "uk"
252+
path: "tr-rTR"
255253
values:
256254
layout: locale_page
257-
locale: uk
255+
locale: tr-rTR
256+
nav_exclude: true
257+
- scope:
258+
path: "uk-rUA"
259+
values:
260+
layout: locale_page
261+
locale: uk-rUA
258262
nav_exclude: true
259263
- scope:
260264
path: "zh-rCN"

0 commit comments

Comments
 (0)