@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.
- package/admin/components/blocks.njk +15 -1
- package/admin/pages/documents/editor.njk +1 -0
- package/admin/pages/settings/reading.njk +14 -0
- package/admin/pages/users/writing-goals.njk +64 -0
- package/admin/static/admin.css +5 -1
- package/admin/static/editor.js +21 -18
- package/dist/access-log.d.ts +3 -0
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +13 -9
- package/dist/access-log.js.map +1 -1
- package/dist/admin/autosave.d.ts +1 -0
- package/dist/admin/autosave.d.ts.map +1 -1
- package/dist/admin/autosave.js +20 -4
- package/dist/admin/autosave.js.map +1 -1
- package/dist/admin/blocks.d.ts +13 -1
- package/dist/admin/blocks.d.ts.map +1 -1
- package/dist/admin/blocks.js +40 -5
- package/dist/admin/blocks.js.map +1 -1
- package/dist/admin/core-widgets.d.ts.map +1 -1
- package/dist/admin/core-widgets.js +2 -0
- package/dist/admin/core-widgets.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +18 -0
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-word-counter.d.ts +8 -0
- package/dist/admin/editor-word-counter.d.ts.map +1 -0
- package/dist/admin/editor-word-counter.js +27 -0
- package/dist/admin/editor-word-counter.js.map +1 -0
- package/dist/admin/editor-words.d.ts +7 -0
- package/dist/admin/editor-words.d.ts.map +1 -0
- package/dist/admin/editor-words.js +9 -0
- package/dist/admin/editor-words.js.map +1 -0
- package/dist/admin/focus-mode.d.ts +0 -2
- package/dist/admin/focus-mode.d.ts.map +1 -1
- package/dist/admin/focus-mode.js +0 -10
- package/dist/admin/focus-mode.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +2 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +2 -0
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-fields.d.ts.map +1 -1
- package/dist/admin/settings-fields.js +1 -0
- package/dist/admin/settings-fields.js.map +1 -1
- package/dist/admin/settings-reading.d.ts.map +1 -1
- package/dist/admin/settings-reading.js +7 -1
- package/dist/admin/settings-reading.js.map +1 -1
- package/dist/admin/templates.d.ts +1 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +1 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +2 -0
- package/dist/admin/users.js.map +1 -1
- package/dist/admin/widget-writing.d.ts +3 -0
- package/dist/admin/widget-writing.d.ts.map +1 -0
- package/dist/admin/widget-writing.js +102 -0
- package/dist/admin/widget-writing.js.map +1 -0
- package/dist/admin/widgets.d.ts +4 -1
- package/dist/admin/widgets.d.ts.map +1 -1
- package/dist/admin/widgets.js +19 -8
- package/dist/admin/widgets.js.map +1 -1
- package/dist/admin/writing-goals.d.ts +33 -0
- package/dist/admin/writing-goals.d.ts.map +1 -0
- package/dist/admin/writing-goals.js +149 -0
- package/dist/admin/writing-goals.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +64 -3
- package/dist/cli.js.map +1 -1
- package/dist/cms/create.d.ts +5 -2
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +60 -2
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/server-error.d.ts.map +1 -1
- package/dist/cms/server-error.js +1 -0
- package/dist/cms/server-error.js.map +1 -1
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +5 -0
- package/dist/cms/services.js.map +1 -1
- package/dist/config.d.ts +20 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/content/words.d.ts +3 -0
- package/dist/content/words.d.ts.map +1 -0
- package/dist/content/words.js +120 -0
- package/dist/content/words.js.map +1 -0
- package/dist/files/data-files.d.ts +3 -0
- package/dist/files/data-files.d.ts.map +1 -1
- package/dist/files/data-files.js +18 -0
- package/dist/files/data-files.js.map +1 -1
- package/dist/gemini/capsule.d.ts +4 -0
- package/dist/gemini/capsule.d.ts.map +1 -0
- package/dist/gemini/capsule.js +9 -0
- package/dist/gemini/capsule.js.map +1 -0
- package/dist/gemini/certificate.d.ts +34 -0
- package/dist/gemini/certificate.d.ts.map +1 -0
- package/dist/gemini/certificate.js +255 -0
- package/dist/gemini/certificate.js.map +1 -0
- package/dist/gemini/site-certificate.d.ts +8 -0
- package/dist/gemini/site-certificate.d.ts.map +1 -0
- package/dist/gemini/site-certificate.js +17 -0
- package/dist/gemini/site-certificate.js.map +1 -0
- package/dist/micropub/endpoint.d.ts.map +1 -1
- package/dist/micropub/endpoint.js +12 -0
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/plugin.d.ts +14 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/site/namespace.d.ts +1 -0
- package/dist/site/namespace.d.ts.map +1 -1
- package/dist/site/namespace.js +6 -0
- package/dist/site/namespace.js.map +1 -1
- package/dist/site/users.d.ts +7 -0
- package/dist/site/users.d.ts.map +1 -1
- package/dist/site/users.js +7 -0
- package/dist/site/users.js.map +1 -1
- package/dist/site/writing-goals.d.ts +22 -0
- package/dist/site/writing-goals.d.ts.map +1 -0
- package/dist/site/writing-goals.js +42 -0
- package/dist/site/writing-goals.js.map +1 -0
- package/dist/util/public-address.d.ts +1 -0
- package/dist/util/public-address.d.ts.map +1 -1
- package/dist/util/public-address.js +38 -30
- package/dist/util/public-address.js.map +1 -1
- package/dist/web/access-line.d.ts +2 -0
- package/dist/web/access-line.d.ts.map +1 -0
- package/dist/web/access-line.js +6 -0
- package/dist/web/access-line.js.map +1 -0
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +3 -4
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +4 -4
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/gemini-listener.d.ts +30 -0
- package/dist/web/gemini-listener.d.ts.map +1 -0
- package/dist/web/gemini-listener.js +186 -0
- package/dist/web/gemini-listener.js.map +1 -0
- package/dist/web/gemini-request.d.ts +23 -0
- package/dist/web/gemini-request.d.ts.map +1 -0
- package/dist/web/gemini-request.js +127 -0
- package/dist/web/gemini-request.js.map +1 -0
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +7 -5
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/llms.d.ts +1 -0
- package/dist/web/llms.d.ts.map +1 -1
- package/dist/web/llms.js +3 -0
- package/dist/web/llms.js.map +1 -1
- package/dist/web/maintenance.js +1 -0
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/markdown-representation.d.ts +11 -20
- package/dist/web/markdown-representation.d.ts.map +1 -1
- package/dist/web/markdown-representation.js +57 -58
- package/dist/web/markdown-representation.js.map +1 -1
- package/dist/web/negotiate.d.ts +8 -17
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +37 -28
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/proxy-protocol.d.ts +13 -0
- package/dist/web/proxy-protocol.d.ts.map +1 -0
- package/dist/web/proxy-protocol.js +79 -0
- package/dist/web/proxy-protocol.js.map +1 -0
- package/dist/web/render.d.ts +33 -20
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +64 -27
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +4 -8
- package/dist/web/routes.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +6 -2
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/status-pages.d.ts +2 -3
- package/dist/web/status-pages.d.ts.map +1 -1
- package/dist/web/status-pages.js +14 -11
- package/dist/web/status-pages.js.map +1 -1
- package/dist/web/throttle.d.ts +9 -0
- package/dist/web/throttle.d.ts.map +1 -1
- package/dist/web/throttle.js +17 -0
- package/dist/web/throttle.js.map +1 -1
- package/dist/writing/ledger.d.ts +15 -0
- package/dist/writing/ledger.d.ts.map +1 -0
- package/dist/writing/ledger.js +70 -0
- package/dist/writing/ledger.js.map +1 -0
- package/dist/writing/progress.d.ts +25 -0
- package/dist/writing/progress.d.ts.map +1 -0
- package/dist/writing/progress.js +83 -0
- package/dist/writing/progress.js.map +1 -0
- package/package.json +2 -1
- package/themes/default/layouts/404.gmi.njk +10 -0
- package/themes/default/layouts/410.gmi.njk +8 -0
- package/themes/default/layouts/500.gmi.njk +9 -0
- package/themes/default/layouts/503.gmi.njk +9 -0
- package/themes/default/layouts/base.njk +3 -0
- package/themes/default/partials/markdown-footer.md.njk +9 -1
package/dist/web/llms.js
CHANGED
|
@@ -32,6 +32,9 @@ export function llmsTxt(index, baseUrl, markdownUrl) {
|
|
|
32
32
|
return markdownFile([
|
|
33
33
|
`# ${oneLine(index.title)}`,
|
|
34
34
|
...(description === '' ? [] : [`> ${description}`]),
|
|
35
|
+
...(index.capsule === undefined
|
|
36
|
+
? []
|
|
37
|
+
: [`This site is also a Gemini capsule at <${index.capsule}>.`]),
|
|
35
38
|
...section('Navigation', index.navigation, link),
|
|
36
39
|
...section('Pages', index.pages, link),
|
|
37
40
|
...section('Posts', index.posts, link),
|
package/dist/web/llms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms.js","sourceRoot":"","sources":["../../src/web/llms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG5D;;;;;;;;;;GAUG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,4CAA4C,CAAC;AAE3F,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"llms.js","sourceRoot":"","sources":["../../src/web/llms.ts"],"names":[],"mappings":"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"}
|
package/dist/web/maintenance.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/web/maintenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,25 +5,17 @@ import type { SearchHit } from '../content/store.ts';
|
|
|
5
5
|
import type { GeekityEnv } from './env.ts';
|
|
6
6
|
import type { Archive } from './listing-subject.ts';
|
|
7
7
|
import type { MarkdownUrl } from './markdown-page.ts';
|
|
8
|
+
import type { TextFormat } from './negotiate.ts';
|
|
8
9
|
import type { Pagination } from './pagination.ts';
|
|
9
10
|
import type { StatusPageName } from './render.ts';
|
|
10
|
-
|
|
11
|
-
* A document's Markdown at `url`, which is its permalink everywhere but the
|
|
12
|
-
* front page. The front matter says where it is served; everything the page
|
|
13
|
-
* lists about the document, such as its comments feed, is the stored one's.
|
|
14
|
-
*/
|
|
15
|
-
export declare function documentMarkdown(c: Context<GeekityEnv>, document: Document, url: string): string;
|
|
11
|
+
export declare function documentMarkdown(c: Context<GeekityEnv>, document: Document, url: string, format: TextFormat): string;
|
|
16
12
|
export declare function listingMarkdown(c: Context<GeekityEnv>, archive: Archive, page: {
|
|
17
13
|
href: string;
|
|
18
14
|
title: string;
|
|
19
15
|
pagination: Pagination;
|
|
20
16
|
documents: readonly Document[];
|
|
21
|
-
}): string;
|
|
22
|
-
|
|
23
|
-
* A native comment's page in Markdown: the post and the comments it answers
|
|
24
|
-
* above it, its own words as the body, and its replies below.
|
|
25
|
-
*/
|
|
26
|
-
export declare function commentMarkdown(c: Context<GeekityEnv>, found: CommentThread): string;
|
|
17
|
+
}, format: TextFormat): string;
|
|
18
|
+
export declare function commentMarkdown(c: Context<GeekityEnv>, found: CommentThread, format: TextFormat): string;
|
|
27
19
|
/**
|
|
28
20
|
* One page of search results in the listing's shape: what was asked and how
|
|
29
21
|
* much was found, the results with their snippets, and the pager. Every link
|
|
@@ -34,12 +26,11 @@ export declare function searchMarkdown(c: Context<GeekityEnv>, page: {
|
|
|
34
26
|
query: string;
|
|
35
27
|
pagination: Pagination;
|
|
36
28
|
hits: readonly SearchHit[];
|
|
37
|
-
}): string;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
export declare function
|
|
44
|
-
export declare function markdownUrlFor(c: Context<GeekityEnv>, pageUrl: string): MarkdownUrl;
|
|
29
|
+
}, format: TextFormat): string;
|
|
30
|
+
export declare function statusMarkdown(c: Context<GeekityEnv>, page: StatusPageName, url: string, format: TextFormat, until?: Date): string;
|
|
31
|
+
export declare const GEMTEXT: {
|
|
32
|
+
readonly plain: true;
|
|
33
|
+
readonly stripHtml: true;
|
|
34
|
+
};
|
|
35
|
+
export declare function siteUrlFor(c: Context<GeekityEnv>, pageUrl: string, format: TextFormat): MarkdownUrl;
|
|
45
36
|
//# sourceMappingURL=markdown-representation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-representation.d.ts","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown-representation.d.ts","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAcpD,OAAO,KAAK,EAA8C,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAM7D,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,GACjB,MAAM,CA2CR;AAED,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,EAC7F,MAAM,EAAE,UAAU,GACjB,MAAM,CA4CR;AAED,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,UAAU,GACjB,MAAM,CAsCR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,EACzF,MAAM,EAAE,UAAU,GACjB,MAAM,CAgDR;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,IAAI,GACX,MAAM,CAqBR;AA+ED,eAAO,MAAM,OAAO;aAAK,KAAK;aAAQ,SAAS;CAAiB,CAAC;AAEjE,wBAAgB,UAAU,CACxB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,GACjB,WAAW,CAGb"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { convert } from '@geekity/md2gemini';
|
|
1
3
|
import { commentAnchor, commentKeyAt } from '../comments/conversation.js';
|
|
2
4
|
import { commentPageHref } from '../content/guids.js';
|
|
3
5
|
import { rewriteMarkdownLinks } from '../content/markdown-links.js';
|
|
@@ -13,19 +15,14 @@ import { feedExcerpt } from '../content/excerpt.js';
|
|
|
13
15
|
import { siteTimezone } from '../theme/site-data.js';
|
|
14
16
|
import { commentedPost } from './conversation.js';
|
|
15
17
|
import { markdownCommentThread } from './markdown-conversation.js';
|
|
16
|
-
import { bioOf, entryList, escapeMarkdown, linkList, markdownFile, namedAuthor, navigationFrontMatter, oneLine, } from './markdown-page.js';
|
|
18
|
+
import { bioOf, entryList, escapeMarkdown, HOME_LINK, linkList, markdownFile, namedAuthor, navigationFrontMatter, oneLine, } from './markdown-page.js';
|
|
17
19
|
import { representationHref } from './negotiate.js';
|
|
18
20
|
import { STATUS_PAGES } from './render.js';
|
|
19
21
|
import { classifyPath } from './paths.js';
|
|
20
22
|
import { documentLabel, encodePath } from './request.js';
|
|
21
23
|
import { SEARCH_PATH, snippetMarkdown } from './search.js';
|
|
22
24
|
import { servedPath, siteView } from './site-view.js';
|
|
23
|
-
|
|
24
|
-
* A document's Markdown at `url`, which is its permalink everywhere but the
|
|
25
|
-
* front page. The front matter says where it is served; everything the page
|
|
26
|
-
* lists about the document, such as its comments feed, is the stored one's.
|
|
27
|
-
*/
|
|
28
|
-
export function documentMarkdown(c, document, url) {
|
|
25
|
+
export function documentMarkdown(c, document, url, format) {
|
|
29
26
|
const writer = authorContext(siteView(c).users(), document.author);
|
|
30
27
|
const neighbours = document.type === 'post' ? c.var.store.neighbours(document) : {};
|
|
31
28
|
const link = (neighbour) => neighbour === undefined
|
|
@@ -52,16 +49,16 @@ export function documentMarkdown(c, document, url) {
|
|
|
52
49
|
: []),
|
|
53
50
|
],
|
|
54
51
|
};
|
|
55
|
-
return
|
|
52
|
+
return textPage(c, format, namedAuthor(documentFrontMatter({ ...document, permalink: url }), writer), chrome, [rewriteMarkdownLinks(body, siteHrefFor(c, url, format))], { frontPage: url === '/' ? document : undefined, document, published: document.date });
|
|
56
53
|
}
|
|
57
|
-
export function listingMarkdown(c, archive, page) {
|
|
54
|
+
export function listingMarkdown(c, archive, page, format) {
|
|
58
55
|
const { next, previous } = page.pagination.href;
|
|
59
56
|
const home = siteView(c).pages.home;
|
|
60
57
|
const site = c.var.renderer.site();
|
|
61
58
|
const description = oneLine(archive.description(site));
|
|
62
59
|
const timezone = siteTimezone(site);
|
|
63
60
|
const url = decodedPath(page.href);
|
|
64
|
-
const
|
|
61
|
+
const linkUrl = siteUrlFor(c, url, format);
|
|
65
62
|
const newer = previous === null ? undefined : { label: 'Newer posts', url: previous };
|
|
66
63
|
const older = next === null ? undefined : { label: 'Older posts', url: next };
|
|
67
64
|
const ownFeeds = archive.feedHref('rss') === feedPathUnder('/', 'rss') ? [] : FEED_FORMATS;
|
|
@@ -81,24 +78,20 @@ export function listingMarkdown(c, archive, page) {
|
|
|
81
78
|
label: documentLabel(c, document),
|
|
82
79
|
url: servedPath(document, home),
|
|
83
80
|
date: document.date === undefined ? undefined : calendarDayIn(document.date, timezone),
|
|
84
|
-
description: document.description,
|
|
81
|
+
description: format === 'gemini' ? undefined : document.description,
|
|
85
82
|
}));
|
|
86
83
|
const pager = [newer, older].filter((link) => link !== undefined);
|
|
87
84
|
const { document } = archive.context;
|
|
88
|
-
return
|
|
85
|
+
return textPage(c, format, { title: page.title, permalink: url }, chrome, [
|
|
89
86
|
description === '' ? '' : `> ${description}`,
|
|
90
87
|
document === undefined
|
|
91
88
|
? ''
|
|
92
|
-
: rewriteMarkdownLinks(normalizeBody(document.body),
|
|
93
|
-
entries.length === 0 ? '' : `## Posts\n\n${entryList(entries,
|
|
94
|
-
pager.length === 0 ? '' : `## More posts\n\n${linkList(pager,
|
|
89
|
+
: rewriteMarkdownLinks(normalizeBody(document.body), siteHrefFor(c, document.permalink, format)),
|
|
90
|
+
entries.length === 0 ? '' : `## Posts\n\n${entryList(entries, linkUrl)}`,
|
|
91
|
+
pager.length === 0 ? '' : `## More posts\n\n${linkList(pager, linkUrl)}`,
|
|
95
92
|
]);
|
|
96
93
|
}
|
|
97
|
-
|
|
98
|
-
* A native comment's page in Markdown: the post and the comments it answers
|
|
99
|
-
* above it, its own words as the body, and its replies below.
|
|
100
|
-
*/
|
|
101
|
-
export function commentMarkdown(c, found) {
|
|
94
|
+
export function commentMarkdown(c, found, format) {
|
|
102
95
|
const { post, comment } = found;
|
|
103
96
|
const url = commentPageHref(comment.key);
|
|
104
97
|
const users = siteView(c).users();
|
|
@@ -119,7 +112,7 @@ export function commentMarkdown(c, found) {
|
|
|
119
112
|
feeds: siteFeeds(site.title),
|
|
120
113
|
thread,
|
|
121
114
|
};
|
|
122
|
-
return
|
|
115
|
+
return textPage(c, format, {
|
|
123
116
|
title: `${comment.author.name} on ${label}`,
|
|
124
117
|
permalink: url,
|
|
125
118
|
author: comment.author.name,
|
|
@@ -131,13 +124,13 @@ export function commentMarkdown(c, found) {
|
|
|
131
124
|
* much was found, the results with their snippets, and the pager. Every link
|
|
132
125
|
* to another page of the results keeps the query.
|
|
133
126
|
*/
|
|
134
|
-
export function searchMarkdown(c, page) {
|
|
127
|
+
export function searchMarkdown(c, page, format) {
|
|
135
128
|
const { query, pagination } = page;
|
|
136
129
|
const { next, previous } = pagination.href;
|
|
137
130
|
const home = siteView(c).pages.home;
|
|
138
131
|
const site = c.var.renderer.site();
|
|
139
132
|
const timezone = siteTimezone(site);
|
|
140
|
-
const
|
|
133
|
+
const linkUrl = siteUrlFor(c, SEARCH_PATH, format);
|
|
141
134
|
const title = query === ''
|
|
142
135
|
? 'Search'
|
|
143
136
|
: `Search results for “${query}”${pagination.pageNumber > 0 ? `, page ${String(pagination.pageNumber + 1)}` : ''}`;
|
|
@@ -161,21 +154,16 @@ export function searchMarkdown(c, page) {
|
|
|
161
154
|
label: documentLabel(c, document),
|
|
162
155
|
url: servedPath(document, home),
|
|
163
156
|
date: document.date === undefined ? undefined : calendarDayIn(document.date, timezone),
|
|
164
|
-
description: snippetMarkdown(snippet),
|
|
157
|
+
description: format === 'gemini' ? undefined : snippetMarkdown(snippet),
|
|
165
158
|
}));
|
|
166
159
|
const pager = [newer, older].filter((link) => link !== undefined);
|
|
167
|
-
return
|
|
160
|
+
return textPage(c, format, { title, permalink: page.href, ...(query === '' ? {} : { query }) }, chrome, [
|
|
168
161
|
summary,
|
|
169
|
-
entries.length === 0 ? '' : `## Results\n\n${entryList(entries,
|
|
170
|
-
pager.length === 0 ? '' : `## More results\n\n${linkList(pager,
|
|
162
|
+
entries.length === 0 ? '' : `## Results\n\n${entryList(entries, linkUrl)}`,
|
|
163
|
+
pager.length === 0 ? '' : `## More results\n\n${linkList(pager, linkUrl)}`,
|
|
171
164
|
]);
|
|
172
165
|
}
|
|
173
|
-
|
|
174
|
-
* A 404, 410, 500 or 503 in Markdown: the theme's body for it between the
|
|
175
|
-
* header and footer every page has, with the maintenance page's back-by time
|
|
176
|
-
* in the front matter as well.
|
|
177
|
-
*/
|
|
178
|
-
export function statusMarkdown(c, page, url, until) {
|
|
166
|
+
export function statusMarkdown(c, page, url, format, until) {
|
|
179
167
|
const { title } = STATUS_PAGES[page];
|
|
180
168
|
const chrome = {
|
|
181
169
|
url,
|
|
@@ -185,10 +173,11 @@ export function statusMarkdown(c, page, url, until) {
|
|
|
185
173
|
};
|
|
186
174
|
const body = c.var.renderer.renderStatusMarkdown(page, {
|
|
187
175
|
url,
|
|
188
|
-
markdownUrl:
|
|
176
|
+
markdownUrl: siteUrlFor(c, url, format),
|
|
189
177
|
until,
|
|
178
|
+
format,
|
|
190
179
|
});
|
|
191
|
-
return
|
|
180
|
+
return textPage(c, format, { title, ...(until === undefined ? {} : { until: until.toISOString() }) }, chrome, [body]);
|
|
192
181
|
}
|
|
193
182
|
const FEED_NAMES = {
|
|
194
183
|
rss: { format: 'RSS', type: 'application/rss+xml' },
|
|
@@ -204,34 +193,44 @@ function siteFeeds(siteTitle) {
|
|
|
204
193
|
feed('rss', `${siteTitle} comments`, commentsFeedPath()),
|
|
205
194
|
];
|
|
206
195
|
}
|
|
207
|
-
function
|
|
208
|
-
const
|
|
196
|
+
function textPage(c, format, frontMatter, chrome, blocks, { published, ...pages } = {}) {
|
|
197
|
+
const linkUrl = siteUrlFor(c, chrome.url, format);
|
|
209
198
|
const { header, footer } = c.var.renderer.renderMarkdownChrome(chrome, {
|
|
210
|
-
markdownUrl,
|
|
199
|
+
markdownUrl: linkUrl,
|
|
200
|
+
format,
|
|
211
201
|
...pages,
|
|
212
202
|
});
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
...
|
|
216
|
-
|
|
217
|
-
|
|
203
|
+
const body = blocks.map((block) => typeof block === 'string' ? { format: 'markdown', text: block } : block);
|
|
204
|
+
if (format === 'markdown') {
|
|
205
|
+
return markdownFile({ ...frontMatter, ...navigationFrontMatter(chrome, linkUrl) }, [header, ...body, footer].map(({ text }) => text));
|
|
206
|
+
}
|
|
207
|
+
const day = published === undefined
|
|
208
|
+
? undefined
|
|
209
|
+
: calendarDayIn(published, siteTimezone(c.var.renderer.site()));
|
|
210
|
+
const dateline = {
|
|
211
|
+
format: 'markdown',
|
|
212
|
+
text: day === undefined ? '' : `Published ${day}`,
|
|
213
|
+
};
|
|
214
|
+
const gemtext = gemtextOf([header, dateline, ...body, footer]);
|
|
215
|
+
const home = `=> ${linkUrl(HOME_LINK.url)} ${HOME_LINK.label}`;
|
|
216
|
+
return gemtext.split('\n').includes(home) ? gemtext : `${gemtext}\n${home}\n`;
|
|
218
217
|
}
|
|
219
|
-
|
|
220
|
-
const
|
|
218
|
+
function gemtextOf(parts) {
|
|
219
|
+
const token = `geekity-gemtext-${randomUUID()}`;
|
|
220
|
+
const gemtext = [];
|
|
221
|
+
const markdown = parts
|
|
222
|
+
.map(({ format, text }) => ({ format, text: text.trim() }))
|
|
223
|
+
.filter(({ text }) => text !== '')
|
|
224
|
+
.map(({ format, text }) => format === 'markdown' ? text : `${token}-${String(gemtext.push(text) - 1)}`)
|
|
225
|
+
.join('\n\n');
|
|
226
|
+
return convert(markdown, GEMTEXT).replace(new RegExp(`^${token}-(\\d+)$`, 'gm'), (_, index) => gemtext[Number(index)] ?? '');
|
|
227
|
+
}
|
|
228
|
+
export const GEMTEXT = { plain: true, stripHtml: true };
|
|
229
|
+
export function siteUrlFor(c, pageUrl, format) {
|
|
230
|
+
const href = siteHrefFor(c, pageUrl, format);
|
|
221
231
|
return (url) => href(url) ?? url;
|
|
222
232
|
}
|
|
223
|
-
|
|
224
|
-
* A link on the page at `pageUrl` as the Markdown URL of what it names, or
|
|
225
|
-
* `undefined` when it names nothing on this site with a Markdown
|
|
226
|
-
* representation.
|
|
227
|
-
*
|
|
228
|
-
* The link is followed the way the site answers a request for it: a query
|
|
229
|
-
* redirect, then whatever is served at the path, then a moved document, then
|
|
230
|
-
* a declared redirect, so `/?p=7`, a `redirect_from` and the homepage's own
|
|
231
|
-
* permalink all land on the `.md` of the document they reach. A fragment is
|
|
232
|
-
* kept, and so is the query of a link to the search.
|
|
233
|
-
*/
|
|
234
|
-
function markdownHrefFor(c, pageUrl) {
|
|
233
|
+
function siteHrefFor(c, pageUrl, format) {
|
|
235
234
|
const { config } = c.var;
|
|
236
235
|
const view = siteView(c);
|
|
237
236
|
const { store } = view;
|
|
@@ -273,7 +272,7 @@ function markdownHrefFor(c, pageUrl) {
|
|
|
273
272
|
const { pathname } = new URL(absoluteUrl(encodePath(served), config.baseUrl));
|
|
274
273
|
const target = URL.parse(href, page);
|
|
275
274
|
const query = served === SEARCH_PATH ? (target?.search ?? '') : '';
|
|
276
|
-
return `${representationHref(`${pathname}${query}`,
|
|
275
|
+
return `${representationHref(`${pathname}${query}`, format)}${target?.hash ?? ''}`;
|
|
277
276
|
};
|
|
278
277
|
}
|
|
279
278
|
function hasCommentPage(c, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-representation.js","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,KAAK,EACL,SAAS,EACT,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,OAAO,GACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAsB,EAAE,QAAkB,EAAE,GAAW;IACtF,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,SAA+B,EAA4B,EAAE,CACzE,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAEvE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IAC9C,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QAC3E,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3B,MAAM,EACJ,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,GAAG,KAAK,SAAS;YACnD,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;YACzC,CAAC,CAAC,SAAS;QACf,KAAK,EAAE;YACL,GAAG,SAAS,CAAC,SAAS,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC;oBACE,IAAI,CACF,KAAK,EACL,GAAG,qBAAqB,GAAG,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EACvD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CACrC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;IAEF,OAAO,YAAY,CACjB,CAAC,EACD,WAAW,CAAC,mBAAmB,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EACzE,MAAM,EACN,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EACrD,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,CAAsB,EACtB,OAAgB,EAChB,IAA6F;IAE7F,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE3C,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3F,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE;YACL,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7F;KACF,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC;QACjC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACtF,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAErC,OAAO,YAAY,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;QACpE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QAC5C,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9F,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;QAC5E,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;KAC7E,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAsB,EAAE,KAAoB;IAC1E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,qBAAqB,CAClC,KAAK,EACL;QACE,KAAK;QACL,GAAG,EAAE,IAAI,CAAC,SAAS;QACnB,MAAM,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE;QACtE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;KAC3B,EACD,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAClD,CAAC;IACF,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,cAAc,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,KAAK,EAAE;QACtD,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM;KACP,CAAC;IAEF,OAAO,YAAY,CACjB,CAAC,EACD;QACE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,KAAK,EAAE;QAC3C,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,IAAI,EAAE,OAAO,CAAC,SAAS;KACxB,EACD,MAAM,EACN,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,CAAsB,EACtB,IAAyF;IAEzF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,KAAK,GACT,KAAK,KAAK,EAAE;QACV,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,uBAAuB,KAAK,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEvH,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3F,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAmB;QAC7B,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,SAAS;QACf,KAAK;QACL,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;KAC7B,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;IAC3C,MAAM,OAAO,GACX,KAAK,KAAK,EAAE;QACV,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC;YACtB,CAAC,CAAC,qBAAqB,KAAK,GAAG;YAC/B,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAK,GAAG,CAAC;IACzG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC;QACjC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACtF,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC;KACtC,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAElE,OAAO,YAAY,CACjB,CAAC,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACnE,MAAM,EACN;QACE,OAAO;QACP,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;QAC9E,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;KAC/E,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,CAAsB,EACtB,IAAoB,EACpB,GAAW,EACX,KAAY;IAEZ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;KAC9C,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE;QACrD,GAAG;QACH,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC;QACnC,KAAK;KACN,CAAC,CAAC;IACH,OAAO,YAAY,CACjB,CAAC,EACD,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EACzE,MAAM,EACN,CAAC,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAwE;IACtF,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE;IACnD,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACtD,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE;CAC7D,CAAC;AAEF,SAAS,IAAI,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAW;IAC1D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB;IAClC,OAAO;QACL,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS,WAAW,EAAE,gBAAgB,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,CAAsB,EACtB,WAAoC,EACpC,MAAsB,EACtB,MAAyB,EACzB,KAAK,GAA0E,EAAE;IAEjF,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;QACrE,WAAW;QACX,GAAG,KAAK;KACT,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE;QACrF,MAAM;QACN,GAAG,MAAM;QACT,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAsB,EAAE,OAAe;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACnC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CACtB,CAAsB,EACtB,OAAe;IAEf,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;IACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE;QACxD,IAAI,QAAQ,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;QACrE,IAAI,SAAS,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QAClD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;gBAAE,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnF,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBACxD,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,GAAG,kBAAkB,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,EAAE,UAAU,CAAC,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IACzF,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAsB,EAAE,GAAW;IACzD,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
1
|
+
{"version":3,"file":"markdown-representation.js","sourceRoot":"","sources":["../../src/web/markdown-representation.ts"],"names":[],"mappings":"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"}
|
package/dist/web/negotiate.d.ts
CHANGED
|
@@ -6,7 +6,10 @@ import type { Document } from '../content/document.ts';
|
|
|
6
6
|
* decide *what* is at a URL; this module decides *which body* to hand back and
|
|
7
7
|
* how to label it, so the two questions never get tangled together.
|
|
8
8
|
*/
|
|
9
|
-
export type Representation = 'html' | 'markdown' | 'text' | 'json';
|
|
9
|
+
export type Representation = 'html' | 'markdown' | 'gemini' | 'text' | 'json';
|
|
10
|
+
export type TextFormat = 'markdown' | 'gemini';
|
|
11
|
+
export type TextRepresentation = 'markdown' | 'gemini' | 'text';
|
|
12
|
+
export declare function textFormatOf(representation: Representation): TextFormat | undefined;
|
|
10
13
|
/** The media type each representation is served as. */
|
|
11
14
|
export declare const MEDIA_TYPES: Readonly<Record<Representation, string>>;
|
|
12
15
|
/**
|
|
@@ -44,7 +47,10 @@ export declare const ACTIVITY_STREAMS_MEDIA_TYPES: readonly string[];
|
|
|
44
47
|
*
|
|
45
48
|
* It is the same comparison {@link selectRepresentation} makes — highest q
|
|
46
49
|
* wins, the more specific range wins a tie — with the ActivityStreams types on
|
|
47
|
-
* one side and the document's own on the other. A tie
|
|
50
|
+
* one side and the document's own on the other. A tie between exact types goes
|
|
51
|
+
* to the object: a peer that names `application/activity+json` and lists
|
|
52
|
+
* `application/json` beside it at the same q, as activitypub-bot does, is asking
|
|
53
|
+
* for the actor or post. Any other tie goes to the document, so
|
|
48
54
|
* `Accept: application/*` still gets JSON and a browser's
|
|
49
55
|
* `text/html,…,*\/*;q=0.8` still gets a page.
|
|
50
56
|
*/
|
|
@@ -61,17 +67,6 @@ export interface RepresentationExtension {
|
|
|
61
67
|
/** The paths to look the resource up under, likeliest first. */
|
|
62
68
|
paths: readonly string[];
|
|
63
69
|
}
|
|
64
|
-
/**
|
|
65
|
-
* A `.md` or `.json` suffix taken off a request path, or `undefined` when the
|
|
66
|
-
* path carries neither.
|
|
67
|
-
*
|
|
68
|
-
* Both spellings are recognised: `/2026/09/hello/index.md` — the one the `Link`
|
|
69
|
-
* header advertises, and the one an Eleventy-style static build would produce —
|
|
70
|
-
* and the shorter `/2026/09/hello.md` that people actually type, which the
|
|
71
|
-
* router redirects to the first once it has found what it names. The result is a
|
|
72
|
-
* list of candidate paths rather than one, because the trailing slash a
|
|
73
|
-
* permalink carries is exactly what an extension has to displace.
|
|
74
|
-
*/
|
|
75
70
|
export declare function splitRepresentationExtension(pathname: string): RepresentationExtension | undefined;
|
|
76
71
|
/**
|
|
77
72
|
* The URL one representation of a resource is served at, given the resource's
|
|
@@ -245,9 +240,5 @@ export interface AcceptRange {
|
|
|
245
240
|
* its preference, not its page.
|
|
246
241
|
*/
|
|
247
242
|
export declare function parseAccept(header: string): AcceptRange[];
|
|
248
|
-
/**
|
|
249
|
-
* The representation the failed request was after: the one its `.md` or
|
|
250
|
-
* `.json` suffix names, else the one its `Accept` header prefers, else HTML.
|
|
251
|
-
*/
|
|
252
243
|
export declare function representationOf(pathname: string, accept: string | undefined): Representation;
|
|
253
244
|
//# sourceMappingURL=negotiate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiate.d.ts","sourceRoot":"","sources":["../../src/web/negotiate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"negotiate.d.ts","sourceRoot":"","sources":["../../src/web/negotiate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,wBAAgB,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS,CAWnF;AAED,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAMhE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAM7D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAA6B,CAAC;AAE3F,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAK5D,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,cAAc,GAAG,SAAS,CAuB5B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAGzD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAoB1E;AAwBD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAIvF,CAAC;AAEF,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,cAAc,EAAE,cAAc,CAAC;IAC/B,gEAAgE;IAChE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,uBAAuB,GAAG,SAAS,CAkBrC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAOvF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAa3F;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAMlE,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,2BAA2B;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,gDAAgD;AAChD,MAAM,WAAW,6BAA6B;IAC5C,sEAAsE;IACtE,IAAI,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,sDAAsD;IACtD,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,QAAQ,CAkDvF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,QAAQ,CAuBV;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,MAAM,CAQR;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAOnE;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAQ/E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,YAAY,EAAE,IAAI,GAAG,SAAS,GAC7B,OAAO,CAcT;AAED,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAmBzD;AA4DD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAM7F"}
|
package/dist/web/negotiate.js
CHANGED
|
@@ -2,10 +2,23 @@ import { createHash } from 'node:crypto';
|
|
|
2
2
|
import { documentFrontMatter } from '../content/writer.js';
|
|
3
3
|
import { absoluteUrl } from '../util/url.js';
|
|
4
4
|
import { matchesEtag } from '../theme/assets.js';
|
|
5
|
+
export function textFormatOf(representation) {
|
|
6
|
+
switch (representation) {
|
|
7
|
+
case 'markdown':
|
|
8
|
+
case 'text':
|
|
9
|
+
return 'markdown';
|
|
10
|
+
case 'gemini':
|
|
11
|
+
return 'gemini';
|
|
12
|
+
case 'html':
|
|
13
|
+
case 'json':
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
5
17
|
/** The media type each representation is served as. */
|
|
6
18
|
export const MEDIA_TYPES = {
|
|
7
19
|
html: 'text/html',
|
|
8
20
|
markdown: 'text/markdown',
|
|
21
|
+
gemini: 'text/gemini',
|
|
9
22
|
text: 'text/plain',
|
|
10
23
|
json: 'application/json',
|
|
11
24
|
};
|
|
@@ -19,11 +32,17 @@ export const MEDIA_TYPES = {
|
|
|
19
32
|
export const DOCUMENT_REPRESENTATIONS = [
|
|
20
33
|
'html',
|
|
21
34
|
'markdown',
|
|
35
|
+
'gemini',
|
|
22
36
|
'text',
|
|
23
37
|
'json',
|
|
24
38
|
];
|
|
25
39
|
export const LISTING_REPRESENTATIONS = DOCUMENT_REPRESENTATIONS;
|
|
26
|
-
export const COMMENT_REPRESENTATIONS = [
|
|
40
|
+
export const COMMENT_REPRESENTATIONS = [
|
|
41
|
+
'html',
|
|
42
|
+
'markdown',
|
|
43
|
+
'gemini',
|
|
44
|
+
'text',
|
|
45
|
+
];
|
|
27
46
|
/**
|
|
28
47
|
* The representation a request accepts, or `undefined` when it accepts none of
|
|
29
48
|
* them and is owed a 406.
|
|
@@ -70,7 +89,10 @@ export const ACTIVITY_STREAMS_MEDIA_TYPES = [
|
|
|
70
89
|
*
|
|
71
90
|
* It is the same comparison {@link selectRepresentation} makes — highest q
|
|
72
91
|
* wins, the more specific range wins a tie — with the ActivityStreams types on
|
|
73
|
-
* one side and the document's own on the other. A tie
|
|
92
|
+
* one side and the document's own on the other. A tie between exact types goes
|
|
93
|
+
* to the object: a peer that names `application/activity+json` and lists
|
|
94
|
+
* `application/json` beside it at the same q, as activitypub-bot does, is asking
|
|
95
|
+
* for the actor or post. Any other tie goes to the document, so
|
|
74
96
|
* `Accept: application/*` still gets JSON and a browser's
|
|
75
97
|
* `text/html,…,*\/*;q=0.8` still gets a page.
|
|
76
98
|
*/
|
|
@@ -86,8 +108,10 @@ export function prefersActivityStreams(accept) {
|
|
|
86
108
|
const alternative = bestOf(ranges, DOCUMENT_REPRESENTATIONS.map((representation) => MEDIA_TYPES[representation]));
|
|
87
109
|
if (alternative === undefined || alternative.quality <= 0)
|
|
88
110
|
return true;
|
|
89
|
-
|
|
90
|
-
|
|
111
|
+
if (wanted.quality !== alternative.quality)
|
|
112
|
+
return wanted.quality > alternative.quality;
|
|
113
|
+
return (wanted.specificity > alternative.specificity ||
|
|
114
|
+
(wanted.specificity === alternative.specificity && wanted.specificity === EXACT));
|
|
91
115
|
}
|
|
92
116
|
/** The best match among several media types, or `undefined` when none match. */
|
|
93
117
|
function bestOf(ranges, mediaTypes) {
|
|
@@ -110,19 +134,9 @@ function bestOf(ranges, mediaTypes) {
|
|
|
110
134
|
*/
|
|
111
135
|
export const REPRESENTATION_EXTENSIONS = {
|
|
112
136
|
markdown: '.md',
|
|
137
|
+
gemini: '.gmi',
|
|
113
138
|
json: '.json',
|
|
114
139
|
};
|
|
115
|
-
/**
|
|
116
|
-
* A `.md` or `.json` suffix taken off a request path, or `undefined` when the
|
|
117
|
-
* path carries neither.
|
|
118
|
-
*
|
|
119
|
-
* Both spellings are recognised: `/2026/09/hello/index.md` — the one the `Link`
|
|
120
|
-
* header advertises, and the one an Eleventy-style static build would produce —
|
|
121
|
-
* and the shorter `/2026/09/hello.md` that people actually type, which the
|
|
122
|
-
* router redirects to the first once it has found what it names. The result is a
|
|
123
|
-
* list of candidate paths rather than one, because the trailing slash a
|
|
124
|
-
* permalink carries is exactly what an extension has to displace.
|
|
125
|
-
*/
|
|
126
140
|
export function splitRepresentationExtension(pathname) {
|
|
127
141
|
for (const [representation, extension] of Object.entries(REPRESENTATION_EXTENSIONS)) {
|
|
128
142
|
if (extension === undefined || !pathname.endsWith(extension))
|
|
@@ -189,6 +203,7 @@ export function documentJson(document, options) {
|
|
|
189
203
|
export const CONTENT_TYPES = {
|
|
190
204
|
html: 'text/html; charset=utf-8',
|
|
191
205
|
markdown: 'text/markdown; charset=utf-8',
|
|
206
|
+
gemini: 'text/gemini; charset=utf-8',
|
|
192
207
|
text: 'text/plain; charset=utf-8',
|
|
193
208
|
json: 'application/json; charset=utf-8',
|
|
194
209
|
};
|
|
@@ -239,8 +254,7 @@ export function representationResponse(options) {
|
|
|
239
254
|
return new Response(null, { status: 304, headers });
|
|
240
255
|
}
|
|
241
256
|
headers.set('content-type', CONTENT_TYPES[options.representation]);
|
|
242
|
-
if (options.representation
|
|
243
|
-
// The point of the Markdown representation is to be read, not downloaded.
|
|
257
|
+
if (textFormatOf(options.representation) !== undefined) {
|
|
244
258
|
headers.set('content-disposition', 'inline');
|
|
245
259
|
}
|
|
246
260
|
const body = options.representation === 'json'
|
|
@@ -401,18 +415,17 @@ function bestRange(ranges, mediaType) {
|
|
|
401
415
|
}
|
|
402
416
|
return best;
|
|
403
417
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
*/
|
|
418
|
+
const ANY_TYPE = 0;
|
|
419
|
+
const ANY_SUBTYPE = 1;
|
|
420
|
+
const EXACT = 2;
|
|
408
421
|
function specificityOf(range, type, subtype) {
|
|
409
422
|
if (range.type === '*' && range.subtype === '*')
|
|
410
|
-
return
|
|
423
|
+
return ANY_TYPE;
|
|
411
424
|
if (range.type !== type)
|
|
412
425
|
return undefined;
|
|
413
426
|
if (range.subtype === '*')
|
|
414
|
-
return
|
|
415
|
-
return range.subtype === subtype ?
|
|
427
|
+
return ANY_SUBTYPE;
|
|
428
|
+
return range.subtype === subtype ? EXACT : undefined;
|
|
416
429
|
}
|
|
417
430
|
/** The `q` parameter of a media range, clamped to the range the grammar allows. */
|
|
418
431
|
function qualityOf(parameters) {
|
|
@@ -436,10 +449,6 @@ function splitList(header) {
|
|
|
436
449
|
.map((part) => part.trim())
|
|
437
450
|
.filter((part) => part !== '');
|
|
438
451
|
}
|
|
439
|
-
/**
|
|
440
|
-
* The representation the failed request was after: the one its `.md` or
|
|
441
|
-
* `.json` suffix names, else the one its `Accept` header prefers, else HTML.
|
|
442
|
-
*/
|
|
443
452
|
export function representationOf(pathname, accept) {
|
|
444
453
|
return (splitRepresentationExtension(pathname)?.representation ??
|
|
445
454
|
selectRepresentation(accept, DOCUMENT_REPRESENTATIONS) ??
|