@geekity/cms 0.6.0 → 0.7.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 (147) hide show
  1. package/README.md +54 -10
  2. package/admin/pages/documents/editor.njk +13 -1
  3. package/dist/admin/comments.d.ts.map +1 -1
  4. package/dist/admin/comments.js +2 -1
  5. package/dist/admin/comments.js.map +1 -1
  6. package/dist/admin/documents.d.ts +3 -0
  7. package/dist/admin/documents.d.ts.map +1 -1
  8. package/dist/admin/documents.js +51 -11
  9. package/dist/admin/documents.js.map +1 -1
  10. package/dist/admin/federation.d.ts.map +1 -1
  11. package/dist/admin/federation.js +3 -2
  12. package/dist/admin/federation.js.map +1 -1
  13. package/dist/admin/preview.js +3 -0
  14. package/dist/admin/preview.js.map +1 -1
  15. package/dist/admin/routes.d.ts.map +1 -1
  16. package/dist/admin/routes.js +2 -1
  17. package/dist/admin/routes.js.map +1 -1
  18. package/dist/comments/submission.d.ts.map +1 -1
  19. package/dist/comments/submission.js +2 -1
  20. package/dist/comments/submission.js.map +1 -1
  21. package/dist/config.d.ts +10 -0
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/config.js +2 -0
  24. package/dist/config.js.map +1 -1
  25. package/dist/content/document.d.ts +18 -7
  26. package/dist/content/document.d.ts.map +1 -1
  27. package/dist/content/document.js +1 -0
  28. package/dist/content/document.js.map +1 -1
  29. package/dist/content/index.d.ts +2 -0
  30. package/dist/content/index.d.ts.map +1 -1
  31. package/dist/content/index.js +1 -0
  32. package/dist/content/index.js.map +1 -1
  33. package/dist/content/parser.d.ts.map +1 -1
  34. package/dist/content/parser.js +19 -1
  35. package/dist/content/parser.js.map +1 -1
  36. package/dist/content/post-type.d.ts +48 -0
  37. package/dist/content/post-type.d.ts.map +1 -0
  38. package/dist/content/post-type.js +79 -0
  39. package/dist/content/post-type.js.map +1 -0
  40. package/dist/content/store.d.ts.map +1 -1
  41. package/dist/content/store.js +17 -2
  42. package/dist/content/store.js.map +1 -1
  43. package/dist/content/sync.d.ts.map +1 -1
  44. package/dist/content/sync.js +6 -0
  45. package/dist/content/sync.js.map +1 -1
  46. package/dist/content/writer.d.ts +1 -1
  47. package/dist/content/writer.d.ts.map +1 -1
  48. package/dist/content/writer.js +9 -2
  49. package/dist/content/writer.js.map +1 -1
  50. package/dist/federation/article.d.ts +18 -9
  51. package/dist/federation/article.d.ts.map +1 -1
  52. package/dist/federation/article.js +87 -17
  53. package/dist/federation/article.js.map +1 -1
  54. package/dist/federation/index.d.ts +1 -1
  55. package/dist/federation/index.d.ts.map +1 -1
  56. package/dist/federation/index.js +1 -1
  57. package/dist/federation/index.js.map +1 -1
  58. package/dist/federation/mount.js +3 -3
  59. package/dist/federation/mount.js.map +1 -1
  60. package/dist/index.d.ts +12 -5
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +22 -3
  63. package/dist/index.js.map +1 -1
  64. package/dist/notifications/comments.d.ts.map +1 -1
  65. package/dist/notifications/comments.js +2 -1
  66. package/dist/notifications/comments.js.map +1 -1
  67. package/dist/notifications/digest.d.ts.map +1 -1
  68. package/dist/notifications/digest.js +2 -1
  69. package/dist/notifications/digest.js.map +1 -1
  70. package/dist/web/archive.d.ts +1 -1
  71. package/dist/web/archive.d.ts.map +1 -1
  72. package/dist/web/archive.js +2 -1
  73. package/dist/web/archive.js.map +1 -1
  74. package/dist/web/context.d.ts +22 -2
  75. package/dist/web/context.d.ts.map +1 -1
  76. package/dist/web/context.js +5 -0
  77. package/dist/web/context.js.map +1 -1
  78. package/dist/web/conversation.d.ts.map +1 -1
  79. package/dist/web/conversation.js +2 -1
  80. package/dist/web/conversation.js.map +1 -1
  81. package/dist/web/feed-atom.d.ts.map +1 -1
  82. package/dist/web/feed-atom.js +14 -2
  83. package/dist/web/feed-atom.js.map +1 -1
  84. package/dist/web/feed-item.d.ts +21 -7
  85. package/dist/web/feed-item.d.ts.map +1 -1
  86. package/dist/web/feed-item.js +13 -6
  87. package/dist/web/feed-item.js.map +1 -1
  88. package/dist/web/feed-json.d.ts +13 -2
  89. package/dist/web/feed-json.d.ts.map +1 -1
  90. package/dist/web/feed-json.js +3 -1
  91. package/dist/web/feed-json.js.map +1 -1
  92. package/dist/web/feed-rss.d.ts.map +1 -1
  93. package/dist/web/feed-rss.js +2 -2
  94. package/dist/web/feed-rss.js.map +1 -1
  95. package/dist/web/feed-xml.d.ts +2 -0
  96. package/dist/web/feed-xml.d.ts.map +1 -1
  97. package/dist/web/feed-xml.js +2 -0
  98. package/dist/web/feed-xml.js.map +1 -1
  99. package/dist/web/feeds.d.ts +1 -1
  100. package/dist/web/feeds.d.ts.map +1 -1
  101. package/dist/web/feeds.js.map +1 -1
  102. package/dist/web/index.d.ts +1 -1
  103. package/dist/web/index.d.ts.map +1 -1
  104. package/dist/web/index.js.map +1 -1
  105. package/dist/web/render.d.ts +9 -0
  106. package/dist/web/render.d.ts.map +1 -1
  107. package/dist/web/render.js +19 -1
  108. package/dist/web/render.js.map +1 -1
  109. package/dist/web/routes.d.ts.map +1 -1
  110. package/dist/web/routes.js +2 -1
  111. package/dist/web/routes.js.map +1 -1
  112. package/dist/webmention/index.d.ts +6 -0
  113. package/dist/webmention/index.d.ts.map +1 -1
  114. package/dist/webmention/index.js +3 -0
  115. package/dist/webmention/index.js.map +1 -1
  116. package/dist/webmention/links.d.ts +5 -0
  117. package/dist/webmention/links.d.ts.map +1 -1
  118. package/dist/webmention/links.js +14 -7
  119. package/dist/webmention/links.js.map +1 -1
  120. package/dist/webmention/microformats.d.ts +21 -0
  121. package/dist/webmention/microformats.d.ts.map +1 -1
  122. package/dist/webmention/microformats.js +35 -5
  123. package/dist/webmention/microformats.js.map +1 -1
  124. package/dist/webmention/public-address.d.ts +30 -0
  125. package/dist/webmention/public-address.d.ts.map +1 -0
  126. package/dist/webmention/public-address.js +71 -0
  127. package/dist/webmention/public-address.js.map +1 -0
  128. package/dist/webmention/receive.d.ts.map +1 -1
  129. package/dist/webmention/receive.js +1 -23
  130. package/dist/webmention/receive.js.map +1 -1
  131. package/dist/webmention/reply-context.d.ts +67 -0
  132. package/dist/webmention/reply-context.d.ts.map +1 -0
  133. package/dist/webmention/reply-context.js +189 -0
  134. package/dist/webmention/reply-context.js.map +1 -0
  135. package/dist/webmention/reply-contexts.d.ts +50 -0
  136. package/dist/webmention/reply-contexts.d.ts.map +1 -0
  137. package/dist/webmention/reply-contexts.js +163 -0
  138. package/dist/webmention/reply-contexts.js.map +1 -0
  139. package/dist/webmention/service.d.ts.map +1 -1
  140. package/dist/webmention/service.js +9 -2
  141. package/dist/webmention/service.js.map +1 -1
  142. package/package.json +10 -10
  143. package/themes/default/layouts/base.njk +5 -3
  144. package/themes/default/layouts/post.njk +8 -0
  145. package/themes/default/layouts/search.njk +4 -2
  146. package/themes/default/partials/post-list.njk +17 -5
  147. package/themes/default/partials/reply-context.njk +29 -0
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/webmention/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekity/cms",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "A file-first CMS: Markdown content, a SQLite index, a Hono server that is both the editor and the public site.",
6
6
  "license": "MIT",
