@geekity/cms 0.6.0 → 0.8.0

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 (208) hide show
  1. package/README.md +207 -28
  2. package/admin/layouts/shell.njk +13 -6
  3. package/admin/pages/documents/editor.njk +13 -1
  4. package/admin/pages/error.njk +11 -0
  5. package/admin/static/admin.css +69 -15
  6. package/dist/admin/comments.d.ts.map +1 -1
  7. package/dist/admin/comments.js +2 -1
  8. package/dist/admin/comments.js.map +1 -1
  9. package/dist/admin/documents.d.ts +3 -0
  10. package/dist/admin/documents.d.ts.map +1 -1
  11. package/dist/admin/documents.js +109 -42
  12. package/dist/admin/documents.js.map +1 -1
  13. package/dist/admin/federation.d.ts.map +1 -1
  14. package/dist/admin/federation.js +3 -2
  15. package/dist/admin/federation.js.map +1 -1
  16. package/dist/admin/preview.js +3 -0
  17. package/dist/admin/preview.js.map +1 -1
  18. package/dist/admin/routes.d.ts.map +1 -1
  19. package/dist/admin/routes.js +7 -3
  20. package/dist/admin/routes.js.map +1 -1
  21. package/dist/admin/templates.d.ts +1 -0
  22. package/dist/admin/templates.d.ts.map +1 -1
  23. package/dist/admin/templates.js +1 -0
  24. package/dist/admin/templates.js.map +1 -1
  25. package/dist/cli.d.ts +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +128 -3
  28. package/dist/cli.js.map +1 -1
  29. package/dist/comments/submission.d.ts.map +1 -1
  30. package/dist/comments/submission.js +2 -1
  31. package/dist/comments/submission.js.map +1 -1
  32. package/dist/config.d.ts +23 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +3 -0
  35. package/dist/config.js.map +1 -1
  36. package/dist/content/document.d.ts +26 -7
  37. package/dist/content/document.d.ts.map +1 -1
  38. package/dist/content/document.js +2 -0
  39. package/dist/content/document.js.map +1 -1
  40. package/dist/content/index.d.ts +2 -0
  41. package/dist/content/index.d.ts.map +1 -1
  42. package/dist/content/index.js +1 -0
  43. package/dist/content/index.js.map +1 -1
  44. package/dist/content/parser.d.ts.map +1 -1
  45. package/dist/content/parser.js +32 -1
  46. package/dist/content/parser.js.map +1 -1
  47. package/dist/content/post-type.d.ts +48 -0
  48. package/dist/content/post-type.d.ts.map +1 -0
  49. package/dist/content/post-type.js +79 -0
  50. package/dist/content/post-type.js.map +1 -0
  51. package/dist/content/store.d.ts +13 -2
  52. package/dist/content/store.d.ts.map +1 -1
  53. package/dist/content/store.js +62 -3
  54. package/dist/content/store.js.map +1 -1
  55. package/dist/content/sync.d.ts.map +1 -1
  56. package/dist/content/sync.js +6 -0
  57. package/dist/content/sync.js.map +1 -1
  58. package/dist/content/writer.d.ts +1 -1
  59. package/dist/content/writer.d.ts.map +1 -1
  60. package/dist/content/writer.js +13 -2
  61. package/dist/content/writer.js.map +1 -1
  62. package/dist/env.d.ts +12 -0
  63. package/dist/env.d.ts.map +1 -1
  64. package/dist/federation/article.d.ts +27 -9
  65. package/dist/federation/article.d.ts.map +1 -1
  66. package/dist/federation/article.js +110 -18
  67. package/dist/federation/article.js.map +1 -1
  68. package/dist/federation/federation.d.ts.map +1 -1
  69. package/dist/federation/federation.js +24 -6
  70. package/dist/federation/federation.js.map +1 -1
  71. package/dist/federation/inbox.d.ts +17 -3
  72. package/dist/federation/inbox.d.ts.map +1 -1
  73. package/dist/federation/inbox.js +72 -6
  74. package/dist/federation/inbox.js.map +1 -1
  75. package/dist/federation/index.d.ts +1 -1
  76. package/dist/federation/index.d.ts.map +1 -1
  77. package/dist/federation/index.js +1 -1
  78. package/dist/federation/index.js.map +1 -1
  79. package/dist/federation/mount.d.ts.map +1 -1
  80. package/dist/federation/mount.js +11 -6
  81. package/dist/federation/mount.js.map +1 -1
  82. package/dist/federation/paths.d.ts +5 -0
  83. package/dist/federation/paths.d.ts.map +1 -1
  84. package/dist/federation/paths.js +5 -0
  85. package/dist/federation/paths.js.map +1 -1
  86. package/dist/federation/quotes.d.ts +56 -0
  87. package/dist/federation/quotes.d.ts.map +1 -0
  88. package/dist/federation/quotes.js +85 -0
  89. package/dist/federation/quotes.js.map +1 -0
  90. package/dist/federation/wordpress.d.ts.map +1 -1
  91. package/dist/federation/wordpress.js +5 -4
  92. package/dist/federation/wordpress.js.map +1 -1
  93. package/dist/index.d.ts +12 -5
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +46 -4
  96. package/dist/index.js.map +1 -1
  97. package/dist/maintenance.d.ts +47 -0
  98. package/dist/maintenance.d.ts.map +1 -0
  99. package/dist/maintenance.js +78 -0
  100. package/dist/maintenance.js.map +1 -0
  101. package/dist/notifications/comments.d.ts.map +1 -1
  102. package/dist/notifications/comments.js +2 -1
  103. package/dist/notifications/comments.js.map +1 -1
  104. package/dist/notifications/digest.d.ts.map +1 -1
  105. package/dist/notifications/digest.js +2 -1
  106. package/dist/notifications/digest.js.map +1 -1
  107. package/dist/web/archive.d.ts +1 -1
  108. package/dist/web/archive.d.ts.map +1 -1
  109. package/dist/web/archive.js +2 -1
  110. package/dist/web/archive.js.map +1 -1
  111. package/dist/web/context.d.ts +22 -2
  112. package/dist/web/context.d.ts.map +1 -1
  113. package/dist/web/context.js +5 -0
  114. package/dist/web/context.js.map +1 -1
  115. package/dist/web/conversation.d.ts.map +1 -1
  116. package/dist/web/conversation.js +3 -33
  117. package/dist/web/conversation.js.map +1 -1
  118. package/dist/web/documents.d.ts +9 -0
  119. package/dist/web/documents.d.ts.map +1 -1
  120. package/dist/web/documents.js +31 -0
  121. package/dist/web/documents.js.map +1 -1
  122. package/dist/web/errors.d.ts +19 -0
  123. package/dist/web/errors.d.ts.map +1 -0
  124. package/dist/web/errors.js +93 -0
  125. package/dist/web/errors.js.map +1 -0
  126. package/dist/web/feed-atom.d.ts.map +1 -1
  127. package/dist/web/feed-atom.js +14 -2
  128. package/dist/web/feed-atom.js.map +1 -1
  129. package/dist/web/feed-item.d.ts +21 -7
  130. package/dist/web/feed-item.d.ts.map +1 -1
  131. package/dist/web/feed-item.js +13 -6
  132. package/dist/web/feed-item.js.map +1 -1
  133. package/dist/web/feed-json.d.ts +13 -2
  134. package/dist/web/feed-json.d.ts.map +1 -1
  135. package/dist/web/feed-json.js +3 -1
  136. package/dist/web/feed-json.js.map +1 -1
  137. package/dist/web/feed-rss.d.ts.map +1 -1
  138. package/dist/web/feed-rss.js +2 -2
  139. package/dist/web/feed-rss.js.map +1 -1
  140. package/dist/web/feed-xml.d.ts +2 -0
  141. package/dist/web/feed-xml.d.ts.map +1 -1
  142. package/dist/web/feed-xml.js +2 -0
  143. package/dist/web/feed-xml.js.map +1 -1
  144. package/dist/web/feeds.d.ts +1 -1
  145. package/dist/web/feeds.d.ts.map +1 -1
  146. package/dist/web/feeds.js.map +1 -1
  147. package/dist/web/health.d.ts +6 -0
  148. package/dist/web/health.d.ts.map +1 -1
  149. package/dist/web/health.js +5 -1
  150. package/dist/web/health.js.map +1 -1
  151. package/dist/web/index.d.ts +5 -1
  152. package/dist/web/index.d.ts.map +1 -1
  153. package/dist/web/index.js +3 -0
  154. package/dist/web/index.js.map +1 -1
  155. package/dist/web/maintenance.d.ts +18 -0
  156. package/dist/web/maintenance.d.ts.map +1 -0
  157. package/dist/web/maintenance.js +108 -0
  158. package/dist/web/maintenance.js.map +1 -0
  159. package/dist/web/redirects.d.ts +75 -0
  160. package/dist/web/redirects.d.ts.map +1 -0
  161. package/dist/web/redirects.js +200 -0
  162. package/dist/web/redirects.js.map +1 -0
  163. package/dist/web/render.d.ts +18 -0
  164. package/dist/web/render.d.ts.map +1 -1
  165. package/dist/web/render.js +38 -1
  166. package/dist/web/render.js.map +1 -1
  167. package/dist/web/routes.d.ts.map +1 -1
  168. package/dist/web/routes.js +55 -1
  169. package/dist/web/routes.js.map +1 -1
  170. package/dist/webmention/index.d.ts +6 -0
  171. package/dist/webmention/index.d.ts.map +1 -1
  172. package/dist/webmention/index.js +3 -0
  173. package/dist/webmention/index.js.map +1 -1
  174. package/dist/webmention/links.d.ts +5 -0
  175. package/dist/webmention/links.d.ts.map +1 -1
  176. package/dist/webmention/links.js +14 -7
  177. package/dist/webmention/links.js.map +1 -1
  178. package/dist/webmention/microformats.d.ts +21 -0
  179. package/dist/webmention/microformats.d.ts.map +1 -1
  180. package/dist/webmention/microformats.js +35 -5
  181. package/dist/webmention/microformats.js.map +1 -1
  182. package/dist/webmention/public-address.d.ts +30 -0
  183. package/dist/webmention/public-address.d.ts.map +1 -0
  184. package/dist/webmention/public-address.js +71 -0
  185. package/dist/webmention/public-address.js.map +1 -0
  186. package/dist/webmention/receive.d.ts.map +1 -1
  187. package/dist/webmention/receive.js +1 -23
  188. package/dist/webmention/receive.js.map +1 -1
  189. package/dist/webmention/reply-context.d.ts +67 -0
  190. package/dist/webmention/reply-context.d.ts.map +1 -0
  191. package/dist/webmention/reply-context.js +189 -0
  192. package/dist/webmention/reply-context.js.map +1 -0
  193. package/dist/webmention/reply-contexts.d.ts +50 -0
  194. package/dist/webmention/reply-contexts.d.ts.map +1 -0
  195. package/dist/webmention/reply-contexts.js +163 -0
  196. package/dist/webmention/reply-contexts.js.map +1 -0
  197. package/dist/webmention/service.d.ts.map +1 -1
  198. package/dist/webmention/service.js +9 -2
  199. package/dist/webmention/service.js.map +1 -1
  200. package/package.json +10 -10
  201. package/themes/default/README.md +20 -0
  202. package/themes/default/layouts/500.njk +8 -0
  203. package/themes/default/layouts/503.njk +8 -0
  204. package/themes/default/layouts/base.njk +5 -3
  205. package/themes/default/layouts/post.njk +8 -0
  206. package/themes/default/layouts/search.njk +4 -2
  207. package/themes/default/partials/post-list.njk +17 -5
  208. package/themes/default/partials/reply-context.njk +29 -0
