@geekity/cms 0.41.0 → 0.42.1

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 (199) hide show
  1. package/admin/components/blocks.njk +15 -1
  2. package/admin/pages/documents/editor.njk +1 -0
  3. package/admin/pages/settings/reading.njk +14 -0
  4. package/admin/pages/users/writing-goals.njk +64 -0
  5. package/admin/static/admin.css +5 -1
  6. package/admin/static/editor.js +21 -18
  7. package/dist/access-log.d.ts +3 -0
  8. package/dist/access-log.d.ts.map +1 -1
  9. package/dist/access-log.js +13 -9
  10. package/dist/access-log.js.map +1 -1
  11. package/dist/admin/autosave.d.ts +1 -0
  12. package/dist/admin/autosave.d.ts.map +1 -1
  13. package/dist/admin/autosave.js +20 -4
  14. package/dist/admin/autosave.js.map +1 -1
  15. package/dist/admin/blocks.d.ts +13 -1
  16. package/dist/admin/blocks.d.ts.map +1 -1
  17. package/dist/admin/blocks.js +40 -5
  18. package/dist/admin/blocks.js.map +1 -1
  19. package/dist/admin/core-widgets.d.ts.map +1 -1
  20. package/dist/admin/core-widgets.js +2 -0
  21. package/dist/admin/core-widgets.js.map +1 -1
  22. package/dist/admin/documents.d.ts.map +1 -1
  23. package/dist/admin/documents.js +18 -0
  24. package/dist/admin/documents.js.map +1 -1
  25. package/dist/admin/editor-word-counter.d.ts +8 -0
  26. package/dist/admin/editor-word-counter.d.ts.map +1 -0
  27. package/dist/admin/editor-word-counter.js +27 -0
  28. package/dist/admin/editor-word-counter.js.map +1 -0
  29. package/dist/admin/editor-words.d.ts +7 -0
  30. package/dist/admin/editor-words.d.ts.map +1 -0
  31. package/dist/admin/editor-words.js +9 -0
  32. package/dist/admin/editor-words.js.map +1 -0
  33. package/dist/admin/focus-mode.d.ts +0 -2
  34. package/dist/admin/focus-mode.d.ts.map +1 -1
  35. package/dist/admin/focus-mode.js +0 -10
  36. package/dist/admin/focus-mode.js.map +1 -1
  37. package/dist/admin/menu.d.ts.map +1 -1
  38. package/dist/admin/menu.js +2 -0
  39. package/dist/admin/menu.js.map +1 -1
  40. package/dist/admin/routes.d.ts.map +1 -1
  41. package/dist/admin/routes.js +2 -0
  42. package/dist/admin/routes.js.map +1 -1
  43. package/dist/admin/settings-fields.d.ts.map +1 -1
  44. package/dist/admin/settings-fields.js +1 -0
  45. package/dist/admin/settings-fields.js.map +1 -1
  46. package/dist/admin/settings-reading.d.ts.map +1 -1
  47. package/dist/admin/settings-reading.js +7 -1
  48. package/dist/admin/settings-reading.js.map +1 -1
  49. package/dist/admin/templates.d.ts +1 -0
  50. package/dist/admin/templates.d.ts.map +1 -1
  51. package/dist/admin/templates.js +1 -0
  52. package/dist/admin/templates.js.map +1 -1
  53. package/dist/admin/users.d.ts.map +1 -1
  54. package/dist/admin/users.js +2 -0
  55. package/dist/admin/users.js.map +1 -1
  56. package/dist/admin/widget-writing.d.ts +3 -0
  57. package/dist/admin/widget-writing.d.ts.map +1 -0
  58. package/dist/admin/widget-writing.js +102 -0
  59. package/dist/admin/widget-writing.js.map +1 -0
  60. package/dist/admin/widgets.d.ts +4 -1
  61. package/dist/admin/widgets.d.ts.map +1 -1
  62. package/dist/admin/widgets.js +19 -8
  63. package/dist/admin/widgets.js.map +1 -1
  64. package/dist/admin/writing-goals.d.ts +33 -0
  65. package/dist/admin/writing-goals.d.ts.map +1 -0
  66. package/dist/admin/writing-goals.js +149 -0
  67. package/dist/admin/writing-goals.js.map +1 -0
  68. package/dist/cli.d.ts +1 -1
  69. package/dist/cli.d.ts.map +1 -1
  70. package/dist/cli.js +64 -3
  71. package/dist/cli.js.map +1 -1
  72. package/dist/cms/create.d.ts +5 -2
  73. package/dist/cms/create.d.ts.map +1 -1
  74. package/dist/cms/create.js +60 -2
  75. package/dist/cms/create.js.map +1 -1
  76. package/dist/cms/server-error.d.ts.map +1 -1
  77. package/dist/cms/server-error.js +1 -0
  78. package/dist/cms/server-error.js.map +1 -1
  79. package/dist/cms/services.d.ts.map +1 -1
  80. package/dist/cms/services.js +5 -0
  81. package/dist/cms/services.js.map +1 -1
  82. package/dist/config.d.ts +20 -0
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +6 -2
  85. package/dist/config.js.map +1 -1
  86. package/dist/content/words.d.ts +3 -0
  87. package/dist/content/words.d.ts.map +1 -0
  88. package/dist/content/words.js +120 -0
  89. package/dist/content/words.js.map +1 -0
  90. package/dist/files/data-files.d.ts +3 -0
  91. package/dist/files/data-files.d.ts.map +1 -1
  92. package/dist/files/data-files.js +18 -0
  93. package/dist/files/data-files.js.map +1 -1
  94. package/dist/gemini/capsule.d.ts +4 -0
  95. package/dist/gemini/capsule.d.ts.map +1 -0
  96. package/dist/gemini/capsule.js +9 -0
  97. package/dist/gemini/capsule.js.map +1 -0
  98. package/dist/gemini/certificate.d.ts +34 -0
  99. package/dist/gemini/certificate.d.ts.map +1 -0
  100. package/dist/gemini/certificate.js +255 -0
  101. package/dist/gemini/certificate.js.map +1 -0
  102. package/dist/gemini/site-certificate.d.ts +8 -0
  103. package/dist/gemini/site-certificate.d.ts.map +1 -0
  104. package/dist/gemini/site-certificate.js +17 -0
  105. package/dist/gemini/site-certificate.js.map +1 -0
  106. package/dist/micropub/endpoint.d.ts.map +1 -1
  107. package/dist/micropub/endpoint.js +12 -0
  108. package/dist/micropub/endpoint.js.map +1 -1
  109. package/dist/plugin.d.ts +14 -1
  110. package/dist/plugin.d.ts.map +1 -1
  111. package/dist/plugin.js.map +1 -1
  112. package/dist/site/namespace.d.ts +1 -0
  113. package/dist/site/namespace.d.ts.map +1 -1
  114. package/dist/site/namespace.js +6 -0
  115. package/dist/site/namespace.js.map +1 -1
  116. package/dist/site/users.d.ts +7 -0
  117. package/dist/site/users.d.ts.map +1 -1
  118. package/dist/site/users.js +7 -0
  119. package/dist/site/users.js.map +1 -1
  120. package/dist/site/writing-goals.d.ts +22 -0
  121. package/dist/site/writing-goals.d.ts.map +1 -0
  122. package/dist/site/writing-goals.js +42 -0
  123. package/dist/site/writing-goals.js.map +1 -0
  124. package/dist/util/public-address.d.ts +1 -0
  125. package/dist/util/public-address.d.ts.map +1 -1
  126. package/dist/util/public-address.js +38 -30
  127. package/dist/util/public-address.js.map +1 -1
  128. package/dist/web/access-line.d.ts +2 -0
  129. package/dist/web/access-line.d.ts.map +1 -0
  130. package/dist/web/access-line.js +6 -0
  131. package/dist/web/access-line.js.map +1 -0
  132. package/dist/web/document-page.d.ts.map +1 -1
  133. package/dist/web/document-page.js +3 -4
  134. package/dist/web/document-page.js.map +1 -1
  135. package/dist/web/feed-routes.d.ts.map +1 -1
  136. package/dist/web/feed-routes.js +4 -4
  137. package/dist/web/feed-routes.js.map +1 -1
  138. package/dist/web/gemini-listener.d.ts +30 -0
  139. package/dist/web/gemini-listener.d.ts.map +1 -0
  140. package/dist/web/gemini-listener.js +186 -0
  141. package/dist/web/gemini-listener.js.map +1 -0
  142. package/dist/web/gemini-request.d.ts +23 -0
  143. package/dist/web/gemini-request.d.ts.map +1 -0
  144. package/dist/web/gemini-request.js +127 -0
  145. package/dist/web/gemini-request.js.map +1 -0
  146. package/dist/web/listing-pages.d.ts.map +1 -1
  147. package/dist/web/listing-pages.js +7 -5
  148. package/dist/web/listing-pages.js.map +1 -1
  149. package/dist/web/llms.d.ts +1 -0
  150. package/dist/web/llms.d.ts.map +1 -1
  151. package/dist/web/llms.js +3 -0
  152. package/dist/web/llms.js.map +1 -1
  153. package/dist/web/maintenance.js +1 -0
  154. package/dist/web/maintenance.js.map +1 -1
  155. package/dist/web/markdown-representation.d.ts +11 -20
  156. package/dist/web/markdown-representation.d.ts.map +1 -1
  157. package/dist/web/markdown-representation.js +57 -58
  158. package/dist/web/markdown-representation.js.map +1 -1
  159. package/dist/web/negotiate.d.ts +8 -17
  160. package/dist/web/negotiate.d.ts.map +1 -1
  161. package/dist/web/negotiate.js +37 -28
  162. package/dist/web/negotiate.js.map +1 -1
  163. package/dist/web/proxy-protocol.d.ts +13 -0
  164. package/dist/web/proxy-protocol.d.ts.map +1 -0
  165. package/dist/web/proxy-protocol.js +79 -0
  166. package/dist/web/proxy-protocol.js.map +1 -0
  167. package/dist/web/render.d.ts +33 -20
  168. package/dist/web/render.d.ts.map +1 -1
  169. package/dist/web/render.js +64 -27
  170. package/dist/web/render.js.map +1 -1
  171. package/dist/web/routes.d.ts.map +1 -1
  172. package/dist/web/routes.js +4 -8
  173. package/dist/web/routes.js.map +1 -1
  174. package/dist/web/site-index.d.ts.map +1 -1
  175. package/dist/web/site-index.js +6 -2
  176. package/dist/web/site-index.js.map +1 -1
  177. package/dist/web/status-pages.d.ts +2 -3
  178. package/dist/web/status-pages.d.ts.map +1 -1
  179. package/dist/web/status-pages.js +14 -11
  180. package/dist/web/status-pages.js.map +1 -1
  181. package/dist/web/throttle.d.ts +9 -0
  182. package/dist/web/throttle.d.ts.map +1 -1
  183. package/dist/web/throttle.js +17 -0
  184. package/dist/web/throttle.js.map +1 -1
  185. package/dist/writing/ledger.d.ts +15 -0
  186. package/dist/writing/ledger.d.ts.map +1 -0
  187. package/dist/writing/ledger.js +70 -0
  188. package/dist/writing/ledger.js.map +1 -0
  189. package/dist/writing/progress.d.ts +25 -0
  190. package/dist/writing/progress.d.ts.map +1 -0
  191. package/dist/writing/progress.js +83 -0
  192. package/dist/writing/progress.js.map +1 -0
  193. package/package.json +2 -1
  194. package/themes/default/layouts/404.gmi.njk +10 -0
  195. package/themes/default/layouts/410.gmi.njk +8 -0
  196. package/themes/default/layouts/500.gmi.njk +9 -0
  197. package/themes/default/layouts/503.gmi.njk +9 -0
  198. package/themes/default/layouts/base.njk +3 -0
  199. package/themes/default/partials/markdown-footer.md.njk +9 -1
