@jant/core 0.6.14 → 0.6.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/bin/commands/import-site.js +81 -13
  2. package/bin/commands/migrate.js +55 -0
  3. package/bin/commands/posts/rebuild-html.js +184 -0
  4. package/bin/commands/site/snapshot/import.js +14 -10
  5. package/bin/lib/d1-query.js +23 -5
  6. package/bin/lib/migration-runner.js +29 -7
  7. package/bin/lib/node-database.js +32 -0
  8. package/bin/lib/site-snapshot.js +347 -46
  9. package/bin/lib/sql-export.js +1 -1
  10. package/bin/lib/thread-collection-migration.js +326 -0
  11. package/dist/app-BxCOR3Uc.js +6 -0
  12. package/dist/{app-2i7-WQHg.js → app-C-oi_t8W.js} +7408 -6343
  13. package/dist/client/.vite/manifest.json +3 -3
  14. package/dist/client/_assets/client-B_eGKN5p.css +2 -0
  15. package/dist/client/_assets/{client-BvID5ucz.js → client-DxY5BFe8.js} +58 -37
  16. package/dist/client/_assets/client-auth-CakPESv9.js +5533 -0
  17. package/dist/{export-DWn149b7.js → export-CsFx6F_M.js} +1259 -125
  18. package/dist/{github-sync-Ckk0sJxK.js → github-sync-Cq1pzzOI.js} +1 -1
  19. package/dist/{github-sync-C0zyF6XS.js → github-sync-ppWXN3jb.js} +2 -2
  20. package/dist/index.js +3 -3
  21. package/dist/node.js +5 -5
  22. package/package.json +11 -10
  23. package/src/__tests__/bin/posts-rebuild-html.test.ts +137 -0
  24. package/src/__tests__/dev-navigation-defaults.test.ts +22 -0
  25. package/src/__tests__/export-hugo-build.test.ts +63 -4
  26. package/src/__tests__/export-import-roundtrip.test.ts +6 -4
  27. package/src/__tests__/export-service.test.ts +142 -9
  28. package/src/__tests__/helpers/app.ts +3 -0
  29. package/src/__tests__/helpers/export-fixtures.ts +2 -0
  30. package/src/__tests__/import-site-command.test.ts +65 -0
  31. package/src/__tests__/vite-config.test.ts +45 -0
  32. package/src/app.tsx +16 -3
  33. package/src/client/__tests__/collection-created-notice.test.ts +36 -0
  34. package/src/client/__tests__/collection-form-bridge.test.ts +10 -1
  35. package/src/client/__tests__/collection-page-actions.test.ts +71 -2
  36. package/src/client/__tests__/compose-bridge.test.ts +64 -0
  37. package/src/client/__tests__/feed-video-player.test.ts +16 -1
  38. package/src/client/__tests__/footnote-rail.test.ts +472 -0
  39. package/src/client/__tests__/hydrate-partial.test.ts +3 -0
  40. package/src/client/__tests__/toast.test.ts +18 -1
  41. package/src/client/collection-created-notice.ts +66 -0
  42. package/src/client/collection-form-bridge.ts +17 -0
  43. package/src/client/collection-navigation.ts +44 -0
  44. package/src/client/collection-page-actions.ts +57 -1
  45. package/src/client/components/__tests__/jant-collection-directory.test.ts +155 -6
  46. package/src/client/components/__tests__/jant-compose-dialog.test.ts +370 -5
  47. package/src/client/components/__tests__/jant-compose-editor.test.ts +97 -0
  48. package/src/client/components/__tests__/jant-compose-fullscreen.test.ts +104 -0
  49. package/src/client/components/__tests__/jant-config-editor.test.ts +405 -0
  50. package/src/client/components/__tests__/jant-media-lightbox.test.ts +121 -0
  51. package/src/client/components/__tests__/jant-nav-manager.test.ts +538 -2
  52. package/src/client/components/__tests__/jant-post-form.test.ts +2 -2
  53. package/src/client/components/__tests__/jant-post-menu.test.ts +47 -5
  54. package/src/client/components/__tests__/jant-settings-avatar.test.ts +2 -2
  55. package/src/client/components/__tests__/jant-settings-general.test.ts +3 -3
  56. package/src/client/components/collection-manager-types.ts +9 -3
  57. package/src/client/components/compose-types.ts +8 -0
  58. package/src/client/components/jant-collection-directory.ts +165 -30
  59. package/src/client/components/jant-command-palette.ts +2 -1
  60. package/src/client/components/jant-compose-dialog.ts +85 -21
  61. package/src/client/components/jant-compose-editor.ts +13 -7
  62. package/src/client/components/jant-compose-fullscreen.ts +24 -4
  63. package/src/client/components/jant-config-editor.ts +722 -0
  64. package/src/client/components/jant-media-lightbox.ts +100 -18
  65. package/src/client/components/jant-nav-manager.ts +1283 -54
  66. package/src/client/components/jant-post-form.ts +3 -3
  67. package/src/client/components/jant-post-menu.ts +86 -74
  68. package/src/client/components/nav-manager-types.ts +51 -2
  69. package/src/client/components/post-form-types.ts +1 -1
  70. package/src/client/compose-bridge.ts +4 -1
  71. package/src/client/feed-video-player.ts +62 -2
  72. package/src/client/footnote-rail.ts +478 -0
  73. package/src/client/hydrate-partial.ts +2 -0
  74. package/src/client/media-lightbox-events.ts +63 -0
  75. package/src/client/site-header-fragment.ts +38 -0
  76. package/src/client/tiptap/__tests__/blockquote-editing.test.ts +201 -0
  77. package/src/client/tiptap/__tests__/clear-formatting.test.ts +168 -0
  78. package/src/client/tiptap/__tests__/list-editing.test.ts +447 -0
  79. package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +727 -4
  80. package/src/client/tiptap/__tests__/table-controls.test.ts +263 -0
  81. package/src/client/tiptap/__tests__/table-size-picker.test.ts +179 -0
  82. package/src/client/tiptap/bubble-menu.ts +88 -10
  83. package/src/client/tiptap/continuous-lists.ts +102 -0
  84. package/src/client/tiptap/create-editor.ts +3 -0
  85. package/src/client/tiptap/extensions.ts +14 -5
  86. package/src/client/tiptap/markdown-clipboard.ts +608 -11
  87. package/src/client/tiptap/slash-commands.ts +8 -1
  88. package/src/client/tiptap/structural-keymap.ts +211 -0
  89. package/src/client/tiptap/tab-indent.ts +8 -22
  90. package/src/client/tiptap/table-control-labels.ts +30 -0
  91. package/src/client/tiptap/table-controls.ts +537 -0
  92. package/src/client/tiptap/table-size-picker.ts +254 -0
  93. package/src/client/toast.ts +8 -6
  94. package/src/client-auth.ts +1 -0
  95. package/src/client.ts +1 -0
  96. package/src/db/__tests__/d1-query.test.ts +43 -1
  97. package/src/db/__tests__/migration-runner.test.ts +63 -0
  98. package/src/db/__tests__/migrations.test.ts +469 -0
  99. package/src/db/__tests__/thread-collection-migration.test.ts +364 -0
  100. package/src/db/migrations/0027_old_blue_blade.sql +39 -0
  101. package/src/db/migrations/0028_superb_post.sql +2 -0
  102. package/src/db/migrations/0029_boring_magma.sql +1 -0
  103. package/src/db/migrations/0030_typical_vivisector.sql +50 -0
  104. package/src/db/migrations/meta/0027_snapshot.json +2511 -0
  105. package/src/db/migrations/meta/0028_snapshot.json +2511 -0
  106. package/src/db/migrations/meta/0029_snapshot.json +2519 -0
  107. package/src/db/migrations/meta/0030_snapshot.json +2541 -0
  108. package/src/db/migrations/meta/_journal.json +28 -0
  109. package/src/db/migrations/pg/0025_moaning_epoch.sql +39 -0
  110. package/src/db/migrations/pg/0026_talented_killer_shrike.sql +2 -0
  111. package/src/db/migrations/pg/0027_short_cannonball.sql +1 -0
  112. package/src/db/migrations/pg/0028_perfect_sharon_carter.sql +27 -0
  113. package/src/db/migrations/pg/meta/0025_snapshot.json +3204 -0
  114. package/src/db/migrations/pg/meta/0026_snapshot.json +3204 -0
  115. package/src/db/migrations/pg/meta/0027_snapshot.json +3211 -0
  116. package/src/db/migrations/pg/meta/0028_snapshot.json +3248 -0
  117. package/src/db/migrations/pg/meta/_journal.json +28 -0
  118. package/src/db/pg/schema.ts +28 -20
  119. package/src/db/rehearsal-fixtures/demo-current.json +39 -4
  120. package/src/db/rehearsal-fixtures/demo-current.sql +121 -6
  121. package/src/db/schema.ts +28 -20
  122. package/src/i18n/__tests__/detect.test.ts +8 -2
  123. package/src/i18n/detect.ts +14 -5
  124. package/src/i18n/locales/public/en.po +133 -30
  125. package/src/i18n/locales/public/en.ts +1 -1
  126. package/src/i18n/locales/public/zh-Hans.po +128 -25
  127. package/src/i18n/locales/public/zh-Hans.ts +1 -1
  128. package/src/i18n/locales/public/zh-Hant.po +128 -25
  129. package/src/i18n/locales/public/zh-Hant.ts +1 -1
  130. package/src/i18n/locales/settings/en.po +513 -10
  131. package/src/i18n/locales/settings/en.ts +1 -1
  132. package/src/i18n/locales/settings/zh-Hans.po +515 -12
  133. package/src/i18n/locales/settings/zh-Hans.ts +1 -1
  134. package/src/i18n/locales/settings/zh-Hant.po +515 -12
  135. package/src/i18n/locales/settings/zh-Hant.ts +1 -1
  136. package/src/lib/__tests__/api-settings.test.ts +299 -0
  137. package/src/lib/__tests__/constants.test.ts +5 -0
  138. package/src/lib/__tests__/feed-policy.test.ts +25 -0
  139. package/src/lib/__tests__/footnotes-upgrade.test.ts +181 -0
  140. package/src/lib/__tests__/markdown-roundtrip-embed.test.ts +61 -0
  141. package/src/lib/__tests__/markdown-to-tiptap.test.ts +32 -4
  142. package/src/lib/__tests__/markdown.test.ts +8 -6
  143. package/src/lib/__tests__/navigation.test.ts +59 -2
  144. package/src/lib/__tests__/post-body-html.test.ts +176 -0
  145. package/src/lib/__tests__/post-display.test.ts +64 -0
  146. package/src/lib/__tests__/resolve-config.test.ts +113 -1
  147. package/src/lib/__tests__/summary.test.ts +82 -0
  148. package/src/lib/__tests__/timeline.test.ts +109 -70
  149. package/src/lib/__tests__/timezones.test.ts +31 -3
  150. package/src/lib/__tests__/tiptap-render.test.ts +268 -9
  151. package/src/lib/__tests__/tiptap-to-markdown.test.ts +6 -0
  152. package/src/lib/__tests__/view.test.ts +53 -0
  153. package/src/lib/__tests__/worker-response-cache.test.ts +18 -1
  154. package/src/lib/api-settings.ts +239 -12
  155. package/src/lib/collection-sort.ts +7 -5
  156. package/src/lib/constants.ts +2 -0
  157. package/src/lib/feed-path.ts +25 -0
  158. package/src/lib/feed-policy.ts +64 -0
  159. package/src/lib/footnotes.ts +264 -0
  160. package/src/lib/github-sync-site-config.ts +2 -0
  161. package/src/lib/hugo-markdown.ts +10 -3
  162. package/src/lib/jant-branding.ts +1 -0
  163. package/src/lib/markdown-manager.ts +188 -5
  164. package/src/lib/markdown.ts +10 -3
  165. package/src/lib/navigation.ts +16 -3
  166. package/src/lib/post-body-html.ts +131 -0
  167. package/src/lib/post-display.ts +7 -1
  168. package/src/lib/render.tsx +9 -2
  169. package/src/lib/resolve-config.ts +100 -16
  170. package/src/lib/schemas.ts +133 -1
  171. package/src/lib/settings-paths.ts +5 -0
  172. package/src/lib/site-skill.ts +78 -0
  173. package/src/lib/summary.ts +16 -5
  174. package/src/lib/timeline.ts +98 -122
  175. package/src/lib/timezones.ts +54 -14
  176. package/src/lib/tiptap-render.ts +355 -81
  177. package/src/lib/view.ts +30 -20
  178. package/src/lib/worker-response-cache.ts +11 -18
  179. package/src/middleware/__tests__/public-content-access.test.ts +91 -0
  180. package/src/middleware/config.ts +2 -2
  181. package/src/middleware/public-content-access.ts +87 -0
  182. package/src/node/__tests__/cli-export.test.ts +14 -0
  183. package/src/node/__tests__/cli-migrate.test.ts +6 -0
  184. package/src/node/__tests__/cli-site-snapshot.test.ts +205 -2
  185. package/src/node/__tests__/cli-snapshot-meta.test.ts +100 -0
  186. package/src/node/index.ts +2 -1
  187. package/src/preset.css +16 -2
  188. package/src/routes/__tests__/compose.test.ts +51 -0
  189. package/src/routes/__tests__/site-skill.test.ts +112 -0
  190. package/src/routes/api/__tests__/collections.test.ts +91 -19
  191. package/src/routes/api/__tests__/mcp.test.ts +65 -1
  192. package/src/routes/api/__tests__/nav-items.test.ts +91 -0
  193. package/src/routes/api/__tests__/public-access.test.ts +81 -0
  194. package/src/routes/api/__tests__/settings.test.ts +217 -0
  195. package/src/routes/api/collections.ts +22 -26
  196. package/src/routes/api/export.ts +2 -0
  197. package/src/routes/api/internal/__tests__/post-body-html.test.ts +163 -0
  198. package/src/routes/api/internal/__tests__/sites.test.ts +35 -2
  199. package/src/routes/api/internal/post-body-html.ts +43 -0
  200. package/src/routes/api/internal/sites.ts +24 -0
  201. package/src/routes/api/nav-items.ts +24 -1
  202. package/src/routes/api/posts.ts +2 -2
  203. package/src/routes/api/public/__tests__/archive.test.ts +35 -0
  204. package/src/routes/api/public/__tests__/posts.test.ts +208 -0
  205. package/src/routes/api/public/archive.ts +4 -0
  206. package/src/routes/api/public/posts.ts +41 -24
  207. package/src/routes/api/search.ts +3 -0
  208. package/src/routes/api/settings.ts +33 -0
  209. package/src/routes/auth/__tests__/setup.test.ts +7 -4
  210. package/src/routes/compose.tsx +2 -1
  211. package/src/routes/dash/settings.tsx +45 -2
  212. package/src/routes/feed/__tests__/feed.test.ts +210 -6
  213. package/src/routes/feed/feed.ts +23 -14
  214. package/src/routes/pages/__tests__/archive-params.test.ts +92 -3
  215. package/src/routes/pages/__tests__/collection-routing.test.ts +63 -5
  216. package/src/routes/pages/__tests__/collections.test.ts +9 -9
  217. package/src/routes/pages/__tests__/preview.test.ts +174 -0
  218. package/src/routes/pages/__tests__/search.test.ts +69 -0
  219. package/src/routes/pages/archive.tsx +27 -7
  220. package/src/routes/pages/collection.tsx +32 -19
  221. package/src/routes/pages/collections.tsx +6 -1
  222. package/src/routes/pages/page.tsx +83 -11
  223. package/src/routes/site-skill.ts +18 -0
  224. package/src/services/__tests__/auth.test.ts +7 -5
  225. package/src/services/__tests__/collection.test.ts +159 -44
  226. package/src/services/__tests__/navigation.test.ts +229 -21
  227. package/src/services/__tests__/post-timeline.test.ts +109 -30
  228. package/src/services/__tests__/post.test.ts +567 -5
  229. package/src/services/__tests__/search.test.ts +48 -1
  230. package/src/services/__tests__/settings.test.ts +8 -0
  231. package/src/services/__tests__/site-admin.test.ts +121 -1
  232. package/src/services/auth.ts +2 -2
  233. package/src/services/bootstrap.ts +3 -2
  234. package/src/services/collection.ts +226 -167
  235. package/src/services/export-theme/assets/client-site.css +1 -1
  236. package/src/services/export-theme/assets/client-site.js +46 -25
  237. package/src/services/export-theme/layouts/_default/list.html +18 -4
  238. package/src/services/export-theme/layouts/_default/rss.xml +8 -12
  239. package/src/services/export-theme/layouts/featured/list.html +5 -4
  240. package/src/services/export-theme/layouts/partials/featured-thread.html +56 -0
  241. package/src/services/export-theme/layouts/partials/footer.html +1 -1
  242. package/src/services/export-theme/layouts/partials/media-gallery.html +1 -0
  243. package/src/services/export-theme/styles/main.css +30 -2
  244. package/src/services/export.ts +91 -80
  245. package/src/services/mcp.ts +37 -27
  246. package/src/services/media.ts +1 -1
  247. package/src/services/navigation.ts +185 -46
  248. package/src/services/post.ts +874 -271
  249. package/src/services/search.ts +8 -2
  250. package/src/services/settings.ts +2 -10
  251. package/src/services/site-admin.ts +63 -43
  252. package/src/style-cjk-jp.css +1 -1
  253. package/src/style-cjk-kr.css +1 -1
  254. package/src/style-cjk-tc.css +1 -1
  255. package/src/style-cjk.css +1 -1
  256. package/src/styles/components.css +540 -0
  257. package/src/styles/site-media.css +111 -19
  258. package/src/styles/tokens.css +14 -9
  259. package/src/styles/ui.css +829 -29
  260. package/src/types/bindings.ts +3 -0
  261. package/src/types/config.ts +243 -12
  262. package/src/types/constants.ts +22 -1
  263. package/src/types/entities.ts +9 -8
  264. package/src/types/operations.ts +18 -10
  265. package/src/types/props.ts +8 -2
  266. package/src/types/raw-assets.d.ts +5 -0
  267. package/src/types/views.ts +16 -4
  268. package/src/ui/__tests__/font-themes.test.ts +42 -30
  269. package/src/ui/compose/ComposeDialog.tsx +92 -2
  270. package/src/ui/dash/appearance/NavigationContent.tsx +332 -4
  271. package/src/ui/dash/appearance/__tests__/NavigationContent.test.tsx +23 -0
  272. package/src/ui/dash/settings/ConfigEditorContent.tsx +578 -0
  273. package/src/ui/dash/settings/GeneralContent.tsx +15 -5
  274. package/src/ui/dash/settings/SettingsRootContent.tsx +21 -1
  275. package/src/ui/dash/settings/__tests__/ConfigEditorContent.test.tsx +98 -0
  276. package/src/ui/dash/settings/__tests__/SettingsRootContent.test.tsx +15 -0
  277. package/src/ui/feed/CuratedThreadPreview.tsx +16 -4
  278. package/src/ui/feed/LinkCard.tsx +2 -12
  279. package/src/ui/feed/NoteCard.tsx +10 -20
  280. package/src/ui/feed/QuoteCard.tsx +2 -12
  281. package/src/ui/feed/ThreadPreview.tsx +26 -34
  282. package/src/ui/feed/TimelineFeed.tsx +2 -2
  283. package/src/ui/feed/__tests__/thread-preview.test.ts +197 -56
  284. package/src/ui/feed/__tests__/timeline-cards.test.ts +178 -3
  285. package/src/ui/feed/thread-preview-state.ts +5 -7
  286. package/src/ui/font-themes.ts +74 -26
  287. package/src/ui/layouts/BaseLayout.tsx +22 -8
  288. package/src/ui/layouts/__tests__/BaseLayout.test.tsx +64 -1
  289. package/src/ui/pages/CollectionPage.tsx +101 -22
  290. package/src/ui/pages/CollectionsPage.tsx +3 -1
  291. package/src/ui/pages/PostPage.tsx +39 -12
  292. package/src/ui/pages/SearchPage.tsx +6 -14
  293. package/src/ui/pages/__tests__/ArchivePage.test.tsx +7 -0
  294. package/src/ui/pages/__tests__/PostPage.test.tsx +88 -0
  295. package/src/ui/shared/CollectionDirectory.tsx +13 -9
  296. package/src/ui/shared/CollectionsManager.tsx +17 -7
  297. package/src/ui/shared/DraftPreviewBar.tsx +33 -0
  298. package/src/ui/shared/HomePageBranding.tsx +2 -2
  299. package/src/ui/shared/MediaGallery.tsx +1 -0
  300. package/src/ui/shared/PostFooter.tsx +3 -1
  301. package/src/ui/shared/__tests__/home-page-branding.test.tsx +1 -1
  302. package/src/ui/shared/__tests__/media-gallery.test.ts +1 -0
  303. package/src/ui/shared/__tests__/navigation-labels.test.ts +2 -2
  304. package/src/ui/shared/__tests__/post-footer.test.ts +15 -0
  305. package/src/ui/shared/collection-management-labels.ts +33 -2
  306. package/src/ui/shared/navigation-labels.ts +2 -4
  307. package/src/ui/shared/post-article-attributes.ts +46 -0
  308. package/dist/app-DZDlmh7C.js +0 -6
  309. package/dist/client/_assets/client-Cevfpm8H.css +0 -2
  310. package/dist/client/_assets/client-auth-v3yvhbgZ.js +0 -4736
  311. package/src/client/tiptap/wrapping-input-rules.ts +0 -102
