@jant/core 0.3.22 → 0.3.24

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 (178) hide show
  1. package/dist/app.js +23 -5
  2. package/dist/db/schema.js +72 -47
  3. package/dist/i18n/locales/en.js +1 -1
  4. package/dist/i18n/locales/zh-Hans.js +1 -1
  5. package/dist/i18n/locales/zh-Hant.js +1 -1
  6. package/dist/index.js +5 -6
  7. package/dist/lib/constants.js +1 -4
  8. package/dist/lib/excerpt.js +76 -0
  9. package/dist/lib/feed.js +18 -7
  10. package/dist/lib/navigation.js +4 -5
  11. package/dist/lib/render.js +1 -1
  12. package/dist/lib/schemas.js +80 -38
  13. package/dist/lib/theme-components.js +8 -11
  14. package/dist/lib/time.js +56 -1
  15. package/dist/lib/timeline.js +119 -0
  16. package/dist/lib/view.js +62 -73
  17. package/dist/routes/api/posts.js +29 -35
  18. package/dist/routes/api/search.js +5 -6
  19. package/dist/routes/api/upload.js +13 -13
  20. package/dist/routes/dash/collections.js +22 -40
  21. package/dist/routes/dash/index.js +2 -2
  22. package/dist/routes/dash/navigation.js +25 -24
  23. package/dist/routes/dash/pages.js +42 -57
  24. package/dist/routes/dash/posts.js +27 -35
  25. package/dist/routes/feed/rss.js +2 -4
  26. package/dist/routes/feed/sitemap.js +10 -7
  27. package/dist/routes/pages/archive.js +12 -11
  28. package/dist/routes/pages/collection.js +11 -5
  29. package/dist/routes/pages/home.js +53 -61
  30. package/dist/routes/pages/page.js +60 -29
  31. package/dist/routes/pages/post.js +5 -12
  32. package/dist/routes/pages/search.js +3 -4
  33. package/dist/services/collection.js +52 -64
  34. package/dist/services/index.js +5 -3
  35. package/dist/services/navigation.js +29 -53
  36. package/dist/services/page.js +80 -0
  37. package/dist/services/post.js +68 -69
  38. package/dist/services/search.js +24 -18
  39. package/dist/theme/components/MediaGallery.js +19 -91
  40. package/dist/theme/components/PageForm.js +15 -15
  41. package/dist/theme/components/PostForm.js +136 -129
  42. package/dist/theme/components/PostList.js +13 -8
  43. package/dist/theme/components/ThreadView.js +3 -3
  44. package/dist/theme/components/TypeBadge.js +3 -14
  45. package/dist/theme/components/VisibilityBadge.js +33 -23
  46. package/dist/theme/components/index.js +0 -2
  47. package/dist/theme/index.js +10 -16
  48. package/dist/theme/layouts/index.js +0 -1
  49. package/dist/themes/threads/ThreadsSiteLayout.js +172 -0
  50. package/dist/themes/threads/index.js +81 -0
  51. package/dist/{theme → themes/threads}/pages/ArchivePage.js +31 -47
  52. package/dist/themes/threads/pages/CollectionPage.js +65 -0
  53. package/dist/{theme → themes/threads}/pages/HomePage.js +4 -5
  54. package/dist/{theme → themes/threads}/pages/PostPage.js +10 -8
  55. package/dist/{theme → themes/threads}/pages/SearchPage.js +8 -8
  56. package/dist/{theme → themes/threads}/pages/SinglePage.js +5 -6
  57. package/dist/{theme/components → themes/threads}/timeline/LinkCard.js +20 -11
  58. package/dist/themes/threads/timeline/NoteCard.js +53 -0
  59. package/dist/themes/threads/timeline/QuoteCard.js +59 -0
  60. package/dist/{theme/components → themes/threads}/timeline/ThreadPreview.js +5 -6
  61. package/dist/themes/threads/timeline/TimelineFeed.js +58 -0
  62. package/dist/{theme/components → themes/threads}/timeline/TimelineItem.js +8 -17
  63. package/dist/themes/threads/timeline/TimelineLoadMore.js +23 -0
  64. package/dist/themes/threads/timeline/groupByDate.js +22 -0
  65. package/dist/themes/threads/timeline/timelineMore.js +107 -0
  66. package/dist/types.js +24 -40
  67. package/package.json +2 -1
  68. package/src/__tests__/helpers/app.ts +4 -0
  69. package/src/__tests__/helpers/db.ts +51 -74
  70. package/src/app.tsx +27 -6
  71. package/src/db/migrations/0005_v2_schema_migration.sql +268 -0
  72. package/src/db/migrations/meta/_journal.json +7 -0
  73. package/src/db/schema.ts +63 -46
  74. package/src/i18n/locales/en.po +216 -164
  75. package/src/i18n/locales/en.ts +1 -1
  76. package/src/i18n/locales/zh-Hans.po +216 -164
  77. package/src/i18n/locales/zh-Hans.ts +1 -1
  78. package/src/i18n/locales/zh-Hant.po +216 -164
  79. package/src/i18n/locales/zh-Hant.ts +1 -1
  80. package/src/index.ts +30 -15
  81. package/src/lib/__tests__/excerpt.test.ts +125 -0
  82. package/src/lib/__tests__/schemas.test.ts +166 -105
  83. package/src/lib/__tests__/theme-components.test.ts +4 -25
  84. package/src/lib/__tests__/time.test.ts +62 -0
  85. package/src/{routes/api → lib}/__tests__/timeline.test.ts +108 -66
  86. package/src/lib/__tests__/view.test.ts +217 -67
  87. package/src/lib/constants.ts +1 -4
  88. package/src/lib/excerpt.ts +87 -0
  89. package/src/lib/feed.ts +22 -7
  90. package/src/lib/navigation.ts +6 -7
  91. package/src/lib/render.tsx +1 -1
  92. package/src/lib/schemas.ts +118 -52
  93. package/src/lib/theme-components.ts +10 -13
  94. package/src/lib/time.ts +64 -0
  95. package/src/lib/timeline.ts +170 -0
  96. package/src/lib/view.ts +81 -83
  97. package/src/preset.css +45 -0
  98. package/src/routes/api/__tests__/posts.test.ts +50 -108
  99. package/src/routes/api/__tests__/search.test.ts +2 -3
  100. package/src/routes/api/posts.ts +30 -30
  101. package/src/routes/api/search.ts +4 -4
  102. package/src/routes/api/upload.ts +16 -6
  103. package/src/routes/dash/collections.tsx +18 -40
  104. package/src/routes/dash/index.tsx +2 -2
  105. package/src/routes/dash/navigation.tsx +27 -26
  106. package/src/routes/dash/pages.tsx +45 -60
  107. package/src/routes/dash/posts.tsx +44 -52
  108. package/src/routes/feed/rss.ts +2 -1
  109. package/src/routes/feed/sitemap.ts +14 -4
  110. package/src/routes/pages/archive.tsx +14 -10
  111. package/src/routes/pages/collection.tsx +17 -6
  112. package/src/routes/pages/home.tsx +56 -81
  113. package/src/routes/pages/page.tsx +64 -27
  114. package/src/routes/pages/post.tsx +5 -14
  115. package/src/routes/pages/search.tsx +2 -2
  116. package/src/services/__tests__/collection.test.ts +257 -158
  117. package/src/services/__tests__/media.test.ts +18 -18
  118. package/src/services/__tests__/navigation.test.ts +161 -87
  119. package/src/services/__tests__/post-timeline.test.ts +92 -88
  120. package/src/services/__tests__/post.test.ts +342 -206
  121. package/src/services/__tests__/search.test.ts +19 -25
  122. package/src/services/collection.ts +71 -113
  123. package/src/services/index.ts +9 -8
  124. package/src/services/navigation.ts +38 -71
  125. package/src/services/page.ts +124 -0
  126. package/src/services/post.ts +93 -103
  127. package/src/services/search.ts +38 -27
  128. package/src/styles/components.css +0 -54
  129. package/src/theme/components/MediaGallery.tsx +27 -96
  130. package/src/theme/components/PageForm.tsx +21 -21
  131. package/src/theme/components/PostForm.tsx +122 -118
  132. package/src/theme/components/PostList.tsx +58 -49
  133. package/src/theme/components/ThreadView.tsx +6 -3
  134. package/src/theme/components/TypeBadge.tsx +9 -17
  135. package/src/theme/components/VisibilityBadge.tsx +40 -23
  136. package/src/theme/components/index.ts +0 -13
  137. package/src/theme/index.ts +10 -16
  138. package/src/theme/layouts/index.ts +0 -1
  139. package/src/themes/threads/ThreadsSiteLayout.tsx +194 -0
  140. package/src/themes/threads/index.ts +100 -0
  141. package/src/{theme → themes/threads}/pages/ArchivePage.tsx +52 -55
  142. package/src/themes/threads/pages/CollectionPage.tsx +61 -0
  143. package/src/{theme → themes/threads}/pages/HomePage.tsx +5 -6
  144. package/src/{theme → themes/threads}/pages/PostPage.tsx +11 -8
  145. package/src/{theme → themes/threads}/pages/SearchPage.tsx +9 -13
  146. package/src/themes/threads/pages/SinglePage.tsx +23 -0
  147. package/src/themes/threads/style.css +336 -0
  148. package/src/{theme/components → themes/threads}/timeline/LinkCard.tsx +21 -13
  149. package/src/themes/threads/timeline/NoteCard.tsx +58 -0
  150. package/src/themes/threads/timeline/QuoteCard.tsx +63 -0
  151. package/src/{theme/components → themes/threads}/timeline/ThreadPreview.tsx +6 -6
  152. package/src/themes/threads/timeline/TimelineFeed.tsx +62 -0
  153. package/src/{theme/components → themes/threads}/timeline/TimelineItem.tsx +9 -20
  154. package/src/themes/threads/timeline/TimelineLoadMore.tsx +35 -0
  155. package/src/themes/threads/timeline/groupByDate.ts +30 -0
  156. package/src/themes/threads/timeline/timelineMore.tsx +130 -0
  157. package/src/types.ts +242 -98
  158. package/dist/routes/api/timeline.js +0 -120
  159. package/dist/theme/components/timeline/ArticleCard.js +0 -46
  160. package/dist/theme/components/timeline/ImageCard.js +0 -83
  161. package/dist/theme/components/timeline/NoteCard.js +0 -34
  162. package/dist/theme/components/timeline/QuoteCard.js +0 -48
  163. package/dist/theme/components/timeline/TimelineFeed.js +0 -46
  164. package/dist/theme/components/timeline/index.js +0 -8
  165. package/dist/theme/layouts/SiteLayout.js +0 -131
  166. package/dist/theme/pages/CollectionPage.js +0 -63
  167. package/dist/theme/pages/index.js +0 -11
  168. package/src/routes/api/timeline.tsx +0 -159
  169. package/src/theme/components/timeline/ArticleCard.tsx +0 -45
  170. package/src/theme/components/timeline/ImageCard.tsx +0 -70
  171. package/src/theme/components/timeline/NoteCard.tsx +0 -34
  172. package/src/theme/components/timeline/QuoteCard.tsx +0 -48
  173. package/src/theme/components/timeline/TimelineFeed.tsx +0 -56
  174. package/src/theme/components/timeline/index.ts +0 -8
  175. package/src/theme/layouts/SiteLayout.tsx +0 -132
  176. package/src/theme/pages/CollectionPage.tsx +0 -60
  177. package/src/theme/pages/SinglePage.tsx +0 -24
  178. package/src/theme/pages/index.ts +0 -13