package/README.md CHANGED
@@ -79,18 +79,20 @@ changelog.
79
79
  site (or `npx geekity`, or a `package.json` script, which is how the generated
80
80
  `sync` script calls it).
81
81
 
82
- | Command | What it does |
83
- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
84
- | `geekity serve` | Boot from the config file and listen. The default when no command is given. |
85
- | `geekity init <dir>` | Create a new site in `<dir>`. Refuses a directory that is not empty. |
86
- | `geekity sync` | Rebuild the content index once and exit. Exits non-zero if any file could not be parsed. |
87
- | `geekity rebuild` | Delete `data/geekity.db` and build it again from the files. |
88
- | `geekity user add <name>` | Create an admin account, so a site can get its first login without the setup screen. |
89
- | `geekity import wordpress-actor <name>` | Bring one person across from the WordPress ActivityPub plugin: their key pair, the actor id their followers hold, the plugin's numeric actor id, and their followers. |
90
- | `geekity --help`, `-h` | The same table, on the terminal. |
91
- | `geekity --version` | The installed version. |
92
-
93
- `serve`, `sync`, `rebuild`, `user add` and `import wordpress-actor` take
82
+ | Command | What it does |
83
+ | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
84
+ | `geekity serve` | Boot from the config file and listen. The default when no command is given. |
85
+ | `geekity init <dir>` | Create a new site in `<dir>`. Refuses a directory that is not empty. |
86
+ | `geekity sync` | Rebuild the content index once and exit. Exits non-zero if any file could not be parsed. |
87
+ | `geekity rebuild` | Delete `data/geekity.db` and build it again from the files. |
88
+ | `geekity resend --all`, `<slug>...` | Send announced posts to every follower and relay again, as they now read. See [Quote posts](#quote-posts). |
89
+ | `geekity maintenance on`, `off`, `status` | Take the public site down on purpose with a 503 and `Retry-After`, or bring it back, without a restart. `on --until <time>` names when it should be back. |
90
+ | `geekity user add <name>` | Create an admin account, so a site can get its first login without the setup screen. |
91
+ | `geekity import wordpress-actor <name>` | Bring one person across from the WordPress ActivityPub plugin: their key pair, the actor id their followers hold, the plugin's numeric actor id, and their followers. |
92
+ | `geekity --help`, `-h` | The same table, on the terminal. |
93
+ | `geekity --version` | The installed version. |
94
+
95
+ `serve`, `sync`, `rebuild`, `resend`, `maintenance`, `user add` and `import wordpress-actor` take
94
96
  `--config <file>`; without it they look for `geekity.config.ts`, then
95
97
  `geekity.config.js`, then `geekity.config.mjs` in the working directory, and run
96
98
  on defaults if there is none.
@@ -273,6 +275,7 @@ directory; absolute ones are used as given.
273
275
  | `accessLog` | `false`; `true` under `geekity serve` | `GEEKITY_ACCESS_LOG` | One line per request on stdout: method, path with query, status, duration. See [The access log](#the-access-log). |
274
276
  | `accessLogAddress` | `false` | `GEEKITY_ACCESS_LOG_ADDRESS` | Put the client address on the end of each access-log line. `trustProxy` decides which address that is. |
275
277
  | `accessLogWriter` | stdout | — | Where the lines go instead. See [The access log](#the-access-log). |
278
+ | `maintenance` | `false` | `GEEKITY_MAINTENANCE` | Keep the site in maintenance mode, answering 503, until a restart without it. |
276
279
  | `onDocumentChange` | none | — | Hook run for every change to the index. See [Hooks](#hooks). |
277
280
  | `onPublish` | none | — | Hook run when a document becomes visible. See [Hooks](#hooks). |
278
281
  | `federation` | `{}` | — | Federation stores and guards. See [Federation](#federation). |
@@ -499,8 +502,8 @@ does:
499
502
 
500
503
  | What happened to the post | What the followers get |
501
504
  | ------------------------------------------------------------------------- | ------------------------- |
502
- | became published — written live, or undrafted, or restored from the trash | `Create(Article)` |
503
- | edited while published | `Update(Article)` |
505
+ | became published — written live, or undrafted, or restored from the trash | `Create` of its object |
506
+ | edited while published | `Update` of its object |
504
507
  | drafted, trashed, or its file deleted | `Delete` of a `Tombstone` |
505
508
 
506
509
  Nothing is delivered for a full scan, the boot scan included: a rebuilt index
@@ -509,26 +512,49 @@ reports the whole archive as new, and announcing it again is not what deleting
509
512
 
510
513
  A post's ActivityStreams object id is its permalink, absolute on the site's
511
514
  base URL. One URL answers both audiences — a browser gets the page, a peer
512
- asking for `application/activity+json` gets the `Article` — so a shared link, a
513
- feed item, an object id and a reply's `inReplyTo` all name the same thing.
514
- Nothing else has to be minted or kept in step.
515
+ asking for `application/activity+json` gets the post's object — so a shared
516
+ link, a feed item, an object id and a reply's `inReplyTo` all name the same
517
+ thing. Nothing else has to be minted or kept in step.
518
+
519
+ That object is a `Note` or an `Article`, whichever the post's discovered type
520
+ is: a post with no title, or whose text opens with its title, is a `Note`, and
521
+ any other is an `Article`. Mastodon shows the two differently. An `Article`
522
+ arrives as its title, its excerpt and a link, so it sends `name` and a
523
+ `summary`. A `Note` arrives as its `content` and nothing else, and Mastodon
524
+ would show a `summary` as a content warning, so a note sends neither and puts a
525
+ title its text does not open with at the top of its content.
526
+
527
+ An author can choose the type for one post in its front matter:
528
+
529
+ ```yaml
530
+ activitypub:
531
+ type: Note
532
+ ```
533
+
534
+ `Note` and `Article` are the two values. Anything else is logged as a warning
535
+ and the derived type is sent instead. The CMS never rewrites the key. Changing
536
+ it on a post already announced sends an `Update`, but a remote server may keep
537
+ showing the post the way it first arrived.
515
538
 
516
539
  The first activity about a post writes one key, `activitypub.published`, into
517
540
  its front matter: the record that the post has been announced and when, which
518
541
  is what decides `Create` against `Update` and what a resend reads. Restoring a
519
542
  trashed post reuses it too.
520
543
 
521
- Because that URL is a promise, the editor keeps it: **a published post's slug
522
- and permalink cannot be changed**. Both fields still move freely on a draft,
523
- and a site that really means to move a published post can edit the file,
524
- knowing that its followers will be handed a second object.
525
-
526
544
  A post whose file already names an `activitypub.id` keeps it as its object id
527
545
  for the life of the post — that is how a post migrated from WordPress keeps the
528
546
  `https://example.com/?p=813` its followers, its replies and its RSS subscribers
529
- already hold. The CMS serves the `Article` at that URL on an ActivityStreams
547
+ already hold. The CMS serves the post's object at that URL on an ActivityStreams
530
548
  request, redirects a browser from it to the permalink, and names it in every
531
- `Update` and `Delete`. The CMS never writes one itself.
549
+ `Update` and `Delete`.
550
+
551
+ The CMS writes one itself in one case: when a published post's slug or
552
+ permalink is changed in the editor. A fediverse server cannot rename an object
553
+ it holds, so the URL the post is leaving becomes its stored `activitypub.id`.
554
+ Followers get an `Update` of the object they already have, a peer at the old
555
+ URL still gets the object, and a browser there is redirected to the new
556
+ permalink. The object's `url` is the new permalink. See
557
+ [Moved URLs](#moved-urls).
532
558
 
533
559
  One POST serves a whole instance — the shared inbox is preferred — but the
534
560
  outcome is recorded per recipient, so an admin can see which one did not get it
@@ -560,6 +586,56 @@ queue, which retries out of band) or `failed`.
560
586
  The one capability given up is tombstoning a post whose file is gone entirely
561
587
  rather than in the trash: there is no file left to build the `Tombstone` from.
562
588
 
589
+ ### Quote posts
590
+
591
+ Mastodon 4.5 lets people quote a post only when the post says who may, and
592
+ shows a quote only once the quoted author's server has approved it
593
+ ([FEP-044f]). Every post this site federates is public, so every `Note` and
594
+ `Article` carries `interactionPolicy.canQuote` with `automaticApproval` set to
595
+ the public collection: anybody may quote it, and nobody has to approve it by
596
+ hand. Pages, drafts, scheduled and trashed posts do not federate, so nobody
597
+ can quote them.
598
+
599
+ A quoting server sends a `QuoteRequest` to the post's author. The inbox, and
600
+ the WordPress-compatible inbox when that switch is on, answers it:
601
+
602
+ - For a post the site federates, whose quote lives on the requester's own
603
+ server, it stores an approval and replies `Accept` with a
604
+ `QuoteAuthorization` as its `result`. The authorization names the quote
605
+ (`interactingObject`), the post (`interactionTarget`) and the author
606
+ (`attributedTo`).
607
+ - For anything else it replies `Reject` and stores nothing.
608
+
609
+ Approvals are files, like followers:
610
+ `content/_data/federation/{username}/quotes.json` holds one object per quote of
611
+ that user's posts. Each is served unsigned, as ActivityStreams JSON, at
612
+ `{baseUrl}/author/{username}/quotes/{id}/`, for as long as the post is still
613
+ published. An `Undo` of the `QuoteRequest`, or a `Delete` of the quoting post,
614
+ removes the approval, and its URL answers 404 after that. A quote does not
615
+ notify the author.
616
+
617
+ Mastodon keeps the copy of a post it fetched first, so a post federated before
618
+ the quote policy existed is not quotable until its followers receive an
619
+ `Update`. Editing the post sends one. To update every announced post at once,
620
+ run `geekity resend --all` in the site directory:
621
+
622
+ ```sh
623
+ $ geekity resend --all
624
+ hello-world: Update to 3 of 3 inboxes
625
+ another-post: Update to 3 of 3 inboxes
626
+ ```
627
+
628
+ `geekity resend <slug>...` does the same for named posts. Each is what the
629
+ Resend button on the federation screen does: an `Update` for a post still
630
+ published, a `Delete` for one that has been withdrawn, and a `Create` for a
631
+ published post that was never announced. `--all` only reaches posts that were
632
+ announced. The command delivers with no queue, so every activity has been
633
+ posted before it exits, and it exits non-zero when a named slug has nothing to
634
+ resend. It works while the server runs, because both read the same files and
635
+ database.
636
+
637
+ [FEP-044f]: https://codeberg.org/fediverse/fep/src/branch/main/fep/044f/fep-044f.md
638
+
563
639
  ### Relays
564
640
 
565
641
  A [Mastodon-style relay][fepae0c] boosts every public activity it is sent on to
@@ -855,7 +931,7 @@ Then, from a Mastodon account:
855
931
  CMS answers `Accept`, and the account appears on `/admin/federation` within
856
932
  a second or two.
857
933
  3. Publish a post, from the editor or by writing a file into `content/posts/`.
858
- A `Create(Article)` is delivered, and the post shows up in the follower's
934
+ A `Create` is delivered, and the post shows up in the follower's
859
935
  home timeline; `/admin/federation` records the outcome, with a Resend
860
936
  button if it did not land.
861
937
  4. Edit the post, then set `draft: true` on it, to see the `Update` and the
@@ -1370,7 +1446,7 @@ off every archive, out of all three feeds and out of the ActivityPub outbox,
1370
1446
  its permalink 404s in every representation, and no follower has been told about
1371
1447
  it. When the moment comes the running server publishes it — no restart, no
1372
1448
  build — and the same delivery that a live publish runs sends the
1373
- `Create(Article)` and pings the notify server.
1449
+ `Create` and pings the notify server.
1374
1450
 
1375
1451
  There is no `scheduled` key and no state to keep: a scheduled post is an
1376
1452
  ordinary published one whose date has not arrived, which is a question asked of
@@ -1795,7 +1871,7 @@ so a head never advertises a URL this server would answer 404 for.
1795
1871
 
1796
1872
  `documentContext(document, images)` is where the rewrite is applied. Passing the
1797
1873
  config is what turns the page's `content` into `<picture>` markup; the feeds,
1798
- `documentJson`, the Markdown representation and `postArticle` all read
1874
+ `documentJson`, the Markdown representation and `postObject` all read
1799
1875
  `document.html` directly and so keep the plain `<img>` by construction.
1800
1876
 
1801
1877
  ### Managing tags and categories
@@ -1821,7 +1897,7 @@ bulk rewrite that trusted it would put that edit back. A file that has gone or
1821
1897
  will not parse is skipped, counted, and named in the message.
1822
1898
 
1823
1899
  Every rewrite is announced the way an editor save is, so the index, the feeds,
1824
- the notify server and the fediverse all follow — one `Update(Article)` per
1900
+ the notify server and the fediverse all follow — one `Update` per
1825
1901
  affected published post, because the hashtags on those posts have just changed.
1826
1902
  A term on many published posts is therefore many deliveries; that is the point,
1827
1903
  but it is worth knowing before renaming a tag that half the archive carries.
@@ -2126,6 +2202,85 @@ hand-edited `site.json` that is not an object of lists of items yields no menu
2126
2202
  rather than an error, exactly as a bad archive base falls back rather than
2127
2203
  taking the site down.
2128
2204
 
2205
+ ### Moved URLs
2206
+
2207
+ Changing the slug or the permalink of a published post or page in the editor
2208
+ moves it, and the URL it leaves is written into its file:
2209
+
2210
+ ```yaml
2211
+ permalink: /2026/01/new-name/
2212
+ redirect_from:
2213
+ - /2026/01/first-name/
2214
+ - /2026/01/second-name/
2215
+ ```
2216
+
2217
+ Every URL in `redirect_from` answers `301 Moved Permanently` with the current
2218
+ permalink, and so do its `.md` and `.json` spellings. Each entry points at the
2219
+ document itself, not at the next rename, so no chain of redirects builds up.
2220
+ The list is in the file, so deleting `data/geekity.db` keeps it working.
2221
+
2222
+ A URL in the list only redirects while nothing else lives there: a new document
2223
+ given that URL takes it over. Moving a document back to a URL in its list takes
2224
+ that URL off the list. A draft that was never published moves without leaving
2225
+ anything behind. Correcting a published post's date files it under the new
2226
+ day but keeps its URL.
2227
+
2228
+ ### Declared redirects
2229
+
2230
+ A site that moves to this CMS, or reorganises, lists the old URLs that no
2231
+ document owns in `content/_data/redirects.json`. The file is a JSON list:
2232
+
2233
+ ```json
2234
+ [
2235
+ { "from": "/?p=123", "to": "/2026/01/hello/" },
2236
+ { "from": "/old-section/", "to": "/new-section/", "status": 301 },
2237
+ { "from": "/sale/", "to": "/shop/", "status": 302 },
2238
+ { "from": "/forum/", "to": "https://forum.example.com/", "status": 308 }
2239
+ ]
2240
+ ```
2241
+
2242
+ - `from` is a path on this site. It starts with `/` and can carry a query
2243
+ string.
2244
+ - `to` is a path on this site, or an absolute `http` or `https` URL.
2245
+ - `status` is `301` or `308` for a permanent redirect, and `302` or `307` for a
2246
+ temporary one. It defaults to `301`.
2247
+
2248
+ A `from` without a query string matches that path with any query, or none. The
2249
+ request's query goes on to a `to` that has no query of its own, so
2250
+ `/old-section/?page=2` lands on `/new-section/?page=2`. The path must match
2251
+ exactly, except that a `from` ending in `/` also answers the same path without
2252
+ the slash, in one hop.
2253
+
2254
+ A `from` with a query string matches only that query. The order of the
2255
+ parameters does not matter, so `/archives/?cat=4&paged=2` also matches
2256
+ `/archives/?paged=2&cat=4`. Nothing else in the request's query may differ:
2257
+ `/?p=123` does not match `/?p=123&replytocom=9`. This is how old WordPress
2258
+ `?p=` links reach their posts.
2259
+
2260
+ A declared redirect never hides something real. A path-only `from` is answered
2261
+ only after every document, archive, feed and moved URL has had its turn, and
2262
+ just before the 404 page, so a document given that URL later takes it over. A
2263
+ `from` with a query string is answered first, because no document is addressed
2264
+ by its query. The admin, the federation endpoints and the health check answer
2265
+ before any declared redirect.
2266
+
2267
+ The file is read on the next request after it changes, with no restart. An
2268
+ entry that cannot be served is logged as a warning at boot, and again on the
2269
+ first request after the file changes, and it is skipped. The following entries are skipped:
2270
+
2271
+ - An entry with a missing or malformed `from`, `to` or `status`.
2272
+ - A second entry with the same `from`. The first entry wins.
2273
+ - Every entry that leads into a loop, such as `/a/` to `/b/` and `/b/` back to
2274
+ `/a/`.
2275
+
2276
+ A file that is not a JSON list serves no redirects and is reported the same
2277
+ way.
2278
+
2279
+ Every redirect the CMS sends carries `X-Redirect-By: Geekity CMS`. This
2280
+ includes the declared redirects, moved URLs, trailing slashes, feed spellings
2281
+ and the admin's redirects. Someone who traces a chain of redirects through a
2282
+ proxy can see which layer sent each one.
2283
+
2129
2284
  ## Content negotiation
2130
2285
 
2131
2286
  Every public URL is one resource with more than one body. A post or a page has
@@ -2314,6 +2469,30 @@ only when there is nothing to summarise at all. The whole post goes in the
2314
2469
  content element beside it, so a reader that shows both has something to choose
2315
2470
  between.
2316
2471
 
2472
+ **Replies.** A post whose `in-reply-to` front matter is an absolute `http` or
2473
+ `https` URL is a reply, and Atom and JSON Feed name the URL it answers. An Atom
2474
+ entry carries RFC 4685's `<thr:in-reply-to ref="…" href="…"/>`, with the target
2475
+ URL as both its identity and its location, and every Atom feed declares
2476
+ `xmlns:thr="http://purl.org/syndication/thread/1.0"`. JSON Feed 1.1 has no reply
2477
+ field, so a JSON Feed item carries the target in an extension object, which the
2478
+ spec allows under any key that starts with an underscore and tells readers that
2479
+ do not know it to ignore:
2480
+
2481
+ ```json
2482
+ {
2483
+ "id": "…",
2484
+ "url": "…",
2485
+ "content_html": "…",
2486
+ "_geekity": { "in_reply_to": "https://example.net/notes/1" }
2487
+ }
2488
+ ```
2489
+
2490
+ The key is `_geekity` because an extension is named after its publisher, and
2491
+ `in_reply_to` spells the microformats `in-reply-to` property the JSON way. A
2492
+ post that is not a reply, or whose `in-reply-to` is not such a URL, carries
2493
+ neither. RSS 2.0 has no equivalent element, so an RSS item for a reply is
2494
+ written the same as any other.
2495
+
2317
2496
  ### RSS 2.0
2318
2497
 
2319
2498
  The channel carries `title`, `link`, `description` (the tagline), `language`
@@ -7,12 +7,19 @@
7
7
  <a class="admin-bar-site" href="{{ adminUrl }}">{{ site.title }}</a>
8
8
  <a href="{{ siteUrl }}">View site</a>
9
9
  <span class="admin-bar-spacer"></span>
10
- {% if user %}
11
- <span class="admin-bar-user">Signed in as {{ user.username }}</span>
12
- <form method="post" action="{{ logoutUrl }}">
13
- <input type="hidden" name="csrf_token" value="{{ csrfToken }}" />
14
- <button type="submit">Log out</button>
15
- </form>
10
+ {% if me %}
11
+ {# WordPress's "Howdy," menu, greeting the way this site's owner does.
12
+ A popover rather than a script: the browser opens and closes it,
13
+ shuts it on Escape or a click elsewhere, and tells a screen reader
14
+ whether it is expanded, all under the CSP's script-src 'self'. #}
15
+ <button type="button" class="admin-bar-account" popovertarget="admin-account-menu">Hoopla! {{ me.name }}</button>
16
+ <div id="admin-account-menu" class="admin-account-menu" popover>
17
+ <a href="{{ me.url }}">Edit profile</a>
18
+ <form method="post" action="{{ logoutUrl }}">
19
+ <input type="hidden" name="csrf_token" value="{{ csrfToken }}" />
20
+ <button type="submit">Log out</button>
21
+ </form>
22
+ </div>
16
23
  {% endif %}
17
24
  </header>
18
25
  {% endblock %}
@@ -32,7 +32,11 @@
32
32
 
33
33
  <div class="admin-editor-main">
34
34
  <label for="editor-title">Title</label>
35
- <input id="editor-title" name="title" type="text" value="{{ form.title }}" required autofocus />
35
+ {#- A post may go without one, and is then a note; a page is always named. -#}
36
+ <input id="editor-title" name="title" type="text" value="{{ form.title }}"{% if kind.type == "page" %} required{% endif %} autofocus />
37
+ {% if kind.type == "post" %}
38
+ <p class="admin-hint">Leave it empty to write a note: the post is then its words, and takes its slug from the first of them.</p>
39
+ {% endif %}
36
40
 
37
41
  <label for="editor-body">Body</label>
38
42
  <textarea id="editor-body" name="body" rows="24">{{ form.body }}</textarea>
@@ -88,6 +92,14 @@
88
92
  <p class="admin-hint">Separated by commas.</p>
89
93
  {% endif %}
90
94
 
95
+ {% if kind.type == "post" %}
96
+ {#- The mf2 `in-reply-to`: a URL here makes the post a reply, threads
97
+ it in the fediverse and sends that page a webmention. -#}
98
+ <label for="editor-in-reply-to">In reply to</label>
99
+ <input id="editor-in-reply-to" name="in-reply-to" type="url" value="{{ form.inReplyTo }}" />
100
+ <p class="admin-hint">The address of the post this one answers. Leave it empty for a post that answers nobody.</p>
101
+ {% endif %}
102
+
91
103
  <label for="editor-description">Description</label>
92
104
  <input id="editor-description" name="description" type="text" value="{{ form.description }}" />
93
105
 
@@ -0,0 +1,11 @@
1
+ {% extends "layouts/base.njk" %}
2
+
3
+ {% block title %}Something went wrong{% endblock %}
4
+
5
+ {% block content %}
6
+ {# The page an admin request that threw answers with. It extends the bare
7
+ layout rather than the shell because the shell reads the session, the
8
+ menu and the site, and any of those may be what failed. #}
9
+ <h1>Something went wrong</h1>
10
+ <p>This screen could not be shown because of a problem on the server. The error has been logged. Try again in a moment, or go back to the <a href="{{ adminUrl }}">dashboard</a>.</p>
11
+ {% endblock %}
@@ -54,11 +54,13 @@ a {
54
54
  min-height: 2.5rem;
55
55
  background: var(--admin-bar);
56
56
  color: var(--admin-nav-text);
57
+ anchor-name: --admin-bar;
57
58
  }
58
59
 
59
60
  .admin-bar a {
60
61
  color: var(--admin-nav-text);
61
62
  text-decoration: none;
63
+ white-space: nowrap;
62
64
  }
63
65
 
64
66
  .admin-bar a:hover,
@@ -74,22 +76,71 @@ a {
74
76
  flex: 1;
75
77
  }
76
78
 
77
- .admin-bar-user {
78
- color: #c3c4c7;
79
+ .admin-bar-account {
80
+ padding: 0;
81
+ border: 0;
82
+ background: none;
83
+ color: var(--admin-nav-text);
84
+ font: inherit;
85
+ text-align: right;
86
+ cursor: pointer;
87
+ anchor-name: --admin-account;
79
88
  }
80
89
 
81
- .admin-bar form {
82
- display: inline;
90
+ .admin-bar-account:hover,
91
+ .admin-bar-account:focus-visible,
92
+ .admin-bar-account:popover-open {
93
+ color: #72aee6;
83
94
  }
84
95
 
85
- .admin-bar button {
86
- padding: 0;
96
+ .admin-bar-account::after {
97
+ content: ' \25BE' / '';
98
+ }
99
+
100
+ /* The menu is in the top layer, so it is placed rather than laid out: under
101
+ the greeting where anchor positioning exists, at the bar's right edge
102
+ where it does not. */
103
+
104
+ .admin-account-menu {
105
+ inset: 2.5rem 0 auto auto;
106
+ margin: 0;
107
+ min-width: 10rem;
108
+ padding: 0.25rem 0;
109
+ border: 0;
110
+ background: var(--admin-nav);
111
+ color: var(--admin-nav-text);
112
+ box-shadow: 0 3px 5px rgb(0 0 0 / 20%);
113
+ }
114
+
115
+ @supports (top: anchor(--admin-bar bottom)) {
116
+ .admin-account-menu {
117
+ inset: anchor(--admin-bar bottom) anchor(--admin-account right) auto auto;
118
+ }
119
+ }
120
+
121
+ .admin-account-menu a,
122
+ .admin-account-menu button[type='submit'] {
123
+ display: block;
124
+ box-sizing: border-box;
125
+ width: 100%;
126
+ margin: 0;
127
+ padding: 0.5rem 1rem;
87
128
  border: 0;
129
+ border-radius: 0;
88
130
  background: none;
89
131
  color: var(--admin-nav-text);
90
132
  font: inherit;
133
+ text-align: left;
134
+ text-decoration: none;
91
135
  cursor: pointer;
92
- text-decoration: underline;
136
+ }
137
+
138
+ .admin-account-menu a:hover,
139
+ .admin-account-menu a:focus-visible,
140
+ .admin-account-menu button[type='submit']:hover,
141
+ .admin-account-menu button[type='submit']:focus-visible {
142
+ background: var(--admin-bar);
143
+ color: #72aee6;
93
144
  }
94
145
 
95
146
  /* The shell: navigation column beside the screen itself. */
@@ -331,6 +382,8 @@ label {
331
382
  input[type='text'],
332
383
  input[type='password'],
333
384
  input[type='email'],
385
+ input[type='url'],
386
+ select,
334
387
  textarea {
335
388
  width: 100%;
336
389
  padding: 0.4rem 0.5rem;
@@ -346,6 +399,13 @@ textarea {
346
399
  resize: vertical;
347
400
  }
348
401
 
402
+ /* A select lays its text out at line-height: normal whatever it inherits, so
403
+ it is given the height a text box reaches: the body's 1.6 line, the padding
404
+ and the border. */
405
+ select {
406
+ min-height: calc(1.6em + 0.8rem + 2px);
407
+ }
408
+
349
409
  button[type='submit'],
350
410
  .admin-button {
351
411
  margin-top: 1rem;
@@ -477,6 +537,7 @@ button[type='submit']:hover,
477
537
 
478
538
  .admin-check input {
479
539
  width: auto;
540
+ margin: 0;
480
541
  }
481
542
 
482
543
  .admin-editor-buttons {
@@ -659,14 +720,6 @@ button[type='submit']:hover,
659
720
  border-top: 0;
660
721
  }
661
722
 
662
- .admin-settings select {
663
- padding: 0.4rem 0.5rem;
664
- border: 1px solid #8c8f94;
665
- background: var(--admin-surface);
666
- color: inherit;
667
- font: inherit;
668
- }
669
-
670
723
  .admin-settings input:disabled {
671
724
  background: var(--admin-field);
672
725
  color: var(--admin-muted);
@@ -877,6 +930,7 @@ button[type='submit']:hover,
877
930
  switches and windows still reads as one column rather than as a form. */
878
931
 
879
932
  .admin-inline select {
933
+ width: auto;
880
934
  margin: 0;
881
935
  }
882
936
 
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/admin/comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAM1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAGzE;;;;;;;;;;;;;;GAcG;AAEH,uCAAuC;AACvC,eAAO,MAAM,aAAa,oBAA6B,CAAC;AAExD,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,6BAA8B,CAAC;AAElE,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,0BAA2B,CAAC;AAE5D,kDAAkD;AAClD,eAAO,MAAM,oBAAoB;IAC/B,uCAAuC;aACvC,EAAE,EAAE,IAAI;IACR,gEAAgE;aAChE,MAAM,EAAE,QAAQ;IAChB,+CAA+C;aAC/C,IAAI,EAAE,MAAM;IACZ,2CAA2C;aAC3C,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,mCAAmC;AACnC,eAAO,MAAM,eAAe,YAAI,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEtE,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,YAAY,EAAE,SAAS;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAI3E,CAAC;AAEF,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,sDAAsD;IACtD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EACrB,OAAO,EAAE,0BAA0B,GAClC,IAAI,CA+IN;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,SAAI,GAAG,MAAM,CAG/D"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/admin/comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAO1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAGzE;;;;;;;;;;;;;;GAcG;AAEH,uCAAuC;AACvC,eAAO,MAAM,aAAa,oBAA6B,CAAC;AAExD,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,6BAA8B,CAAC;AAElE,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,0BAA2B,CAAC;AAE5D,kDAAkD;AAClD,eAAO,MAAM,oBAAoB;IAC/B,uCAAuC;aACvC,EAAE,EAAE,IAAI;IACR,gEAAgE;aAChE,MAAM,EAAE,QAAQ;IAChB,+CAA+C;aAC/C,IAAI,EAAE,MAAM;IACZ,2CAA2C;aAC3C,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,mCAAmC;AACnC,eAAO,MAAM,eAAe,YAAI,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEtE,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,YAAY,EAAE,SAAS;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAI3E,CAAC;AAEF,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,sDAAsD;IACtD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EACrB,OAAO,EAAE,0BAA0B,GAClC,IAAI,CA+IN;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,SAAI,GAAG,MAAM,CAG/D"}
@@ -1,3 +1,4 @@
1
+ import { postLabel } from '../content/post-type.js';
1
2
  import { renderCommentMarkdown } from '../comments/markdown.js';
2
3
  import { isModerationAction, moderateComment } from '../comments/moderate.js';
3
4
  import { intakeComment } from '../comments/records.js';
@@ -213,7 +214,7 @@ function commentRow(c, comment) {
213
214
  // The first eight characters are enough to see that two comments came from
214
215
  // one place, which is the only question the hash is there to answer.
215
216
  address: comment.addressHash === null ? null : comment.addressHash.slice(0, 8),
216
- post: document?.title ?? comment.slug,
217
+ post: document === undefined ? comment.slug : postLabel(document),
217
218
  postUrl: comment.permalink === '' ? null : comment.permalink,
218
219
  editUrl: document === undefined
219
220
  ? null
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/admin/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/admin/comments.ts"],"names":[],"mappings":"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"}
@@ -159,6 +159,8 @@ export interface EditorForm {
159
159
  * decision-14 has to be offered back as what it says until somebody saves it.
160
160
  */
161
161
  author: string;
162
+ /** The post this one replies to, the mf2 `in-reply-to`. Posts only. */
163
+ inReplyTo: string;
162
164
  draft: boolean;
163
165
  /** Whether `eleventyExcludeFromCollections` is set. Pages only. */
164
166
  exclude: boolean;
@@ -205,6 +207,7 @@ export declare function formFor(document: Document, timezone?: string): EditorFo
205
207
  export declare function findBySlug(store: ContentStore, kind: DocumentKind, slug: string): Document | undefined;
206
208
  /** What the listing template shows for one document. */
207
209
  export interface DocumentRow {
210
+ /** What the row's link says: the title, or a note's first words. */
208
211
  title: string;
209
212
  slug: string;
210
213
  author: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/admin/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/admin/documents.ts"],"names":[],"mappings":"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"}