@@ -13,6 +13,11 @@ msgstr ""
13
13
  "Language-Team: \n"
14
14
  "Plural-Forms: \n"
15
15
 
16
+ #. @context: Config Editor live search result count
17
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
18
+ msgid "{count} settings shown"
19
+ msgstr "{count} settings shown"
20
+
16
21
  #. @context: Custom CSS textarea placeholder
17
22
  #: src/ui/dash/appearance/AdvancedContent.tsx
18
23
  msgid "/* Your custom CSS here */"
@@ -134,11 +139,51 @@ msgstr "Add custom CSS to override any styles. Use data attributes like [data-pa
134
139
  msgid "Add custom link to navigation"
135
140
  msgstr "Add custom link to navigation"
136
141
 
142
+ #. @context: Description after quick page creation
143
+ #: src/ui/dash/appearance/NavigationContent.tsx
144
+ msgid "Add it to navigation now or open the editor to add content."
145
+ msgstr "Add it to navigation now or open the editor to add content."
146
+
147
+ #. @context: Description after quick collection creation in Navigation settings
148
+ #: src/ui/dash/appearance/NavigationContent.tsx
149
+ msgid "Add it to navigation now or open the editor to add details."
150
+ msgstr "Add it to navigation now or open the editor to add details."
151
+
137
152
  #. @context: Button and heading for adding custom link