@@ -19,7 +19,7 @@ msgstr ""
19
19
  #~ msgstr "{count} 條回覆"
20
20
 
21
21
  #. @context: Navigation link
22
- #: src/routes/dash/collections.tsx:282
22
+ #: src/routes/dash/collections.tsx:271
23
23
  msgid "← Back to Collections"
24
24
  msgstr "← 返回收藏夾"
25
25
 
@@ -44,12 +44,12 @@ msgid "Account"
44
44
  msgstr "帳戶"
45
45
 
46
46
  #. @context: Button to open media picker
47
- #: src/theme/components/PostForm.tsx:190
47
+ #: src/theme/components/PostForm.tsx:212
48
48
  msgid "Add Media"
49
49
  msgstr "添加媒體"
50
50
 
51
- #. @context: Archive filter - all types
52
- #: src/theme/pages/ArchivePage.tsx:92
51
+ #. @context: Archive filter - all formats
52
+ #: src/themes/threads/pages/ArchivePage.tsx:71
53
53
  msgid "All"
54
54
  msgstr "所有"
55
55
 
@@ -59,12 +59,12 @@ msgid "Appearance"
59
59
  msgstr "外觀"
60
60
 
61
61
  #. @context: Archive page title
62
- #: src/theme/pages/ArchivePage.tsx:77
62
+ #: src/themes/threads/pages/ArchivePage.tsx:56
63
63
  msgid "Archive"
64
64
  msgstr "檔案館"
65
65
 
66
66
  #. @context: Confirmation dialog when deleting a post from the list
67
- #: src/theme/components/PostList.tsx:56
67
+ #: src/theme/components/PostList.tsx:60
68
68
  msgid "Are you sure you want to delete this post? This cannot be undone."
