@jant/core 0.3.6 → 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 +81 -37
- package/src/i18n/locales/en.ts +1 -1
- package/src/i18n/locales/zh-Hans.po +81 -37
- package/src/i18n/locales/zh-Hans.ts +1 -1
- package/src/i18n/locales/zh-Hant.po +81 -37
- 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
|
|
|
@@ -50,6 +50,11 @@ msgstr "302 (Temporary)"
|
|
|
50
50
|
msgid "Account"
|
|
51
51
|
msgstr "Account"
|
|
52
52
|
|
|
53
|
+
#. @context: Button to open media picker
|
|
54
|
+
#: src/theme/components/PostForm.tsx:178
|
|
55
|
+
msgid "Add Media"
|
|
56
|
+
msgstr "Add Media"
|
|
57
|
+
|
|
53
58
|
#. @context: Archive filter - all types
|
|
54
59
|
#: src/routes/pages/archive.tsx:115
|
|
55
60
|
msgid "All"
|
|
@@ -63,7 +68,7 @@ msgstr "Appearance"
|
|
|
63
68
|
#. @context: Archive page title
|
|
64
69
|
#. @context: Navigation link to archive page
|
|
65
70
|
#: src/routes/pages/archive.tsx:102
|
|
66
|
-
#: src/routes/pages/home.tsx:
|
|
71
|
+
#: src/routes/pages/home.tsx:40
|
|
67
72
|
msgid "Archive"
|
|
68
73
|
msgstr "Archive"
|
|
69
74
|
|
|
@@ -71,7 +76,7 @@ msgstr "Archive"
|
|
|
71
76
|
#. @context: Post type label - article
|
|
72
77
|
#. @context: Post type option
|
|
73
78
|
#: src/routes/pages/archive.tsx:28
|
|
74
|
-
#: src/theme/components/PostForm.tsx:
|
|
79
|
+
#: src/theme/components/PostForm.tsx:67
|
|
75
80
|
#: src/theme/components/TypeBadge.tsx:20
|
|
76
81
|
msgid "Article"
|
|
77
82
|
msgstr "Article"
|
|
@@ -81,6 +86,11 @@ msgstr "Article"
|
|
|
81
86
|
msgid "Articles"
|
|
82
87
|
msgstr "Articles"
|
|
83
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
|
+
|
|
84
94
|
#. @context: Button to go back to media list
|
|
85
95
|
#: src/routes/dash/media.tsx:245
|
|
86
96
|
msgid "Back"
|
|
@@ -104,7 +114,7 @@ msgstr "Back to home"
|
|
|
104
114
|
#: src/routes/dash/collections.tsx:345
|
|
105
115
|
#: src/routes/dash/redirects.tsx:167
|
|
106
116
|
#: src/theme/components/PageForm.tsx:161
|
|
107
|
-
#: src/theme/components/PostForm.tsx:
|
|
117
|
+
#: src/theme/components/PostForm.tsx:312
|
|
108
118
|
msgid "Cancel"
|
|
109
119
|
msgstr "Cancel"
|
|
110
120
|
|
|
@@ -127,6 +137,11 @@ msgstr "Click image to view full size"
|
|
|
127
137
|
msgid "Collections"
|
|
128
138
|
msgstr "Collections"
|
|
129
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
|
+
|
|
130
145
|
#. @context: Appearance settings heading
|
|
131
146
|
#: src/routes/dash/settings.tsx:301
|
|
132
147
|
msgid "Color theme"
|
|
@@ -143,14 +158,14 @@ msgid "Confirm New Password"
|
|
|
143
158
|
msgstr "Confirm New Password"
|
|
144
159
|
|
|
145
160
|
#. @context: Password reset form field
|
|
146
|
-
#: src/app.tsx:
|
|
161
|
+
#: src/app.tsx:487
|
|
147
162
|
msgid "Confirm Password"
|
|
148
163
|
msgstr "Confirm Password"
|
|
149
164
|
|
|
150
165
|
#. @context: Page form field label - content
|
|
151
166
|
#. @context: Post form field
|
|
152
167
|
#: src/theme/components/PageForm.tsx:95
|
|
153
|
-
#: src/theme/components/PostForm.tsx:
|
|
168
|
+
#: src/theme/components/PostForm.tsx:103
|
|
154
169
|
msgid "Content"
|
|
155
170
|
msgstr "Content"
|
|
156
171
|
|
|
@@ -197,7 +212,7 @@ msgid "Current Password"
|
|
|
197
212
|
msgstr "Current Password"
|
|
198
213
|
|
|
199
214
|
#. @context: Post form field
|
|
200
|
-
#: src/theme/components/PostForm.tsx:
|
|
215
|
+
#: src/theme/components/PostForm.tsx:285
|
|
201
216
|
msgid "Custom Path (optional)"
|
|
202
217
|
msgstr "Custom Path (optional)"
|
|
203
218
|
|
|
@@ -252,11 +267,16 @@ msgstr "Demo account pre-filled. Just click Sign In."
|
|
|
252
267
|
msgid "Description (optional)"
|
|
253
268
|
msgstr "Description (optional)"
|
|
254
269
|
|
|
270
|
+
#. @context: Close media picker button
|
|
271
|
+
#: src/theme/components/PostForm.tsx:334
|
|
272
|
+
msgid "Done"
|
|
273
|
+
msgstr "Done"
|
|
274
|
+
|
|
255
275
|
#. @context: Page status option - draft
|
|
256
276
|
#. @context: Post visibility badge - draft
|
|
257
277
|
#. @context: Post visibility option
|
|
258
278
|
#: src/theme/components/PageForm.tsx:132
|
|
259
|
-
#: src/theme/components/PostForm.tsx:
|
|
279
|
+
#: src/theme/components/PostForm.tsx:249
|
|
260
280
|
#: src/theme/components/VisibilityBadge.tsx:38
|
|
261
281
|
msgid "Draft"
|
|
262
282
|
msgstr "Draft"
|
|
@@ -266,6 +286,11 @@ msgstr "Draft"
|
|
|
266
286
|
msgid "Drafts"
|
|
267
287
|
msgstr "Drafts"
|
|
268
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
|
+
|
|
269
294
|
#. @context: Button to edit collection
|
|
270
295
|
#. @context: Button to edit collection
|
|
271
296
|
#. @context: Button to edit item
|
|
@@ -277,7 +302,7 @@ msgstr "Drafts"
|
|
|
277
302
|
#: src/routes/dash/collections.tsx:210
|
|
278
303
|
#: src/routes/dash/pages.tsx:64
|
|
279
304
|
#: src/routes/dash/pages.tsx:134
|
|
280
|
-
#: src/routes/dash/posts.tsx:
|
|
305
|
+
#: src/routes/dash/posts.tsx:142
|
|
281
306
|
#: src/theme/components/ActionButtons.tsx:72
|
|
282
307
|
#: src/theme/components/PostList.tsx:46
|
|
283
308
|
msgid "Edit"
|
|
@@ -294,7 +319,7 @@ msgid "Edit Page"
|
|
|
294
319
|
msgstr "Edit Page"
|
|
295
320
|
|
|
296
321
|
#. @context: Page heading
|
|
297
|
-
#: src/routes/dash/posts.tsx:
|
|
322
|
+
#: src/routes/dash/posts.tsx:185
|
|
298
323
|
msgid "Edit Post"
|
|
299
324
|
msgstr "Edit Post"
|
|
300
325
|
|
|
@@ -315,15 +340,15 @@ msgid "Email"
|
|
|
315
340
|
msgstr "Email"
|
|
316
341
|
|
|
317
342
|
#. @context: Password reset page description
|
|
318
|
-
#: src/app.tsx:
|
|
343
|
+
#: src/app.tsx:457
|
|
319
344
|
msgid "Enter your new password."
|
|
320
345
|
msgstr "Enter your new password."
|
|
321
346
|
|
|
322
347
|
#. @context: Post visibility badge
|
|
323
348
|
#. @context: Post visibility badge - featured
|
|
324
349
|
#. @context: Post visibility option
|
|
325
|
-
#: src/routes/pages/home.tsx:
|
|
326
|
-
#: src/theme/components/PostForm.tsx:
|
|
350
|
+
#: src/routes/pages/home.tsx:90
|
|
351
|
+
#: src/theme/components/PostForm.tsx:237
|
|
327
352
|
#: src/theme/components/VisibilityBadge.tsx:26
|
|
328
353
|
msgid "Featured"
|
|
329
354
|
msgstr "Featured"
|
|
@@ -354,7 +379,7 @@ msgstr "General"
|
|
|
354
379
|
#. @context: Post type label - image
|
|
355
380
|
#. @context: Post type option
|
|
356
381
|
#: src/routes/pages/archive.tsx:37
|
|
357
|
-
#: src/theme/components/PostForm.tsx:
|
|
382
|
+
#: src/theme/components/PostForm.tsx:76
|
|
358
383
|
#: src/theme/components/TypeBadge.tsx:29
|
|
359
384
|
msgid "Image"
|
|
360
385
|
msgstr "Image"
|
|
@@ -370,7 +395,7 @@ msgid "Images are automatically optimized: resized to max 1920px, converted to W
|
|
|
370
395
|
msgstr "Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped."
|
|
371
396
|
|
|
372
397
|
#. @context: Password reset error heading
|
|
373
|
-
#: src/app.tsx:
|
|
398
|
+
#: src/app.tsx:522
|
|
374
399
|
msgid "Invalid or Expired Link"
|
|
375
400
|
msgstr "Invalid or Expired Link"
|
|
376
401
|
|
|
@@ -388,7 +413,7 @@ msgstr "Language"
|
|
|
388
413
|
#. @context: Post type label - link
|
|
389
414
|
#. @context: Post type option
|
|
390
415
|
#: src/routes/pages/archive.tsx:32
|
|
391
|
-
#: src/theme/components/PostForm.tsx:
|
|
416
|
+
#: src/theme/components/PostForm.tsx:70
|
|
392
417
|
#: src/theme/components/TypeBadge.tsx:24
|
|
393
418
|
msgid "Link"
|
|
394
419
|
msgstr "Link"
|
|
@@ -403,6 +428,11 @@ msgstr "Links"
|
|
|
403
428
|
msgid "Load more"
|
|
404
429
|
msgstr "Load more"
|
|
405
430
|
|
|
431
|
+
#. @context: Loading state for media picker
|
|
432
|
+
#: src/theme/components/PostForm.tsx:345
|
|
433
|
+
msgid "Loading..."
|
|
434
|
+
msgstr "Loading..."
|
|
435
|
+
|
|
406
436
|
#. @context: Page path validation message
|
|
407
437
|
#: src/theme/components/PageForm.tsx:76
|
|
408
438
|
msgid "Lowercase letters, numbers, and hyphens only"
|
|
@@ -415,7 +445,9 @@ msgstr "Markdown"
|
|
|
415
445
|
|
|
416
446
|
#. @context: Dashboard navigation - media library
|
|
417
447
|
#. @context: Media main heading
|
|
448
|
+
#. @context: Post form field - media attachments
|
|
418
449
|
#: src/routes/dash/media.tsx:138
|
|
450
|
+
#: src/theme/components/PostForm.tsx:121
|
|
419
451
|
#: src/theme/layouts/DashLayout.tsx:105
|
|
420
452
|
msgid "Media"
|
|
421
453
|
msgstr "Media"
|
|
@@ -458,7 +490,7 @@ msgstr "New Page"
|
|
|
458
490
|
|
|
459
491
|
#. @context: Password form field
|
|
460
492
|
#. @context: Password reset form field
|
|
461
|
-
#: src/app.tsx:
|
|
493
|
+
#: src/app.tsx:471
|
|
462
494
|
#: src/routes/dash/settings.tsx:417
|
|
463
495
|
msgid "New Password"
|
|
464
496
|
msgstr "New Password"
|
|
@@ -517,7 +549,7 @@ msgstr "No posts in this collection."
|
|
|
517
549
|
|
|
518
550
|
#. @context: Empty state message on home page
|
|
519
551
|
#. @context: Empty state message when no posts exist
|
|
520
|
-
#: src/routes/pages/home.tsx:
|
|
552
|
+
#: src/routes/pages/home.tsx:54
|
|
521
553
|
#: src/theme/components/PostList.tsx:25
|
|
522
554
|
msgid "No posts yet."
|
|
523
555
|
msgstr "No posts yet."
|
|
@@ -536,7 +568,7 @@ msgstr "No results found."
|
|
|
536
568
|
#. @context: Post type label - note
|
|
537
569
|
#. @context: Post type option
|
|
538
570
|
#: src/routes/pages/archive.tsx:27
|
|
539
|
-
#: src/theme/components/PostForm.tsx:
|
|
571
|
+
#: src/theme/components/PostForm.tsx:64
|
|
540
572
|
#: src/theme/components/TypeBadge.tsx:19
|
|
541
573
|
msgid "Note"
|
|
542
574
|
msgstr "Note"
|
|
@@ -593,18 +625,18 @@ msgstr "Path"
|
|
|
593
625
|
|
|
594
626
|
#. @context: Link to individual post in thread
|
|
595
627
|
#. @context: Link to permanent URL of post
|
|
596
|
-
#: src/routes/pages/post.tsx:
|
|
628
|
+
#: src/routes/pages/post.tsx:53
|
|
597
629
|
#: src/theme/components/ThreadView.tsx:68
|
|
598
630
|
msgid "Permalink"
|
|
599
631
|
msgstr "Permalink"
|
|
600
632
|
|
|
601
633
|
#. @context: Default post title
|
|
602
|
-
#: src/routes/dash/posts.tsx:
|
|
634
|
+
#: src/routes/dash/posts.tsx:131
|
|
603
635
|
msgid "Post"
|
|
604
636
|
msgstr "Post"
|
|
605
637
|
|
|
606
638
|
#. @context: Post title placeholder
|
|
607
|
-
#: src/theme/components/PostForm.tsx:
|
|
639
|
+
#: src/theme/components/PostForm.tsx:93
|
|
608
640
|
msgid "Post title..."
|
|
609
641
|
msgstr "Post title..."
|
|
610
642
|
|
|
@@ -643,7 +675,7 @@ msgid "Profile"
|
|
|
643
675
|
msgstr "Profile"
|
|
644
676
|
|
|
645
677
|
#. @context: Button to publish new post
|
|
646
|
-
#: src/theme/components/PostForm.tsx:
|
|
678
|
+
#: src/theme/components/PostForm.tsx:306
|
|
647
679
|
msgid "Publish"
|
|
648
680
|
msgstr "Publish"
|
|
649
681
|
|
|
@@ -670,7 +702,7 @@ msgid "Quiet"
|
|
|
670
702
|
msgstr "Quiet"
|
|
671
703
|
|
|
672
704
|
#. @context: Post visibility option
|
|
673
|
-
#: src/theme/components/PostForm.tsx:
|
|
705
|
+
#: src/theme/components/PostForm.tsx:231
|
|
674
706
|
msgid "Quiet (normal)"
|
|
675
707
|
msgstr "Quiet (normal)"
|
|
676
708
|
|
|
@@ -678,7 +710,7 @@ msgstr "Quiet (normal)"
|
|
|
678
710
|
#. @context: Post type label - quote
|
|
679
711
|
#. @context: Post type option
|
|
680
712
|
#: src/routes/pages/archive.tsx:33
|
|
681
|
-
#: src/theme/components/PostForm.tsx:
|
|
713
|
+
#: src/theme/components/PostForm.tsx:73
|
|
682
714
|
#: src/theme/components/TypeBadge.tsx:25
|
|
683
715
|
msgid "Quote"
|
|
684
716
|
msgstr "Quote"
|
|
@@ -696,14 +728,16 @@ msgid "Redirects"
|
|
|
696
728
|
msgstr "Redirects"
|
|
697
729
|
|
|
698
730
|
#. @context: Button to remove post from collection
|
|
731
|
+
#. @context: Remove media attachment button
|
|
699
732
|
#: src/routes/dash/collections.tsx:257
|
|
733
|
+
#: src/theme/components/PostForm.tsx:161
|
|
700
734
|
msgid "Remove"
|
|
701
735
|
msgstr "Remove"
|
|
702
736
|
|
|
703
737
|
#. @context: Password reset form submit button
|
|
704
738
|
#. @context: Password reset page heading
|
|
705
|
-
#: src/app.tsx:
|
|
706
|
-
#: src/app.tsx:
|
|
739
|
+
#: src/app.tsx:451
|
|
740
|
+
#: src/app.tsx:502
|
|
707
741
|
msgid "Reset Password"
|
|
708
742
|
msgstr "Reset Password"
|
|
709
743
|
|
|
@@ -734,6 +768,11 @@ msgstr "Search"
|
|
|
734
768
|
msgid "Search posts..."
|
|
735
769
|
msgstr "Search posts..."
|
|
736
770
|
|
|
771
|
+
#. @context: Media picker dialog title
|
|
772
|
+
#: src/theme/components/PostForm.tsx:324
|
|
773
|
+
msgid "Select Media"
|
|
774
|
+
msgstr "Select Media"
|
|
775
|
+
|
|
737
776
|
#. @context: Dashboard heading
|
|
738
777
|
#. @context: Dashboard heading
|
|
739
778
|
#. @context: Dashboard heading
|
|
@@ -779,8 +818,13 @@ msgstr "Site Name"
|
|
|
779
818
|
msgid "Slug"
|
|
780
819
|
msgstr "Slug"
|
|
781
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
|
+
|
|
782
826
|
#. @context: Post form field
|
|
783
|
-
#: src/theme/components/PostForm.tsx:
|
|
827
|
+
#: src/theme/components/PostForm.tsx:188
|
|
784
828
|
msgid "Source URL (optional)"
|
|
785
829
|
msgstr "Source URL (optional)"
|
|
786
830
|
|
|
@@ -810,7 +854,7 @@ msgid "The URL path for this page. Use lowercase letters, numbers, and hyphens."
|
|
|
810
854
|
msgstr "The URL path for this page. Use lowercase letters, numbers, and hyphens."
|
|
811
855
|
|
|
812
856
|
#. @context: Password reset error description
|
|
813
|
-
#: src/app.tsx:
|
|
857
|
+
#: src/app.tsx:530
|
|
814
858
|
msgid "This password reset link is invalid or has expired. Please generate a new one."
|
|
815
859
|
msgstr "This password reset link is invalid or has expired. Please generate a new one."
|
|
816
860
|
|
|
@@ -844,7 +888,7 @@ msgid "Title"
|
|
|
844
888
|
msgstr "Title"
|
|
845
889
|
|
|
846
890
|
#. @context: Post form field
|
|
847
|
-
#: src/theme/components/PostForm.tsx:
|
|
891
|
+
#: src/theme/components/PostForm.tsx:84
|
|
848
892
|
msgid "Title (optional)"
|
|
849
893
|
msgstr "Title (optional)"
|
|
850
894
|
|
|
@@ -856,13 +900,13 @@ msgstr "To Path"
|
|
|
856
900
|
#. @context: Post form field - post type
|
|
857
901
|
#. @context: Redirect form field
|
|
858
902
|
#: src/routes/dash/redirects.tsx:141
|
|
859
|
-
#: src/theme/components/PostForm.tsx:
|
|
903
|
+
#: src/theme/components/PostForm.tsx:57
|
|
860
904
|
msgid "Type"
|
|
861
905
|
msgstr "Type"
|
|
862
906
|
|
|
863
907
|
#. @context: Post visibility badge - unlisted
|
|
864
908
|
#. @context: Post visibility option
|
|
865
|
-
#: src/theme/components/PostForm.tsx:
|
|
909
|
+
#: src/theme/components/PostForm.tsx:243
|
|
866
910
|
#: src/theme/components/VisibilityBadge.tsx:34
|
|
867
911
|
msgid "Unlisted"
|
|
868
912
|
msgstr "Unlisted"
|
|
@@ -875,7 +919,7 @@ msgid "Untitled"
|
|
|
875
919
|
msgstr "Untitled"
|
|
876
920
|
|
|
877
921
|
#. @context: Button to update existing post
|
|
878
|
-
#: src/theme/components/PostForm.tsx:
|
|
922
|
+
#: src/theme/components/PostForm.tsx:302
|
|
879
923
|
msgid "Update"
|
|
880
924
|
msgstr "Update"
|
|
881
925
|
|
|
@@ -935,14 +979,14 @@ msgstr "Use this URL to embed the media in your posts."
|
|
|
935
979
|
#: src/routes/dash/collections.tsx:215
|
|
936
980
|
#: src/routes/dash/pages.tsx:73
|
|
937
981
|
#: src/routes/dash/pages.tsx:143
|
|
938
|
-
#: src/routes/dash/posts.tsx:
|
|
982
|
+
#: src/routes/dash/posts.tsx:147
|
|
939
983
|
#: src/theme/components/ActionButtons.tsx:76
|
|
940
984
|
#: src/theme/components/PostList.tsx:51
|
|
941
985
|
msgid "View"
|
|
942
986
|
msgstr "View"
|
|
943
987
|
|
|
944
988
|
#. @context: Link to view all posts on archive page
|
|
945
|
-
#: src/routes/pages/home.tsx:
|
|
989
|
+
#: src/routes/pages/home.tsx:109
|
|
946
990
|
msgid "View all posts →"
|
|
947
991
|
msgstr "View all posts →"
|
|
948
992
|
|
|
@@ -952,7 +996,7 @@ msgid "View Site"
|
|
|
952
996
|
msgstr "View Site"
|
|
953
997
|
|
|
954
998
|
#. @context: Post form field
|
|
955
|
-
#: src/theme/components/PostForm.tsx:
|
|
999
|
+
#: src/theme/components/PostForm.tsx:224
|
|
956
1000
|
msgid "Visibility"
|
|
957
1001
|
msgstr "Visibility"
|
|
958
1002
|
|
|
@@ -962,7 +1006,7 @@ msgid "Welcome to Jant"
|
|
|
962
1006
|
msgstr "Welcome to Jant"
|
|
963
1007
|
|
|
964
1008
|
#. @context: Post content placeholder
|
|
965
|
-
#: src/theme/components/PostForm.tsx:
|
|
1009
|
+
#: src/theme/components/PostForm.tsx:108
|
|
966
1010
|
msgid "What's on your mind?"
|
|
967
1011
|
msgstr "What's on your mind?"
|
|
968
1012
|
|
package/src/i18n/locales/en.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"+7Wr2a\":[\"Edit: \",[\"title\"]],\"+MACwa\":[\"No collections yet.\"],\"+owNNn\":[\"Posts\"],\"+zy2Nq\":[\"Type\"],\"/0D1Xp\":[\"Edit Collection\"],\"/Rj5P4\":[\"Your Name\"],\"07Epll\":[\"This will theme both your site and your dashboard. All color themes support dark mode.\"],\"0JkyS7\":[\"Create your first page\"],\"0a6MpL\":[\"New Redirect\"],\"1CU1Td\":[\"URL-safe identifier (lowercase, numbers, hyphens)\"],\"1DBGsz\":[\"Notes\"],\"2N0qpv\":[\"Post title...\"],\"2q/Q7x\":[\"Visibility\"],\"2rJGtU\":[\"Page title...\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"4/SFQS\":[\"View Site\"],\"40TVQj\":[\"Custom Path (optional)\"],\"4KzVT6\":[\"Delete Page\"],\"4b3oEV\":[\"Content\"],\"4mDPGp\":[\"The URL path for this page. Use lowercase letters, numbers, and hyphens.\"],\"6WdDG7\":[\"Page\"],\"6YtxFj\":[\"Name\"],\"7G4SBz\":[\"Page content (Markdown supported)...\"],\"7Mk+/h\":[\"Update Collection\"],\"7Q1KKN\":[\"From Path\"],\"7aECQB\":[\"Invalid or Expired Link\"],\"7nGhhM\":[\"What's on your mind?\"],\"7p5kLi\":[\"Dashboard\"],\"7vhWI8\":[\"New Password\"],\"8ZsakT\":[\"Password\"],\"90Luob\":[[\"count\"],\" replies\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AyHO4m\":[\"What's this collection about?\"],\"B373X+\":[\"Edit Post\"],\"B495Gs\":[\"Archive\"],\"BjF0Jv\":[\"Lowercase letters, numbers, and hyphens only\"],\"D9Oea+\":[\"Permalink\"],\"DCKkhU\":[\"Current Password\"],\"DHhJ7s\":[\"Previous\"],\"DoJzLz\":[\"Collections\"],\"E80cJw\":[\"Deleting this media will remove it permanently from storage.\"],\"EEYbdt\":[\"Publish\"],\"EGwzOK\":[\"Complete Setup\"],\"EkH9pt\":[\"Update\"],\"FGrimz\":[\"New Post\"],\"FkMol5\":[\"Featured\"],\"Fxf4jq\":[\"Description (optional)\"],\"GA5A5H\":[\"Delete Collection\"],\"GX2VMa\":[\"Create your admin account.\"],\"GbVAnd\":[\"This password reset link is invalid or has expired. Please generate a new one.\"],\"GorKul\":[\"Welcome to Jant\"],\"GrZ6fH\":[\"New Page\"],\"GxkJXS\":[\"Uploading...\"],\"HfyyXl\":[\"My Blog\"],\"HiETwV\":[\"Quiet (normal)\"],\"Hzi9AA\":[\"No posts found.\"],\"I6gXOa\":[\"Path\"],\"IagCbF\":[\"URL\"],\"J4FNfC\":[\"No posts in this collection.\"],\"JIBC/T\":[\"Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB.\"],\"Jed1wB\":[\"Need help? Visit the <0>documentation</0>\"],\"JiP4aa\":[\"Published pages are accessible via their path. Drafts are not visible.\"],\"K9NcLu\":[\"Use this URL to embed the media in your posts.\"],\"KbS2K9\":[\"Reset Password\"],\"KiJn9B\":[\"Note\"],\"L85WcV\":[\"Slug\"],\"LkvLQe\":[\"No pages yet.\"],\"M1RvTd\":[\"Click image to view full size\"],\"M8kJqa\":[\"Drafts\"],\"M9xgHy\":[\"Redirects\"],\"MHrjPM\":[\"Title\"],\"MZbQHL\":[\"No results found.\"],\"Mhf/H/\":[\"Create Redirect\"],\"MqghUt\":[\"Search posts...\"],\"N40H+G\":[\"All\"],\"O3oNi5\":[\"Email\"],\"OCNZaU\":[\"The path to redirect from\"],\"ODiSoW\":[\"No posts yet.\"],\"ONWvwQ\":[\"Upload\"],\"Pbm2/N\":[\"Create Collection\"],\"RDjuBN\":[\"Setup\"],\"Rj01Fz\":[\"Links\"],\"RwGhWy\":[\"Thread with \",[\"count\"],\" posts\"],\"SJmfuf\":[\"Site Name\"],\"ST+lN2\":[\"No media uploaded yet.\"],\"Tt5T6+\":[\"Articles\"],\"TxE+Mj\":[\"1 reply\"],\"Tz0i8g\":[\"Settings\"],\"U5v6Gh\":[\"Edit Page\"],\"UDMjsP\":[\"Quick Actions\"],\"UGT5vp\":[\"Save Settings\"],\"VUSy8D\":[\"Search failed. Please try again.\"],\"VhMDMg\":[\"Change Password\"],\"WDcQq9\":[\"Unlisted\"],\"Weq9zb\":[\"General\"],\"WmZ/rP\":[\"To Path\"],\"Y+7JGK\":[\"Create Page\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZhhOwV\":[\"Quote\"],\"aAIQg2\":[\"Appearance\"],\"an5hVd\":[\"Images\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHYIks\":[\"Sign Out\"],\"biOepV\":[\"← Back to home\"],\"cnGeoo\":[\"Delete\"],\"dEgA5A\":[\"Cancel\"],\"e6Jr7Q\":[\"← Back to Collections\"],\"ePK91l\":[\"Edit\"],\"eWLklq\":[\"Quotes\"],\"eneWvv\":[\"Draft\"],\"er8+x7\":[\"Demo account pre-filled. Just click Sign In.\"],\"f6e0Ry\":[\"Article\"],\"fG7BxZ\":[\"Upload images via the API: POST /api/upload with a file form field.\"],\"fttd2R\":[\"My Collection\"],\"hG89Ed\":[\"Image\"],\"hWOZIv\":[\"Enter your new password.\"],\"hXzOVo\":[\"Next\"],\"he3ygx\":[\"Copy\"],\"iH8pgl\":[\"Back\"],\"ig4hg2\":[\"Let's set up your site.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"mTOYla\":[\"View all posts →\"],\"n1ekoW\":[\"Sign In\"],\"oYPBa0\":[\"Update Page\"],\"p2/GCq\":[\"Confirm Password\"],\"pRhYH2\":[\"Posts in Collection (\",[\"count\"],\")\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"qMyM2u\":[\"Source URL (optional)\"],\"r1MpXi\":[\"Quiet\"],\"rFmBG3\":[\"Color theme\"],\"rdUucN\":[\"Preview\"],\"rzNUSl\":[\"Thread with 1 post\"],\"sGajR7\":[\"Thread start\"],\"ssqvZi\":[\"Save Profile\"],\"t/YqKh\":[\"Remove\"],\"tfrt7B\":[\"No redirects configured.\"],\"tiq7kl\":[\"Page \",[\"page\"]],\"u2f7vd\":[\"Site Description\"],\"u3wRF+\":[\"Published\"],\"u6Hp4N\":[\"Markdown\"],\"uAQUqI\":[\"Status\"],\"vERlcd\":[\"Profile\"],\"vXIe7J\":[\"Language\"],\"vzU4k9\":[\"New Collection\"],\"wEF6Ix\":[\"The destination path or URL\"],\"wK4OTM\":[\"Title (optional)\"],\"wM5UXj\":[\"Delete Media\"],\"wRR604\":[\"Pages\"],\"wja8aL\":[\"Untitled\"],\"x+doid\":[\"Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped.\"],\"x0mzE0\":[\"Create your first post\"],\"x4RuFo\":[\"Back to home\"],\"xYilR2\":[\"Media\"],\"y28hnO\":[\"Post\"],\"yQ2kGp\":[\"Load more\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z8ajIE\":[\"Found 1 result\"],\"zH6KqE\":[\"Found \",[\"count\"],\" results\"]}")as Messages;
|
|
1
|
+
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"+7Wr2a\":[\"Edit: \",[\"title\"]],\"+MACwa\":[\"No collections yet.\"],\"+owNNn\":[\"Posts\"],\"+zy2Nq\":[\"Type\"],\"/0D1Xp\":[\"Edit Collection\"],\"/Rj5P4\":[\"Your Name\"],\"07Epll\":[\"This will theme both your site and your dashboard. All color themes support dark mode.\"],\"0JkyS7\":[\"Create your first page\"],\"0a6MpL\":[\"New Redirect\"],\"1CU1Td\":[\"URL-safe identifier (lowercase, numbers, hyphens)\"],\"1DBGsz\":[\"Notes\"],\"1o+wgo\":[\"e.g. The Verge, John Doe\"],\"2N0qpv\":[\"Post title...\"],\"2fUwEY\":[\"Select Media\"],\"2q/Q7x\":[\"Visibility\"],\"2rJGtU\":[\"Page title...\"],\"3Yvsaz\":[\"302 (Temporary)\"],\"4/SFQS\":[\"View Site\"],\"40TVQj\":[\"Custom Path (optional)\"],\"4KzVT6\":[\"Delete Page\"],\"4b3oEV\":[\"Content\"],\"4mDPGp\":[\"The URL path for this page. Use lowercase letters, numbers, and hyphens.\"],\"6WdDG7\":[\"Page\"],\"6YtxFj\":[\"Name\"],\"7G4SBz\":[\"Page content (Markdown supported)...\"],\"7Mk+/h\":[\"Update Collection\"],\"7Q1KKN\":[\"From Path\"],\"7aECQB\":[\"Invalid or Expired Link\"],\"7nGhhM\":[\"What's on your mind?\"],\"7p5kLi\":[\"Dashboard\"],\"7vhWI8\":[\"New Password\"],\"8ZsakT\":[\"Password\"],\"90Luob\":[[\"count\"],\" replies\"],\"A1taO8\":[\"Search\"],\"AeXO77\":[\"Account\"],\"AyHO4m\":[\"What's this collection about?\"],\"B373X+\":[\"Edit Post\"],\"B495Gs\":[\"Archive\"],\"BjF0Jv\":[\"Lowercase letters, numbers, and hyphens only\"],\"D9Oea+\":[\"Permalink\"],\"DCKkhU\":[\"Current Password\"],\"DHhJ7s\":[\"Previous\"],\"DPfwMq\":[\"Done\"],\"DoJzLz\":[\"Collections\"],\"E80cJw\":[\"Deleting this media will remove it permanently from storage.\"],\"EEYbdt\":[\"Publish\"],\"EGwzOK\":[\"Complete Setup\"],\"EkH9pt\":[\"Update\"],\"FGrimz\":[\"New Post\"],\"FkMol5\":[\"Featured\"],\"Fxf4jq\":[\"Description (optional)\"],\"GA5A5H\":[\"Delete Collection\"],\"GX2VMa\":[\"Create your admin account.\"],\"GbVAnd\":[\"This password reset link is invalid or has expired. Please generate a new one.\"],\"GorKul\":[\"Welcome to Jant\"],\"GrZ6fH\":[\"New Page\"],\"GxkJXS\":[\"Uploading...\"],\"HfyyXl\":[\"My Blog\"],\"HiETwV\":[\"Quiet (normal)\"],\"Hzi9AA\":[\"No posts found.\"],\"I6gXOa\":[\"Path\"],\"I8hDlV\":[\"At least 1 image required for image posts.\"],\"IagCbF\":[\"URL\"],\"J4FNfC\":[\"No posts in this collection.\"],\"JIBC/T\":[\"Supported formats: JPEG, PNG, GIF, WebP, SVG. Max size: 10MB.\"],\"Jed1wB\":[\"Need help? Visit the <0>documentation</0>\"],\"JiP4aa\":[\"Published pages are accessible via their path. Drafts are not visible.\"],\"K9NcLu\":[\"Use this URL to embed the media in your posts.\"],\"KbS2K9\":[\"Reset Password\"],\"KiJn9B\":[\"Note\"],\"L85WcV\":[\"Slug\"],\"LkvLQe\":[\"No pages yet.\"],\"M1RvTd\":[\"Click image to view full size\"],\"M8kJqa\":[\"Drafts\"],\"M9xgHy\":[\"Redirects\"],\"MHrjPM\":[\"Title\"],\"MWBOxm\":[\"Collections (optional)\"],\"MZbQHL\":[\"No results found.\"],\"Mhf/H/\":[\"Create Redirect\"],\"MqghUt\":[\"Search posts...\"],\"N40H+G\":[\"All\"],\"O3oNi5\":[\"Email\"],\"OCNZaU\":[\"The path to redirect from\"],\"ODiSoW\":[\"No posts yet.\"],\"ONWvwQ\":[\"Upload\"],\"Pbm2/N\":[\"Create Collection\"],\"RDjuBN\":[\"Setup\"],\"Rj01Fz\":[\"Links\"],\"RwGhWy\":[\"Thread with \",[\"count\"],\" posts\"],\"SJmfuf\":[\"Site Name\"],\"ST+lN2\":[\"No media uploaded yet.\"],\"Tt5T6+\":[\"Articles\"],\"TxE+Mj\":[\"1 reply\"],\"Tz0i8g\":[\"Settings\"],\"U5v6Gh\":[\"Edit Page\"],\"UDMjsP\":[\"Quick Actions\"],\"UGT5vp\":[\"Save Settings\"],\"VUSy8D\":[\"Search failed. Please try again.\"],\"VhMDMg\":[\"Change Password\"],\"WDcQq9\":[\"Unlisted\"],\"Weq9zb\":[\"General\"],\"WmZ/rP\":[\"To Path\"],\"Y+7JGK\":[\"Create Page\"],\"Z3FXyt\":[\"Loading...\"],\"ZQKLI1\":[\"Danger Zone\"],\"ZhhOwV\":[\"Quote\"],\"aAIQg2\":[\"Appearance\"],\"an5hVd\":[\"Images\"],\"b+/jO6\":[\"301 (Permanent)\"],\"bHYIks\":[\"Sign Out\"],\"biOepV\":[\"← Back to home\"],\"cnGeoo\":[\"Delete\"],\"dEgA5A\":[\"Cancel\"],\"e6Jr7Q\":[\"← Back to Collections\"],\"ePK91l\":[\"Edit\"],\"eWLklq\":[\"Quotes\"],\"eneWvv\":[\"Draft\"],\"er8+x7\":[\"Demo account pre-filled. Just click Sign In.\"],\"f6e0Ry\":[\"Article\"],\"fG7BxZ\":[\"Upload images via the API: POST /api/upload with a file form field.\"],\"fttd2R\":[\"My Collection\"],\"hG89Ed\":[\"Image\"],\"hWOZIv\":[\"Enter your new password.\"],\"hXzOVo\":[\"Next\"],\"he3ygx\":[\"Copy\"],\"iH8pgl\":[\"Back\"],\"ig4hg2\":[\"Let's set up your site.\"],\"jpctdh\":[\"View\"],\"k1ifdL\":[\"Processing...\"],\"mTOYla\":[\"View all posts →\"],\"n1ekoW\":[\"Sign In\"],\"oJFOZk\":[\"Source Name (optional)\"],\"oYPBa0\":[\"Update Page\"],\"p2/GCq\":[\"Confirm Password\"],\"pRhYH2\":[\"Posts in Collection (\",[\"count\"],\")\"],\"pZq3aX\":[\"Upload failed. Please try again.\"],\"qMyM2u\":[\"Source URL (optional)\"],\"qiXmlF\":[\"Add Media\"],\"r1MpXi\":[\"Quiet\"],\"rFmBG3\":[\"Color theme\"],\"rdUucN\":[\"Preview\"],\"rzNUSl\":[\"Thread with 1 post\"],\"sGajR7\":[\"Thread start\"],\"ssqvZi\":[\"Save Profile\"],\"t/YqKh\":[\"Remove\"],\"tfrt7B\":[\"No redirects configured.\"],\"tiq7kl\":[\"Page \",[\"page\"]],\"u2f7vd\":[\"Site Description\"],\"u3wRF+\":[\"Published\"],\"u6Hp4N\":[\"Markdown\"],\"uAQUqI\":[\"Status\"],\"vERlcd\":[\"Profile\"],\"vXIe7J\":[\"Language\"],\"vzU4k9\":[\"New Collection\"],\"wEF6Ix\":[\"The destination path or URL\"],\"wK4OTM\":[\"Title (optional)\"],\"wM5UXj\":[\"Delete Media\"],\"wRR604\":[\"Pages\"],\"wja8aL\":[\"Untitled\"],\"x+doid\":[\"Images are automatically optimized: resized to max 1920px, converted to WebP, and metadata stripped.\"],\"x0mzE0\":[\"Create your first post\"],\"x4RuFo\":[\"Back to home\"],\"xYilR2\":[\"Media\"],\"y28hnO\":[\"Post\"],\"yQ2kGp\":[\"Load more\"],\"yjkELF\":[\"Confirm New Password\"],\"yzF66j\":[\"Link\"],\"z8ajIE\":[\"Found 1 result\"],\"zH6KqE\":[\"Found \",[\"count\"],\" results\"]}")as Messages;
|