@geekity/cms 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +2 -1
  2. package/admin/pages/documents/editor.njk +3 -0
  3. package/admin/pages/plugins/confirm.njk +42 -0
  4. package/admin/pages/plugins/installed.njk +85 -3
  5. package/admin/static/admin.css +15 -0
  6. package/admin/static/editor-actions.js +13 -3
  7. package/dist/admin/documents.d.ts +3 -0
  8. package/dist/admin/documents.d.ts.map +1 -1
  9. package/dist/admin/documents.js +12 -3
  10. package/dist/admin/documents.js.map +1 -1
  11. package/dist/admin/editor-actions.d.ts.map +1 -1
  12. package/dist/admin/editor-actions.js +20 -1
  13. package/dist/admin/editor-actions.js.map +1 -1
  14. package/dist/admin/plugins.d.ts +6 -0
  15. package/dist/admin/plugins.d.ts.map +1 -1
  16. package/dist/admin/plugins.js +274 -3
  17. package/dist/admin/plugins.js.map +1 -1
  18. package/dist/admin/taxonomy.d.ts +4 -1
  19. package/dist/admin/taxonomy.d.ts.map +1 -1
  20. package/dist/admin/taxonomy.js +11 -7
  21. package/dist/admin/taxonomy.js.map +1 -1
  22. package/dist/admin/templates.d.ts +1 -0
  23. package/dist/admin/templates.d.ts.map +1 -1
  24. package/dist/admin/templates.js +1 -0
  25. package/dist/admin/templates.js.map +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +55 -19
  28. package/dist/cli.js.map +1 -1
  29. package/dist/config.d.ts +8 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +1 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/content/parser.d.ts.map +1 -1
  34. package/dist/content/parser.js +2 -1
  35. package/dist/content/parser.js.map +1 -1
  36. package/dist/content/store.d.ts +21 -3
  37. package/dist/content/store.d.ts.map +1 -1
  38. package/dist/content/store.js +169 -42
  39. package/dist/content/store.js.map +1 -1
  40. package/dist/content/tags.d.ts +26 -0
  41. package/dist/content/tags.d.ts.map +1 -0
  42. package/dist/content/tags.js +41 -0
  43. package/dist/content/tags.js.map +1 -0
  44. package/dist/federation/article.d.ts.map +1 -1
  45. package/dist/federation/article.js +3 -1
  46. package/dist/federation/article.js.map +1 -1
  47. package/dist/notify.js +2 -2
  48. package/dist/notify.js.map +1 -1
  49. package/dist/plugin.d.ts +19 -0
  50. package/dist/plugin.d.ts.map +1 -1
  51. package/dist/plugin.js +8 -0
  52. package/dist/plugin.js.map +1 -1
  53. package/dist/plugins/changes.d.ts +31 -0
  54. package/dist/plugins/changes.d.ts.map +1 -0
  55. package/dist/plugins/changes.js +40 -0
  56. package/dist/plugins/changes.js.map +1 -0
  57. package/dist/plugins/install.d.ts +30 -3
  58. package/dist/plugins/install.d.ts.map +1 -1
  59. package/dist/plugins/install.js +43 -15
  60. package/dist/plugins/install.js.map +1 -1
  61. package/dist/plugins/manage.d.ts +32 -0
  62. package/dist/plugins/manage.d.ts.map +1 -0
  63. package/dist/plugins/manage.js +101 -0
  64. package/dist/plugins/manage.js.map +1 -0
  65. package/dist/plugins/registry.js +1 -1
  66. package/dist/plugins/registry.js.map +1 -1
  67. package/dist/plugins/upgrade.d.ts +54 -0
  68. package/dist/plugins/upgrade.d.ts.map +1 -0
  69. package/dist/plugins/upgrade.js +240 -0
  70. package/dist/plugins/upgrade.js.map +1 -0
  71. package/dist/web/routes.d.ts.map +1 -1
  72. package/dist/web/routes.js +25 -12
  73. package/dist/web/routes.js.map +1 -1
  74. package/dist/web/taxonomy.d.ts +7 -1
  75. package/dist/web/taxonomy.d.ts.map +1 -1
  76. package/dist/web/taxonomy.js +24 -8
  77. package/dist/web/taxonomy.js.map +1 -1
  78. package/package.json +4 -1
  79. package/themes/default/README.md +2 -2
  80. package/themes/default/layouts/base.njk +1 -1
  81. package/themes/default/layouts/tag.njk +1 -1
  82. package/themes/default/partials/tags.njk +1 -1