69
69
  msgstr ""
70
70
 
@@ -73,19 +73,19 @@ msgstr ""
73
73
  #. @context: Post type option
74
74
  #: src/theme/components/PostForm.tsx:74
75
75
  #: src/theme/components/TypeBadge.tsx:20
76
- #: src/theme/pages/ArchivePage.tsx:18
77
- msgid "Article"
78
- msgstr "文章"
76
+ #: src/themes/threads/pages/ArchivePage.tsx:17
77
+ #~ msgid "Article"
78
+ #~ msgstr "文章"
79
79
 
80
80
  #. @context: Post type label plural - articles
81
- #: src/theme/pages/ArchivePage.tsx:43
82
- msgid "Articles"
83
- msgstr "文章"
81
+ #: src/themes/threads/pages/ArchivePage.tsx:42
82
+ #~ msgid "Articles"
83
+ #~ msgstr "文章"
84
84
 
85
85
  #. @context: Hint for image post type media requirement
86
86
  #: src/theme/components/PostForm.tsx:137
87
- msgid "At least 1 image required for image posts."
88
- msgstr "至少需要 1 張圖片才能發佈圖片帖子。"
87
+ #~ msgid "At least 1 image required for image posts."
88
+ #~ msgstr "至少需要 1 張圖片才能發佈圖片帖子。"
89
89
 
90
90
  #. @context: Button to go back to media list
91
91
  #: src/routes/dash/media.tsx:266
@@ -99,11 +99,11 @@ msgstr "返回"
99
99
  #. @context: Button to cancel form
100
100
  #. @context: Button to cancel form
101
101
  #: src/routes/dash/collections.tsx:186
102
- #: src/routes/dash/collections.tsx:365
102
+ #: src/routes/dash/collections.tsx:354
103
103
  #: src/routes/dash/navigation.tsx:192
104
104
  #: src/routes/dash/redirects.tsx:177
105
105
  #: src/theme/components/PageForm.tsx:171
106
- #: src/theme/components/PostForm.tsx:333
106
+ #: src/theme/components/PostForm.tsx:337
107
107
  msgid "Cancel"
108
108
  msgstr "取消"
109
109
 
@@ -119,6 +119,11 @@ msgstr "更改密碼"
119
119
  msgid "Click image to view full size"
120
120
  msgstr "點擊圖片以查看完整大小"
121
121
 
122
+ #. @context: Post form field - assign to collection
123
+ #: src/theme/components/PostForm.tsx:265
124
+ msgid "Collection (optional)"
125
+ msgstr ""
126
+
122
127
  #. @context: Dashboard heading
123
128
  #. @context: Dashboard navigation - collections management
124
129
  #: src/routes/dash/collections.tsx:35
@@ -128,8 +133,8 @@ msgstr "收藏夾"
128
133
 
129
134
  #. @context: Post form field - assign to collections
130
135
  #: src/theme/components/PostForm.tsx:273
131
- msgid "Collections (optional)"
132
- msgstr "收藏(可選)"
136
+ #~ msgid "Collections (optional)"
137
+ #~ msgstr "收藏(可選)"
133
138
 
134
139
  #. @context: Appearance settings heading
135
140
  #: src/routes/dash/settings.tsx:311
@@ -137,7 +142,7 @@ msgid "Color theme"
137
142
  msgstr "顏色主題"
138
143
 
139
144
  #. @context: Setup form submit button
140
- #: src/app.tsx:254
145
+ #: src/app.tsx:275
141
146
  msgid "Complete Setup"
142
147
  msgstr "完成設置"
143
148
 
@@ -147,14 +152,14 @@ msgid "Confirm New Password"
147
152
  msgstr "確認新密碼"
148
153
 
149
154
  #. @context: Password reset form field
150
- #: src/app.tsx:515
155
+ #: src/app.tsx:536
151
156
  msgid "Confirm Password"
152
157
  msgstr "確認密碼"
153
158
 
154
159
  #. @context: Page form field label - content
155
160
  #. @context: Post form field
156
161
  #: src/theme/components/PageForm.tsx:96
157
- #: src/theme/components/PostForm.tsx:110
162
+ #: src/theme/components/PostForm.tsx:105
158
163
  msgid "Content"
159
164
  msgstr "內容"
160
165
 
@@ -186,12 +191,12 @@ msgid "Create Redirect"
186
191
  msgstr "建立重定向"
187
192
 
188
193
  #. @context: Setup page description
189
- #: src/app.tsx:194
194
+ #: src/app.tsx:215
190
195
  msgid "Create your admin account."
191
196
  msgstr "建立您的管理員帳戶。"
192
197
 
193
198
  #. @context: Button in empty state to create first page
194
- #: src/routes/dash/pages.tsx:50
199
+ #: src/routes/dash/pages.tsx:48
195
200
  msgid "Create your first page"
196
201
  msgstr "建立您的第一個頁面"
197
202
 
@@ -207,8 +212,18 @@ msgstr "當前密碼"
207
212
 
208
213
  #. @context: Post form field
209
214
  #: src/theme/components/PostForm.tsx:297
210
- msgid "Custom Path (optional)"
211
- msgstr "自訂路徑(選填)"
215
+ #~ msgid "Custom Path (optional)"
216
+ #~ msgstr "自訂路徑(選填)"
217
+
218
+ #. @context: Post form field
219
+ #: src/theme/components/PostForm.tsx:293
220
+ msgid "Custom Slug (optional)"
221
+ msgstr ""
222
+
223
+ #. @context: Slug help text
224
+ #: src/theme/components/PostForm.tsx:306
225
+ msgid "Custom URL path. Leave empty to use default /p/ID format."
226
+ msgstr ""
212
227
 
213
228
  #. @context: Section heading for dangerous/destructive actions
214
229
  #: src/theme/components/DangerZone.tsx:55
@@ -232,7 +247,7 @@ msgid "Delete"
232
247
  msgstr "刪除"
233
248
 
234
249
  #. @context: Button to delete collection
235
- #: src/routes/dash/collections.tsx:374
250
+ #: src/routes/dash/collections.tsx:363
236
251
  msgid "Delete Collection"
237
252
  msgstr "刪除收藏夾"
238
253
 
@@ -242,7 +257,7 @@ msgid "Delete Media"
242
257
  msgstr "刪除媒體"
243
258
 
244
259
  #. @context: Button to delete page
245
- #: src/routes/dash/pages.tsx:160
260
+ #: src/routes/dash/pages.tsx:151
246
261
  msgid "Delete Page"
247
262
  msgstr "刪除頁面"
248
263
 
@@ -252,14 +267,14 @@ msgid "Deleting this media will remove it permanently from storage."
252
267
  msgstr "刪除此媒體將永久從存儲中移除它。"