138
153
  #: src/ui/dash/appearance/NavigationContent.tsx
139
154
  msgid "Add Link"
140
155
  msgstr "Add Link"
141
156
 
157
+ #. @context: Button that opens the navigation page picker
158
+ #: src/ui/dash/appearance/NavigationContent.tsx
159
+ msgid "Add Page"
160
+ msgstr "Add Page"
161
+
162
+ #. @context: Section heading for adding a page to navigation
163
+ #: src/ui/dash/appearance/NavigationContent.tsx
164
+ msgid "Add page to navigation"
165
+ msgstr "Add page to navigation"
166
+
167
+ #. @context: Config Editor linked setting description
168
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
169
+ msgid "Add site-wide CSS in the dedicated code editor."
170
+ msgstr "Add site-wide CSS in the dedicated code editor."
171
+
172
+ #. @context: Config Editor linked setting description
173
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
174
+ msgid "Add site-wide HTML before the closing body tag."
175
+ msgstr "Add site-wide HTML before the closing body tag."
176
+
177
+ #. @context: Config Editor linked setting description
178
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
179
+ msgid "Add site-wide HTML before the closing head tag."
180
+ msgstr "Add site-wide HTML before the closing head tag."
181
+
182
+ #. @context: Button that adds a created page to navigation
183
+ #: src/ui/dash/appearance/NavigationContent.tsx
184
+ msgid "Add to Navigation"
185
+ msgstr "Add to Navigation"
186
+
142
187
  #. @context: Settings group label for advanced settings
143
188
  #: src/ui/dash/settings/SettingsRootContent.tsx
144
189
  msgid "Advanced"
@@ -154,6 +199,11 @@ msgstr "all available endpoints and request formats."
154
199
  msgid "All collections are already in your navigation."
155
200
  msgstr "All collections are already in your navigation."
156
201
 
202
+ #. @context: Config Editor setting description
203
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
204
+ msgid "Allow published content to be read without an API token."
205
+ msgstr "Allow published content to be read without an API token."
206
+
157
207
  #. @context: Checkbox for allowing search engine indexing
158
208
  #: src/ui/dash/settings/GeneralContent.tsx
159
209
  msgid "Allow search engines to index my site"
@@ -222,6 +272,11 @@ msgstr "Archive feed"
222
272
  msgid "Archive filter parameters (e.g. format=note&view=list)"
223
273
  msgstr "Archive filter parameters (e.g. format=note&view=list)"