@@ -1,6 +1,7 @@
1
1
  import { databaseFile, openDatabase } from '../cache.js';
2
2
  import { featuredPosts, PINNED_FRONT_MATTER_KEY } from './pinned.js';
3
3
  import { searchExpression, searchText, SNIPPET_CLOSE, SNIPPET_OPEN } from './search.js';
4
+ import { tagKey, uniqueTags } from './tags.js';
4
5
  import { VISIBILITIES, VISIBILITY_FRONT_MATTER_KEY } from './visibility.js';
5
6
  export { DATABASE_FILE } from '../cache.js';
6
7
  /** Directory name that marks a document as thrown away but not yet deleted. */
@@ -148,7 +149,7 @@ export function openContentStore(options) {
148
149
  hash = excluded.hash
149
150
  `),
150
151
  deleteTags: db.prepare('DELETE FROM document_tags WHERE path = ?'),
151
- insertTag: db.prepare('INSERT INTO document_tags (path, tag, position) VALUES (?, ?, ?)'),
152
+ insertTag: db.prepare('INSERT INTO document_tags (path, tag, key, position) VALUES (?, ?, ?, ?)'),
152
153
  deleteCategories: db.prepare('DELETE FROM document_categories WHERE path = ?'),
153
154
  insertCategory: db.prepare('INSERT INTO document_categories (path, category, position) VALUES (?, ?, ?)'),
154
155
  pathForPermalink: db.prepare('SELECT path FROM documents WHERE permalink = ? AND trashed = 0'),
@@ -168,7 +169,12 @@ export function openContentStore(options) {
168
169
  `),
169
170
  byStoredObjectId: db.prepare(`SELECT * FROM documents WHERE json_extract(activitypub, '$.id') = ? ORDER BY trashed LIMIT 1`),
170
171
  bySlug: db.prepare(`SELECT * FROM documents WHERE slug = ? ORDER BY date_sort DESC, path DESC LIMIT 1`),
171
- tagsFor: db.prepare('SELECT tag FROM document_tags WHERE path = ? ORDER BY position'),
172
+ tagsFor: db.prepare('SELECT tag, key FROM document_tags WHERE path = ? ORDER BY position'),
173
+ keysFor: db.prepare('SELECT key FROM document_tags WHERE path = ?'),
174
+ spellings: db.prepare(tagSpellingsSql('')),
175
+ spellingsOfKeys: db.prepare(tagSpellingsSql('WHERE spelled.key IN (SELECT value FROM json_each(:keys))')),
176
+ spellingExcluding: db.prepare(tagSpellingsSql('WHERE spelled.key = :key AND spelled.path <> :excluding')),
177
+ dataVersion: db.prepare('PRAGMA data_version'),
172
178
  categoriesFor: db.prepare('SELECT category FROM document_categories WHERE path = ? ORDER BY position'),
173
179
  paths: db.prepare('SELECT path FROM documents ORDER BY path'),
174
180
  counts: db.prepare(`
@@ -182,12 +188,11 @@ export function openContentStore(options) {
182
188
  FROM documents
183
189
  `),
184
190
  tagCounts: db.prepare(`
185
- SELECT document_tags.tag AS tag, COUNT(*) AS count
191
+ SELECT document_tags.key AS key, MIN(document_tags.tag) AS tag, COUNT(*) AS count
186
192
  FROM document_tags
187
193
  JOIN documents ON documents.path = document_tags.path
188
194
  WHERE ${LISTED_CLAUSE}
189
- GROUP BY document_tags.tag
190
- ORDER BY count DESC, tag ASC
195
+ GROUP BY document_tags.key
191
196
  `),
192
197
  categoryCounts: db.prepare(`
193
198
  SELECT document_categories.category AS category, COUNT(*) AS count
@@ -197,8 +202,8 @@ export function openContentStore(options) {
197
202
  GROUP BY document_categories.category
198
203
  ORDER BY count DESC, category ASC
199
204
  `),