253
268
 
254
269
  #. @context: Hint shown on signin page when demo credentials are pre-filled
255
- #: src/app.tsx:353
270
+ #: src/app.tsx:374
256
271
  msgid "Demo account pre-filled. Just click Sign In."
257
272
  msgstr "示範帳戶已預填。只需點擊登入。"
258
273
 
259
274
  #. @context: Collection form field
260
275
  #. @context: Collection form field
261
276
  #: src/routes/dash/collections.tsx:153
262
- #: src/routes/dash/collections.tsx:338
277
+ #: src/routes/dash/collections.tsx:327
263
278
  msgid "Description (optional)"
264
279
  msgstr "描述(可選)"
265
280
 
@@ -269,16 +284,16 @@ msgid "Display text for the link"
269
284
  msgstr "顯示連結的文字"
270
285
 
271
286
  #. @context: Close media picker button
272
- #: src/theme/components/PostForm.tsx:355
287
+ #: src/theme/components/PostForm.tsx:359
273
288
  msgid "Done"
274
289
  msgstr "完成"
275
290
 
276
291
  #. @context: Page status option - draft
277
- #. @context: Post visibility badge - draft
278
- #. @context: Post visibility option
292
+ #. @context: Post status badge - draft
293
+ #. @context: Post status option
279
294
  #: src/theme/components/PageForm.tsx:133
280
- #: src/theme/components/PostForm.tsx:261
281
- #: src/theme/components/VisibilityBadge.tsx:38
295
+ #: src/theme/components/PostForm.tsx:235
296
+ #: src/theme/components/VisibilityBadge.tsx:35
282
297
  msgid "Draft"
283
298
  msgstr "草稿"
284
299
 
@@ -289,8 +304,8 @@ msgstr "草稿"
289
304
 
290
305
  #. @context: Source name placeholder
291
306
  #: src/theme/components/PostForm.tsx:226
292
- msgid "e.g. The Verge, John Doe"
293
- msgstr "例如:The Verge,約翰·多伊"
307
+ #~ msgid "e.g. The Verge, John Doe"
308
+ #~ msgstr "例如:The Verge,約翰·多伊"
294
309
 
295
310
  #. @context: Button to edit collection
296
311
  #. @context: Button to edit collection
@@ -303,16 +318,16 @@ msgstr "例如:The Verge,約翰·多伊"
303
318
  #: src/routes/dash/collections.tsx:66
304
319
  #: src/routes/dash/collections.tsx:220
305
320
  #: src/routes/dash/navigation.tsx:61
306
- #: src/routes/dash/pages.tsx:64
307
- #: src/routes/dash/pages.tsx:134
321
+ #: src/routes/dash/pages.tsx:62
322
+ #: src/routes/dash/pages.tsx:129
308
323
  #: src/routes/dash/posts.tsx:142
309
324
  #: src/theme/components/ActionButtons.tsx:72
310
- #: src/theme/components/PostList.tsx:46
325
+ #: src/theme/components/PostList.tsx:50
311
326
  msgid "Edit"
312
327
  msgstr "編輯"
313
328
 
314
329
  #. @context: Page heading
315
- #: src/routes/dash/collections.tsx:304
330
+ #: src/routes/dash/collections.tsx:293
316
331
  msgid "Edit Collection"
317
332
  msgstr "編輯收藏集"
318
333
 
@@ -322,41 +337,48 @@ msgid "Edit Link"
322
337
  msgstr "編輯連結"
323
338
 
324
339
  #. @context: Edit page main heading
325
- #: src/routes/dash/pages.tsx:176
340
+ #: src/routes/dash/pages.tsx:167
326
341
  msgid "Edit Page"
327
342
  msgstr "編輯頁面"
328
343
 
329
344
  #. @context: Page heading
330
- #: src/routes/dash/posts.tsx:187
345
+ #: src/routes/dash/posts.tsx:185
331
346
  msgid "Edit Post"
332
347
  msgstr "編輯文章"
333
348
 
334
349
  #. @context: Setup/signin form field - email
335
350
  #. @context: Setup/signin form field - email
336
- #: src/app.tsx:224
337
- #: src/app.tsx:368
351
+ #: src/app.tsx:245
352
+ #: src/app.tsx:389
338
353
  msgid "Email"
339
354
  msgstr "電子郵件"
340
355
 
341
356
  #. @context: Password reset page description
342
- #: src/app.tsx:484
357
+ #: src/app.tsx:505
343
358
  msgid "Enter your new password."
344
359
  msgstr "請輸入您的新密碼。"
345
360
 
346
- #. @context: Post visibility badge - featured
347
- #. @context: Post visibility option
348
- #: src/theme/components/PostForm.tsx:249
349
- #: src/theme/components/VisibilityBadge.tsx:26
361
+ #. @context: Archive filter - featured posts
362
+ #. @context: Post badge - featured
363
+ #. @context: Post form checkbox - mark as featured
364
+ #: src/theme/components/PostForm.tsx:247
365
+ #: src/theme/components/VisibilityBadge.tsx:46
366
+ #: src/themes/threads/pages/ArchivePage.tsx:89
350
367
  msgid "Featured"
351
368
  msgstr "精選"
352
369
 
370
+ #. @context: Post form field - post format
371
+ #: src/theme/components/PostForm.tsx:65
372
+ msgid "Format"
373
+ msgstr ""
374
+
353
375
  #. @context: Search results count - multiple
354
- #: src/theme/pages/SearchPage.tsx:77
376
+ #: src/themes/threads/pages/SearchPage.tsx:76
355
377
  msgid "Found {count} results"
356
378
  msgstr "找到 {count} 個結果"
357
379
 
358
380
  #. @context: Search results count - single
359
- #: src/theme/pages/SearchPage.tsx:73
381
+ #: src/themes/threads/pages/SearchPage.tsx:72
360
382
  msgid "Found 1 result"
361
383
  msgstr "找到 1 個結果"
362
384
 
@@ -377,14 +399,14 @@ msgstr "一般設定"
377
399
  #. @context: Post type option
378
400
  #: src/theme/components/PostForm.tsx:83
379
401
  #: src/theme/components/TypeBadge.tsx:29
380
- #: src/theme/pages/ArchivePage.tsx:27
381
- msgid "Image"
382
- msgstr "圖片"
402
+ #: src/themes/threads/pages/ArchivePage.tsx:26
403
+ #~ msgid "Image"
404
+ #~ msgstr "圖片"
383
405
 
384
406
  #. @context: Post type label plural - images
385
- #: src/theme/pages/ArchivePage.tsx:55
386
- msgid "Images"
387
- msgstr "圖片"
407
+ #: src/themes/threads/pages/ArchivePage.tsx:54
408
+ #~ msgid "Images"
409
+ #~ msgstr "圖片"
388
410
 