224
274
 
275
+ #. @context: Config Editor setting description
276
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
277
+ msgid "Ask search engines not to index public pages or include them in results."
278
+ msgstr "Ask search engines not to index public pages or include them in results."
279
+
225
280
  #. @context: Theme mode option label
226
281
  #: src/ui/dash/appearance/ColorThemeContent.tsx
227
282
  msgid "Auto"
@@ -246,6 +301,11 @@ msgstr "Avatar"
246
301
  msgid "Avatar display updated."
247
302
  msgstr "Avatar display updated."
248
303
 
304
+ #. @context: Button returning from page creation to page search
305
+ #: src/ui/dash/appearance/NavigationContent.tsx
306
+ msgid "Back"
307
+ msgstr "Back"
308
+
249
309
  #. @context: Settings item description for GitHub sync
250
310
  #: src/ui/dash/settings/SettingsRootContent.tsx
251
311
  msgid "Back up and sync content with a GitHub repository"
@@ -339,25 +399,60 @@ msgstr "Change Password"
339
399
  msgid "Changing this updates what subscribers get from /feed."
340
400
  msgstr "Changing this updates what subscribers get from /feed."
341
401
 
402
+ #. @context: Loading text while checking page slug availability
403
+ #: src/ui/dash/appearance/NavigationContent.tsx
404
+ msgid "Checking address…"
405
+ msgstr "Checking address…"
406
+
342
407
  #. @context: GitHub sync picker — status text while classifying the picked repo
343
408
  #: src/routes/dash/settings.tsx
344
409
  msgid "Checking repository…"
345
410
  msgstr "Checking repository…"
346
411
 
412
+ #. @context: Description for adding a page to navigation
413
+ #: src/ui/dash/appearance/NavigationContent.tsx
414
+ msgid "Choose a titled note that isn't already in navigation, or create a new page."
415
+ msgstr "Choose a titled note that isn't already in navigation, or create a new page."
416
+
347
417
  #. @context: Font theme settings description
348
418
  #: src/ui/dash/appearance/FontThemeContent.tsx
349
419
  msgid "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
350
420
  msgstr "Choose a typographic direction for your site. Each theme changes both the font pairing and the reading rhythm."
351
421
 
422
+ #. @context: Config Editor linked setting description
423
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
424
+ msgid "Choose the color palette used across Jant."
425
+ msgstr "Choose the color palette used across Jant."
426
+
427
+ #. @context: Config Editor setting description
428
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
429
+ msgid "Choose the content language announced to readers and search engines."
430
+ msgstr "Choose the content language announced to readers and search engines."
431
+
352
432
  #. @context: GitHub sync picker — page subtitle
353
433
  #: src/routes/dash/settings.tsx
354
434
  msgid "Choose the GitHub account and repository to sync with this site."
355
435
  msgstr "Choose the GitHub account and repository to sync with this site."
356
436
 
357
- #. @context: Settings form field for CJK serif font selection
437
+ #. @context: Config Editor linked setting description
438
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
439
+ msgid "Choose the repository used for content backups."
440
+ msgstr "Choose the repository used for content backups."
441
+
442
+ #. @context: Config Editor setting description
443
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
444
+ msgid "Choose the time zone used to display dates and times."
445
+ msgstr "Choose the time zone used to display dates and times."
446
+
447
+ #. @context: Config Editor linked setting description
448
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
449
+ msgid "Choose the typography used across Jant."
450
+ msgstr "Choose the typography used across Jant."
451
+
452
+ #. @context: Settings field for a manual Chinese, Japanese, or Korean font fallback
358
453
  #: src/ui/dash/settings/GeneralContent.tsx
359
- msgid "CJK Font"
360
- msgstr "CJK Font"
454
+ msgid "CJK fallback"
455
+ msgstr "CJK fallback"
361
456
 
362
457
  #. @context: Paper color theme preview help line
363
458
  #: src/ui/dash/appearance/ColorThemeContent.tsx
@@ -390,6 +485,21 @@ msgstr "collection"
390
485
  msgid "Collection"
391
486
  msgstr "Collection"
392
487
 
488
+ #. @context: Confirmation after adding a collection to navigation
489
+ #: src/ui/dash/appearance/NavigationContent.tsx
490
+ msgid "Collection added to navigation."
491
+ msgstr "Collection added to navigation."
492
+
493
+ #. @context: Heading after quick collection creation in Navigation settings
494
+ #: src/ui/dash/appearance/NavigationContent.tsx
495
+ msgid "Collection created."
496
+ msgstr "Collection created."
497
+
498
+ #. @context: Collection slug field in Navigation settings
499
+ #: src/ui/dash/appearance/NavigationContent.tsx
500
+ msgid "Collection link"
501
+ msgstr "Collection link"
502
+
393
503
  #. @context: Appearance settings heading
394
504
  #: src/ui/dash/appearance/ColorThemeContent.tsx
395
505
  msgid "Color theme"
@@ -402,6 +512,22 @@ msgstr "Color theme"
402
512
  msgid "Color Theme"
403
513
  msgstr "Color Theme"
404
514
 
515
+ #. @context: Breadcrumb label
516
+ #. @context: Config Editor page title
517
+ #. @context: Settings item — Config Editor
518
+ #: src/routes/dash/settings.tsx
519
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
520
+ #: src/ui/dash/settings/SettingsRootContent.tsx
521
+ msgid "Config Editor"
522
+ msgstr "Config Editor"
523
+
524
+ #. @context: Config Editor linked setting status
525
+ #. @context: Config Editor linked setting status
526
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
527
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
528
+ msgid "Configured"
529
+ msgstr "Configured"
530
+
405
531
  #. @context: Step 2 heading — user must type confirmation phrase
406
532
  #: src/ui/dash/settings/DeleteAccountContent.tsx
407
533
  msgid "Confirm account deletion"
@@ -434,6 +560,16 @@ msgstr "Connect a Telegram bot, then anything you message it gets published as a
434
560
  msgid "Connect manually"
435
561
  msgstr "Connect manually"
436
562
 
563
+ #. @context: Config Editor linked setting description
564
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
565
+ msgid "Connect or manage automatic content backups to GitHub."
566
+ msgstr "Connect or manage automatic content backups to GitHub."
567
+
568
+ #. @context: Config Editor linked setting description
569
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
570
+ msgid "Connect or manage the bot used to post from Telegram."
571
+ msgstr "Connect or manage the bot used to post from Telegram."
572
+
437
573
  #. @context: Heading on the Telegram settings page when ready to connect
438
574
  #: src/ui/dash/settings/TelegramContent.tsx
439
575
  msgid "Connect Telegram"
@@ -524,11 +660,26 @@ msgstr "Could not copy. Try again."
524
660
  msgid "Couldn't connect. Check the error and try again."
525
661
  msgstr "Couldn't connect. Check the error and try again."
526
662
 
663
+ #. @context: Error when quick collection creation fails in Navigation settings
664
+ #: src/ui/dash/appearance/NavigationContent.tsx
665
+ msgid "Couldn't create the collection. Check the details and try again."
666
+ msgstr "Couldn't create the collection. Check the details and try again."
667
+
668
+ #. @context: Error when quick page creation fails
669
+ #: src/ui/dash/appearance/NavigationContent.tsx
670
+ msgid "Couldn't create the page. Check the details and try again."
671
+ msgstr "Couldn't create the page. Check the details and try again."
672
+
527
673
  #. @context: Error toast when nav delete fails
528
674
  #: src/ui/dash/appearance/NavigationContent.tsx
529
675
  msgid "Couldn't delete. Try again in a moment."
530
676
  msgstr "Couldn't delete. Try again in a moment."
531
677
 
678
+ #. @context: Error shown when navigation page search fails
679
+ #: src/ui/dash/appearance/NavigationContent.tsx
680
+ msgid "Couldn't load pages. Try again in a moment."
681
+ msgstr "Couldn't load pages. Try again in a moment."
682
+
532
683
  #. @context: Error toast when nav save fails
533
684
  #: src/ui/dash/appearance/NavigationContent.tsx
534
685
  msgid "Couldn't save. Try again in a moment."
@@ -564,21 +715,46 @@ msgstr "Create a new repository on GitHub"
564
715
  msgid "Create a post with curl:"
565
716
  msgstr "Create a post with curl:"
566
717
 
718
+ #. @context: Description in the quick-create page dialog
719
+ #: src/ui/dash/appearance/NavigationContent.tsx
720
+ msgid "Create a public page that won't appear in Latest."
721
+ msgstr "Create a public page that won't appear in Latest."
722
+
567
723
  #. @context: Button to create the standard About page