200
- tagUsage: db.prepare(termUsageSql('document_tags', 'tag')),
201
- categoryUsage: db.prepare(termUsageSql('document_categories', 'category')),
205
+ tagUsage: db.prepare(termUsageSql(TERM_TABLES.tag)),
206
+ categoryUsage: db.prepare(termUsageSql(TERM_TABLES.category)),
202
207
  nextDue: db.prepare(`
203
208
  SELECT MIN(date_sort) AS due FROM documents
204
209
  WHERE draft = 0 AND trashed = 0 AND ${SCHEDULED_CLAUSE}
@@ -221,8 +226,43 @@ export function openContentStore(options) {
221
226
  `),
222
227
  };
223
228
  let open = true;
229
+ let cachedSpellings;
230
+ const staleKeys = new Set();
231
+ const MOST_KEYS_REFRESHED = 500;
232
+ function siteSpellings() {
233
+ const now = nowKey();
234
+ const dataVersion = statements.dataVersion.get()?.['data_version'];
235
+ const current = cachedSpellings === undefined || outOfDate(cachedSpellings, dataVersion, now)
236
+ ? undefined
237
+ : cachedSpellings.byKey;
238
+ if (current !== undefined && staleKeys.size === 0)
239
+ return current;
240
+ const refreshStaleOnly = current !== undefined && staleKeys.size <= MOST_KEYS_REFRESHED;
241
+ const byKey = refreshStaleOnly ? current : new Map();
242
+ const rows = refreshStaleOnly
243
+ ? refreshStaleSpellings(byKey, now)
244
+ : statements.spellings.all(now);
245
+ for (const row of rows)
246
+ byKey.set(String(row['key']), String(row['tag']));
247
+ staleKeys.clear();
248
+ const nextScheduledAt = text(statements.nextDue.get(now)['due']);
249
+ cachedSpellings = { byKey, dataVersion, workedOutAt: now, nextScheduledAt };
250
+ return byKey;
251
+ }
252
+ function refreshStaleSpellings(byKey, now) {
253
+ for (const key of staleKeys)
254
+ byKey.delete(key);
255
+ return statements.spellingsOfKeys.all({ keys: JSON.stringify([...staleKeys]) }, now);
256
+ }
257
+ function markTagsStaleBeforeWrite(contentPath) {
258
+ for (const row of statements.keysFor.all(contentPath))
259
+ staleKeys.add(String(row['key']));
260
+ }
224
261
  function tagsOf(contentPath) {
225
- return statements.tagsFor.all(contentPath).map((row) => String(row['tag']));
262
+ const spellings = siteSpellings();
263
+ return statements.tagsFor
264
+ .all(contentPath)
265
+ .map((row) => spellings.get(String(row['key'])) ?? String(row['tag']));
226
266
  }