389
411
  #. @context: Media upload instructions - auto optimization
390
412
  #: src/routes/dash/media.tsx:171
@@ -392,7 +414,7 @@ msgid "Images are automatically optimized: resized to max 1920px, converted to W
392
414
  msgstr "圖片會自動優化:調整大小至最大 1920 像素,轉換為 WebP 格式,並去除元數據。"
393
415
 
394
416
  #. @context: Password reset error heading
395
- #: src/app.tsx:559
417
+ #: src/app.tsx:580
396
418
  msgid "Invalid or Expired Link"
397
419
  msgstr "無效或已過期的連結"
398
420
 
@@ -406,33 +428,33 @@ msgstr "標籤"
406
428
  msgid "Language"
407
429
  msgstr "語言"
408
430
 
409
- #. @context: Post type badge - link
410
- #. @context: Post type label - link
411
- #. @context: Post type option
412
- #: src/theme/components/PostForm.tsx:77
413
- #: src/theme/components/TypeBadge.tsx:24
414
- #: src/theme/pages/ArchivePage.tsx:22
431
+ #. @context: Post format badge - link
432
+ #. @context: Post format label - link
433
+ #. @context: Post format option
434
+ #: src/theme/components/PostForm.tsx:75
435
+ #: src/theme/components/TypeBadge.tsx:21
436
+ #: src/themes/threads/pages/ArchivePage.tsx:17
415
437
  msgid "Link"
416
438
  msgstr "連結"
417
439
 
418
- #. @context: Post type label plural - links
419
- #: src/theme/pages/ArchivePage.tsx:47
440
+ #. @context: Post format label plural - links
441
+ #: src/themes/threads/pages/ArchivePage.tsx:33
420
442
  msgid "Links"
421
443
  msgstr "連結"
422
444
 
423
- #. @context: Button to load more posts in timeline
424
445
  #. @context: Pagination button - load more items
425
446
  #: src/theme/components/Pagination.tsx:103
426
- #: src/theme/components/timeline/TimelineFeed.tsx:47
427
447
  msgid "Load more"
428
448
  msgstr "載入更多"
429
449
 
450
+ #. @context: Loading indicator while fetching more posts
430
451
  #. @context: Loading state for media picker
431
- #: src/theme/components/PostForm.tsx:366
452
+ #: src/theme/components/PostForm.tsx:370
453
+ #: src/themes/threads/timeline/TimelineLoadMore.tsx:28
432
454
  msgid "Loading..."
433
455
  msgstr "載入中..."
434
456
 
435
- #. @context: Page path validation message
457
+ #. @context: Page slug validation message
436
458
  #: src/theme/components/PageForm.tsx:77
437
459
  msgid "Lowercase letters, numbers, and hyphens only"
438
460
  msgstr "僅限小寫字母、數字和連字符"
@@ -446,7 +468,7 @@ msgstr "Markdown"
446
468
  #. @context: Media main heading
447
469
  #. @context: Post form field - media attachments
448
470
  #: src/routes/dash/media.tsx:151
449
- #: src/theme/components/PostForm.tsx:128
471
+ #: src/theme/components/PostForm.tsx:159
450
472
  #: src/theme/layouts/DashLayout.tsx:105
451
473
  msgid "Media"
452
474
  msgstr "媒體"
@@ -493,14 +515,14 @@ msgstr "新連結"
493
515
 
494
516
  #. @context: Button to create new page
495
517
  #. @context: New page main heading
496
- #: src/routes/dash/pages.tsx:37
497
- #: src/routes/dash/pages.tsx:110
518
+ #: src/routes/dash/pages.tsx:35
519
+ #: src/routes/dash/pages.tsx:105
498
520
  msgid "New Page"
499
521
  msgstr "新頁面"
500
522
 
501
523
  #. @context: Password form field
502
524
  #. @context: Password reset form field
503
- #: src/app.tsx:499
525
+ #: src/app.tsx:520
504
526
  #: src/routes/dash/settings.tsx:442
505
527
  msgid "New Password"
506
528
  msgstr "新密碼"
@@ -546,26 +568,26 @@ msgid "No navigation links configured."
546
568
  msgstr "未配置導航連結。"
547
569
 
548
570
  #. @context: Empty state message when no pages exist
549
- #: src/routes/dash/pages.tsx:46
571
+ #: src/routes/dash/pages.tsx:44
550
572
  msgid "No pages yet."
551
573
  msgstr "尚未有頁面。"
552
574
 
553
575
  #. @context: Archive empty state
554
- #: src/theme/pages/ArchivePage.tsx:112
576
+ #: src/themes/threads/pages/ArchivePage.tsx:100
555
577
  msgid "No posts found."
556
578
  msgstr "未找到任何帖子。"
557
579
 
558
580
  #. @context: Empty state message
559
581
  #. @context: Empty state message
560
582
  #: src/routes/dash/collections.tsx:243
561
- #: src/theme/pages/CollectionPage.tsx:30
583
+ #: src/themes/threads/pages/CollectionPage.tsx:29
562
584
  msgid "No posts in this collection."
563
585
  msgstr "此集合中沒有帖子。"
564
586
 
565
587
  #. @context: Empty state message on home page
566
588
  #. @context: Empty state message when no posts exist
567
589
  #: src/theme/components/PostList.tsx:25
568
- #: src/theme/pages/HomePage.tsx:27
590
+ #: src/themes/threads/pages/HomePage.tsx:26
569
591
  msgid "No posts yet."
570
592
  msgstr "尚未有帖子。"
571
593
 
@@ -575,30 +597,31 @@ msgid "No redirects configured."
575
597
  msgstr "未配置任何重定向。"
576
598
 
577
599
  #. @context: Search empty results
578
- #: src/theme/pages/SearchPage.tsx:68
600
+ #: src/themes/threads/pages/SearchPage.tsx:67
579
601
  msgid "No results found."
580
602
  msgstr "未找到結果。"
581
603
 
582
- #. @context: Post type badge - note
583
- #. @context: Post type label - note
584
- #. @context: Post type option
585
- #: src/theme/components/PostForm.tsx:71
586
- #: src/theme/components/TypeBadge.tsx:19
587
- #: src/theme/pages/ArchivePage.tsx:17
604
+ #. @context: No collection selected
605
+ #: src/theme/components/PostForm.tsx:272
606
+ msgid "None"
607
+ msgstr ""
608
+
609
+ #. @context: Post format badge - note
610
+ #. @context: Post format label - note
611
+ #. @context: Post format option
612
+ #: src/theme/components/PostForm.tsx:72
613
+ #: src/theme/components/TypeBadge.tsx:20
614
+ #: src/themes/threads/pages/ArchivePage.tsx:16
588
615
  msgid "Note"