568
724
  #: src/ui/dash/settings/GeneralContent.tsx
569
725
  msgid "Create About page"
570
726
  msgstr "Create About page"
571
727
 
728
+ #. @context: Button and dialog title for quick collection creation in Navigation settings
729
+ #: src/ui/dash/appearance/NavigationContent.tsx
730
+ msgid "Create Collection"
731
+ msgstr "Create Collection"
732
+
572
733
  #. @context: Button to save new custom URL
573
734
  #: src/routes/dash/custom-urls.tsx
574
735
  msgid "Create Custom URL"
575
736
  msgstr "Create Custom URL"
576
737
 
738
+ #. @context: Action at the bottom of the Navigation collection picker
739
+ #: src/ui/dash/appearance/NavigationContent.tsx
740
+ msgid "Create new collection"
741
+ msgstr "Create new collection"
742
+
743
+ #. @context: Action at the bottom of the navigation page picker
744
+ #: src/ui/dash/appearance/NavigationContent.tsx
745
+ msgid "Create new page"
746
+ msgstr "Create new page"
747
+
577
748
  #. @context: Link text pointing to GitHub's fine-grained PAT creation page
578
749
  #: src/ui/dash/settings/GitHubSyncContent.tsx
579
750
  msgid "Create one on GitHub"
580
751
  msgstr "Create one on GitHub"
581
752
 
753
+ #. @context: Button and dialog title for quick page creation
754
+ #: src/ui/dash/appearance/NavigationContent.tsx
755
+ msgid "Create Page"
756
+ msgstr "Create Page"
757
+
582
758
  #. @context: Help text for GitHub repository input on GitHub Sync settings, telling users they must create the repo themselves
583
759
  #: src/ui/dash/settings/GitHubSyncContent.tsx
584
760
  msgid "Create the repository on GitHub first — it can be empty."
@@ -589,6 +765,16 @@ msgstr "Create the repository on GitHub first — it can be empty."
589
765
  msgid "Created {date}"
590
766
  msgstr "Created {date}"
591
767
 
768
+ #. @context: Loading label while creating a collection in Navigation settings
769
+ #: src/ui/dash/appearance/NavigationContent.tsx
770
+ msgid "Creating collection…"
771
+ msgstr "Creating collection…"
772
+
773
+ #. @context: Loading label while creating a page
774
+ #: src/ui/dash/appearance/NavigationContent.tsx
775
+ msgid "Creating page…"
776
+ msgstr "Creating page…"
777
+
592
778
  #. @context: Badge indicating the current active session
593
779
  #: src/ui/dash/settings/SessionsContent.tsx
594
780
  msgid "Current"
@@ -649,6 +835,11 @@ msgstr "Dashboard language"
649
835
  msgid "Data"
650
836
  msgstr "Data"
651
837
 
838
+ #. @context: Config Editor setting description
839
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
840
+ msgid "Delay new posts and replies before they appear in feeds. Use 0 to turn this off."
841
+ msgstr "Delay new posts and replies before they appear in feeds. Use 0 to turn this off."
842
+
652
843
  #. @context: Button to delete custom URL
653
844
  #. @context: Button to delete item
654
845
  #. @context: Delete nav item
@@ -791,11 +982,41 @@ msgstr "Edit"
791
982
  msgid "Edit About page"
792
983
  msgstr "Edit About page"
793
984
 
985
+ #. @context: Button that opens a newly created collection for editing
986
+ #: src/ui/dash/appearance/NavigationContent.tsx
987
+ msgid "Edit Collection"
988
+ msgstr "Edit Collection"
989
+
990
+ #. @context: Button to edit the generated collection slug in Navigation settings
991
+ #: src/ui/dash/appearance/NavigationContent.tsx
992
+ msgid "Edit link"
993
+ msgstr "Edit link"
994
+
995
+ #. @context: Button that opens a page for editing
996
+ #: src/ui/dash/appearance/NavigationContent.tsx
997
+ msgid "Edit Page"
998
+ msgstr "Edit Page"
999
+
1000
+ #. @context: Config Editor linked setting description
1001
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1002
+ msgid "Edit the multi-line footer rendered at the bottom of public pages."
1003
+ msgstr "Edit the multi-line footer rendered at the bottom of public pages."
1004
+
1005
+ #. @context: Config Editor linked setting description
1006
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1007
+ msgid "Edit the multi-line introduction used on your home page and in metadata."
1008
+ msgstr "Edit the multi-line introduction used on your home page and in metadata."
1009
+
794
1010
  #. @context: GitHub sync picker — shown when the selected repo has no commits
795
1011
  #: src/routes/dash/settings.tsx
796
1012
  msgid "Empty repository. Ready to connect."
797
1013
  msgstr "Empty repository. Ready to connect."
798
1014
 
1015
+ #. @context: Validation error for an empty quick page title
1016
+ #: src/ui/dash/appearance/NavigationContent.tsx
1017
+ msgid "Enter a page title."
1018
+ msgstr "Enter a page title."
1019
+
799
1020
  #. @context: Help text under the archive feed URL, explaining it is the complete feed
800
1021
  #: src/ui/dash/settings/GeneralContent.tsx
801
1022
  msgid "Every published post, including ones hidden from Latest."
@@ -835,6 +1056,11 @@ msgstr "Featured"
835
1056
  msgid "Featured feed"
836
1057
  msgstr "Featured feed"
837
1058
 
1059
+ #. @context: Config Editor RSS feed enum option
1060
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1061
+ msgid "Featured posts"
1062
+ msgstr "Featured posts"
1063
+
838
1064
  #. @context: Toast after saving feed settings
839
1065
  #: src/routes/dash/settings.tsx
840
1066
  msgid "Feed settings updated."
@@ -865,11 +1091,25 @@ msgstr "Fine-grained styling overrides"
865
1091
  msgid "Fixed feed URLs"
866
1092
  msgstr "Fixed feed URLs"
867
1093
 
1094
+ #. @context: CJK font fallback option that uses the configured content language
1095
+ #. @context: Config Editor enum option for automatic CJK font fallback
1096
+ #. @context: Config Editor enum option for no explicit dashboard language
1097
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1098
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1099
+ #: src/ui/dash/settings/GeneralContent.tsx
1100
+ msgid "Follow content language"
1101
+ msgstr "Follow content language"
1102
+
868
1103
  #. @context: Theme mode option description
869
1104
  #: src/ui/dash/appearance/ColorThemeContent.tsx
870
1105
  msgid "Follow each visitor's system preference."
871
1106
  msgstr "Follow each visitor's system preference."
872
1107
 
1108
+ #. @context: Config Editor linked setting description
1109
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1110
+ msgid "Follow the device appearance or force a light or dark theme."
1111
+ msgstr "Follow the device appearance or force a light or dark theme."
1112
+
873
1113
  #. @context: Appearance settings heading for font theme
874
1114
  #: src/ui/dash/appearance/FontThemeContent.tsx
875
1115
  msgid "Font theme"
@@ -982,6 +1222,16 @@ msgstr "Install the GitHub App to grant access without managing personal tokens.
982
1222
  msgid "Integrations"
983
1223
  msgstr "Integrations"
984
1224
 
1225
+ #. @context: Validation error for a long page slug
1226
+ #: src/ui/dash/appearance/NavigationContent.tsx
1227
+ msgid "Keep the page address under 200 characters."
1228
+ msgstr "Keep the page address under 200 characters."
1229
+
1230
+ #. @context: Long collection slug error in Navigation settings
1231
+ #: src/ui/dash/appearance/NavigationContent.tsx
1232
+ msgid "Keep this link under 200 characters."
1233
+ msgstr "Keep this link under 200 characters."
1234
+
985
1235
  #. @context: Nav item label field
986
1236
  #: src/ui/dash/appearance/NavigationContent.tsx
987
1237
  msgid "Label"
@@ -1039,6 +1289,11 @@ msgstr "Latest"
1039
1289
  msgid "Latest feed"
1040
1290
  msgstr "Latest feed"
1041
1291
 
1292
+ #. @context: Config Editor RSS feed enum option
1293
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1294
+ msgid "Latest posts"
1295
+ msgstr "Latest posts"
1296
+
1042
1297
  #. @context: Suffix after Custom CSS link on color theme page
1043
1298
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1044
1299
  msgid "lets you override any theme variable."
@@ -1059,6 +1314,21 @@ msgstr "Light blue-gray background, cool and even."
1059
1314
  msgid "Light sage-green with a matching green accent."
