@jant/core 0.3.5 → 0.3.7
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.
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +7 -21
- package/dist/db/schema.d.ts +36 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +2 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +1 -1
- package/dist/i18n/locales/zh-Hans.d.ts.map +1 -1
- package/dist/i18n/locales/zh-Hans.js +1 -1
- package/dist/i18n/locales/zh-Hant.d.ts.map +1 -1
- package/dist/i18n/locales/zh-Hant.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/schemas.d.ts +17 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +32 -2
- package/dist/lib/sse.d.ts +3 -3
- package/dist/lib/sse.d.ts.map +1 -1
- package/dist/lib/sse.js +7 -8
- package/dist/routes/api/posts.d.ts.map +1 -1
- package/dist/routes/api/posts.js +101 -5
- package/dist/routes/dash/media.js +38 -0
- package/dist/routes/dash/posts.d.ts.map +1 -1
- package/dist/routes/dash/posts.js +45 -6
- package/dist/routes/feed/rss.d.ts.map +1 -1
- package/dist/routes/feed/rss.js +10 -1
- package/dist/routes/pages/home.d.ts.map +1 -1
- package/dist/routes/pages/home.js +37 -4
- package/dist/routes/pages/post.d.ts.map +1 -1
- package/dist/routes/pages/post.js +28 -2
- package/dist/services/collection.d.ts +1 -0
- package/dist/services/collection.d.ts.map +1 -1
- package/dist/services/collection.js +13 -0
- package/dist/services/media.d.ts +7 -0
- package/dist/services/media.d.ts.map +1 -1
- package/dist/services/media.js +54 -1
- package/dist/theme/components/MediaGallery.d.ts +13 -0
- package/dist/theme/components/MediaGallery.d.ts.map +1 -0
- package/dist/theme/components/MediaGallery.js +107 -0
- package/dist/theme/components/PostForm.d.ts +6 -1
- package/dist/theme/components/PostForm.d.ts.map +1 -1
- package/dist/theme/components/PostForm.js +158 -2
- package/dist/theme/components/index.d.ts +1 -0
- package/dist/theme/components/index.d.ts.map +1 -1
- package/dist/theme/components/index.js +1 -0
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +27 -0
- package/package.json +1 -1
- package/src/__tests__/helpers/app.ts +6 -1
- package/src/__tests__/helpers/db.ts +10 -0
- package/src/app.tsx +7 -25
- package/src/db/migrations/0002_add_media_attachments.sql +3 -0
- package/src/db/schema.ts +2 -0
- package/src/i18n/locales/en.po +150 -80
- package/src/i18n/locales/en.ts +1 -1
- package/src/i18n/locales/zh-Hans.po +150 -80
- package/src/i18n/locales/zh-Hans.ts +1 -1
- package/src/i18n/locales/zh-Hant.po +150 -80
- package/src/i18n/locales/zh-Hant.ts +1 -1
- package/src/index.ts +8 -1
- package/src/lib/__tests__/schemas.test.ts +89 -1
- package/src/lib/__tests__/sse.test.ts +13 -1
- package/src/lib/schemas.ts +47 -1
- package/src/lib/sse.ts +10 -11
- package/src/routes/api/__tests__/posts.test.ts +239 -0
- package/src/routes/api/posts.ts +134 -5
- package/src/routes/dash/media.tsx +50 -0
- package/src/routes/dash/posts.tsx +79 -7
- package/src/routes/feed/rss.ts +14 -1
- package/src/routes/pages/home.tsx +80 -36
- package/src/routes/pages/post.tsx +36 -3
- package/src/services/__tests__/collection.test.ts +102 -0
- package/src/services/__tests__/media.test.ts +248 -0
- package/src/services/collection.ts +19 -0
- package/src/services/media.ts +76 -1
- package/src/theme/components/MediaGallery.tsx +128 -0
- package/src/theme/components/PostForm.tsx +170 -2
- package/src/theme/components/index.ts +1 -0
- package/src/types.ts +36 -0
package/src/db/schema.ts
CHANGED
|
@@ -55,6 +55,8 @@ export const media = sqliteTable("media", {
|
|
|
55
55
|
width: integer("width"),
|
|
56
56
|
height: integer("height"),
|
|
57
57
|
alt: text("alt"),
|
|
58
|
+
position: integer("position").notNull().default(0),
|
|
59
|
+
blurhash: text("blurhash"),
|
|
58
60
|
createdAt: integer("created_at").notNull(),
|
|
59
61
|
});
|
|
60
62
|
|
package/src/i18n/locales/en.po
CHANGED
|
@@ -26,7 +26,7 @@ msgstr "← Back to Collections"
|
|
|
26
26
|
#. @context: Navigation link
|
|
27
27
|
#. @context: Navigation link
|
|
28
28
|
#: src/routes/pages/collection.tsx:76
|
|
29
|
-
#: src/routes/pages/post.tsx:
|
|
29
|
+
#: src/routes/pages/post.tsx:63
|
|
30
30
|
msgid "← Back to home"
|
|
31
31
|
msgstr "← Back to home"
|
|
32
32
|
|
|
@@ -45,20 +45,30 @@ msgstr "301 (Permanent)"
|
|
|
45
45
|
msgid "302 (Temporary)"
|
|
46
46
|
msgstr "302 (Temporary)"
|
|
47
47
|
|
|
48
|
+
#. @context: Settings sub-navigation tab
|
|
49
|
+
#: src/routes/dash/settings.tsx:63
|
|
50
|
+
msgid "Account"
|
|
51
|
+
msgstr "Account"
|
|
52
|
+
|
|
53
|
+
#. @context: Button to open media picker
|
|
54
|
+
#: src/theme/components/PostForm.tsx:178
|
|
55
|
+
msgid "Add Media"
|
|
56
|
+
msgstr "Add Media"
|
|
57
|
+
|
|
48
58
|
#. @context: Archive filter - all types
|
|
49
59
|
#: src/routes/pages/archive.tsx:115
|
|
50
60
|
msgid "All"
|
|
51
61
|
msgstr "All"
|
|
52
62
|
|
|
53
|
-
#. @context:
|
|
54
|
-
#: src/
|
|
63
|
+
#. @context: Settings sub-navigation tab
|
|
64
|
+
#: src/routes/dash/settings.tsx:55
|
|
55
65
|
msgid "Appearance"
|
|
56
66
|
msgstr "Appearance"
|
|
57
67
|
|
|
58
68
|
#. @context: Archive page title
|
|
59
69
|
#. @context: Navigation link to archive page
|
|
60
70
|
#: src/routes/pages/archive.tsx:102
|
|
61
|
-
#: src/routes/pages/home.tsx:
|
|
71
|
+
#: src/routes/pages/home.tsx:40
|
|
62
72
|
msgid "Archive"
|
|
63
73
|
msgstr "Archive"
|
|
64
74
|
|
|
@@ -66,7 +76,7 @@ msgstr "Archive"
|
|
|
66
76
|
#. @context: Post type label - article
|
|
67
77
|
#. @context: Post type option
|
|
68
78
|
#: src/routes/pages/archive.tsx:28
|
|
69
|
-
#: src/theme/components/PostForm.tsx:
|
|
79
|
+
#: src/theme/components/PostForm.tsx:67
|
|
70
80
|
#: src/theme/components/TypeBadge.tsx:20
|
|
71
81
|
msgid "Article"
|
|
72
82
|
msgstr "Article"
|
|
@@ -76,8 +86,13 @@ msgstr "Article"
|
|
|
76
86
|
msgid "Articles"
|
|
77
87
|
msgstr "Articles"
|
|
78
88
|
|
|
89
|
+
#. @context: Hint for image post type media requirement
|
|
90
|
+
#: src/theme/components/PostForm.tsx:130
|
|
91
|
+
msgid "At least 1 image required for image posts."
|
|
92
|
+
msgstr "At least 1 image required for image posts."
|
|
93
|
+
|
|
79
94
|
#. @context: Button to go back to media list
|
|
80
|
-
#: src/routes/dash/media.tsx:
|
|
95
|
+
#: src/routes/dash/media.tsx:245
|
|
81
96
|
msgid "Back"
|
|
82
97
|
msgstr "Back"
|
|
83
98
|
|
|
@@ -99,19 +114,19 @@ msgstr "Back to home"
|
|
|
99
114
|
#: src/routes/dash/collections.tsx:345
|
|
100
115
|
#: src/routes/dash/redirects.tsx:167
|
|
101
116
|
#: src/theme/components/PageForm.tsx:161
|
|
102
|
-
#: src/theme/components/PostForm.tsx:
|
|
117
|
+
#: src/theme/components/PostForm.tsx:312
|
|
103
118
|
msgid "Cancel"
|
|
104
119
|
msgstr "Cancel"
|
|
105
120
|
|
|
106
121
|
#. @context: Button to change password
|
|
107
122
|
#. @context: Settings section heading
|
|
108
|
-
#: src/routes/dash/settings.tsx:
|
|
109
|
-
#: src/routes/dash/settings.tsx:
|
|
123
|
+
#: src/routes/dash/settings.tsx:392
|
|
124
|
+
#: src/routes/dash/settings.tsx:452
|
|
110
125
|
msgid "Change Password"
|
|
111
126
|
msgstr "Change Password"
|
|
112
127
|
|
|
113
128
|
#. @context: Hint to click image for lightbox
|
|
114
|
-
#: src/routes/dash/media.tsx:
|
|
129
|
+
#: src/routes/dash/media.tsx:278
|
|
115
130
|
msgid "Click image to view full size"
|
|
116
131
|
msgstr "Click image to view full size"
|
|
117
132
|
|
|
@@ -122,37 +137,42 @@ msgstr "Click image to view full size"
|
|
|
122
137
|
msgid "Collections"
|
|
123
138
|
msgstr "Collections"
|
|
124
139
|
|
|
140
|
+
#. @context: Post form field - assign to collections
|
|
141
|
+
#: src/theme/components/PostForm.tsx:261
|
|
142
|
+
msgid "Collections (optional)"
|
|
143
|
+
msgstr "Collections (optional)"
|
|
144
|
+
|
|
125
145
|
#. @context: Appearance settings heading
|
|
126
|
-
#: src/routes/dash/
|
|
146
|
+
#: src/routes/dash/settings.tsx:301
|
|
127
147
|
msgid "Color theme"
|
|
128
148
|
msgstr "Color theme"
|
|
129
149
|
|
|
130
150
|
#. @context: Setup form submit button
|
|
131
|
-
#: src/app.tsx:
|
|
151
|
+
#: src/app.tsx:245
|
|
132
152
|
msgid "Complete Setup"
|
|
133
153
|
msgstr "Complete Setup"
|
|
134
154
|
|
|
135
155
|
#. @context: Password form field
|
|
136
|
-
#: src/routes/dash/settings.tsx:
|
|
156
|
+
#: src/routes/dash/settings.tsx:434
|
|
137
157
|
msgid "Confirm New Password"
|
|
138
158
|
msgstr "Confirm New Password"
|
|
139
159
|
|
|
140
160
|
#. @context: Password reset form field
|
|
141
|
-
#: src/app.tsx:
|
|
161
|
+
#: src/app.tsx:487
|
|
142
162
|
msgid "Confirm Password"
|
|
143
163
|
msgstr "Confirm Password"
|
|
144
164
|
|
|
145
165
|
#. @context: Page form field label - content
|
|
146
166
|
#. @context: Post form field
|
|
147
167
|
#: src/theme/components/PageForm.tsx:95
|
|
148
|
-
#: src/theme/components/PostForm.tsx:
|
|
168
|
+
#: src/theme/components/PostForm.tsx:103
|
|
149
169
|
msgid "Content"
|
|
150
170
|
msgstr "Content"
|
|
151
171
|
|
|
152
172
|
#. @context: Button to copy Markdown to clipboard
|
|
153
173
|
#. @context: Button to copy URL to clipboard
|
|
154
|
-
#: src/routes/dash/media.tsx:
|
|
155
|
-
#: src/routes/dash/media.tsx:
|
|
174
|
+
#: src/routes/dash/media.tsx:316
|
|
175
|
+
#: src/routes/dash/media.tsx:353
|
|
156
176
|
msgid "Copy"
|
|
157
177
|
msgstr "Copy"
|
|
158
178
|
|
|
@@ -172,7 +192,7 @@ msgid "Create Redirect"
|
|
|
172
192
|
msgstr "Create Redirect"
|
|
173
193
|
|
|
174
194
|
#. @context: Setup page description
|
|
175
|
-
#: src/app.tsx:
|
|
195
|
+
#: src/app.tsx:187
|
|
176
196
|
msgid "Create your admin account."
|
|
177
197
|
msgstr "Create your admin account."
|
|
178
198
|
|
|
@@ -187,12 +207,12 @@ msgid "Create your first post"
|
|
|
187
207
|
msgstr "Create your first post"
|
|
188
208
|
|
|
189
209
|
#. @context: Password form field
|
|
190
|
-
#: src/routes/dash/settings.tsx:
|
|
210
|
+
#: src/routes/dash/settings.tsx:401
|
|
191
211
|
msgid "Current Password"
|
|
192
212
|
msgstr "Current Password"
|
|
193
213
|
|
|
194
214
|
#. @context: Post form field
|
|
195
|
-
#: src/theme/components/PostForm.tsx:
|
|
215
|
+
#: src/theme/components/PostForm.tsx:285
|
|
196
216
|
msgid "Custom Path (optional)"
|
|
197
217
|
msgstr "Custom Path (optional)"
|
|
198
218
|
|
|
@@ -221,7 +241,7 @@ msgid "Delete Collection"
|
|
|
221
241
|
msgstr "Delete Collection"
|
|
222
242
|
|
|
223
243
|
#. @context: Button to delete media
|
|
224
|
-
#: src/routes/dash/media.tsx:
|
|
244
|
+
#: src/routes/dash/media.tsx:364
|
|
225
245
|
msgid "Delete Media"
|
|
226
246
|
msgstr "Delete Media"
|
|
227
247
|
|
|
@@ -231,12 +251,12 @@ msgid "Delete Page"
|
|
|
231
251
|
msgstr "Delete Page"
|
|
232
252
|
|
|
233
253
|
#. @context: Warning message before deleting media
|
|
234
|
-
#: src/routes/dash/media.tsx:
|
|
254
|
+
#: src/routes/dash/media.tsx:370
|
|
235
255
|
msgid "Deleting this media will remove it permanently from storage."
|
|
236
256
|
msgstr "Deleting this media will remove it permanently from storage."
|
|
237
257
|
|
|
238
258
|
#. @context: Hint shown on signin page when demo credentials are pre-filled
|
|
239
|
-
#: src/app.tsx:
|
|
259
|
+
#: src/app.tsx:336
|
|
240
260
|
msgid "Demo account pre-filled. Just click Sign In."
|
|
241
261
|
msgstr "Demo account pre-filled. Just click Sign In."
|
|
242
262
|
|
|
@@ -247,11 +267,16 @@ msgstr "Demo account pre-filled. Just click Sign In."
|
|
|
247
267
|
msgid "Description (optional)"
|
|
248
268
|
msgstr "Description (optional)"
|
|
249
269
|
|
|
270
|
+
#. @context: Close media picker button
|
|
271
|
+
#: src/theme/components/PostForm.tsx:334
|
|
272
|
+
msgid "Done"
|
|
273
|
+
msgstr "Done"
|
|
274
|
+
|
|
250
275
|
#. @context: Page status option - draft
|
|
251
276
|
#. @context: Post visibility badge - draft
|
|
252
277
|
#. @context: Post visibility option
|
|
253
278
|
#: src/theme/components/PageForm.tsx:132
|
|
254
|
-
#: src/theme/components/PostForm.tsx:
|
|
279
|
+
#: src/theme/components/PostForm.tsx:249
|
|
255
280
|
#: src/theme/components/VisibilityBadge.tsx:38
|
|
256
281
|
msgid "Draft"
|
|
257
282
|
msgstr "Draft"
|
|
@@ -261,6 +286,11 @@ msgstr "Draft"
|
|
|
261
286
|
msgid "Drafts"
|
|
262
287
|
msgstr "Drafts"
|
|
263
288
|
|
|
289
|
+
#. @context: Source name placeholder
|
|
290
|
+
#: src/theme/components/PostForm.tsx:214
|
|
291
|
+
msgid "e.g. The Verge, John Doe"
|
|
292
|
+
msgstr "e.g. The Verge, John Doe"
|
|
293
|
+
|
|
264
294
|
#. @context: Button to edit collection
|
|
265
295
|
#. @context: Button to edit collection
|
|
266
296
|
#. @context: Button to edit item
|
|
@@ -272,7 +302,7 @@ msgstr "Drafts"
|
|
|
272
302
|
#: src/routes/dash/collections.tsx:210
|
|
273
303
|
#: src/routes/dash/pages.tsx:64
|
|
274
304
|
#: src/routes/dash/pages.tsx:134
|
|
275
|
-
#: src/routes/dash/posts.tsx:
|
|
305
|
+
#: src/routes/dash/posts.tsx:142
|
|
276
306
|
#: src/theme/components/ActionButtons.tsx:72
|
|
277
307
|
#: src/theme/components/PostList.tsx:46
|
|
278
308
|
msgid "Edit"
|
|
@@ -289,7 +319,7 @@ msgid "Edit Page"
|
|
|
289
319
|
msgstr "Edit Page"
|
|
290
320
|
|
|
291
321
|
#. @context: Page heading
|
|
292
|
-
#: src/routes/dash/posts.tsx:
|
|
322
|
+
#: src/routes/dash/posts.tsx:185
|
|
293
323
|
msgid "Edit Post"
|
|
294
324
|
msgstr "Edit Post"
|
|
295
325
|
|
|
@@ -304,21 +334,21 @@ msgstr "Edit Post"
|
|
|
304
334
|
|
|
305
335
|
#. @context: Setup/signin form field - email
|
|
306
336
|
#. @context: Setup/signin form field - email
|
|
307
|
-
#: src/app.tsx:
|
|
308
|
-
#: src/app.tsx:
|
|
337
|
+
#: src/app.tsx:216
|
|
338
|
+
#: src/app.tsx:350
|
|
309
339
|
msgid "Email"
|
|
310
340
|
msgstr "Email"
|
|
311
341
|
|
|
312
342
|
#. @context: Password reset page description
|
|
313
|
-
#: src/app.tsx:
|
|
343
|
+
#: src/app.tsx:457
|
|
314
344
|
msgid "Enter your new password."
|
|
315
345
|
msgstr "Enter your new password."
|
|
316
346
|
|
|
317
347
|
#. @context: Post visibility badge
|
|
318
348
|
#. @context: Post visibility badge - featured
|
|
319
349
|
#. @context: Post visibility option
|
|
320
|
-
#: src/routes/pages/home.tsx:
|
|
321
|
-
#: src/theme/components/PostForm.tsx:
|
|
350
|
+
#: src/routes/pages/home.tsx:90
|
|
351
|
+
#: src/theme/components/PostForm.tsx:237
|
|
322
352
|
#: src/theme/components/VisibilityBadge.tsx:26
|
|
323
353
|
msgid "Featured"
|
|
324
354
|
msgstr "Featured"
|
|
@@ -339,7 +369,9 @@ msgid "From Path"
|
|
|
339
369
|
msgstr "From Path"
|
|
340
370
|
|
|
341
371
|
#. @context: Settings section heading
|
|
342
|
-
|
|
372
|
+
#. @context: Settings sub-navigation tab
|
|
373
|
+
#: src/routes/dash/settings.tsx:47
|
|
374
|
+
#: src/routes/dash/settings.tsx:130
|
|
343
375
|
msgid "General"
|
|
344
376
|
msgstr "General"
|
|
345
377
|
|
|
@@ -347,7 +379,7 @@ msgstr "General"
|
|
|
347
379
|
#. @context: Post type label - image
|
|
348
380
|
#. @context: Post type option
|
|
349
381
|
#: src/routes/pages/archive.tsx:37
|
|
350
|
-
#: src/theme/components/PostForm.tsx:
|
|
382
|
+
#: src/theme/components/PostForm.tsx:76
|
|
351
383
|
#: src/theme/components/TypeBadge.tsx:29
|
|
352
384
|
msgid "Image"
|
|
353
385
|
msgstr "Image"
|
|
@@ -358,17 +390,17 @@ msgid "Images"
|
|
|
358
390
|
msgstr "Images"
|
|
359
391
|
|
|
360
392
|
#. @context: Media upload instructions - auto optimization
|
|
361
|
-
#: src/routes/dash/media.tsx:
|
|
393
|
+
#: src/routes/dash/media.tsx:158
|
|
362
394
|
msgid "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
|
|
363
395
|
msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
|
|
364
396
|
|
|
365
397
|
#. @context: Password reset error heading
|
|
366
|
-
#: src/app.tsx:
|
|
398
|
+
#: src/app.tsx:522
|
|
367
399
|
msgid "Invalid or Expired Link"
|
|
368
400
|
msgstr "Invalid or Expired Link"
|
|
369
401
|
|
|
370
402
|
#. @context: Settings form field
|
|
371
|
-
#: src/routes/dash/settings.tsx:
|
|
403
|
+
#: src/routes/dash/settings.tsx:171
|
|
372
404
|
msgid "Language"
|
|
373
405
|
msgstr "Language"
|
|
374
406
|
|
|
@@ -381,7 +413,7 @@ msgstr "Language"
|
|
|
381
413
|
#. @context: Post type label - link
|
|
382
414
|
#. @context: Post type option
|
|
383
415
|
#: src/routes/pages/archive.tsx:32
|
|
384
|
-
#: src/theme/components/PostForm.tsx:
|
|
416
|
+
#: src/theme/components/PostForm.tsx:70
|
|
385
417
|
#: src/theme/components/TypeBadge.tsx:24
|
|
386
418
|
msgid "Link"
|
|
387
419
|
msgstr "Link"
|
|
@@ -396,19 +428,26 @@ msgstr "Links"
|
|
|
396
428
|
msgid "Load more"
|
|
397
429
|
msgstr "Load more"
|
|
398
430
|
|
|
431
|
+
#. @context: Loading state for media picker
|
|
432
|
+
#: src/theme/components/PostForm.tsx:345
|
|
433
|
+
msgid "Loading..."
|
|
434
|
+
msgstr "Loading..."
|
|
435
|
+
|
|
399
436
|
#. @context: Page path validation message
|
|
400
437
|
#: src/theme/components/PageForm.tsx:76
|
|
401
438
|
msgid "Lowercase letters, numbers, and hyphens only"
|
|
402
439
|
msgstr "Lowercase letters, numbers, and hyphens only"
|
|
403
440
|
|
|
404
441
|
#. @context: Media detail section - Markdown snippet
|
|
405
|
-
#: src/routes/dash/media.tsx:
|
|
442
|
+
#: src/routes/dash/media.tsx:334
|
|
406
443
|
msgid "Markdown"
|
|
407
444
|
msgstr "Markdown"
|
|
408
445
|
|
|
409
446
|
#. @context: Dashboard navigation - media library
|
|
410
447
|
#. @context: Media main heading
|
|
411
|
-
|
|
448
|
+
#. @context: Post form field - media attachments
|
|
449
|
+
#: src/routes/dash/media.tsx:138
|
|
450
|
+
#: src/theme/components/PostForm.tsx:121
|
|
412
451
|
#: src/theme/layouts/DashLayout.tsx:105
|
|
413
452
|
msgid "Media"
|
|
414
453
|
msgstr "Media"
|
|
@@ -423,6 +462,11 @@ msgstr "Media"
|
|
|
423
462
|
msgid "My Collection"
|
|
424
463
|
msgstr "My Collection"
|
|
425
464
|
|
|
465
|
+
#. @context: Account settings form field
|
|
466
|
+
#: src/routes/dash/settings.tsx:362
|
|
467
|
+
msgid "Name"
|
|
468
|
+
msgstr "Name"
|
|
469
|
+
|
|
426
470
|
#. @context: Help text with link
|
|
427
471
|
#: src/routes/dash/index.tsx:78
|
|
428
472
|
msgid "Need help? Visit the <0>documentation</0>"
|
|
@@ -446,8 +490,8 @@ msgstr "New Page"
|
|
|
446
490
|
|
|
447
491
|
#. @context: Password form field
|
|
448
492
|
#. @context: Password reset form field
|
|
449
|
-
#: src/app.tsx:
|
|
450
|
-
#: src/routes/dash/settings.tsx:
|
|
493
|
+
#: src/app.tsx:471
|
|
494
|
+
#: src/routes/dash/settings.tsx:417
|
|
451
495
|
msgid "New Password"
|
|
452
496
|
msgstr "New Password"
|
|
453
497
|
|
|
@@ -482,7 +526,7 @@ msgid "No collections yet."
|
|
|
482
526
|
msgstr "No collections yet."
|
|
483
527
|
|
|
484
528
|
#. @context: Empty state message when no media exists
|
|
485
|
-
#: src/routes/dash/media.tsx:
|
|
529
|
+
#: src/routes/dash/media.tsx:173
|
|
486
530
|
msgid "No media uploaded yet."
|
|
487
531
|
msgstr "No media uploaded yet."
|
|
488
532
|
|
|
@@ -505,7 +549,7 @@ msgstr "No posts in this collection."
|
|
|
505
549
|
|
|
506
550
|
#. @context: Empty state message on home page
|
|
507
551
|
#. @context: Empty state message when no posts exist
|
|
508
|
-
#: src/routes/pages/home.tsx:
|
|
552
|
+
#: src/routes/pages/home.tsx:54
|
|
509
553
|
#: src/theme/components/PostList.tsx:25
|
|
510
554
|
msgid "No posts yet."
|
|
511
555
|
msgstr "No posts yet."
|
|
@@ -524,7 +568,7 @@ msgstr "No results found."
|
|
|
524
568
|
#. @context: Post type label - note
|
|
525
569
|
#. @context: Post type option
|
|
526
570
|
#: src/routes/pages/archive.tsx:27
|
|
527
|
-
#: src/theme/components/PostForm.tsx:
|
|
571
|
+
#: src/theme/components/PostForm.tsx:64
|
|
528
572
|
#: src/theme/components/TypeBadge.tsx:19
|
|
529
573
|
msgid "Note"
|
|
530
574
|
msgstr "Note"
|
|
@@ -569,8 +613,8 @@ msgstr "Pages"
|
|
|
569
613
|
|
|
570
614
|
#. @context: Setup/signin form field - password
|
|
571
615
|
#. @context: Setup/signin form field - password
|
|
572
|
-
#: src/app.tsx:
|
|
573
|
-
#: src/app.tsx:
|
|
616
|
+
#: src/app.tsx:231
|
|
617
|
+
#: src/app.tsx:359
|
|
574
618
|
msgid "Password"
|
|
575
619
|
msgstr "Password"
|
|
576
620
|
|
|
@@ -581,18 +625,18 @@ msgstr "Path"
|
|
|
581
625
|
|
|
582
626
|
#. @context: Link to individual post in thread
|
|
583
627
|
#. @context: Link to permanent URL of post
|
|
584
|
-
#: src/routes/pages/post.tsx:
|
|
628
|
+
#: src/routes/pages/post.tsx:53
|
|
585
629
|
#: src/theme/components/ThreadView.tsx:68
|
|
586
630
|
msgid "Permalink"
|
|
587
631
|
msgstr "Permalink"
|
|
588
632
|
|
|
589
633
|
#. @context: Default post title
|
|
590
|
-
#: src/routes/dash/posts.tsx:
|
|
634
|
+
#: src/routes/dash/posts.tsx:131
|
|
591
635
|
msgid "Post"
|
|
592
636
|
msgstr "Post"
|
|
593
637
|
|
|
594
638
|
#. @context: Post title placeholder
|
|
595
|
-
#: src/theme/components/PostForm.tsx:
|
|
639
|
+
#: src/theme/components/PostForm.tsx:93
|
|
596
640
|
msgid "Post title..."
|
|
597
641
|
msgstr "Post title..."
|
|
598
642
|
|
|
@@ -609,7 +653,7 @@ msgid "Posts in Collection ({count})"
|
|
|
609
653
|
msgstr "Posts in Collection ({count})"
|
|
610
654
|
|
|
611
655
|
#. @context: Media detail section - preview
|
|
612
|
-
#: src/routes/dash/media.tsx:
|
|
656
|
+
#: src/routes/dash/media.tsx:257
|
|
613
657
|
msgid "Preview"
|
|
614
658
|
msgstr "Preview"
|
|
615
659
|
|
|
@@ -621,12 +665,17 @@ msgid "Previous"
|
|
|
621
665
|
msgstr "Previous"
|
|
622
666
|
|
|
623
667
|
#. @context: Upload status - processing
|
|
624
|
-
#: src/routes/dash/media.tsx:
|
|
668
|
+
#: src/routes/dash/media.tsx:106
|
|
625
669
|
msgid "Processing..."
|
|
626
670
|
msgstr "Processing..."
|
|
627
671
|
|
|
672
|
+
#. @context: Account settings section heading
|
|
673
|
+
#: src/routes/dash/settings.tsx:353
|
|
674
|
+
msgid "Profile"
|
|
675
|
+
msgstr "Profile"
|
|
676
|
+
|
|
628
677
|
#. @context: Button to publish new post
|
|
629
|
-
#: src/theme/components/PostForm.tsx:
|
|
678
|
+
#: src/theme/components/PostForm.tsx:306
|
|
630
679
|
msgid "Publish"
|
|
631
680
|
msgstr "Publish"
|
|
632
681
|
|
|
@@ -653,7 +702,7 @@ msgid "Quiet"
|
|
|
653
702
|
msgstr "Quiet"
|
|
654
703
|
|
|
655
704
|
#. @context: Post visibility option
|
|
656
|
-
#: src/theme/components/PostForm.tsx:
|
|
705
|
+
#: src/theme/components/PostForm.tsx:231
|
|
657
706
|
msgid "Quiet (normal)"
|
|
658
707
|
msgstr "Quiet (normal)"
|
|
659
708
|
|
|
@@ -661,7 +710,7 @@ msgstr "Quiet (normal)"
|
|
|
661
710
|
#. @context: Post type label - quote
|
|
662
711
|
#. @context: Post type option
|
|
663
712
|
#: src/routes/pages/archive.tsx:33
|
|
664
|
-
#: src/theme/components/PostForm.tsx:
|
|
713
|
+
#: src/theme/components/PostForm.tsx:73
|
|
665
714
|
#: src/theme/components/TypeBadge.tsx:25
|
|
666
715
|
msgid "Quote"
|
|
667
716
|
msgstr "Quote"
|
|
@@ -679,19 +728,26 @@ msgid "Redirects"
|
|
|
679
728
|
msgstr "Redirects"
|
|
680
729
|
|
|
681
730
|
#. @context: Button to remove post from collection
|
|
731
|
+
#. @context: Remove media attachment button
|
|
682
732
|
#: src/routes/dash/collections.tsx:257
|
|
733
|
+
#: src/theme/components/PostForm.tsx:161
|
|
683
734
|
msgid "Remove"
|
|
684
735
|
msgstr "Remove"
|
|
685
736
|
|
|
686
737
|
#. @context: Password reset form submit button
|
|
687
738
|
#. @context: Password reset page heading
|
|
688
|
-
#: src/app.tsx:
|
|
689
|
-
#: src/app.tsx:
|
|
739
|
+
#: src/app.tsx:451
|
|
740
|
+
#: src/app.tsx:502
|
|
690
741
|
msgid "Reset Password"
|
|
691
742
|
msgstr "Reset Password"
|
|
692
743
|
|
|
744
|
+
#. @context: Button to save profile
|
|
745
|
+
#: src/routes/dash/settings.tsx:378
|
|
746
|
+
msgid "Save Profile"
|
|
747
|
+
msgstr "Save Profile"
|
|
748
|
+
|
|
693
749
|
#. @context: Button to save settings
|
|
694
|
-
#: src/routes/dash/settings.tsx:
|
|
750
|
+
#: src/routes/dash/settings.tsx:192
|
|
695
751
|
msgid "Save Settings"
|
|
696
752
|
msgstr "Save Settings"
|
|
697
753
|
|
|
@@ -712,9 +768,18 @@ msgstr "Search"
|
|
|
712
768
|
msgid "Search posts..."
|
|
713
769
|
msgstr "Search posts..."
|
|
714
770
|
|
|
771
|
+
#. @context: Media picker dialog title
|
|
772
|
+
#: src/theme/components/PostForm.tsx:324
|
|
773
|
+
msgid "Select Media"
|
|
774
|
+
msgstr "Select Media"
|
|
775
|
+
|
|
776
|
+
#. @context: Dashboard heading
|
|
777
|
+
#. @context: Dashboard heading
|
|
715
778
|
#. @context: Dashboard heading
|
|
716
779
|
#. @context: Dashboard navigation - site settings
|
|
717
|
-
#: src/routes/dash/settings.tsx:
|
|
780
|
+
#: src/routes/dash/settings.tsx:118
|
|
781
|
+
#: src/routes/dash/settings.tsx:290
|
|
782
|
+
#: src/routes/dash/settings.tsx:341
|
|
718
783
|
#: src/theme/layouts/DashLayout.tsx:133
|
|
719
784
|
msgid "Settings"
|
|
720
785
|
msgstr "Settings"
|
|
@@ -726,8 +791,8 @@ msgstr "Settings"
|
|
|
726
791
|
|
|
727
792
|
#. @context: Sign in form submit button
|
|
728
793
|
#. @context: Sign in page heading
|
|
729
|
-
#: src/app.tsx:
|
|
730
|
-
#: src/app.tsx:
|
|
794
|
+
#: src/app.tsx:327
|
|
795
|
+
#: src/app.tsx:372
|
|
731
796
|
msgid "Sign In"
|
|
732
797
|
msgstr "Sign In"
|
|
733
798
|
|
|
@@ -737,12 +802,12 @@ msgid "Sign Out"
|
|
|
737
802
|
msgstr "Sign Out"
|
|
738
803
|
|
|
739
804
|
#. @context: Settings form field
|
|
740
|
-
#: src/routes/dash/settings.tsx:
|
|
805
|
+
#: src/routes/dash/settings.tsx:154
|
|
741
806
|
msgid "Site Description"
|
|
742
807
|
msgstr "Site Description"
|
|
743
808
|
|
|
744
809
|
#. @context: Settings form field
|
|
745
|
-
#: src/routes/dash/settings.tsx:
|
|
810
|
+
#: src/routes/dash/settings.tsx:139
|
|
746
811
|
msgid "Site Name"
|
|
747
812
|
msgstr "Site Name"
|
|
748
813
|
|
|
@@ -753,8 +818,13 @@ msgstr "Site Name"
|
|
|
753
818
|
msgid "Slug"
|
|
754
819
|
msgstr "Slug"
|
|
755
820
|
|
|
821
|
+
#. @context: Post form field - name of the source website or author
|
|
822
|
+
#: src/theme/components/PostForm.tsx:204
|
|
823
|
+
msgid "Source Name (optional)"
|
|
824
|
+
msgstr "Source Name (optional)"
|
|
825
|
+
|
|
756
826
|
#. @context: Post form field
|
|
757
|
-
#: src/theme/components/PostForm.tsx:
|
|
827
|
+
#: src/theme/components/PostForm.tsx:188
|
|
758
828
|
msgid "Source URL (optional)"
|
|
759
829
|
msgstr "Source URL (optional)"
|
|
760
830
|
|
|
@@ -784,12 +854,12 @@ msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
|
|
|
784
854
|
msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
|
|
785
855
|
|
|
786
856
|
#. @context: Password reset error description
|
|
787
|
-
#: src/app.tsx:
|
|
857
|
+
#: src/app.tsx:530
|
|
788
858
|
msgid "This password reset link is invalid or has expired. Please generate a new one."
|
|
789
859
|
msgstr "This password reset link is invalid or has expired. Please generate a new one."
|
|
790
860
|
|
|
791
861
|
#. @context: Appearance settings description
|
|
792
|
-
#: src/routes/dash/
|
|
862
|
+
#: src/routes/dash/settings.tsx:307
|
|
793
863
|
msgid "This will theme both your site and your dashboard. All color themes support dark mode."
|
|
794
864
|
msgstr "This will theme both your site and your dashboard. All color themes support dark mode."
|
|
795
865
|
|
|
@@ -818,7 +888,7 @@ msgid "Title"
|
|
|
818
888
|
msgstr "Title"
|
|
819
889
|
|
|
820
890
|
#. @context: Post form field
|
|
821
|
-
#: src/theme/components/PostForm.tsx:
|
|
891
|
+
#: src/theme/components/PostForm.tsx:84
|
|
822
892
|
msgid "Title (optional)"
|
|
823
893
|
msgstr "Title (optional)"
|
|
824
894
|
|
|
@@ -830,13 +900,13 @@ msgstr "To Path"
|
|
|
830
900
|
#. @context: Post form field - post type
|
|
831
901
|
#. @context: Redirect form field
|
|
832
902
|
#: src/routes/dash/redirects.tsx:141
|
|
833
|
-
#: src/theme/components/PostForm.tsx:
|
|
903
|
+
#: src/theme/components/PostForm.tsx:57
|
|
834
904
|
msgid "Type"
|
|
835
905
|
msgstr "Type"
|
|
836
906
|
|
|
837
907
|
#. @context: Post visibility badge - unlisted
|
|
838
908
|
#. @context: Post visibility option
|
|
839
|
-
#: src/theme/components/PostForm.tsx:
|
|
909
|
+
#: src/theme/components/PostForm.tsx:243
|
|
840
910
|
#: src/theme/components/VisibilityBadge.tsx:34
|
|
841
911
|
msgid "Unlisted"
|
|
842
912
|
msgstr "Unlisted"
|
|
@@ -849,7 +919,7 @@ msgid "Untitled"
|
|
|
849
919
|
msgstr "Untitled"
|
|
850
920
|
|
|
851
921
|
#. @context: Button to update existing post
|
|
852
|
-
#: src/theme/components/PostForm.tsx:
|
|
922
|
+
#: src/theme/components/PostForm.tsx:302
|
|
853
923
|
msgid "Update"
|
|
854
924
|
msgstr "Update"
|
|
855
925
|
|
|
@@ -864,12 +934,12 @@ msgid "Update Page"
|
|
|
864
934
|
msgstr "Update Page"
|
|
865
935
|
|
|
866
936
|
#. @context: Button to upload media file
|
|
867
|
-
#: src/routes/dash/media.tsx:
|
|
937
|
+
#: src/routes/dash/media.tsx:114
|
|
868
938
|
msgid "Upload"
|
|
869
939
|
msgstr "Upload"
|
|
870
940
|
|
|
871
941
|
#. @context: Upload error message
|
|
872
|
-
#: src/routes/dash/media.tsx:
|
|
942
|
+
#: src/routes/dash/media.tsx:118
|
|
873
943
|
msgid "Upload failed. Please try again."
|
|
874
944
|
msgstr "Upload failed. Please try again."
|
|
875
945
|
|
|
@@ -879,12 +949,12 @@ msgstr "Upload failed. Please try again."
|
|
|
879
949
|
#~ msgstr "Upload images via the API: POST /api/upload with a file form field."
|
|
880
950
|
|
|
881
951
|
#. @context: Upload status - uploading
|
|
882
|
-
#: src/routes/dash/media.tsx:
|
|
952
|
+
#: src/routes/dash/media.tsx:110
|
|
883
953
|
msgid "Uploading..."
|
|
884
954
|
msgstr "Uploading..."
|
|
885
955
|
|
|
886
956
|
#. @context: Media detail section - URL
|
|
887
|
-
#: src/routes/dash/media.tsx:
|
|
957
|
+
#: src/routes/dash/media.tsx:297
|
|
888
958
|
msgid "URL"
|
|
889
959
|
msgstr "URL"
|
|
890
960
|
|
|
@@ -894,7 +964,7 @@ msgid "URL-safe identifier (lowercase, numbers, hyphens)"
|
|
|
894
964
|
msgstr "URL-safe identifier (lowercase, numbers, hyphens)"
|
|
895
965
|
|
|
896
966
|
#. @context: Media URL helper text
|
|
897
|
-
#: src/routes/dash/media.tsx:
|
|
967
|
+
#: src/routes/dash/media.tsx:323
|
|
898
968
|
msgid "Use this URL to embed the media in your posts."
|
|
899
969
|
msgstr "Use this URL to embed the media in your posts."
|
|
900
970
|
|
|
@@ -909,14 +979,14 @@ msgstr "Use this URL to embed the media in your posts."
|
|
|
909
979
|
#: src/routes/dash/collections.tsx:215
|
|
910
980
|
#: src/routes/dash/pages.tsx:73
|
|
911
981
|
#: src/routes/dash/pages.tsx:143
|
|
912
|
-
#: src/routes/dash/posts.tsx:
|
|
982
|
+
#: src/routes/dash/posts.tsx:147
|
|
913
983
|
#: src/theme/components/ActionButtons.tsx:76
|
|
914
984
|
#: src/theme/components/PostList.tsx:51
|
|
915
985
|
msgid "View"
|
|
916
986
|
msgstr "View"
|
|
917
987
|
|
|
918
988
|
#. @context: Link to view all posts on archive page
|
|
919
|
-
#: src/routes/pages/home.tsx:
|
|
989
|
+
#: src/routes/pages/home.tsx:109
|
|
920
990
|
msgid "View all posts →"
|
|
921
991
|
msgstr "View all posts →"
|
|
922
992
|
|
|
@@ -926,17 +996,17 @@ msgid "View Site"
|
|
|
926
996
|
msgstr "View Site"
|
|
927
997
|
|
|
928
998
|
#. @context: Post form field
|
|
929
|
-
#: src/theme/components/PostForm.tsx:
|
|
999
|
+
#: src/theme/components/PostForm.tsx:224
|
|
930
1000
|
msgid "Visibility"
|
|
931
1001
|
msgstr "Visibility"
|
|
932
1002
|
|
|
933
1003
|
#. @context: Setup page welcome heading
|
|
934
|
-
#: src/app.tsx:
|
|
1004
|
+
#: src/app.tsx:181
|
|
935
1005
|
msgid "Welcome to Jant"
|
|
936
1006
|
msgstr "Welcome to Jant"
|
|
937
1007
|
|
|
938
1008
|
#. @context: Post content placeholder
|
|
939
|
-
#: src/theme/components/PostForm.tsx:
|
|
1009
|
+
#: src/theme/components/PostForm.tsx:108
|
|
940
1010
|
msgid "What's on your mind?"
|
|
941
1011
|
msgstr "What's on your mind?"
|
|
942
1012
|
|
|
@@ -946,6 +1016,6 @@ msgid "What's this collection about?"
|
|
|
946
1016
|
msgstr "What's this collection about?"
|
|
947
1017
|
|
|
948
1018
|
#. @context: Setup form field - user name
|
|
949
|
-
#: src/app.tsx:
|
|
1019
|
+
#: src/app.tsx:201
|
|
950
1020
|
msgid "Your Name"
|
|
951
1021
|
msgstr "Your Name"
|