589
616
  msgstr "備註"
590
617
 
591
- #. @context: Post type label plural - notes
592
- #: src/theme/pages/ArchivePage.tsx:39
618
+ #. @context: Post format label plural - notes
619
+ #: src/themes/threads/pages/ArchivePage.tsx:29
593
620
  msgid "Notes"
594
621
  msgstr "筆記"
595
622
 
596
623
  #. @context: Default page heading when untitled
597
- #. @context: Post type badge - page
598
- #. @context: Post type label - page
599
- #: src/routes/dash/pages.tsx:125
600
- #: src/theme/components/TypeBadge.tsx:33
601
- #: src/theme/pages/ArchivePage.tsx:31
624
+ #: src/routes/dash/pages.tsx:120
602
625
  msgid "Page"
603
626
  msgstr "頁面"
604
627
 
@@ -619,24 +642,22 @@ msgstr "頁面標題..."
619
642
 
620
643
  #. @context: Dashboard navigation - pages management
621
644
  #. @context: Pages main heading
622
- #. @context: Post type label plural - pages
623
- #: src/routes/dash/pages.tsx:36
645
+ #: src/routes/dash/pages.tsx:34
624
646
  #: src/theme/layouts/DashLayout.tsx:96
625
- #: src/theme/pages/ArchivePage.tsx:59
626
647
  msgid "Pages"
627
648
  msgstr "頁面"
628
649
 
629
650
  #. @context: Setup/signin form field - password
630
651
  #. @context: Setup/signin form field - password
631
- #: src/app.tsx:239
632
- #: src/app.tsx:377
652
+ #: src/app.tsx:260
653
+ #: src/app.tsx:398
633
654
  msgid "Password"
634
655
  msgstr "密碼"
635
656
 
636
657
  #. @context: Page form field label - URL path
637
658
  #: src/theme/components/PageForm.tsx:64
638
- msgid "Path"
639
- msgstr "路徑"
659
+ #~ msgid "Path"
660
+ #~ msgstr "路徑"
640
661
 
641
662
  #. @context: Navigation URL help text
642
663
  #: src/routes/dash/navigation.tsx:162
@@ -645,18 +666,25 @@ msgstr "路徑(例如 /archive)或完整網址(例如 https://example.com
645
666
 
646
667
  #. @context: Link to individual post in thread
647
668
  #. @context: Link to permanent URL of post
648
- #: src/theme/components/ThreadView.tsx:68
649
- #: src/theme/pages/PostPage.tsx:36
669
+ #: src/theme/components/ThreadView.tsx:71
670
+ #: src/themes/threads/pages/PostPage.tsx:39
650
671
  msgid "Permalink"
651
672
  msgstr "永久鏈接"
652
673
 
674
+ #. @context: Post badge - pinned
675
+ #. @context: Post form checkbox - pin to top
676
+ #: src/theme/components/PostForm.tsx:254
677
+ #: src/theme/components/VisibilityBadge.tsx:54
678
+ msgid "Pinned"
679
+ msgstr ""
680
+
653
681
  #. @context: Default post title
654
- #: src/routes/dash/posts.tsx:131
682
+ #: src/routes/dash/posts.tsx:130
655
683
  msgid "Post"
656
684
  msgstr "文章"
657
685
 
658
686
  #. @context: Post title placeholder
659
- #: src/theme/components/PostForm.tsx:100
687
+ #: src/theme/components/PostForm.tsx:95
660
688
  msgid "Post title..."
661
689
  msgstr "文章標題..."
662
690
 
@@ -697,11 +725,11 @@ msgstr "上一頁"
697
725
  #. @context: Loading text shown on submit button while request is in progress
698
726
  #. @context: Loading text shown on submit button while request is in progress
699
727
  #. @context: Upload status - processing
700
- #: src/app.tsx:260
701
- #: src/app.tsx:397
702
- #: src/app.tsx:537
728
+ #: src/app.tsx:281
729
+ #: src/app.tsx:418
730
+ #: src/app.tsx:558
703
731
  #: src/routes/dash/collections.tsx:178
704
- #: src/routes/dash/collections.tsx:357
732
+ #: src/routes/dash/collections.tsx:346
705
733
  #: src/routes/dash/media.tsx:119
706
734
  #: src/routes/dash/navigation.tsx:184
707
735
  #: src/routes/dash/redirects.tsx:169
@@ -709,7 +737,7 @@ msgstr "上一頁"
709
737
  #: src/routes/dash/settings.tsx:400
710
738
  #: src/routes/dash/settings.tsx:488
711
739
  #: src/theme/components/PageForm.tsx:163
712
- #: src/theme/components/PostForm.tsx:325
740
+ #: src/theme/components/PostForm.tsx:329
713
741
  msgid "Processing..."
714
742
  msgstr "處理中..."
715
743
 
@@ -719,21 +747,30 @@ msgid "Profile"
719
747
  msgstr "個人資料"
720
748
 
721
749
  #. @context: Button to publish new post
722
- #: src/theme/components/PostForm.tsx:319
750
+ #: src/theme/components/PostForm.tsx:323
723
751
  msgid "Publish"
724
752
  msgstr "發佈"
725
753
 
726
754
  #. @context: Page status option - published
755
+ #. @context: Post status badge - published
727
756
  #. @context: Post status label
757
+ #. @context: Post status option
728
758
  #: src/routes/dash/index.tsx:45
729
759
  #: src/theme/components/PageForm.tsx:127
760
+ #: src/theme/components/PostForm.tsx:229
761
+ #: src/theme/components/VisibilityBadge.tsx:31
730
762
  msgid "Published"
731
763
  msgstr "已發佈"
732
764
 
733
765
  #. @context: Page status helper text
734
766
  #: src/theme/components/PageForm.tsx:140
735
- msgid "Published pages are accessible via their path. Drafts are not visible."
736
- msgstr "已發佈的頁面可以通過其路徑訪問。草稿不可見。"
767
+ #~ msgid "Published pages are accessible via their path. Drafts are not visible."
768
+ #~ msgstr "已發佈的頁面可以通過其路徑訪問。草稿不可見。"
769
+
770
+ #. @context: Page status helper text
771
+ #: src/theme/components/PageForm.tsx:140
772
+ msgid "Published pages are accessible via their slug. Drafts are not visible."
773
+ msgstr ""
737
774
 
738
775
  #. @context: Dashboard section title
739
776
  #: src/routes/dash/index.tsx:62
@@ -742,25 +779,30 @@ msgstr "快速操作"
742
779
 
743
780
  #. @context: Post visibility badge - normal