1060
1315
  msgstr "Light sage-green with a matching green accent."
1061
1316
 
1317
+ #. @context: Config Editor setting description
1318
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1319
+ msgid "Limit characters used in automatically generated summaries."
1320
+ msgstr "Limit characters used in automatically generated summaries."
1321
+
1322
+ #. @context: Config Editor setting description
1323
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1324
+ msgid "Limit paragraphs used in automatically generated summaries."
1325
+ msgstr "Limit paragraphs used in automatically generated summaries."
1326
+
1327
+ #. @context: Config Editor setting description
1328
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1329
+ msgid "Limit posts included in each RSS feed."
1330
+ msgstr "Limit posts included in each RSS feed."
1331
+
1062
1332
  #. @context: Nav item type badge
1063
1333
  #: src/ui/dash/appearance/NavigationContent.tsx
1064
1334
  msgid "link"
@@ -1079,16 +1349,16 @@ msgstr "Link added to navigation."
1079
1349
  msgid "List posts:"
1080
1350
  msgstr "List posts:"
1081
1351
 
1082
- #. @context: Help text for CJK serif font selection
1083
- #: src/ui/dash/settings/GeneralContent.tsx
1084
- msgid "Load a serif font optimized for Chinese, Japanese, or Korean content."
1085
- msgstr "Load a serif font optimized for Chinese, Japanese, or Korean content."
1086
-
1087
1352
  #. @context: GitHub sync picker — loading state
1088
1353
  #: src/routes/dash/settings.tsx
1089
1354
  msgid "Loading…"
1090
1355
  msgstr "Loading…"
1091
1356
 
1357
+ #. @context: Config Editor badge for a setting locked by the runtime
1358
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1359
+ msgid "Locked"
1360
+ msgstr "Locked"
1361
+
1092
1362
  #. @context: Label for the canonical /feed URL
1093
1363
  #: src/ui/dash/settings/GeneralContent.tsx
1094
1364
  msgid "Main feed"
@@ -1149,6 +1419,11 @@ msgstr "Message the bot any text and it's published as a note."
1149
1419
  msgid "Minimal color, low distraction."
1150
1420
  msgstr "Minimal color, low distraction."
1151
1421
 
1422
+ #. @context: Config Editor badge for a database override
1423
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1424
+ msgid "Modified"
1425
+ msgstr "Modified"
1426
+
1152
1427
  #. @context: Section label for nav items hidden under More dropdown
1153
1428
  #: src/ui/dash/appearance/NavigationContent.tsx
1154
1429
  msgid "More"
@@ -1159,11 +1434,21 @@ msgstr "More"
1159
1434
  msgid "More actions"
1160
1435
  msgstr "More actions"
1161
1436
 
1437
+ #. @context: Helper text in quick collection creation in Navigation settings
1438
+ #: src/ui/dash/appearance/NavigationContent.tsx
1439
+ msgid "More options are available after you create it."
1440
+ msgstr "More options are available after you create it."
1441
+
1162
1442
  #. @context: Clay color theme preview body
1163
1443
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1164
1444
  msgid "Muted red-brown background, earthy and warm."
1165
1445
  msgstr "Muted red-brown background, earthy and warm."
1166
1446
 
1447
+ #. @context: Collection title placeholder in Navigation settings
1448
+ #: src/ui/dash/appearance/NavigationContent.tsx
1449
+ msgid "My Collection"
1450
+ msgstr "My Collection"
1451
+
1167
1452
  #. @context: Settings item description for general
1168
1453
  #: src/ui/dash/settings/SettingsRootContent.tsx
1169
1454
  msgid "Name, metadata, language, and search defaults"
@@ -1242,8 +1527,8 @@ msgstr "No active sessions right now. Signed-in devices show up here."
1242
1527
 
1243
1528
  #. @context: Empty state when no collections exist for nav picker
1244
1529
  #: src/ui/dash/appearance/NavigationContent.tsx
1245
- msgid "No collections yet. Create one first, then add it to your navigation."
1246
- msgstr "No collections yet. Create one first, then add it to your navigation."
1530
+ msgid "No collections yet. Create one here to add it to navigation."
1531
+ msgstr "No collections yet. Create one here to add it to navigation."
1247
1532
 
1248
1533
  #. @context: Empty state message
1249
1534
  #: src/routes/dash/custom-urls.tsx
@@ -1260,16 +1545,33 @@ msgstr "No file selected. Choose a file to upload."
1260
1545
  msgid "No matches."
1261
1546
  msgstr "No matches."
1262
1547
 
1548
+ #. @context: Empty search results in the page picker
1549
+ #: src/ui/dash/appearance/NavigationContent.tsx
1550
+ msgid "No matching pages available to add. Try another title or create a new page."
1551
+ msgstr "No matching pages available to add. Try another title or create a new page."
1552
+
1263
1553
  #. @context: Empty state for navigation items
1264
1554
  #: src/ui/dash/appearance/NavigationContent.tsx
1265
1555
  msgid "No navigation items yet. Add links or enable system items below."
1266
1556
  msgstr "No navigation items yet. Add links or enable system items below."
1267
1557
 
1558
+ #. @context: Empty state in the navigation page picker
1559
+ #: src/ui/dash/appearance/NavigationContent.tsx
1560
+ msgid "No pages available. Create one to add it to navigation."
1561
+ msgstr "No pages available. Create one to add it to navigation."
1562
+
1268
1563
  #. @context: GitHub sync picker — empty state when search returns nothing
1269
1564
  #: src/routes/dash/settings.tsx
1270
1565
  msgid "No repositories match."
1271
1566
  msgstr "No repositories match."
1272
1567
 
1568
+ #. @context: Config Editor linked setting status
1569
+ #. @context: Config Editor linked setting status
1570
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1571
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1572
+ msgid "Not configured"
1573
+ msgstr "Not configured"
1574
+
1273
1575
  #. @context: Shown when no sync has happened yet on GitHub Sync status
1274
1576
  #: src/ui/dash/settings/GitHubSyncContent.tsx
1275
1577
  msgid "Not synced yet"
@@ -1282,6 +1584,11 @@ msgstr "Not synced yet"
1282
1584
  msgid "Note"
1283
1585
  msgstr "Note"
1284
1586
 
1587
+ #. @context: Config Editor empty search state
1588
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1589
+ msgid "Nothing matches this search. Try a different name or description."
1590
+ msgstr "Nothing matches this search. Try a different name or description."
1591
+
1285
1592
  #. @context: Tufte color theme preview body
1286
1593
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1287
1594
  msgid "Off-white paper with a deep forest-green accent."
@@ -1292,6 +1599,13 @@ msgstr "Off-white paper with a deep forest-green accent."
1292
1599
  msgid "Open {linkOpen}@{botUsername}{linkClose} and send:"
1293
1600
  msgstr "Open {linkOpen}@{botUsername}{linkClose} and send:"
1294
1601
 
1602
+ #. @context: Config Editor link to a dedicated settings page
1603
+ #. @context: Config Editor link to a dedicated settings page
1604
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1605
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1606
+ msgid "Open setting"
1607
+ msgstr "Open setting"
1608
+
1295
1609
  #. @context: Button that opens the Telegram bot via a deep link
1296
1610
  #: src/ui/dash/settings/TelegramContent.tsx
1297
1611
  msgid "Open Telegram to connect"
@@ -1317,11 +1631,31 @@ msgstr "Orange-tinted background. The warmest palette."
1317
1631
  msgid "owner/repo"
1318
1632
  msgstr "owner/repo"
1319
1633
 
1634
+ #. @context: Nav item type badge for page items
1635
+ #: src/ui/dash/appearance/NavigationContent.tsx
1636
+ msgid "page"
1637
+ msgstr "page"
1638
+
1320
1639
  #. @context: Suggested navigation link target type
1321
1640
  #: src/ui/dash/appearance/NavigationContent.tsx
1322
1641
  msgid "Page"
1323
1642
  msgstr "Page"
1324
1643
 
1644
+ #. @context: Confirmation after adding a page to navigation
1645
+ #: src/ui/dash/appearance/NavigationContent.tsx
1646
+ msgid "Page added to navigation."
1647
+ msgstr "Page added to navigation."
1648
+
1649
+ #. @context: Slug field label in quick page creation
1650
+ #: src/ui/dash/appearance/NavigationContent.tsx
1651
+ msgid "Page address"
1652
+ msgstr "Page address"
1653
+
1654
+ #. @context: Heading after quick page creation
1655
+ #: src/ui/dash/appearance/NavigationContent.tsx
1656
+ msgid "Page created."
1657
+ msgstr "Page created."
1658
+
1325
1659
  #. @context: Bone color theme preview body