@@ -28,33 +28,33 @@
28
28
  "LICENSE"
29
29
  ],
30
30
  "dependencies": {
31
- "@fedify/fedify": "^2.3.6",
32
- "@fedify/hono": "^2.3.6",
33
- "@fedify/vocab": "^2.3.6",
31
+ "@fedify/fedify": "^2.3.7",
32
+ "@fedify/hono": "^2.3.7",
33
+ "@fedify/vocab": "^2.3.7",
34
34
  "@hono/node-server": "^2.1.1",
35
35
  "@js-temporal/polyfill": "^0.5.1",
36
36
  "chokidar": "^5.0.0",
37
37
  "gray-matter": "^4.0.3",
38
- "hono": "^4.13.7",
38
+ "hono": "^4.13.8",
39
39
  "js-yaml": "^5.4.2",
40
40
  "markdown-it": "^15.0.2",
41
41
  "markdown-it-footnote": "^4.0.0",
42
- "nodemailer": "^10.0.9",
42
+ "nodemailer": "^10.0.10",
43
43
  "nunjucks": "^3.2.4",
44
44
  "sharp": "^0.35.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@11ty/eleventy": "^3.1.6",
48
48
  "@codemirror/lang-markdown": "^6.5.2",
49
- "@fedify/cli": "2.3.6",
49
+ "@fedify/cli": "2.3.7",
50
50
  "@types/markdown-it-footnote": "^3.0.4",
51
- "@types/node": "^26.4.1",
52
- "@types/nodemailer": "^8.0.1",
51
+ "@types/node": "^26.6.2",
52
+ "@types/nodemailer": "^8.0.2",
53
53
  "@types/nunjucks": "^3.2.6",
54
54
  "codemirror": "^6.0.2",
55
55
  "esbuild": "^0.28.2",
56
56
  "highlight.js": "11.12.0",
57
- "tsx": "^4.23.13",
57
+ "tsx": "^4.23.15",
58
58
  "typescript": "^7.0.2"
59
59
  },