@@ -1 +1 @@
1
- {"version":3,"file":"negotiate.js","sourceRoot":"","sources":["../../src/web/negotiate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"negotiate.js","sourceRoot":"","sources":["../../src/web/negotiate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type ProxyPreamble = {
2
+ readonly kind: 'partial';
3
+ } | {
4
+ readonly kind: 'none';
5
+ } | {
6
+ readonly kind: 'invalid';
7
+ } | {
8
+ readonly kind: 'header';
9
+ readonly length: number;
10
+ readonly address: string | undefined;
11
+ };
12
+ export declare function readProxyPreamble(received: Buffer): ProxyPreamble;
13
+ //# sourceMappingURL=proxy-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-protocol.d.ts","sourceRoot":"","sources":["../../src/web/proxy-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAa/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAIjE"}
@@ -0,0 +1,79 @@
1
+ import net from 'node:net';
2
+ const V1_SIGNATURE = Buffer.from('PROXY ');
3
+ /** The spec's longest v1 line, CR LF included. */
4
+ const V1_MAX_BYTES = 107;
5
+ const V2_SIGNATURE = Buffer.from('0d0a0d0a000d0a515549540a', 'hex');
6
+ const V2_FIXED_BYTES = 16;
7
+ const V2_MAX_BYTES = V2_FIXED_BYTES + 2048;
8
+ const PARTIAL = { kind: 'partial' };
9
+ const NONE = { kind: 'none' };
10
+ const INVALID = { kind: 'invalid' };
11
+ export function readProxyPreamble(received) {
12
+ if (startsLike(received, V1_SIGNATURE))
13
+ return readV1(received);
14
+ if (startsLike(received, V2_SIGNATURE))
15
+ return readV2(received);
16
+ return NONE;
17
+ }
18
+ function startsLike(received, signature) {
19
+ const length = Math.min(received.length, signature.length);
20
+ return received.subarray(0, length).equals(signature.subarray(0, length));
21
+ }
22
+ function readV1(received) {
23
+ const end = received.indexOf('\r\n');
24
+ if (end < 0)
25
+ return received.length < V1_MAX_BYTES ? PARTIAL : INVALID;
26
+ if (end + 2 > V1_MAX_BYTES)
27
+ return INVALID;
28
+ const length = end + 2;
29
+ const [, protocol, source, destination, sourcePort, destinationPort, ...rest] = received
30
+ .subarray(0, end)
31
+ .toString('latin1')
32
+ .split(' ');
33
+ if (protocol === 'UNKNOWN')
34
+ return { kind: 'header', length, address: undefined };
35
+ const family = protocol === 'TCP4' ? 4 : protocol === 'TCP6' ? 6 : undefined;
36
+ if (family === undefined ||
37
+ rest.length > 0 ||
38
+ source === undefined ||
39
+ net.isIP(source) !== family ||
40
+ net.isIP(destination ?? '') !== family ||
41
+ !isPort(sourcePort) ||
42
+ !isPort(destinationPort)) {
43
+ return INVALID;
44
+ }
45
+ return { kind: 'header', length, address: source };
46
+ }
47
+ function isPort(value) {
48
+ return value !== undefined && /^\d{1,5}$/.test(value) && Number(value) <= 65_535;
49
+ }
50
+ function readV2(received) {
51
+ if (received.length < V2_FIXED_BYTES)
52
+ return PARTIAL;
53
+ const versionAndCommand = received[12] ?? 0;
54
+ const family = (received[13] ?? 0) >> 4;
55
+ const length = V2_FIXED_BYTES + received.readUInt16BE(14);
56
+ if (versionAndCommand >> 4 !== 2 || length > V2_MAX_BYTES)
57
+ return INVALID;
58
+ const command = versionAndCommand & 0x0f;
59
+ if (command > 1)
60
+ return INVALID;
61
+ const addressBytes = family === 1 ? 12 : family === 2 ? 36 : 0;
62
+ if (length < V2_FIXED_BYTES + addressBytes)
63
+ return INVALID;
64
+ if (received.length < length)
65
+ return PARTIAL;
66
+ if (command === 0 || addressBytes === 0)
67
+ return { kind: 'header', length, address: undefined };
68
+ const source = received.subarray(V2_FIXED_BYTES);
69
+ return {
70
+ kind: 'header',
71
+ length,
72
+ address: family === 1 ? [...source.subarray(0, 4)].join('.') : ipv6(source.subarray(0, 16)),
73
+ };
74
+ }
75
+ function ipv6(bytes) {
76
+ const groups = Array.from({ length: 8 }, (_, index) => bytes.readUInt16BE(index * 2).toString(16));
77
+ return new URL(`http://[${groups.join(':')}]/`).hostname.slice(1, -1);
78
+ }
79
+ //# sourceMappingURL=proxy-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-protocol.js","sourceRoot":"","sources":["../../src/web/proxy-protocol.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import type { Pagination } from './pagination.ts';
16
16
  import type { TaxonomyBases, TaxonomyRedirect } from '../content/taxonomy.ts';
17
17
  import type { ThemeColors, ThemeFont, ThemeSource } from '../theme/themes.ts';
18
18
  import type { PageFont } from '../fonts/index.ts';
19
+ import type { TextFormat } from './negotiate.ts';
19
20
  import type { SchemeTokens } from '../theme/scheme-tokens.ts';
20
21
  import type { ReplyContext } from '../webmention/reply-context.ts';
21
22
  import type { SyndicationTarget } from '../content/syndicate-to.ts';
@@ -54,21 +55,21 @@ export declare const OPTIONAL_TEMPLATES: {
54
55
  /** The listing on the posts page. Falls back to {@link TEMPLATES.home}. */
55
56
  readonly postsPage: 'layouts/posts-page.njk';
56
57
  };
57
- /**
58
- * The two partials around a page's Markdown, found on the theme search path
59
- * like every other template.
60
- */
61
- export declare const MARKDOWN_TEMPLATES: {
62
- readonly header: 'partials/markdown-header.md.njk';
63
- readonly footer: 'partials/markdown-footer.md.njk';
64
- };
65
- /** What {@link Renderer.renderStatusMarkdown} writes a status page's Markdown with. */
58
+ export interface TextTemplates {
59
+ readonly markdown: string;
60
+ readonly gemini: string;
61
+ }
62
+ export interface ThemeText {
63
+ readonly format: TextFormat;
64
+ readonly text: string;
65
+ }
66
66
  export interface StatusMarkdownContext {
67
67
  /** The path the request was for. */
68
68
  url: string;
69
69
  markdownUrl: MarkdownUrl;
70
70
  /** On the maintenance page: when the operator expects the site back. */
71
71
  until?: Date | undefined;
72
+ format: TextFormat;
72
73
  }
73
74
  /** What {@link Renderer.renderMarkdownChrome} writes links with. */
74
75
  export interface MarkdownChromeOptions {
@@ -81,11 +82,15 @@ export interface MarkdownChromeOptions {
81
82
  * `backlinks`, and `archiveMonths` when it says `archive: true`.
82
83
  */
83
84
  document?: Document | undefined;
85
+ /**
86
+ * For `gemini`, the archive page's descriptions are left off, so each of
87
+ * its posts converts to a gemfeed line, `=> url YYYY-MM-DD title`.
88
+ */
89
+ format: TextFormat;
84
90
  }
85
- /** A page's Markdown header and footer, as the theme wrote them. */
86
91
  export interface MarkdownChromeText {
87
- readonly header: string;
88
- readonly footer: string;
92
+ readonly header: ThemeText;
93
+ readonly footer: ThemeText;
89
94
  }
90
95
  /** A listing of documents, ready to render. */
91
96
  export interface Listing {
@@ -210,19 +215,23 @@ export interface Renderer {
210
215
  */
211
216
  renderMaintenance(url: string, until: Date | undefined): string;
212
217
  /**
213
- * The body of a status page's Markdown, from the theme's `markdown`
214
- * template in {@link STATUS_PAGES}, with autoescaping off. The template gets
215
- * `site`, `url`, `title`, the maintenance page's `until` and `untilText`,
216
- * and the filters the Markdown partials have.
218
+ * The body of a status page's Markdown or gemtext, from the theme's
219
+ * templates in {@link STATUS_PAGES}, with autoescaping off. The template
220
+ * gets `site`, `url`, `title`, the maintenance page's `until` and
221
+ * `untilText`, and the filters the Markdown partials have.
217
222
  */
218
- renderStatusMarkdown(page: StatusPageName, context: StatusMarkdownContext): string;
223
+ renderStatusMarkdown(page: StatusPageName, context: StatusMarkdownContext): ThemeText;
219
224
  /**
220
- * The header and footer of a page's Markdown, through
221
- * {@link MARKDOWN_TEMPLATES} with autoescaping off: Markdown is not HTML.
225
+ * The header and footer of a page's Markdown or gemtext, through
226
+ * {@link CHROME_TEMPLATES} with autoescaping off: Markdown is not HTML.
222
227
  * The partials get `site`, `menus`, `soloAuthor`, the chrome's links as
223
228
  * data, a document's `categories`, `tags`, `backlinks`, `conversation` and
224
229
  * form links, `archiveMonths` on an archive page, and the `escapeMarkdown`,
225
- * `nest` and `markdownUrl` filters.
230
+ * `nest`, `markdownUrl` and `geminiUrl` filters.
231
+ *
232
+ * Gemtext comes from the first of the chosen theme's `.gmi.njk`, its
233
+ * `.md.njk`, the default theme's `.gmi.njk` and its `.md.njk`
234
+ * (decision-60), and the result says which format the theme wrote.
226
235
  */
227
236
  renderMarkdownChrome(chrome: MarkdownChrome, options: MarkdownChromeOptions): MarkdownChromeText;
228
237
  /** Any template by name, with the site data already in the context. */
@@ -438,21 +447,25 @@ export declare const STATUS_PAGES: {
438
447
  readonly notFound: {
439
448
  readonly template: "layouts/404.njk";
440
449
  readonly markdown: 'layouts/404.md.njk';
450
+ readonly gemini: 'layouts/404.gmi.njk';
441
451
  readonly title: 'Not found';
442
452
  };
443
453
  readonly gone: {
444
454
  readonly template: "layouts/410.njk";
445
455
  readonly markdown: 'layouts/410.md.njk';
456
+ readonly gemini: 'layouts/410.gmi.njk';
446
457
  readonly title: 'Deleted';
447
458
  };
448
459
  readonly serverError: {
449
460
  readonly template: "layouts/500.njk";
450
461
  readonly markdown: 'layouts/500.md.njk';
462
+ readonly gemini: 'layouts/500.gmi.njk';
451
463
  readonly title: 'Something went wrong';
452
464
  };
453
465
  readonly maintenance: {
454
466
  readonly template: "layouts/503.njk";
455
467
  readonly markdown: 'layouts/503.md.njk';
468
+ readonly gemini: 'layouts/503.gmi.njk';
456
469
  readonly title: 'Down for maintenance';
457
470
  };
458
471
  };
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,11 @@ import { snippetHtml } from './search.js';
31
31
  import { termHref } from '../content/taxonomy.js';
32
32
  import { createTemplateEnvironment, useThemeDirs } from '../theme/templates.js';
33
33
  import { createThemeSource, findThemeFile } from '../theme/themes.js';
34
+ import { representationHref } from './negotiate.js';
34
35
  import { schemeTokens } from '../theme/scheme-tokens.js';
35
36
  import { formatFileSize } from '../util/file-size.js';
36
37
  import { absoluteUrl } from '../util/url.js';
38
+ import { capsuleUrl } from '../gemini/capsule.js';
37
39
  import { citedPictureAlt } from '../webmention/cited-picture.js';
38
40
  import { readCitedStart } from '../webmention/cited-start.js';
39
41
  import { handSyndicationOf } from '../webmention/syndication.js';
@@ -74,13 +76,9 @@ export const OPTIONAL_TEMPLATES = {
74
76
  /** The listing on the posts page. Falls back to {@link TEMPLATES.home}. */
75
77
  postsPage: 'layouts/posts-page.njk',
76
78
  };
77
- /**
78
- * The two partials around a page's Markdown, found on the theme search path
79
- * like every other template.
80
- */
81
- export const MARKDOWN_TEMPLATES = {
82
- header: 'partials/markdown-header.md.njk',
83
- footer: 'partials/markdown-footer.md.njk',
79
+ const CHROME_TEMPLATES = {
80
+ header: { markdown: 'partials/markdown-header.md.njk', gemini: 'partials/gemini-header.gmi.njk' },
81
+ footer: { markdown: 'partials/markdown-footer.md.njk', gemini: 'partials/gemini-footer.gmi.njk' },
84
82
  };
85
83
  const signedInReader = new AsyncLocalStorage();
86
84
  /** Run `draw` as the request of a signed-in reader, so its pages say `signedIn`. */
@@ -148,12 +146,14 @@ export function createRenderer(options) {
148
146
  markdownEnvironment.addFilter('fileSize', (value) => typeof value === 'number' ? formatFileSize(value) : '');
149
147
  markdownEnvironment.addFilter('nest', (value, width) => nest(value instanceof nunjucks.runtime.SafeString ? value.toString() : filterText(value), typeof width === 'number' ? width : 2));
150
148
  markdownEnvironment.addFilter('quote', (value) => quote(filterText(value)));
151
- markdownEnvironment.addFilter('markdownUrl', function (value) {
152
- const url = filterText(value);
153
- const lookup = this?.lookup;
154
- const write = typeof lookup === 'function' ? lookup.call(this, 'markdownUrl') : undefined;
155
- return typeof write === 'function' ? write(url) : url;
156
- });
149
+ for (const name of ['markdownUrl', 'geminiUrl']) {
150
+ markdownEnvironment.addFilter(name, function (value) {
151
+ const url = filterText(value);
152
+ const lookup = this?.lookup;
153
+ const write = typeof lookup === 'function' ? lookup.call(this, name) : undefined;
154
+ return typeof write === 'function' ? write(url) : url;
155
+ });
156
+ }
157
157
  const pages = options.pages ?? (() => []);
158
158
  const users = options.users ?? (() => []);
159
159
  function render(template, context = {}) {
@@ -329,7 +329,7 @@ export function createRenderer(options) {
329
329
  const site = siteData.read();
330
330
  return archiveMonths(posts, siteTimezone(site), siteLocale(site), citedPage);
331
331
  }
332
- function markdownArchiveContext(document) {
332
+ function markdownArchiveContext(document, gemfeed) {
333
333
  const months = document === undefined ? undefined : archiveOf(document);
334
334
  if (months === undefined)
335
335
  return {};
@@ -340,7 +340,7 @@ export function createRenderer(options) {
340
340
  label: entry.title,
341
341
  url: entry.url,
342
342
  date: calendarDayIn(entry.date, timezone),
343
- description: entry.description === undefined ? undefined : oneLine(entry.description),
343
+ description: gemfeed || entry.description === undefined ? undefined : oneLine(entry.description),
344
344
  })),
345
345
  }));
346
346
  return { archiveMonths: markdownMonths };
@@ -549,6 +549,7 @@ export function createRenderer(options) {
549
549
  backlinks: (options.backlinks?.(document) ?? []).map((linking) => backlinkContext(linking, citedPage)),
550
550
  url,
551
551
  page: { ...context.page, url },
552
+ ...capsuleContext(url),
552
553
  ...(objectId === undefined ? {} : { activityStreams: objectId }),
553
554
  ...(feedsIt ? { commentsFeed: commentsFeedPath(document.permalink) } : {}),
554
555
  // And the whole archive, for a page whose front matter asked for it
@@ -611,12 +612,16 @@ export function createRenderer(options) {
611
612
  stamps.push([mark, form.loaded]);
612
613
  return { ...form, loaded: mark };
613
614
  }
615
+ function capsuleContext(url) {
616
+ const { pathname, search } = new URL(absoluteUrl(url, config.baseUrl));
617
+ const capsule = capsuleUrl(config, requestSite(), representationHref(`${pathname}${search}`, 'gemini'));
618
+ return capsule === undefined ? {} : { capsuleUrl: capsule };
619
+ }
614
620
  function statusPage({ template, title }, url, extra = {}) {
615
621
  return render(template, { title, url, page: { url }, ...extra });
616
622
  }
617
- function renderMarkdownChrome(chrome, { markdownUrl, frontPage, document }) {
623
+ function renderMarkdownChrome(chrome, { markdownUrl, frontPage, document, format }) {
618
624
  const site = siteData.read();
619
- useThemeDirs(markdownEnvironment, themes.current().dirs);
620
625
  const soloAuthor = siteAuthorContext(users(), site.author);
621
626
  const context = {
622
627
  site,
@@ -624,7 +629,7 @@ export function createRenderer(options) {
624
629
  navigation: navigationLinks(site),
625
630
  ...(soloAuthor === undefined ? {} : { soloAuthor }),
626
631
  ...(frontPage === undefined ? {} : newestPostsContext(frontPage)),
627
- ...markdownArchiveContext(document),
632
+ ...markdownArchiveContext(document, format === 'gemini'),
628
633
  ...markdownLinksContext(document),
629
634
  ...markdownKindContext(document),
630
635
  ...markdownConversationContext(document, chrome.url),
@@ -633,12 +638,20 @@ export function createRenderer(options) {
633
638
  bio: chrome.bio ?? (chrome.url === '/' ? bioOf(soloAuthor) : undefined),
634
639
  staticFrontPage: frontPage !== undefined,
635
640
  markdownUrl,
641
+ ...(format === 'gemini' ? { geminiUrl: markdownUrl } : {}),
642
+ ...(format === 'markdown' && chrome.type !== 'status' ? capsuleContext(chrome.url) : {}),
636
643
  };
637
644
  return {
638
- header: markdownEnvironment.render(MARKDOWN_TEMPLATES.header, context),
639
- footer: markdownEnvironment.render(MARKDOWN_TEMPLATES.footer, context),
645
+ header: renderText(CHROME_TEMPLATES.header, format, context),
646
+ footer: renderText(CHROME_TEMPLATES.footer, format, context),
640
647
  };
641
648
  }
649
+ function renderText(templates, format, context) {
650
+ const { dirs } = themes.current();
651
+ useThemeDirs(markdownEnvironment, dirs);
652
+ const written = format === 'gemini' && writesGemtext(dirs, templates) ? 'gemini' : 'markdown';
653
+ return { format: written, text: markdownEnvironment.render(templates[written], context) };
654
+ }
642
655
  return {
643
656
  environment,
644
657
  markdownEnvironment,
@@ -704,6 +717,7 @@ export function createRenderer(options) {
704
717
  title: listing.title,
705
718
  url: listing.url,
706
719
  page: { ...document?.page, url: listing.url },
720
+ ...capsuleContext(listing.url),
707
721
  // `posts` is the friendly name a theme loops over; `pagination.items`
708
722
  // is the same array under the name Eleventy gives it.
709
723
  posts: items,
@@ -732,6 +746,7 @@ export function createRenderer(options) {
732
746
  title: search.query === '' ? 'Search' : `Search results for “${search.query}”`,
733
747
  url: search.url,
734
748
  page: { url: search.url },
749
+ ...capsuleContext(search.url),
735
750
  // The words as the reader typed them, for the form to put back in the
736
751
  // box and the heading to repeat. Autoescaped like any other string.
737
752
  query: search.query,
@@ -746,6 +761,7 @@ export function createRenderer(options) {
746
761
  title: `${comment.author.name} on ${on.label}`,
747
762
  url,
748
763
  page: { url },
764
+ ...capsuleContext(url),
749
765
  noindex: true,
750
766
  comment,
751
767
  ancestors,
@@ -757,14 +773,14 @@ export function createRenderer(options) {
757
773
  renderGone: (url) => statusPage(STATUS_PAGES.gone, url),
758
774
  renderServerError: (url) => statusPage(STATUS_PAGES.serverError, url),
759
775
  renderMaintenance: (url, until) => statusPage(STATUS_PAGES.maintenance, url, untilContext(until)),
760
- renderStatusMarkdown(page, { url, markdownUrl, until }) {
761
- useThemeDirs(markdownEnvironment, themes.current().dirs);
762
- const { markdown, title } = STATUS_PAGES[page];
763
- return markdownEnvironment.render(markdown, {
776
+ renderStatusMarkdown(page, { url, markdownUrl, until, format }) {
777
+ const templates = STATUS_PAGES[page];
778
+ return renderText(templates, format, {
764
779
  site: siteData.read(),
765
780
  url,
766
- title,
781
+ title: templates.title,
767
782
  markdownUrl,
783
+ ...(format === 'gemini' ? { geminiUrl: markdownUrl } : {}),
768
784
  ...untilContext(until),
769
785
  });
770
786
  },
@@ -772,19 +788,40 @@ export function createRenderer(options) {
772
788
  };
773
789
  }
774
790
  export const STATUS_PAGES = {
775
- notFound: { template: TEMPLATES.notFound, markdown: 'layouts/404.md.njk', title: 'Not found' },
776
- gone: { template: TEMPLATES.gone, markdown: 'layouts/410.md.njk', title: 'Deleted' },
791
+ notFound: {
792
+ template: TEMPLATES.notFound,
793
+ markdown: 'layouts/404.md.njk',
794
+ gemini: 'layouts/404.gmi.njk',
795
+ title: 'Not found',
796
+ },
797
+ gone: {
798
+ template: TEMPLATES.gone,
799
+ markdown: 'layouts/410.md.njk',
800
+ gemini: 'layouts/410.gmi.njk',
801
+ title: 'Deleted',
802
+ },
777
803
  serverError: {
778
804
  template: TEMPLATES.serverError,
779
805
  markdown: 'layouts/500.md.njk',
806
+ gemini: 'layouts/500.gmi.njk',
780
807
  title: 'Something went wrong',
781
808
  },
782
809
  maintenance: {
783
810
  template: TEMPLATES.maintenance,
784
811
  markdown: 'layouts/503.md.njk',
812
+ gemini: 'layouts/503.gmi.njk',
785
813
  title: 'Down for maintenance',
786
814
  },
787
815
  };
816
+ function writesGemtext(dirs, templates) {
817
+ for (const dir of dirs) {
818
+ if (findThemeFile([dir], templates.gemini) !== undefined)
819
+ return true;
820
+ if (findThemeFile([dir], templates.markdown) !== undefined)
821
+ return false;
822
+ }
823
+ return false;
824
+ }
788
825
  function untilContext(until) {
789
826
  return until === undefined ? {} : { until: until.toISOString(), untilText: until.toUTCString() };
790
827
  }