1326
1660
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1327
1661
  msgid "Pale bone-white with a muted green accent."
@@ -1421,6 +1755,11 @@ msgstr "Private"
1421
1755
  msgid "Processing..."
1422
1756
  msgstr "Processing..."
1423
1757
 
1758
+ #. @context: Config Editor setting description
1759
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1760
+ msgid "Publish Atom feeds for the site, archive, and collections."
1761
+ msgstr "Publish Atom feeds for the site, archive, and collections."
1762
+
1424
1763
  #. @context: Post status badge - published
1425
1764
  #: src/ui/dash/StatusBadge.tsx
1426
1765
  msgid "Published"
@@ -1461,6 +1800,11 @@ msgstr "Quote"
1461
1800
  msgid "Readers and search engines see"
1462
1801
  msgstr "Readers and search engines see"
1463
1802
 
1803
+ #. @context: Heading above recent pages in the page picker
1804
+ #: src/ui/dash/appearance/NavigationContent.tsx
1805
+ msgid "Recently updated"
1806
+ msgstr "Recently updated"
1807
+
1464
1808
  #. @context: Custom URL target type badge for a redirect
1465
1809
  #. @context: Custom URL type option
1466
1810
  #: src/routes/dash/custom-urls.tsx
@@ -1515,6 +1859,11 @@ msgstr "Remove this avatar? Your favicon and header icon will go back to the def
1515
1859
  msgid "Remove this collection from navigation? The collection itself won't be deleted."
1516
1860
  msgstr "Remove this collection from navigation? The collection itself won't be deleted."
1517
1861
 
1862
+ #. @context: Confirm dialog for removing a page from navigation
1863
+ #: src/ui/dash/appearance/NavigationContent.tsx
1864
+ msgid "Remove this page from navigation? The page itself won't be deleted."
1865
+ msgstr "Remove this page from navigation? The page itself won't be deleted."
1866
+
1518
1867
  #. @context: GitHub sync picker — repo dropdown label
1519
1868
  #. @context: Label for GitHub repository input on GitHub Sync settings
1520
1869
  #. @context: Label for connected repository on GitHub Sync status
@@ -1524,6 +1873,16 @@ msgstr "Remove this collection from navigation? The collection itself won't be d
1524
1873
  msgid "Repository"
1525
1874
  msgstr "Repository"
1526
1875
 
1876
+ #. @context: Button to reset the collection slug in Navigation settings
1877
+ #: src/ui/dash/appearance/NavigationContent.tsx
1878
+ msgid "Reset link"
1879
+ msgstr "Reset link"
1880
+
1881
+ #. @context: Config Editor row action
1882
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1883
+ msgid "Reset to default"
1884
+ msgstr "Reset to default"
1885
+
1527
1886
  #. @context: Button to revoke API token
1528
1887
  #. @context: Button to revoke a session
1529
1888
  #: src/ui/dash/settings/ApiTokensContent.tsx
@@ -1572,16 +1931,48 @@ msgstr "Save bot token"
1572
1931
  msgid "Save CSS"
1573
1932
  msgstr "Save CSS"
1574
1933
 
1934
+ #. @context: Config Editor row save status
1935
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1936
+ msgid "Saved"
1937
+ msgstr "Saved"
1938
+
1939
+ #. @context: Config Editor row save status
1940
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1941
+ msgid "Saving…"
1942
+ msgstr "Saving…"
1943
+
1575
1944
  #. @context: Settings section heading for search engine indexing settings
1576
1945
  #: src/ui/dash/settings/GeneralContent.tsx
1577
1946
  msgid "Search"
1578
1947
  msgstr "Search"
1579
1948
 
1949
+ #. @context: Config Editor page description
1950
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1951
+ msgid "Search and edit runtime settings. Changes apply immediately; reset restores the environment or built-in default."
1952
+ msgstr "Search and edit runtime settings. Changes apply immediately; reset restores the environment or built-in default."
1953
+
1954
+ #. @context: Placeholder for the navigation page search
1955
+ #: src/ui/dash/appearance/NavigationContent.tsx
1956
+ msgid "Search pages"
1957
+ msgstr "Search pages"
1958
+
1580
1959
  #. @context: GitHub sync picker — search input placeholder
1581
1960
  #: src/routes/dash/settings.tsx
1582
1961
  msgid "Search repositories"
1583
1962
  msgstr "Search repositories"
1584
1963
 
1964
+ #. @context: Settings item description for Config Editor
1965
+ #: src/ui/dash/settings/SettingsRootContent.tsx
1966
+ msgid "Search runtime settings and open advanced configuration"
1967
+ msgstr "Search runtime settings and open advanced configuration"
1968
+
1969
+ #. @context: Config Editor search input placeholder
1970
+ #. @context: Config Editor search input placeholder
1971
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1972
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
1973
+ msgid "Search settings"
1974
+ msgstr "Search settings"
1975
+
1585
1976
  #. @context: Toast after saving search settings
1586
1977
  #. @context: Toast after saving search settings
1587
1978
  #: src/routes/dash/settings.tsx
@@ -1594,6 +1985,11 @@ msgstr "Search settings updated."
1594
1985
  msgid "Search…"
1595
1986
  msgstr "Search…"
1596
1987
 
1988
+ #. @context: Loading state in the navigation page picker
1989
+ #: src/ui/dash/appearance/NavigationContent.tsx
1990
+ msgid "Searching pages…"
1991
+ msgstr "Searching pages…"
1992
+
1597
1993
  #. @context: Settings group label for account security settings
1598
1994
  #: src/ui/dash/settings/AccountMenuContent.tsx
1599
1995
  msgid "Security"
@@ -1636,6 +2032,21 @@ msgstr "Session management is off in demo mode. Use the shared demo session inst
1636
2032
  msgid "Sessions"
1637
2033
  msgstr "Sessions"
1638
2034
 
2035
+ #. @context: Config Editor setting description
2036
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2037
+ msgid "Set posts per archive page; reset to inherit the main page size."
2038
+ msgstr "Set posts per archive page; reset to inherit the main page size."
2039
+
2040
+ #. @context: Config Editor setting description
2041
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2042
+ msgid "Set results per search page; reset to inherit the main page size."
2043
+ msgstr "Set results per search page; reset to inherit the main page size."
2044
+
2045
+ #. @context: Config Editor setting description
2046
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2047
+ msgid "Set the default number of items shown per page."
2048
+ msgstr "Set the default number of items shown per page."
2049
+
1639
2050
  #. @context: Breadcrumb label
1640
2051
  #. @context: Page title for the settings home page
1641
2052
  #: src/routes/dash/settings.tsx
@@ -1648,11 +2059,26 @@ msgstr "Settings"
1648
2059
  msgid "Show \"Build with Jant\" at the bottom of the home page"
1649
2060
  msgstr "Show \"Build with Jant\" at the bottom of the home page"
1650
2061
 
2062
+ #. @context: Config Editor filter checkbox
2063
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2064
+ msgid "Show only modified"
2065
+ msgstr "Show only modified"
2066
+
1651
2067
  #. @context: Description for built-in nav toggles
1652
2068
  #: src/ui/dash/appearance/NavigationContent.tsx
1653
2069
  msgid "Show or hide built-in destinations in the header and More menu."
1654
2070
  msgstr "Show or hide built-in destinations in the header and More menu."
1655
2071
 
2072
+ #. @context: Config Editor setting description
2073
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2074
+ msgid "Show the Jant credit on the home page."
2075
+ msgstr "Show the Jant credit on the home page."
2076
+
2077
+ #. @context: Config Editor linked setting description
2078
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2079
+ msgid "Show the site avatar in the public header."
2080
+ msgstr "Show the site avatar in the public header."
2081
+
1656
2082
  #. @context: GitHub sync picker — paginated repo count hint. Placeholders {shown} and {total} are integers.
1657
2083
  #: src/routes/dash/settings.tsx
1658
2084
  msgid "Showing {shown} of {total}"
@@ -1768,6 +2194,16 @@ msgstr "Telegram"
1768
2194
  msgid "Telegram is set up, but the bot couldn't be reached. Check the bot token and try again."
1769
2195
  msgstr "Telegram is set up, but the bot couldn't be reached. Check the bot token and try again."
1770
2196
 