60
60
  "scripts": {
@@ -39,7 +39,9 @@
39
39
  `pagination`, and the posts page is a listing carrying a page's front
40
40
  matter, so it is a website like every other listing. -#}
41
41
  {% set metaDescription = description or summary or site.tagline %}
42
- {% set metaTitle = title or site.title %}
42
+ {#- A note has no title, and is named here by its first words. -#}
43
+ {% set pageTitle = title or label %}
44
+ {% set metaTitle = pageTitle or site.title %}
43
45
  {% set metaUrl = (page.url or "/") | absoluteUrl %}
44
46
  {% set metaImage = image or site.avatar %}
45
47
  {% set isEntry = (type == "post" or type == "page") and not pagination %}
@@ -48,7 +50,7 @@
48
50
  <head>
49
51
  <meta charset="utf-8">
50
52
  <meta name="viewport" content="width=device-width, initial-scale=1">
51
- <title>{% block title %}{% if title %}{{ title }} &middot; {% endif %}{{ site.title }}{% endblock %}</title>
53
+ <title>{% block title %}{% if pageTitle %}{{ pageTitle }} &middot; {% endif %}{{ site.title }}{% endblock %}</title>
52
54
  {% if metaDescription %}
53
55
  <meta name="description" content="{{ metaDescription }}">
54
56
  {% endif %}
@@ -58,7 +60,7 @@
58
60
  {{ feeds.feedLinks("/", site.title) }}
59
61
  {{ feeds.commentsFeedLink("/comments/feed/", site.title + " comments") }}
60
62
  {% if commentsFeed %}
61
- {{ feeds.commentsFeedLink(commentsFeed, "Comments on: " + title) }}
63
+ {{ feeds.commentsFeedLink(commentsFeed, "Comments on: " + pageTitle) }}
62
64
  {% endif %}
63
65
  {% if activityStreams %}
64
66
  <link rel="alternate" type="application/activity+json" href="{{ activityStreams }}">
@@ -23,9 +23,17 @@
23
23
  {% block content %}
24
24
  {% set entryUrl = page.url or url %}
25
25
  <article class="blog-post h-entry">
26
+ {#- A post with no name of its own (a note, or a reply without a title) is
27
+ its words, so it opens on them rather than on an empty heading. -#}
28
+ {% if named %}
26
29
  <header>
27
30
  <h1 class="p-name">{{ title }}</h1>
28
31
  </header>
32
+ {% endif %}
33
+
34
+ {#- A reply cites the post it answers, whose URL is also the link its
35
+ webmention points a receiver at. -#}
36
+ {% include "partials/reply-context.njk" %}
29
37
 
30
38
  <section class="e-content">
31
39
  {{ content | safe }}
@@ -37,8 +37,10 @@
37
37
  <div class="search-results">
38
38
  {% for post in posts %}
39
39
  <article class="search-result h-entry">
40
- <h2 class="feed-title p-name">
41
- <a href="{{ post.url | url }}" class="u-url">{{ post.title }}</a>
40
+ {#- A post with no name of its own has none to claim, so its first words
41
+ link it without being marked up as one. -#}
42
+ <h2 class="feed-title{% if post.named %} p-name{% endif %}">
43
+ <a href="{{ post.url | url }}" class="u-url">{{ post.label }}</a>
42
44
  </h2>
43
45
  {% if post.snippet %}
44
46
  <p class="search-snippet">{{ post.snippet | safe }}</p>
@@ -2,10 +2,11 @@
2
2
  The feed a listing is made of: `h-feed` of `h-entry` items, as the source
3
3
  design lists them (decision-16).
4
4
 
5
- Expects `posts`. Each entry prints its title as a linked `p-name`, its
6
- `summary` — the very line the feeds publish — as a `p-summary` cut to about
7
- 280 characters, a Continue reading link, its publish date and the categories
8
- it is filed under. Tags are deliberately not here: an entry's tags belong
5
+ Expects `posts`. A note, which has no title, is printed whole as its
6
+ `e-content`, with its date as the link to it. Every other entry prints its
7
+ title as a linked `p-name`, its `summary` — the very line the feeds publish —
8
+ as a `p-summary` cut to about 280 characters, a Continue reading link, its
9
+ publish date and the categories it is filed under. Tags are deliberately not here: an entry's tags belong
9
10
  under the entry, and a feed of twenty posts listing everyone's would be a
10
11
  wall of links rather than a list of writing.
11
12
 
@@ -24,6 +25,12 @@
24
25
  {% endif %}
25
26
  <article class="feed-item h-entry">
26
27
  <div class="feed-content">
28
+ {% if post.inReplyTo %}
29
+ <p class="feed-reply small">In reply to <a class="u-in-reply-to" href="{{ post.inReplyTo }}">{{ post.inReplyTo }}</a></p>
30
+ {% endif %}
31
+ {% if not post.named %}
32
+ <div class="feed-excerpt e-content">{{ post.content | safe }}</div>
33
+ {% else %}
27
34
  <{{ feedTitleTag }} class="feed-title p-name">
28
35
  <a href="{{ post.url | url }}" class="u-url">{{ post.title }}</a>
29
36
  </{{ feedTitleTag }}>
@@ -38,8 +45,13 @@
38
45
  <p class="feed-more">
39
46
  <a href="{{ post.url | url }}" aria-label="Continue reading: {{ post.title }}">Continue reading<span aria-hidden="true"> &rarr;</span></a>
40
47
  </p>
48
+ {% endif %}
41
49
  <div class="feed-meta">
42
- {% if post.date %}
50
+ {% if not post.named %}
51
+ <p>
52
+ <a href="{{ post.url | url }}" class="u-url">{% if post.date %}<time class="feed-date dt-published" datetime="{{ post.date | date("iso") }}">{{ post.date | date }}</time>{% else %}{{ post.label }}{% endif %}</a>
53
+ </p>
54
+ {% elif post.date %}
43
55
  <p>
44
56
  <time class="feed-date dt-published" datetime="{{ post.date | date("iso") }}">
45
57
  {{ post.date | date }}
@@ -0,0 +1,29 @@
1
+ {#
2
+ The post a reply answers, cited in the reply (TASK-123): an embedded
3
+ `u-in-reply-to h-cite` that always carries the target's URL, so a parser
4
+ reads what this post answers even when nothing more is known about it.
5
+
6
+ `replyContext` is what the target said about itself when the reply was saved
7
+ or synced: its name, a short excerpt, its author and its date, each only when
8
+ it said so. It is somebody else's words, so every piece is printed through
9
+ autoescaping and none of it with `safe`.
10
+ #}
11
+ {% if inReplyTo %}
12
+ <div class="reply-context u-in-reply-to h-cite">
13
+ <p class="small">In reply to
14
+ {%- if replyContext.name %} <a class="u-url p-name" href="{{ inReplyTo }}">{{ replyContext.name }}</a>
15
+ {%- else %} <a class="u-url" href="{{ inReplyTo }}">{{ inReplyTo }}</a>
16
+ {%- endif %}
17
+ {%- if replyContext.author %} by <span class="p-author h-card">
18
+ {%- if replyContext.author.url %}<a class="u-url p-name" href="{{ replyContext.author.url }}">{{ replyContext.author.name }}</a>
19
+ {%- else %}<span class="p-name">{{ replyContext.author.name }}</span>{% endif -%}
20
+ </span>
21
+ {%- endif %}
22
+ {%- if replyContext.published %} on <time class="dt-published" datetime="{{ replyContext.published | date("iso") }}">{{ replyContext.published | date }}</time>
23
+ {%- endif -%}
24
+ </p>
25
+ {% if replyContext.text %}
26
+ <blockquote class="p-content">{{ replyContext.text }}</blockquote>
27
+ {% endif %}
28
+ </div>
29
+ {% endif %}