@geekity/cms 0.18.0 → 0.20.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.
- package/README.md +29 -25
- package/admin/components/admin-bar.njk +4 -3
- package/admin/components/public-admin-bar.njk +3 -1
- package/admin/layouts/shell.njk +1 -0
- package/admin/pages/documents/editor.njk +291 -192
- package/admin/static/admin.css +123 -13
- package/admin/static/location.js +38 -0
- package/dist/admin/documents.d.ts +18 -3
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +150 -21
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-layout.d.ts +13 -0
- package/dist/admin/editor-layout.d.ts.map +1 -0
- package/dist/admin/editor-layout.js +62 -0
- package/dist/admin/editor-layout.js.map +1 -0
- package/dist/admin/enclosure-field.d.ts +2 -3
- package/dist/admin/enclosure-field.d.ts.map +1 -1
- package/dist/admin/enclosure-field.js +27 -7
- package/dist/admin/enclosure-field.js.map +1 -1
- package/dist/admin/headers.d.ts +1 -0
- package/dist/admin/headers.d.ts.map +1 -1
- package/dist/admin/headers.js +3 -0
- package/dist/admin/headers.js.map +1 -1
- package/dist/admin/location-field.d.ts +4 -3
- package/dist/admin/location-field.d.ts.map +1 -1
- package/dist/admin/location-field.js +10 -2
- package/dist/admin/location-field.js.map +1 -1
- package/dist/admin/media.d.ts.map +1 -1
- package/dist/admin/media.js +3 -0
- package/dist/admin/media.js.map +1 -1
- package/dist/admin/photo-field.d.ts +2 -3
- package/dist/admin/photo-field.d.ts.map +1 -1
- package/dist/admin/photo-field.js +4 -2
- package/dist/admin/photo-field.js.map +1 -1
- package/dist/admin/read-field.d.ts +2 -3
- package/dist/admin/read-field.d.ts.map +1 -1
- package/dist/admin/read-field.js +12 -4
- package/dist/admin/read-field.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/content/citation.d.ts +5 -0
- package/dist/content/citation.d.ts.map +1 -1
- package/dist/content/citation.js +17 -0
- package/dist/content/citation.js.map +1 -1
- package/dist/content/kept-properties.d.ts +5 -0
- package/dist/content/kept-properties.d.ts.map +1 -0
- package/dist/content/kept-properties.js +12 -0
- package/dist/content/kept-properties.js.map +1 -0
- package/dist/content/location.d.ts +4 -0
- package/dist/content/location.d.ts.map +1 -1
- package/dist/content/location.js +35 -3
- package/dist/content/location.js.map +1 -1
- package/dist/content/locations.d.ts +2 -5
- package/dist/content/locations.d.ts.map +1 -1
- package/dist/content/locations.js +2 -77
- package/dist/content/locations.js.map +1 -1
- package/dist/content/markdown.d.ts +9 -0
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +37 -1
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/permalink-file.d.ts +7 -0
- package/dist/content/permalink-file.d.ts.map +1 -0
- package/dist/content/permalink-file.js +77 -0
- package/dist/content/permalink-file.js.map +1 -0
- package/dist/content/post-type.d.ts +1 -6
- package/dist/content/post-type.d.ts.map +1 -1
- package/dist/content/post-type.js +13 -14
- package/dist/content/post-type.js.map +1 -1
- package/dist/content/slug.d.ts +2 -1
- package/dist/content/slug.d.ts.map +1 -1
- package/dist/content/slug.js +3 -1
- package/dist/content/slug.js.map +1 -1
- package/dist/env.d.ts +6 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/federation/article.d.ts +8 -7
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +37 -18
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/citations.d.ts +7 -6
- package/dist/federation/citations.d.ts.map +1 -1
- package/dist/federation/citations.js +44 -28
- package/dist/federation/citations.js.map +1 -1
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +23 -16
- package/dist/federation/delivery.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/indieauth/bearer.d.ts +10 -6
- package/dist/indieauth/bearer.d.ts.map +1 -1
- package/dist/indieauth/bearer.js +11 -9
- package/dist/indieauth/bearer.js.map +1 -1
- package/dist/indieauth/token.js +1 -1
- package/dist/indieauth/token.js.map +1 -1
- package/dist/micropub/content.d.ts +15 -0
- package/dist/micropub/content.d.ts.map +1 -0
- package/dist/micropub/content.js +254 -0
- package/dist/micropub/content.js.map +1 -0
- package/dist/micropub/create.d.ts +7 -3
- package/dist/micropub/create.d.ts.map +1 -1
- package/dist/micropub/create.js +75 -24
- package/dist/micropub/create.js.map +1 -1
- package/dist/micropub/endpoint.d.ts +4 -5
- package/dist/micropub/endpoint.d.ts.map +1 -1
- package/dist/micropub/endpoint.js +33 -12
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/micropub/media.d.ts +6 -4
- package/dist/micropub/media.d.ts.map +1 -1
- package/dist/micropub/media.js +7 -5
- package/dist/micropub/media.js.map +1 -1
- package/dist/micropub/update.d.ts +7 -1
- package/dist/micropub/update.d.ts.map +1 -1
- package/dist/micropub/update.js +32 -7
- package/dist/micropub/update.js.map +1 -1
- package/dist/web/admin-bar.d.ts.map +1 -1
- package/dist/web/admin-bar.js +27 -1
- package/dist/web/admin-bar.js.map +1 -1
- package/dist/web/context.d.ts +10 -3
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +12 -2
- package/dist/web/context.js.map +1 -1
- package/dist/web/documents.d.ts +21 -6
- package/dist/web/documents.d.ts.map +1 -1
- package/dist/web/documents.js +23 -12
- package/dist/web/documents.js.map +1 -1
- package/dist/web/feed-item.d.ts +26 -3
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +63 -6
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-rss.js +3 -3
- package/dist/web/feed-rss.js.map +1 -1
- package/dist/web/feed-source.d.ts +7 -0
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +7 -1
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/negotiate.d.ts +4 -0
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +5 -1
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/render.d.ts +5 -4
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +34 -12
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +16 -4
- package/dist/web/routes.js.map +1 -1
- package/dist/web/sanitize.d.ts +10 -0
- package/dist/web/sanitize.d.ts.map +1 -1
- package/dist/web/sanitize.js +180 -0
- package/dist/web/sanitize.js.map +1 -1
- package/dist/web/templates.d.ts.map +1 -1
- package/dist/web/templates.js +2 -0
- package/dist/web/templates.js.map +1 -1
- package/dist/webmention/cited-picture.d.ts +37 -0
- package/dist/webmention/cited-picture.d.ts.map +1 -0
- package/dist/webmention/cited-picture.js +121 -0
- package/dist/webmention/cited-picture.js.map +1 -0
- package/dist/webmention/fetch-public.d.ts +26 -8
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +22 -12
- package/dist/webmention/fetch-public.js.map +1 -1
- package/dist/webmention/reply-context.d.ts +30 -8
- package/dist/webmention/reply-context.d.ts.map +1 -1
- package/dist/webmention/reply-context.js +238 -27
- package/dist/webmention/reply-context.js.map +1 -1
- package/dist/webmention/reply-contexts.d.ts +28 -16
- package/dist/webmention/reply-contexts.d.ts.map +1 -1
- package/dist/webmention/reply-contexts.js +108 -25
- package/dist/webmention/reply-contexts.js.map +1 -1
- package/package.json +10 -9
- package/themes/default/README.md +83 -9
- package/themes/default/layouts/post.njk +7 -7
- package/themes/default/partials/citations.njk +25 -4
- package/themes/default/partials/cited-page.njk +58 -0
- package/themes/default/partials/post-list.njk +8 -5
- package/themes/default/partials/reply-context.njk +9 -11
- package/themes/default/src/style.css +37 -0
- package/themes/default/static/style.css +83 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import TurndownService from 'turndown';
|
|
2
|
+
import { htmlInlineOffset, markdownTokens } from '../content/markdown.js';
|
|
3
|
+
import { normalizeBody } from '../content/writer.js';
|
|
4
|
+
import { cleanPostHtml } from '../web/sanitize.js';
|
|
5
|
+
/**
|
|
6
|
+
* A Micropub client's content as the post body the site stores (TASK-258,
|
|
7
|
+
* decision-27). The renderer passes raw HTML through, as Eleventy's does, so
|
|
8
|
+
* the body is cleaned here, at the boundary, before anything is written: HTML
|
|
9
|
+
* content is cleaned and converted to Markdown, and Markdown content keeps
|
|
10
|
+
* its text while every piece of raw HTML in it is cleaned in place.
|
|
11
|
+
*/
|
|
12
|
+
const KEPT_BLOCKS = ['TABLE', 'FIGURE', 'DETAILS', 'DL'];
|
|
13
|
+
const KEPT_INLINE = ['ABBR', 'INS', 'KBD', 'MARK', 'Q', 'SMALL', 'SUB', 'SUP', 'U'];
|
|
14
|
+
/**
|
|
15
|
+
* How many times a body is cleaned and read again. A tag removed from between
|
|
16
|
+
* two pieces of text can join them into a new tag, which the next round
|
|
17
|
+
* cleans; real content settles in one.
|
|
18
|
+
*/
|
|
19
|
+
const ROUNDS = 4;
|
|
20
|
+
const PRE_NEWLINE = '\uE000';
|
|
21
|
+
const turndown = new TurndownService({
|
|
22
|
+
headingStyle: 'atx',
|
|
23
|
+
codeBlockStyle: 'fenced',
|
|
24
|
+
bulletListMarker: '-',
|
|
25
|
+
emDelimiter: '_',
|
|
26
|
+
});
|
|
27
|
+
// Turndown leaves `<` and `&` alone, so text that read `<script>` in
|
|
28
|
+
// HTML would come out as a script tag in Markdown, which renders raw HTML.
|
|
29
|
+
turndown.escape = (text) => TurndownService.prototype.escape
|
|
30
|
+
.call(turndown, text)
|
|
31
|
+
.replaceAll('<', '\\<')
|
|
32
|
+
.replace(/&(?=#?[A-Za-z0-9]+;)/g, '\\&');
|
|
33
|
+
turndown.addRule('listItem', {
|
|
34
|
+
filter: 'li',
|
|
35
|
+
replacement(content, node, options) {
|
|
36
|
+
const list = node.parentNode;
|
|
37
|
+
let marker = `${options.bulletListMarker ?? '-'} `;
|
|
38
|
+
if (list?.nodeName === 'OL') {
|
|
39
|
+
const start = Number.parseInt(list.getAttribute('start') ?? '1', 10);
|
|
40
|
+
marker = `${String(start + Array.from(list.children).indexOf(node))}. `;
|
|
41
|
+
}
|
|
42
|
+
const indented = content
|
|
43
|
+
.replace(/^\n+/, '')
|
|
44
|
+
.replace(/\n+$/, '\n')
|
|
45
|
+
.replace(/\n/g, `\n${' '.repeat(marker.length)}`);
|
|
46
|
+
return marker + indented + (node.nextSibling !== null && !indented.endsWith('\n') ? '\n' : '');
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
turndown.addRule('strikethrough', {
|
|
50
|
+
filter: ['del', 's'],
|
|
51
|
+
replacement: (content) => `~~${content}~~`,
|
|
52
|
+
});
|
|
53
|
+
turndown.addRule('keptBlock', {
|
|
54
|
+
filter: (node) => KEPT_BLOCKS.includes(node.nodeName),
|
|
55
|
+
replacement: (_content, node) => `\n\n${htmlBlock(node)}\n\n`,
|
|
56
|
+
});
|
|
57
|
+
turndown.addRule('keptInline', {
|
|
58
|
+
filter: (node) => KEPT_INLINE.includes(node.nodeName),
|
|
59
|
+
replacement(content, node) {
|
|
60
|
+
const close = `</${node.nodeName.toLowerCase()}>`;
|
|
61
|
+
const shell = node.cloneNode(false);
|
|
62
|
+
return shell.outerHTML.slice(0, -close.length) + content + close;
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export function markdownFromHtml(html) {
|
|
66
|
+
return cleanMarkdown(turndown.turndown(cleanPostHtml(html)));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Markdown content with each raw HTML block and inline tag, as the site's
|
|
70
|
+
* renderer reads them, put through the post allow-list. Text that is not HTML
|
|
71
|
+
* stays as it was sent, once its edges are trimmed and its line endings made
|
|
72
|
+
* `\n` as every stored body's are. `undefined` when a piece of HTML cannot be
|
|
73
|
+
* found in the source to be cleaned.
|
|
74
|
+
*
|
|
75
|
+
* The body is normalised before it is cleaned and checked again after, so the
|
|
76
|
+
* string cleaned is the string stored: trimming an indent after cleaning once
|
|
77
|
+
* turned an ignored code block into a live HTML block, and a lone `\r`, which
|
|
78
|
+
* markdown-it breaks a line on, once hid a block from the cleaner.
|
|
79
|
+
*/
|
|
80
|
+
export function cleanMarkdown(markdown) {
|
|
81
|
+
const cleaned = settled(stored(markdown));
|
|
82
|
+
if (cleaned === undefined)
|
|
83
|
+
return undefined;
|
|
84
|
+
const body = stored(cleaned);
|
|
85
|
+
return settled(body) === body ? body : undefined;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A body as the site stores it. A NUL is also replaced as markdown-it
|
|
89
|
+
* replaces it, so the cleaner reads the characters the renderer does.
|
|
90
|
+
*/
|
|
91
|
+
function stored(body) {
|
|
92
|
+
return normalizeBody(body).replaceAll('\0', '\uFFFD');
|
|
93
|
+
}
|
|
94
|
+
function settled(source) {
|
|
95
|
+
let current = source;
|
|
96
|
+
for (let round = 0; round < ROUNDS; round += 1) {
|
|
97
|
+
const edits = cleaningEdits(current);
|
|
98
|
+
if (edits === undefined)
|
|
99
|
+
return undefined;
|
|
100
|
+
if (edits.length === 0)
|
|
101
|
+
return current;
|
|
102
|
+
for (const { start, end, text } of edits.toSorted((a, b) => b.start - a.start)) {
|
|
103
|
+
current = current.slice(0, start) + text + current.slice(end);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
function cleaningEdits(source) {
|
|
109
|
+
const lineStarts = [0];
|
|
110
|
+
for (let at = source.indexOf('\n'); at >= 0; at = source.indexOf('\n', at + 1)) {
|
|
111
|
+
lineStarts.push(at + 1);
|
|
112
|
+
}
|
|
113
|
+
const offset = (line) => lineStarts[line] ?? source.length;
|
|
114
|
+
const regionOf = (map) => map === null ? undefined : { start: offset(map[0]), end: offset(map[1]) };
|
|
115
|
+
const edits = [];
|
|
116
|
+
const inlineTextReadPerLineRange = new Map();
|
|
117
|
+
/** The lines of each open block, for an inline token that has none of its own: a table cell. */
|
|
118
|
+
const open = [];
|
|
119
|
+
for (const token of markdownTokens(source)) {
|
|
120
|
+
if (token.nesting === 1)
|
|
121
|
+
open.push(token.map ?? open.at(-1) ?? null);
|
|
122
|
+
if (token.nesting === -1)
|
|
123
|
+
open.pop();
|
|
124
|
+
if (token.type === 'html_block') {
|
|
125
|
+
const region = regionOf(token.map);
|
|
126
|
+
if (region === undefined)
|
|
127
|
+
return undefined;
|
|
128
|
+
const edit = cleanedBlock(source, region);
|
|
129
|
+
if (edit !== undefined)
|
|
130
|
+
edits.push(edit);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
if (token.type !== 'inline')
|
|
134
|
+
continue;
|
|
135
|
+
const map = token.map ?? open.at(-1) ?? null;
|
|
136
|
+
const lineRange = String(map);
|
|
137
|
+
const before = inlineTextReadPerLineRange.get(lineRange) ?? '';
|
|
138
|
+
inlineTextReadPerLineRange.set(lineRange, before + token.content);
|
|
139
|
+
for (const child of token.children ?? []) {
|
|
140
|
+
if (child.type !== 'html_inline')
|
|
141
|
+
continue;
|
|
142
|
+
const cleaned = cleanPostHtml(child.content);
|
|
143
|
+
if (cleaned === child.content)
|
|
144
|
+
continue;
|
|
145
|
+
const region = regionOf(map);
|
|
146
|
+
const at = htmlInlineOffset(child);
|
|
147
|
+
if (region === undefined || at === undefined)
|
|
148
|
+
return undefined;
|
|
149
|
+
const occurrence = count(before + token.content.slice(0, at), child.content);
|
|
150
|
+
const start = nth(source.slice(region.start, region.end), child.content, occurrence);
|
|
151
|
+
if (start === undefined)
|
|
152
|
+
return undefined;
|
|
153
|
+
edits.push({
|
|
154
|
+
start: region.start + start,
|
|
155
|
+
end: region.start + start + child.content.length,
|
|
156
|
+
text: cleaned,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return edits;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The edit that cleans an HTML block's lines, or `undefined` when they are
|
|
164
|
+
* already clean. A line that only held a removed tag goes, rather than
|
|
165
|
+
* staying as a blank line that would end the block early; a block that is
|
|
166
|
+
* removed entirely takes the blank line after it too.
|
|
167
|
+
*/
|
|
168
|
+
function cleanedBlock(source, region) {
|
|
169
|
+
const text = source.slice(region.start, region.end);
|
|
170
|
+
const cleaned = cleanPostHtml(text);
|
|
171
|
+
if (cleaned === text)
|
|
172
|
+
return undefined;
|
|
173
|
+
if (cleaned.trim() === '') {
|
|
174
|
+
const nextLine = source.slice(region.end).split('\n', 1)[0] ?? '';
|
|
175
|
+
const blankAfter = region.end < source.length && nextLine.trim() === '';
|
|
176
|
+
return {
|
|
177
|
+
start: region.start,
|
|
178
|
+
end: blankAfter ? region.end + nextLine.length + 1 : region.end,
|
|
179
|
+
text: '',
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const hadBlank = text
|
|
183
|
+
.split('\n')
|
|
184
|
+
.slice(0, -1)
|
|
185
|
+
.some((line) => line.trim() === '');
|
|
186
|
+
const lines = cleaned.split('\n');
|
|
187
|
+
const last = lines.pop() ?? '';
|
|
188
|
+
const kept = hadBlank ? lines : lines.filter((line) => line.trim() !== '');
|
|
189
|
+
return { ...region, text: [...kept, last].join('\n') };
|
|
190
|
+
}
|
|
191
|
+
function count(text, part) {
|
|
192
|
+
let found = 0;
|
|
193
|
+
for (let at = text.indexOf(part); at >= 0; at = text.indexOf(part, at + part.length))
|
|
194
|
+
found += 1;
|
|
195
|
+
return found;
|
|
196
|
+
}
|
|
197
|
+
function nth(text, part, n) {
|
|
198
|
+
let at = text.indexOf(part);
|
|
199
|
+
for (let seen = 0; at >= 0 && seen < n; seen += 1)
|
|
200
|
+
at = text.indexOf(part, at + part.length);
|
|
201
|
+
return at >= 0 ? at : undefined;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* A kept element as an HTML block Markdown reads as one: each child of a
|
|
205
|
+
* container on its own line, every line unindented and none blank, so nothing
|
|
206
|
+
* in it becomes a code block or ends the block early. Newlines in a `<pre>`
|
|
207
|
+
* are written as character references so its code keeps its indentation.
|
|
208
|
+
*/
|
|
209
|
+
function htmlBlock(element) {
|
|
210
|
+
layOut(element);
|
|
211
|
+
return element.outerHTML
|
|
212
|
+
.split('\n')
|
|
213
|
+
.map((line) => line.trim())
|
|
214
|
+
.filter((line) => line !== '')
|
|
215
|
+
.join('\n')
|
|
216
|
+
.replaceAll(PRE_NEWLINE, ' ');
|
|
217
|
+
}
|
|
218
|
+
const CONTAINERS = [
|
|
219
|
+
'BLOCKQUOTE',
|
|
220
|
+
'DETAILS',
|
|
221
|
+
'DIV',
|
|
222
|
+
'DL',
|
|
223
|
+
'FIGURE',
|
|
224
|
+
'OL',
|
|
225
|
+
'TABLE',
|
|
226
|
+
'TBODY',
|
|
227
|
+
'TFOOT',
|
|
228
|
+
'THEAD',
|
|
229
|
+
'UL',
|
|
230
|
+
];
|
|
231
|
+
function layOut(node) {
|
|
232
|
+
if (node.nodeName === 'PRE') {
|
|
233
|
+
protectNewlines(node);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const children = Array.from(node.childNodes);
|
|
237
|
+
const document = node.ownerDocument;
|
|
238
|
+
if (document !== null && CONTAINERS.includes(node.nodeName)) {
|
|
239
|
+
for (const child of children) {
|
|
240
|
+
if (child.nodeType === 1)
|
|
241
|
+
node.insertBefore(document.createTextNode('\n'), child);
|
|
242
|
+
}
|
|
243
|
+
node.appendChild(document.createTextNode('\n'));
|
|
244
|
+
}
|
|
245
|
+
for (const child of children)
|
|
246
|
+
layOut(child);
|
|
247
|
+
}
|
|
248
|
+
function protectNewlines(node) {
|
|
249
|
+
if (node.nodeType === 3)
|
|
250
|
+
node.nodeValue = (node.nodeValue ?? '').replaceAll('\n', PRE_NEWLINE);
|
|
251
|
+
for (const child of Array.from(node.childNodes))
|
|
252
|
+
protectNewlines(child);
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/micropub/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EditorForm } from '../admin/documents.ts';
|
|
2
|
+
import type { KeptProperties } from '../content/kept-properties.ts';
|
|
2
3
|
import type { SyndicationTarget } from '../webmention/syndication.ts';
|
|
3
4
|
/**
|
|
4
5
|
* A Micropub create (TASK-164), whichever way it was encoded: the one
|
|
@@ -11,8 +12,8 @@ export interface CreateRequest {
|
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* The properties a post can be created with, and the editor field each one
|
|
14
|
-
* fills (decision-27). Anything else is
|
|
15
|
-
*
|
|
15
|
+
* fills (decision-27). Anything else is kept privately, as it was sent, except
|
|
16
|
+
* an `mp-*` command the site does not carry out, which is refused by name.
|
|
16
17
|
*/
|
|
17
18
|
declare const SINGLE_VALUED: {
|
|
18
19
|
readonly name: 'title';
|
|
@@ -27,9 +28,11 @@ declare const SINGLE_VALUED: {
|
|
|
27
28
|
declare const ACCEPTED_WITHOUT_EFFECT: {
|
|
28
29
|
readonly 'p3k-content-type': (type: string) => string | undefined;
|
|
29
30
|
};
|
|
30
|
-
declare const MAPPED_ON_THEIR_OWN: readonly ['content', 'category', 'photo', 'location', 'post-status', 'mp-syndicate-to', 'visibility', 'read-of', 'read-status'];
|
|
31
|
+
declare const MAPPED_ON_THEIR_OWN: readonly ['content', 'category', 'photo', 'location', 'checkin', 'post-status', 'mp-syndicate-to', 'visibility', 'read-of', 'read-status'];
|
|
31
32
|
export type Property = keyof typeof SINGLE_VALUED | keyof typeof ACCEPTED_WITHOUT_EFFECT | (typeof MAPPED_ON_THEIR_OWN)[number];
|
|
32
33
|
export declare function propertyName(name: string): string;
|
|
34
|
+
export declare function keptPrivately(name: string): boolean;
|
|
35
|
+
export declare function keptRefusal(kept: KeptProperties): string | undefined;
|
|
33
36
|
/**
|
|
34
37
|
* A form-encoded or multipart create as a {@link CreateRequest}: `h=entry`
|
|
35
38
|
* names the type, and `category[]=a&category[]=b` and `category=a&category=b`
|
|
@@ -63,6 +66,7 @@ export interface CreatedForm {
|
|
|
63
66
|
readonly form: EditorForm;
|
|
64
67
|
readonly draft: boolean;
|
|
65
68
|
readonly uploads: readonly PhotoUpload[];
|
|
69
|
+
readonly keptProperties: KeptProperties;
|
|
66
70
|
}
|
|
67
71
|
/**
|
|
68
72
|
* The editor form a create fills in, or every reason it cannot be, each
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/micropub/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/micropub/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAQpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;CAC9D;AAOD;;;;GAIG;AACH,QAAA,MAAM,aAAa;mBACX,OAAO;sBACJ,aAAa;4BACP,WAAW;0BACb,UAAU;wBACZ,QAAQ;4BACJ,YAAY;wBAChB,MAAM;wBACN,MAAM;CACkC,CAAC;AAEtD,QAAA,MAAM,uBAAuB;wCACA,MAAM;CAIiD,CAAC;AAErF,QAAA,MAAM,mBAAmB,YACvB,SAAS,EACT,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,aAAa,CACL,CAAC;AAEX,MAAM,MAAM,QAAQ,GAChB,MAAM,OAAO,aAAa,GAC1B,MAAM,OAAO,uBAAuB,GACpC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAiBzC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAapE;AAoBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,CAStD;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiBlF;AAED,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,4FAA4F;IAC5F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,GACf,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsG7C"}
|
package/dist/micropub/create.js
CHANGED
|
@@ -2,16 +2,17 @@ import { blankForm, POST_KIND } from '../admin/documents.js';
|
|
|
2
2
|
import { locationForm } from '../admin/location-field.js';
|
|
3
3
|
import { BLANK_READ_OF_FORM } from '../admin/read-field.js';
|
|
4
4
|
import { isWebUrl } from '../content/enclosure.js';
|
|
5
|
-
import { locationFromMicropub } from '../content/location.js';
|
|
5
|
+
import { checkinFromMicropub, locationFromMicropub, postLocation } from '../content/location.js';
|
|
6
6
|
import { isReadStatus, READ_STATUSES } from '../content/read.js';
|
|
7
7
|
import { isVisibility } from '../content/visibility.js';
|
|
8
8
|
import { normalizeBody } from '../content/writer.js';
|
|
9
9
|
import { UPLOAD_ASSET_PREFIX } from '../web/assets.js';
|
|
10
10
|
import { absoluteUrl } from '../web/negotiate.js';
|
|
11
|
+
import { cleanMarkdown, markdownFromHtml } from './content.js';
|
|
11
12
|
/**
|
|
12
13
|
* The properties a post can be created with, and the editor field each one
|
|
13
|
-
* fills (decision-27). Anything else is
|
|
14
|
-
*
|
|
14
|
+
* fills (decision-27). Anything else is kept privately, as it was sent, except
|
|
15
|
+
* an `mp-*` command the site does not carry out, which is refused by name.
|
|
15
16
|
*/
|
|
16
17
|
const SINGLE_VALUED = {
|
|
17
18
|
name: 'title',
|
|
@@ -33,6 +34,7 @@ const MAPPED_ON_THEIR_OWN = [
|
|
|
33
34
|
'category',
|
|
34
35
|
'photo',
|
|
35
36
|
'location',
|
|
37
|
+
'checkin',
|
|
36
38
|
'post-status',
|
|
37
39
|
'mp-syndicate-to',
|
|
38
40
|
'visibility',
|
|
@@ -55,6 +57,35 @@ const LEGACY_NAMES = new Map([
|
|
|
55
57
|
export function propertyName(name) {
|
|
56
58
|
return LEGACY_NAMES.get(name) ?? name;
|
|
57
59
|
}
|
|
60
|
+
export function keptPrivately(name) {
|
|
61
|
+
return !PROPERTIES.has(name) && !name.startsWith('mp-');
|
|
62
|
+
}
|
|
63
|
+
const KEPT_PROPERTIES_LIMIT_BYTES = 16 * 1024;
|
|
64
|
+
export function keptRefusal(kept) {
|
|
65
|
+
const names = Object.keys(kept);
|
|
66
|
+
const files = Object.entries(kept)
|
|
67
|
+
.filter(([, values]) => values.some((value) => value instanceof File))
|
|
68
|
+
.map(([name]) => name);
|
|
69
|
+
if (files.length > 0) {
|
|
70
|
+
return `${files.join(', ')} is not understood here and is not a photo, so a file cannot be sent as it.`;
|
|
71
|
+
}
|
|
72
|
+
const size = Buffer.byteLength(JSON.stringify(kept));
|
|
73
|
+
if (size > KEPT_PROPERTIES_LIMIT_BYTES) {
|
|
74
|
+
return `This endpoint keeps up to ${String(KEPT_PROPERTIES_LIMIT_BYTES / 1024)} KiB of properties it does not understand on a post, and ${names.join(', ')} come to ${String(Math.ceil(size / 1024))} KiB.`;
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const PUBLISHABLE = [
|
|
79
|
+
'content',
|
|
80
|
+
'name',
|
|
81
|
+
'photo',
|
|
82
|
+
'in-reply-to',
|
|
83
|
+
'like-of',
|
|
84
|
+
'repost-of',
|
|
85
|
+
'bookmark-of',
|
|
86
|
+
'read-of',
|
|
87
|
+
'checkin',
|
|
88
|
+
];
|
|
58
89
|
/** What `post-status` may say, and whether it makes a draft. */
|
|
59
90
|
const POST_STATUSES = { published: false, draft: true };
|
|
60
91
|
/** The form fields Micropub sets aside from the post's own properties. */
|
|
@@ -113,9 +144,17 @@ export function createForm(request, site) {
|
|
|
113
144
|
properties.set(property, [...(properties.get(property) ?? []), ...values]);
|
|
114
145
|
}
|
|
115
146
|
const errors = [];
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
errors.push(`This endpoint does not
|
|
147
|
+
const commands = [...properties.keys()].filter((name) => name.startsWith('mp-') && !PROPERTIES.has(name));
|
|
148
|
+
if (commands.length > 0) {
|
|
149
|
+
errors.push(`This endpoint does not support ${commands.join(', ')}.`);
|
|
150
|
+
}
|
|
151
|
+
const keptProperties = Object.fromEntries([...properties].filter(([name, values]) => keptPrivately(name) && values.length > 0));
|
|
152
|
+
const kept = Object.keys(keptProperties);
|
|
153
|
+
const refused = keptRefusal(keptProperties);
|
|
154
|
+
if (refused !== undefined)
|
|
155
|
+
errors.push(refused);
|
|
156
|
+
if (kept.length > 0 && !PUBLISHABLE.some((name) => (properties.get(name) ?? []).length > 0)) {
|
|
157
|
+
errors.push(`This endpoint does not understand ${kept.join(', ')}, and the post has nothing else to publish.`);
|
|
119
158
|
}
|
|
120
159
|
const text = (name) => {
|
|
121
160
|
const values = properties.get(name) ?? [];
|
|
@@ -134,7 +173,7 @@ export function createForm(request, site) {
|
|
|
134
173
|
...blankForm(POST_KIND, timezone, now),
|
|
135
174
|
date: '',
|
|
136
175
|
author,
|
|
137
|
-
body:
|
|
176
|
+
body: content(properties.get('content') ?? [], errors),
|
|
138
177
|
tags: categories(properties.get('category') ?? [], errors),
|
|
139
178
|
syndicateTo: syndicateTo(properties.get('mp-syndicate-to') ?? [], site.targets, errors),
|
|
140
179
|
};
|
|
@@ -151,7 +190,7 @@ export function createForm(request, site) {
|
|
|
151
190
|
}
|
|
152
191
|
return photo;
|
|
153
192
|
});
|
|
154
|
-
form.location = location
|
|
193
|
+
form.location = locationForm(checkinOverLocation(parsedLocation('location', properties.get('location') ?? [], locationFromMicropub, errors), parsedLocation('checkin', properties.get('checkin') ?? [], checkinFromMicropub, errors)));
|
|
155
194
|
form.readOf = readOf(properties.get('read-of') ?? [], errors);
|
|
156
195
|
form.readStatus = text('read-status');
|
|
157
196
|
if (form.readStatus !== '' && !isReadStatus(form.readStatus)) {
|
|
@@ -160,14 +199,15 @@ export function createForm(request, site) {
|
|
|
160
199
|
for (const [property, field] of Object.entries(SINGLE_VALUED)) {
|
|
161
200
|
form[field] = text(property);
|
|
162
201
|
}
|
|
163
|
-
const
|
|
202
|
+
const sentVisibility = text('visibility');
|
|
203
|
+
const visibility = sentVisibility.toLowerCase();
|
|
164
204
|
if (isVisibility(visibility))
|
|
165
205
|
form.visibility = visibility;
|
|
166
206
|
else if (visibility === 'private') {
|
|
167
207
|
errors.push('This site does not publish private posts; visibility is public or unlisted.');
|
|
168
208
|
}
|
|
169
209
|
else if (visibility !== '') {
|
|
170
|
-
errors.push(`visibility is public or unlisted, not ${
|
|
210
|
+
errors.push(`visibility is public or unlisted, not ${sentVisibility}.`);
|
|
171
211
|
}
|
|
172
212
|
for (const [property, refused] of Object.entries(ACCEPTED_WITHOUT_EFFECT)) {
|
|
173
213
|
const value = text(property);
|
|
@@ -180,7 +220,9 @@ export function createForm(request, site) {
|
|
|
180
220
|
if (draft === undefined) {
|
|
181
221
|
errors.push(`post-status is published or draft, not ${status}.`);
|
|
182
222
|
}
|
|
183
|
-
return errors.length > 0 || draft === undefined
|
|
223
|
+
return errors.length > 0 || draft === undefined
|
|
224
|
+
? { errors }
|
|
225
|
+
: { form, draft, uploads, keptProperties };
|
|
184
226
|
}
|
|
185
227
|
/**
|
|
186
228
|
* A photo given as a URL or as `{ value, alt }`, as the editor row it fills.
|
|
@@ -204,18 +246,23 @@ function photoRow(value, baseUrl) {
|
|
|
204
246
|
alt: alt.trim(),
|
|
205
247
|
};
|
|
206
248
|
}
|
|
207
|
-
function
|
|
249
|
+
function parsedLocation(name, values, parse, errors) {
|
|
208
250
|
if (values.length > 1)
|
|
209
|
-
errors.push(
|
|
251
|
+
errors.push(`${name} takes one value.`);
|
|
210
252
|
const [value] = values;
|
|
211
253
|
if (value === undefined)
|
|
212
|
-
return
|
|
213
|
-
const parsed =
|
|
254
|
+
return undefined;
|
|
255
|
+
const parsed = parse(value);
|
|
214
256
|
if ('error' in parsed) {
|
|
215
257
|
errors.push(parsed.error);
|
|
216
|
-
return
|
|
258
|
+
return undefined;
|
|
217
259
|
}
|
|
218
|
-
return
|
|
260
|
+
return parsed;
|
|
261
|
+
}
|
|
262
|
+
function checkinOverLocation(location, checkin) {
|
|
263
|
+
if (location === undefined || checkin === undefined)
|
|
264
|
+
return checkin ?? location;
|
|
265
|
+
return postLocation({ ...location, ...checkin, geo: checkin.geo ?? location.geo });
|
|
219
266
|
}
|
|
220
267
|
const READ_OF_PROPERTIES = ['name', 'author', 'uid', 'url'];
|
|
221
268
|
function readOf(values, errors) {
|
|
@@ -248,19 +295,23 @@ function readOf(values, errors) {
|
|
|
248
295
|
};
|
|
249
296
|
return { name: field('name'), author: field('author'), uid: field('uid'), url: field('url') };
|
|
250
297
|
}
|
|
251
|
-
/** The body: plain text as the Markdown it is written in, or HTML as it came. */
|
|
252
298
|
function content(values, errors) {
|
|
253
299
|
if (values.length > 1)
|
|
254
300
|
errors.push('content takes one value.');
|
|
255
301
|
const [value] = values;
|
|
256
302
|
if (value === undefined)
|
|
257
303
|
return '';
|
|
258
|
-
if (typeof value
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
304
|
+
if (typeof value !== 'string' && !isHtmlContent(value)) {
|
|
305
|
+
errors.push('content has to be text or { "html": "…" }.');
|
|
306
|
+
return '';
|
|
307
|
+
}
|
|
308
|
+
const cleaned = typeof value === 'string' ? cleanMarkdown(value) : markdownFromHtml(value.html);
|
|
309
|
+
const body = cleaned === undefined ? undefined : normalizeBody(cleaned);
|
|
310
|
+
if (body === undefined || cleanMarkdown(body) !== body) {
|
|
311
|
+
errors.push('content has HTML the site cannot clean.');
|
|
312
|
+
return '';
|
|
313
|
+
}
|
|
314
|
+
return body;
|
|
264
315
|
}
|
|
265
316
|
function isHtmlContent(value) {
|
|
266
317
|
return (typeof value === 'object' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/micropub/create.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/micropub/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { Hono, MiddlewareHandler } from 'hono';
|
|
2
|
-
import type { BearerEnv } from '../indieauth/bearer.ts';
|
|
2
|
+
import type { BearerEnv, Scopes } from '../indieauth/bearer.ts';
|
|
3
3
|
import type { GeekityEnv } from '../env.ts';
|
|
4
|
-
import type { Scope } from '../indieauth/request.ts';
|
|
5
4
|
/**
|
|
6
5
|
* The bearer guard for a token bound to this site, the resource its protected
|
|
7
6
|
* resource metadata names, or bound to none, as Micropub clients' tokens are
|
|
8
|
-
* (decision-24), and granted `
|
|
9
|
-
* because the base URL is a setting.
|
|
7
|
+
* (decision-24), and granted any one of `scopes` when they are named. Built per
|
|
8
|
+
* request because the base URL is a setting.
|
|
10
9
|
*/
|
|
11
|
-
export declare function requireSiteToken(
|
|
10
|
+
export declare function requireSiteToken(scopes?: Scopes): MiddlewareHandler<BearerEnv>;
|
|
12
11
|
/**
|
|
13
12
|
* The Micropub endpoint: the queries a client asks before it posts (TASK-163)
|
|
14
13
|
* and `q=source` (TASK-167), which any live token of this site's may ask
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/micropub/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AA4B7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAgM5C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAc9E;AA0OD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAsCzD"}
|