744
781
  #: src/theme/components/VisibilityBadge.tsx:30
745
- msgid "Quiet"
746
- msgstr "安靜"
782
+ #~ msgid "Quiet"
783
+ #~ msgstr "安靜"
747
784
 
748
785
  #. @context: Post visibility option
749
786
  #: src/theme/components/PostForm.tsx:243
750
- msgid "Quiet (normal)"
751
- msgstr "安靜(正常)"
752
-
753
- #. @context: Post type badge - quote
754
- #. @context: Post type label - quote
755
- #. @context: Post type option
756
- #: src/theme/components/PostForm.tsx:80
757
- #: src/theme/components/TypeBadge.tsx:25
758
- #: src/theme/pages/ArchivePage.tsx:23
787
+ #~ msgid "Quiet (normal)"
788
+ #~ msgstr "安靜(正常)"
789
+
790
+ #. @context: Post format badge - quote
791
+ #. @context: Post format label - quote
792
+ #. @context: Post format option
793
+ #: src/theme/components/PostForm.tsx:78
794
+ #: src/theme/components/TypeBadge.tsx:22
795
+ #: src/themes/threads/pages/ArchivePage.tsx:18
759
796
  msgid "Quote"
760
797
  msgstr "引用"
761
798
 
762
- #. @context: Post type label plural - quotes
763
- #: src/theme/pages/ArchivePage.tsx:51
799
+ #. @context: Post form field - quoted text
800
+ #: src/theme/components/PostForm.tsx:138
801
+ msgid "Quote Text"
802
+ msgstr ""
803
+
804
+ #. @context: Post format label plural - quotes
805
+ #: src/themes/threads/pages/ArchivePage.tsx:37
764
806
  msgid "Quotes"
765
807
  msgstr "引用"
766
808
 
@@ -771,17 +813,15 @@ msgstr "引用"
771
813
  msgid "Redirects"
772
814
  msgstr "重定向"
773
815
 
774
- #. @context: Button to remove post from collection
775
816
  #. @context: Remove media attachment button
776
- #: src/routes/dash/collections.tsx:267
777
- #: src/theme/components/PostForm.tsx:173
817
+ #: src/theme/components/PostForm.tsx:195
778
818
  msgid "Remove"
779
819
  msgstr "移除"
780
820
 
781
821
  #. @context: Password reset form submit button
782
822
  #. @context: Password reset page heading
783
- #: src/app.tsx:478
784
- #: src/app.tsx:531
823
+ #: src/app.tsx:499
824
+ #: src/app.tsx:552
785
825
  msgid "Reset Password"
786
826
  msgstr "重設密碼"
787
827
 
@@ -802,18 +842,18 @@ msgstr "保存設定"
802
842
 
803
843
  #. @context: Search page title
804
844
  #. @context: Search submit button
805
- #: src/theme/pages/SearchPage.tsx:22
806
- #: src/theme/pages/SearchPage.tsx:48
845
+ #: src/themes/threads/pages/SearchPage.tsx:21
846
+ #: src/themes/threads/pages/SearchPage.tsx:47
807
847
  msgid "Search"
808
848
  msgstr "搜尋"
809
849
 
810
850
  #. @context: Search input placeholder
811
- #: src/theme/pages/SearchPage.tsx:40
851
+ #: src/themes/threads/pages/SearchPage.tsx:39
812
852
  msgid "Search posts..."
813
853
  msgstr "搜尋帖子..."
814
854
 
815
855
  #. @context: Media picker dialog title
816
- #: src/theme/components/PostForm.tsx:345
856
+ #: src/theme/components/PostForm.tsx:349
817
857
  msgid "Select Media"
818
858
  msgstr "選擇媒體"
819
859
 
@@ -830,14 +870,14 @@ msgstr "設定"
830
870
 
831
871
  #. @context: Link to show remaining thread replies
832
872
  #. placeholder {0}: remainingCount === 1 ? "reply" : "replies"
833
- #: src/theme/components/timeline/ThreadPreview.tsx:38
873
+ #: src/themes/threads/timeline/ThreadPreview.tsx:38
834
874
  msgid "Show {remainingCount} more {0}"
835
875
  msgstr "顯示 {remainingCount} 個更多 {0}"
836
876
 
837
877
  #. @context: Sign in form submit button
838
878
  #. @context: Sign in page heading
839
- #: src/app.tsx:344
840
- #: src/app.tsx:391
879
+ #: src/app.tsx:365
880
+ #: src/app.tsx:412
841
881
  msgid "Sign In"
842
882
  msgstr "登入"
843
883
 
@@ -858,23 +898,27 @@ msgstr "網站名稱"
858
898
 
859
899
  #. @context: Collection form field
860
900
  #. @context: Collection form field
901
+ #. @context: Page form field label - URL slug
861
902
  #: src/routes/dash/collections.tsx:133
862
- #: src/routes/dash/collections.tsx:325
903
+ #: src/routes/dash/collections.tsx:314
904
+ #: src/theme/components/PageForm.tsx:64
863
905
  msgid "Slug"
864
906
  msgstr "縮略名"
865
907
 
866
908
  #. @context: Post form field - name of the source website or author
867
909
  #: src/theme/components/PostForm.tsx:216
868
- msgid "Source Name (optional)"
869
- msgstr "來源名稱(選填)"
910
+ #~ msgid "Source Name (optional)"
911
+ #~ msgstr "來源名稱(選填)"
870
912
 
871
913
  #. @context: Post form field
872
914
  #: src/theme/components/PostForm.tsx:200
873
- msgid "Source URL (optional)"
874
- msgstr "來源網址(選填)"
915
+ #~ msgid "Source URL (optional)"
916
+ #~ msgstr "來源網址(選填)"
875
917
 
876
918
  #. @context: Page form field label - publish status
919
+ #. @context: Post form field
877
920
  #: src/theme/components/PageForm.tsx:117
921
+ #: src/theme/components/PostForm.tsx:222
878
922
  msgid "Status"
879
923
  msgstr "狀態"
880
924
 
@@ -888,13 +932,18 @@ msgstr "目的地路徑或 URL"
888
932
  msgid "The path to redirect from"
889
933
  msgstr "重定向來源的路徑"
890
934
 
891
- #. @context: Page path helper text
935
+ #. @context: Quote text placeholder
936
+ #: src/theme/components/PostForm.tsx:146
937
+ msgid "The text being quoted..."
938
+ msgstr ""
939
+
940
+ #. @context: Page slug helper text
892
941
  #: src/theme/components/PageForm.tsx:85
893
942
  msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
894
943
  msgstr "此頁面的 URL 路徑。使用小寫字母、數字和連字符。"
895
944
 
896
945
  #. @context: Password reset error description