227
267
  function categoriesOf(contentPath) {
228
268
  return statements.categoriesFor.all(contentPath).map((row) => String(row['category']));
@@ -247,6 +287,9 @@ export function openContentStore(options) {
247
287
  }
248
288
  function writeOne(document) {
249
289
  const contentPath = document.path;
290
+ markTagsStaleBeforeWrite(contentPath);
291
+ for (const tag of document.tags)
292
+ staleKeys.add(tagKey(tag));
250
293
  try {
251
294
  statements.insert.run(toRow(document));
252
295
  }
@@ -254,8 +297,8 @@ export function openContentStore(options) {
254
297
  throw translateWriteError(error, document, statements.pathForPermalink);
255
298
  }
256
299
  statements.deleteTags.run(contentPath);
257
- document.tags.forEach((tag, position) => {
258
- statements.insertTag.run(contentPath, tag, position);
300
+ uniqueTags(document.tags).forEach((tag, position) => {
301
+ statements.insertTag.run(contentPath, tag, tagKey(tag), position);
259
302
  });
260
303
  statements.deleteCategories.run(contentPath);
261
304
  document.categories.forEach((category, position) => {
@@ -276,9 +319,9 @@ export function openContentStore(options) {
276
319
  * holds `term`, newest first. Tags and categories are the same query over two
277
320
  * tables, so neither can drift from the other.
278
321
  */
279
- function selectByTerm(table, column, term, options) {
280
- const where = [LISTED_CLAUSE, `path IN (SELECT path FROM ${table} WHERE ${column} = ?)`];
281
- const params = [nowKey(), term];
322
+ function selectByTerm(terms, term, options) {
323
+ const where = [LISTED_CLAUSE, termFilter(terms)];
324
+ const params = [nowKey(), terms.match(term)];
282
325
  if (options.type !== undefined) {
283
326
  where.unshift('type = ?');
284
327
  params.unshift(options.type);
@@ -286,9 +329,10 @@ export function openContentStore(options) {
286
329
  return select(where, params, options);
287
330
  }
288
331
  /** {@link selectByTerm}'s total, for the pager and the archive's existence. */
289
- function countByTerm(table, column, term, options) {
290
- const where = [LISTED_CLAUSE, `${table}.${column} = ?`];
291
- const params = [nowKey(), term];
332
+ function countByTerm(terms, term, options) {
333
+ const { table, matchColumn } = terms;
334
+ const where = [LISTED_CLAUSE, `${table}.${matchColumn} = ?`];
335
+ const params = [nowKey(), terms.match(term)];
292
336
  if (options.type !== undefined) {
293
337
  where.push('documents.type = ?');
294
338
  params.push(options.type);
@@ -346,11 +390,14 @@ export function openContentStore(options) {
346
390
  }
347
391
  },
348
392
  remove(contentPath) {
393
+ markTagsStaleBeforeWrite(contentPath);
349
394
  // Nothing cascades into a virtual table, so the words go by hand.
350
395
  statements.deleteText.run(contentPath);
351
396
  return statements.remove.run(contentPath).changes > 0;
352
397
  },
353
398
  clear() {
399
+ cachedSpellings = undefined;
400
+ staleKeys.clear();
354
401
  db.exec('BEGIN');
355
402
  try {
356
403
  // All four by name. The two term tables would go with the documents
@@ -423,10 +470,10 @@ export function openContentStore(options) {
423
470
  return hydrateAll(rows);
424
471
  },
425
472
  listByTag(tag, options = {}) {
426
- return selectByTerm('document_tags', 'tag', tag, options);
473
+ return selectByTerm(TERM_TABLES.tag, tag, options);
427
474
  },
428
475
  listByCategory(category, options = {}) {
429
- return selectByTerm('document_categories', 'category', category, options);
476
+ return selectByTerm(TERM_TABLES.category, category, options);
430
477
  },
431
478
  listByAuthor(names, options = {}) {
432
479
  if (names.length === 0)
@@ -456,12 +503,12 @@ export function openContentStore(options) {
456
503
  params.push(nowKey());
457
504
  }
458
505
  if (options.tag !== undefined) {
459
- where.push('path IN (SELECT path FROM document_tags WHERE tag = ?)');
460
- params.push(options.tag);
506
+ where.push(termFilter(TERM_TABLES.tag));
507
+ params.push(TERM_TABLES.tag.match(options.tag));
461
508
  }
462
509
  if (options.category !== undefined) {
463
- where.push('path IN (SELECT path FROM document_categories WHERE category = ?)');
464
- params.push(options.category);
510
+ where.push(termFilter(TERM_TABLES.category));
511
+ params.push(TERM_TABLES.category.match(options.category));
465
512
  }
466
513
  return select(where, params, options);
467
514
  },
@@ -484,10 +531,10 @@ export function openContentStore(options) {
484
531
  };
485
532
  },
486
533
  countByTag(tag, options = {}) {
487
- return countByTerm('document_tags', 'tag', tag, options);
534
+ return countByTerm(TERM_TABLES.tag, tag, options);
488
535
  },
489
536
  countByCategory(category, options = {}) {
490
- return countByTerm('document_categories', 'category', category, options);
537
+ return countByTerm(TERM_TABLES.category, category, options);
491
538
  },
492
539
  countByAuthor(names) {
493
540
  if (names.length === 0)
@@ -499,10 +546,20 @@ export function openContentStore(options) {
499
546
  return Number(row['count']);
500
547
  },
501
548
  listTags() {
502
- return statements.tagCounts.all(nowKey()).map((row) => ({
503
- tag: String(row['tag']),
549
+ const spellings = siteSpellings();
550
+ return statements.tagCounts
551
+ .all(nowKey())
552
+ .map((row) => ({
553
+ tag: spellings.get(String(row['key'])) ?? String(row['tag']),
504
554
  count: Number(row['count']),
505
- }));
555
+ }))
556
+ .sort((a, b) => b.count - a.count || compareByUtf16CodeUnit(a.tag, b.tag));
557
+ },
558
+ tagSpelling(tag, options = {}) {
559
+ if (options.excluding === undefined)
560
+ return siteSpellings().get(tagKey(tag));
561
+ const row = statements.spellingExcluding.get({ key: tagKey(tag), excluding: options.excluding }, nowKey());
562
+ return text(row?.['tag']);
506
563
  },
507
564
  listCategories() {
508
565
  return statements.categoryCounts.all(nowKey()).map((row) => ({
@@ -512,11 +569,15 @@ export function openContentStore(options) {
512
569
  },
513
570
  listTermUsage(taxonomy) {
514
571
  const query = taxonomy === 'tag' ? statements.tagUsage : statements.categoryUsage;
515
- return query.all(nowKey()).map((row) => ({
516
- term: String(row['term']),
572
+ const spellings = taxonomy === 'tag' ? siteSpellings() : new Map();
573
+ return query
574
+ .all(nowKey())
575
+ .map((row) => ({
576
+ term: spellings.get(String(row['key'])) ?? String(row['term']),
517
577
  published: Number(row['published']),
518
578
  total: Number(row['total']),
519
- }));
579
+ }))
580
+ .sort((a, b) => compareByUtf16CodeUnit(a.term, b.term));
520
581
  },
521
582
  search(query, options = {}) {
522
583
  const expression = searchExpression(query);
@@ -543,23 +604,68 @@ export function openContentStore(options) {
543
604
  },
544
605
  };
545
606
  }
546
- /**
547
- * The query behind {@link ContentStore.listTermUsage} for one of the two join
548
- * tables: every term, the public count and the total, in one pass.
549
- *
550
- * The table and column names are the module's own literals rather than
551
- * anything a caller supplies, so there is nothing here to interpolate from
552
- * outside; the clock is the one bound parameter.
553
- */
554
- function termUsageSql(table, column) {
607
+ const TERM_TABLES = {
608
+ tag: { table: 'document_tags', matchColumn: 'key', column: 'tag', match: tagKey },
609
+ category: {
610
+ table: 'document_categories',
611
+ matchColumn: 'category',
612
+ column: 'category',
613
+ match: (category) => category,
614
+ },
615
+ };
616
+ function outOfDate(cache, dataVersion, now) {
617
+ return (anotherConnectionWrote(cache, dataVersion) ||
618
+ scheduledPostCameDue(cache, now) ||
619
+ clockWentBack(cache, now));
620
+ }
621
+ function anotherConnectionWrote(cache, dataVersion) {
622
+ return cache.dataVersion !== dataVersion;
623
+ }
624
+ function scheduledPostCameDue(cache, now) {
625
+ return cache.nextScheduledAt !== undefined && now >= cache.nextScheduledAt;
626
+ }
627
+ function clockWentBack(cache, now) {
628
+ return now < cache.workedOutAt;
629
+ }
630
+ function compareByUtf16CodeUnit(a, b) {
631
+ if (a === b)
632
+ return 0;
633
+ return a < b ? -1 : 1;
634
+ }
635
+ function termFilter({ table, matchColumn }) {
636
+ return `path IN (SELECT path FROM ${table} WHERE ${matchColumn} = ?)`;
637
+ }
638
+ function tagSpellingsSql(where) {
639
+ return `
640
+ SELECT key, tag FROM (
641
+ SELECT key, tag, ROW_NUMBER() OVER (
642
+ PARTITION BY key
643
+ ORDER BY SUM(listed) DESC,
644
+ MIN(CASE WHEN listed THEN date_sort END) ASC NULLS LAST,
645
+ COUNT(*) DESC,
646
+ MIN(date_sort) ASC NULLS LAST,
647
+ tag ASC
648
+ ) AS rank
649
+ FROM (
650
+ SELECT spelled.key AS key, spelled.tag AS tag,
651
+ ${LISTED_CLAUSE} AS listed, spelled_in.date_sort AS date_sort
652
+ FROM document_tags AS spelled
653
+ JOIN documents AS spelled_in ON spelled_in.path = spelled.path
654
+ ${where}
655
+ )
656
+ GROUP BY key, tag
657
+ )
658
+ WHERE rank = 1
659
+ `;
660
+ }
661
+ function termUsageSql({ table, matchColumn, column }) {
555
662
  return `
556
- SELECT ${table}.${column} AS term,
663
+ SELECT ${table}.${matchColumn} AS key, MIN(${table}.${column}) AS term,
557
664
  COALESCE(SUM(${LISTED_CLAUSE}), 0) AS published,
558
665
  COUNT(*) AS total
559
666
  FROM ${table}
560
667
  JOIN documents ON documents.path = ${table}.path
561
- GROUP BY ${table}.${column}
562
- ORDER BY term ASC
668
+ GROUP BY ${table}.${matchColumn}
563
669
  `;
564
670
  }
565
671
  /**
@@ -805,5 +911,26 @@ const MIGRATIONS = [
805
911
  CREATE INDEX documents_permalink ON documents (permalink);
806
912
  `,
807
913
  },
914
+ {
915
+ version: 8,
916
+ sql: `
917
+ -- Tags match without regard to case (TASK-308): each row carries its
918
+ -- key, the tag in lower case, which JavaScript works out because
919
+ -- SQLite's lower() folds ASCII only. A document carries a tag once
920
+ -- whatever its casing. The rows already here have no key, and their
921
+ -- files hash the same, so emptying the index is what makes the next
922
+ -- scan write them again; the files are the source of truth (decision-1).
923
+ DROP TABLE document_tags;
924
+ CREATE TABLE document_tags (
925
+ path TEXT NOT NULL REFERENCES documents (path) ON DELETE CASCADE,
926
+ tag TEXT NOT NULL,
927
+ key TEXT NOT NULL,
928
+ position INTEGER NOT NULL,
929
+ PRIMARY KEY (path, key)
930
+ );
931
+ CREATE INDEX document_tags_key ON document_tags (key);
932
+ DELETE FROM documents;
933
+ `,
934
+ },
808
935
  ];
809
936
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/content/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/content/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * What makes two spellings one tag, and the segment of its archive URL.
3
+ *
4
+ * `toLowerCase()` rather than a locale's rules, so a tag matches the same way
5
+ * on every server whatever its locale, and so the key a URL carries is the key
6
+ * the index stores. It does no Unicode normalisation: a tag typed once
7
+ * precomposed and once decomposed stays two tags.
8
+ */
9
+ export declare function tagKey(tag: string): string;
10
+ /** The tags without a second spelling of one already listed. The first spelling stays. */
11
+ export declare function uniqueTags(tags: readonly string[]): string[];
12
+ /** One tag given in another spelling than the site's, and the site's spelling it took. */
13
+ export interface Respelling {
14
+ readonly given: string;
15
+ readonly site: string;
16
+ }
17
+ /**
18
+ * Tags as a write should store them: each one the site already carries in the
19
+ * site's spelling, and no tag twice. `siteSpelling` answers how the site spells
20
+ * a tag, or `undefined` for one it does not carry.
21
+ */
22
+ export declare function respellTags(tags: readonly string[], siteSpelling: (tag: string) => string | undefined): {
23
+ tags: string[];
24
+ respelled: Respelling[];
25
+ };
26
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/content/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAU5D;AAED,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAChD;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,UAAU,EAAE,CAAA;CAAE,CAS7C"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * What makes two spellings one tag, and the segment of its archive URL.
3
+ *
4
+ * `toLowerCase()` rather than a locale's rules, so a tag matches the same way
5
+ * on every server whatever its locale, and so the key a URL carries is the key
6
+ * the index stores. It does no Unicode normalisation: a tag typed once
7
+ * precomposed and once decomposed stays two tags.
8
+ */
9
+ export function tagKey(tag) {
10
+ return tag.toLowerCase();
11
+ }
12
+ /** The tags without a second spelling of one already listed. The first spelling stays. */
13
+ export function uniqueTags(tags) {
14
+ const seen = new Set();
15
+ const unique = [];
16
+ for (const tag of tags) {
17
+ const key = tagKey(tag);
18
+ if (seen.has(key))
19
+ continue;
20
+ seen.add(key);
21
+ unique.push(tag);
22
+ }
23
+ return unique;
24
+ }
25
+ /**
26
+ * Tags as a write should store them: each one the site already carries in the
27
+ * site's spelling, and no tag twice. `siteSpelling` answers how the site spells
28
+ * a tag, or `undefined` for one it does not carry.
29
+ */
30
+ export function respellTags(tags, siteSpelling) {
31
+ const respelled = [];
32
+ const spelled = uniqueTags(tags).map((given) => {
33
+ const site = siteSpelling(given);
34
+ if (site === undefined || site === given)
35
+ return given;
36
+ respelled.push({ given, site });
37
+ return site;
38
+ });
39
+ return { tags: spelled, respelled };
40
+ }
41
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/content/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,IAAuB,EACvB,YAAiD;IAEjD,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACvD,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/federation/article.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,GAAG,EACH,OAAO,EAEP,MAAM,EACN,MAAM,EACN,KAAK,EAOL,IAAI,EAGJ,MAAM,EAEN,SAAS,EACT,MAAM,EAEP,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAYxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,GACjB,IAAI,GAAG,SAAS,CAGlB;AA2ED,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,SAAS,CAOtB;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,GAAG,IAAI,GAAG,KAAK,CAsFxB;AA8KD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAgBR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA6B,EACvC,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAgBR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACd,MAAM,CAUR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,CAMX;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,GACf,GAAG,GAAG,MAAM,CAkBd;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAEhG;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAOjF"}
1
+ {"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/federation/article.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,GAAG,EACH,OAAO,EAEP,MAAM,EACN,MAAM,EACN,KAAK,EAOL,IAAI,EAGJ,MAAM,EAEN,SAAS,EACT,MAAM,EAEP,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAaxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,GACjB,IAAI,GAAG,SAAS,CAGlB;AA2ED,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,SAAS,CAOtB;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,GAAG,IAAI,GAAG,KAAK,CAyFxB;AA8KD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAgBR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA6B,EACvC,OAAO,CAAC,EAAE,WAAW,GACpB,MAAM,CAgBR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACd,MAAM,CAUR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,CAMX;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,GACf,GAAG,GAAG,MAAM,CAkBd;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAEhG;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,OAAO,GAAG,SAAS,CAOjF"}
@@ -16,6 +16,7 @@ import { readAltTexts } from '../images/alt-text.js';
16
16
  import { imagesIn } from '../images/markup.js';
17
17
  import { postLabel, postTypeOf, replyTarget } from '../content/post-type.js';
18
18
  import { htmlToText } from '../content/search.js';
19
+ import { respellTags } from '../content/tags.js';
19
20
  import { visibilityOf } from '../content/visibility.js';
20
21
  import { userForAuthor } from '../web/authors.js';
21
22
  import { isServed, permalinkOfObjectId, postObjectId } from '../web/documents.js';
@@ -209,6 +210,7 @@ export function postObject(context, document, replyTo) {
209
210
  // The language a client filters and translates the post by: its own, else
210
211
  // the site's (TASK-154).
211
212
  const language = documentLanguage(document) ?? canonicalLocale(settings.language) ?? DEFAULT_LOCALE;
213
+ const siteSpelledTags = respellTags(document.tags, (tag) => context.data.store.tagSpelling(tag)).tags;
212
214
  const inReplyTo = replyTarget(document);
213
215
  const mentioned = mentionedAccounts(document.body, context.data.config.contentDir);
214
216
  const common = {
@@ -236,7 +238,7 @@ export function postObject(context, document, replyTo) {
236
238
  // each one points at the archive the site serves for it.
237
239
  tags: [
238
240
  ...mentions(replyTo, mentioned),
239
- ...document.tags.map((tag) => hashtag(tag, tagHref(tag, 0, bases), baseUrl)),
241
+ ...siteSpelledTags.map((tag) => hashtag(tag, tagHref(tag, 0, bases), baseUrl)),
240
242
  ...document.categories.map((category) => hashtag(category, categoryHref(category, 0, bases), baseUrl)),
241
243
  ],
242
244
  };