2197
+ #. @context: Validation error for an unavailable page slug
2198
+ #: src/ui/dash/appearance/NavigationContent.tsx
2199
+ msgid "That address is already in use. Choose another one."
2200
+ msgstr "That address is already in use. Choose another one."
2201
+
2202
+ #. @context: Validation error for a reserved page slug
2203
+ #: src/ui/dash/appearance/NavigationContent.tsx
2204
+ msgid "That address is reserved. Choose another one."
2205
+ msgstr "That address is reserved. Choose another one."
2206
+
1771
2207
  #. @context: Error toast when selected font theme is not valid
1772
2208
  #: src/routes/dash/settings.tsx
1773
2209
  msgid "That font theme isn't available. Pick another one."
@@ -1793,6 +2229,11 @@ msgstr "The default. Calm and easy for long reading."
1793
2229
  msgid "The language this admin dashboard shows in. Available in English, 简体中文, and 繁體中文."
1794
2230
  msgstr "The language this admin dashboard shows in. Available in English, 简体中文, and 繁體中文."
1795
2231
 
2232
+ #. @context: Config Editor setting description
2233
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2234
+ msgid "The language used by the private Jant dashboard."
2235
+ msgstr "The language used by the private Jant dashboard."
2236
+
1796
2237
  #. @context: Help text under the content language picker
1797
2238
  #: src/ui/dash/settings/GeneralContent.tsx
1798
2239
  msgid "The language your posts are written in. Announced to readers and search engines through HTML lang and your RSS feed. Any BCP 47 tag works."
@@ -1803,11 +2244,26 @@ msgstr "The language your posts are written in. Announced to readers and search
1803
2244
  msgid "The original Jant palette, and a solid everyday pick."
1804
2245
  msgstr "The original Jant palette, and a solid everyday pick."
1805
2246
 
2247
+ #. @context: Visibility note in quick page creation
2248
+ #: src/ui/dash/appearance/NavigationContent.tsx
2249
+ msgid "The page is public but stays out of Latest."
2250
+ msgstr "The page is public but stays out of Latest."
2251
+
2252
+ #. @context: Config Editor setting description
2253
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2254
+ msgid "The serif fallback used when the content language has no built-in profile."
2255
+ msgstr "The serif fallback used when the content language has no built-in profile."
2256
+
1806
2257
  #. @context: Custom URL target slug help text
1807
2258
  #: src/routes/dash/custom-urls.tsx
1808
2259
  msgid "The slug of the target post or collection"
1809
2260
  msgstr "The slug of the target post or collection"
1810
2261
 
2262
+ #. @context: Config Editor setting description
2263
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2264
+ msgid "The title used across your site, browser tabs, and feeds."
2265
+ msgstr "The title used across your site, browser tabs, and feeds."
2266
+
1811
2267
  #. @context: Link to theming documentation on Custom CSS page
1812
2268
  #: src/ui/dash/appearance/AdvancedContent.tsx
1813
2269
  msgid "Theming guide"
@@ -1838,11 +2294,21 @@ msgstr "This controls what /feed returns."
1838
2294
  msgid "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
1839
2295
  msgstr "This hosted site signs in through {providerLabel}. Manage password and hosted access there."
1840
2296
 
2297
+ #. @context: Collection slug help text in Navigation settings
2298
+ #: src/ui/dash/appearance/NavigationContent.tsx
2299
+ msgid "This is the last part of the collection link."
2300
+ msgstr "This is the last part of the collection link."
2301
+
1841
2302
  #. @context: Help text for avatar upload
1842
2303
  #: src/ui/dash/settings/AvatarContent.tsx
1843
2304
  msgid "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
1844
2305
  msgstr "This is used for your favicon and apple-touch-icon. For best results, upload a square PNG with a solid background at least 512x512 pixels."
1845
2306
 
2307
+ #. @context: Reserved collection slug error in Navigation settings
2308
+ #: src/ui/dash/appearance/NavigationContent.tsx
2309
+ msgid "This link is reserved. Choose something else."
2310
+ msgstr "This link is reserved. Choose something else."
2311
+
1846
2312
  #. @context: Fallback color theme preview title
1847
2313
  #: src/ui/dash/appearance/ColorThemeContent.tsx
1848
2314
  msgid "This palette"
@@ -1868,6 +2334,11 @@ msgstr "This repository is already backing up another Jant site ({host}). Pick a
1868
2334
  msgid "This repository is already backing up this site."
1869
2335
  msgstr "This repository is already backing up this site."
1870
2336
 
2337
+ #. @context: Config Editor fallback error message
2338
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2339
+ msgid "This setting wasn't saved. Check the value and try again."
2340
+ msgstr "This setting wasn't saved. Check the value and try again."
2341
+
1871
2342
  #. @context: Warning text on account deletion page
1872
2343
  #: src/ui/dash/settings/DeleteAccountContent.tsx
1873
2344
  msgid "This will permanently delete all your data — posts, media, collections, settings, and your account. Your blog will be reset to its initial setup state. This cannot be undone."
@@ -1878,6 +2349,13 @@ msgstr "This will permanently delete all your data — posts, media, collections
1878
2349
  msgid "Time Zone"
1879
2350
  msgstr "Time Zone"
1880
2351
 
2352
+ #. @context: Collection title field in Navigation settings
2353
+ #. @context: Title field label in quick page creation
2354
+ #: src/ui/dash/appearance/NavigationContent.tsx
2355
+ #: src/ui/dash/appearance/NavigationContent.tsx
2356
+ msgid "Title"
2357
+ msgstr "Title"
2358
+
1881
2359
  #. @context: Button to expand/collapse nav item edit
1882
2360
  #: src/ui/dash/appearance/NavigationContent.tsx
1883
2361
  msgid "Toggle edit panel"
@@ -1953,6 +2431,11 @@ msgstr "Upload didn't go through. Try again in a moment."
1953
2431
  msgid "Upload failed. Please try again."
1954
2432
  msgstr "Upload failed. Please try again."
1955
2433
 
2434
+ #. @context: Config Editor linked setting description
2435
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2436
+ msgid "Upload the profile image and generated site icons."
2437
+ msgstr "Upload the profile image and generated site icons."
2438
+
1956
2439
  #. @context: Avatar upload button text while uploading
1957
2440
  #: src/ui/dash/settings/AvatarContent.tsx
1958
2441
  msgid "Uploading..."
@@ -1968,11 +2451,26 @@ msgstr "URL"
1968
2451
  msgid "Usage"
1969
2452
  msgstr "Usage"
1970
2453
 
2454
+ #. @context: Collection slug validation error in Navigation settings
2455
+ #: src/ui/dash/appearance/NavigationContent.tsx
2456
+ msgid "Use lowercase letters, numbers, and hyphens only."
2457
+ msgstr "Use lowercase letters, numbers, and hyphens only."
2458
+
2459
+ #. @context: Validation error for an invalid page slug
2460
+ #: src/ui/dash/appearance/NavigationContent.tsx
2461
+ msgid "Use lowercase letters, numbers, and hyphens."
2462
+ msgstr "Use lowercase letters, numbers, and hyphens."
2463
+
1971
2464
  #. @context: Help text for the explicit latest and featured feed URLs
1972
2465
  #: src/ui/dash/settings/GeneralContent.tsx
1973
2466
  msgid "Use these when you want a feed URL that never changes."
1974
2467
  msgstr "Use these when you want a feed URL that never changes."
1975
2468
 
2469
+ #. @context: Help text for the manual CJK font fallback setting
2470
+ #: src/ui/dash/settings/GeneralContent.tsx
2471
+ msgid "Used when the content language has no built-in font profile. Your font theme still controls serif and sans styling."
2472
+ msgstr "Used when the content language has no built-in font profile. Your font theme still controls serif and sans styling."
2473
+
1976
2474
  #. @context: Description for choosing featured posts as the main RSS feed
1977
2475
  #: src/ui/dash/settings/GeneralContent.tsx
1978
2476
  msgid "Uses featured posts for /feed."
@@ -2073,6 +2571,11 @@ msgstr "When to use site export, database backups, and recovery drills."
2073
2571
  msgid "When you want a cooler, sharper look."
2074
2572
  msgstr "When you want a cooler, sharper look."
2075
2573
 
2574
+ #. @context: Config Editor setting description
2575
+ #: src/ui/dash/settings/ConfigEditorContent.tsx
2576
+ msgid "Which post stream the canonical /feed URL returns."
2577
+ msgstr "Which post stream the canonical /feed URL returns."
2578
+
2076
2579
  #. @context: Parchment color theme preview body
2077
2580
  #: src/ui/dash/appearance/ColorThemeContent.tsx
2078
2581
  msgid "Yellow-tinted paper with an olive-green accent."