897
- #: src/app.tsx:567
946
+ #: src/app.tsx:588
898
947
  msgid "This password reset link is invalid or has expired. Please generate a new one."
899
948
  msgstr "此密碼重設連結無效或已過期。請生成一個新的連結。"
900
949
 
@@ -904,17 +953,17 @@ msgid "This will theme both your site and your dashboard. All color themes suppo
904
953
  msgstr "這將為您的網站和儀表板設置主題。所有顏色主題都支持深色模式。"
905
954
 
906
955
  #. @context: Thread view indicator - first post in thread
907
- #: src/theme/components/ThreadView.tsx:57
956
+ #: src/theme/components/ThreadView.tsx:60
908
957
  msgid "Thread start"
909
958
  msgstr "線程開始"
910
959
 
911
960
  #. @context: Thread view header - multiple posts
912
- #: src/theme/components/ThreadView.tsx:102
961
+ #: src/theme/components/ThreadView.tsx:105
913
962
  msgid "Thread with {count} posts"
914
963
  msgstr "包含 {count} 則帖子的主題"
915
964
 
916
965
  #. @context: Thread view header - single post
917
- #: src/theme/components/ThreadView.tsx:98
966
+ #: src/theme/components/ThreadView.tsx:101
918
967
  msgid "Thread with 1 post"
919
968
  msgstr "包含 1 則貼文的主題"
920
969
 
@@ -922,13 +971,13 @@ msgstr "包含 1 則貼文的主題"
922
971
  #. @context: Collection form field
923
972
  #. @context: Page form field label - title
924
973
  #: src/routes/dash/collections.tsx:114
925
- #: src/routes/dash/collections.tsx:315
974
+ #: src/routes/dash/collections.tsx:304
926
975
  #: src/theme/components/PageForm.tsx:44
927
976
  msgid "Title"
928
977
  msgstr "標題"
929
978
 
930
979
  #. @context: Post form field
931
- #: src/theme/components/PostForm.tsx:91
980
+ #: src/theme/components/PostForm.tsx:86
932
981
  msgid "Title (optional)"
933
982
  msgstr "標題(選填)"
934
983
 
@@ -937,10 +986,8 @@ msgstr "標題(選填)"
937
986
  msgid "To Path"
938
987
  msgstr "到路徑"
939
988
 
940
- #. @context: Post form field - post type
941
989
  #. @context: Redirect form field
942
990
  #: src/routes/dash/redirects.tsx:142
943
- #: src/theme/components/PostForm.tsx:64
944
991
  msgid "Type"
945
992
  msgstr "類型"
946
993
 
@@ -948,23 +995,23 @@ msgstr "類型"
948
995
  #. @context: Post visibility option
949
996
  #: src/theme/components/PostForm.tsx:255
950
997
  #: src/theme/components/VisibilityBadge.tsx:34
951
- msgid "Unlisted"
952
- msgstr "不公開"
998
+ #~ msgid "Unlisted"
999
+ #~ msgstr "不公開"
953
1000
 
954
1001
  #. @context: Default title for untitled page
955
1002
  #. @context: Default title for untitled post
956
- #: src/routes/dash/pages.tsx:91
957
- #: src/theme/components/PostList.tsx:78
1003
+ #: src/routes/dash/pages.tsx:86
1004
+ #: src/theme/components/PostList.tsx:86
958
1005
  msgid "Untitled"
959
1006
  msgstr "無標題"
960
1007
 
961
1008
  #. @context: Button to update existing post
962
- #: src/theme/components/PostForm.tsx:315
1009
+ #: src/theme/components/PostForm.tsx:319
963
1010
  msgid "Update"
964
1011
  msgstr "更新"
965
1012
 
966
1013
  #. @context: Button to save collection changes
967
- #: src/routes/dash/collections.tsx:351
1014
+ #: src/routes/dash/collections.tsx:340
968
1015
  msgid "Update Collection"
969
1016
  msgstr "更新收藏集"
970
1017
 
@@ -995,6 +1042,11 @@ msgstr "上傳中..."
995
1042
  msgid "URL"
996
1043
  msgstr "網址"
997
1044
 
1045
+ #. @context: Post form field - source URL
1046
+ #: src/theme/components/PostForm.tsx:122
1047
+ msgid "URL (optional)"
1048
+ msgstr ""
1049
+
998
1050
  #. @context: Collection path help text
999
1051
  #: src/routes/dash/collections.tsx:144
1000
1052
  msgid "URL-safe identifier (lowercase, numbers, hyphens)"
@@ -1014,11 +1066,11 @@ msgstr "使用此 URL 將媒體嵌入到您的帖子中。"
1014
1066
  #. @context: Button to view post on public site
1015
1067
  #: src/routes/dash/collections.tsx:71
1016
1068
  #: src/routes/dash/collections.tsx:225
1017
- #: src/routes/dash/pages.tsx:73
1018
- #: src/routes/dash/pages.tsx:143
1069
+ #: src/routes/dash/pages.tsx:69
1070
+ #: src/routes/dash/pages.tsx:134
1019
1071
  #: src/routes/dash/posts.tsx:147
1020
1072
  #: src/theme/components/ActionButtons.tsx:76
1021
- #: src/theme/components/PostList.tsx:51
1073
+ #: src/theme/components/PostList.tsx:55
1022
1074
  msgid "View"
1023
1075
  msgstr "查看"
1024
1076
 
@@ -1029,16 +1081,16 @@ msgstr "查看網站"
1029
1081
 
1030
1082
  #. @context: Post form field
1031
1083
  #: src/theme/components/PostForm.tsx:236
1032
- msgid "Visibility"
1033
- msgstr "可見性"
1084
+ #~ msgid "Visibility"
1085
+ #~ msgstr "可見性"
1034
1086
 
1035
1087
  #. @context: Setup page welcome heading
1036
- #: src/app.tsx:188
1088
+ #: src/app.tsx:209
1037
1089
  msgid "Welcome to Jant"
1038
1090
  msgstr "歡迎來到 Jant"
1039
1091
 
1040
1092
  #. @context: Post content placeholder
1041
- #: src/theme/components/PostForm.tsx:115
1093
+ #: src/theme/components/PostForm.tsx:110
1042
1094
  msgid "What's on your mind?"
1043
1095
  msgstr "你在想什麼?"
1044
1096
 
@@ -1048,6 +1100,6 @@ msgid "What's this collection about?"
1048
1100
  msgstr "這個收藏是關於什麼的?"
1049
1101
 
1050
1102
  #. @context: Setup form field - user name
1051
- #: src/app.tsx:209
1103
+ #: src/app.tsx:230
1052
1104
  msgid "Your Name"
1053
1105
  msgstr "您的姓名"