@geekity/cms 0.39.0 → 0.41.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/admin/pages/appearance/look.njk +135 -0
- package/admin/pages/dashboard/home.njk +9 -3
- package/admin/pages/documents/conflict.njk +35 -10
- package/admin/pages/documents/editor.njk +28 -0
- package/admin/pages/documents/list.njk +44 -1
- package/admin/pages/settings/general.njk +4 -0
- package/admin/pages/users/edit.njk +1 -1
- package/admin/src/admin.css +32 -0
- package/admin/static/admin.css +197 -3
- package/admin/static/dashboard.js +51 -23
- package/admin/static/editor.js +19 -19
- package/dist/admin/autosave-client.d.ts +85 -0
- package/dist/admin/autosave-client.d.ts.map +1 -0
- package/dist/admin/autosave-client.js +218 -0
- package/dist/admin/autosave-client.js.map +1 -0
- package/dist/admin/autosave.d.ts +11 -0
- package/dist/admin/autosave.d.ts.map +1 -0
- package/dist/admin/autosave.js +76 -0
- package/dist/admin/autosave.js.map +1 -0
- package/dist/admin/dashboard.d.ts +2 -2
- package/dist/admin/dashboard.d.ts.map +1 -1
- package/dist/admin/dashboard.js +23 -15
- package/dist/admin/dashboard.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +205 -16
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/flash.d.ts +2 -0
- package/dist/admin/flash.d.ts.map +1 -1
- package/dist/admin/flash.js +12 -0
- package/dist/admin/flash.js.map +1 -1
- package/dist/admin/focus-mode.d.ts +39 -0
- package/dist/admin/focus-mode.d.ts.map +1 -0
- package/dist/admin/focus-mode.js +81 -0
- package/dist/admin/focus-mode.js.map +1 -0
- package/dist/admin/formatting.d.ts +0 -2
- package/dist/admin/formatting.d.ts.map +1 -1
- package/dist/admin/formatting.js +0 -8
- package/dist/admin/formatting.js.map +1 -1
- package/dist/admin/look.d.ts +12 -0
- package/dist/admin/look.d.ts.map +1 -0
- package/dist/admin/look.js +179 -0
- package/dist/admin/look.js.map +1 -0
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +5 -3
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +1 -0
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +6 -4
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-fields.d.ts +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-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +1 -0
- package/dist/admin/settings-general.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 +2 -1
- 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-fediverse.js +1 -1
- package/dist/admin/widget-posting.d.ts.map +1 -1
- package/dist/admin/widget-posting.js +4 -75
- package/dist/admin/widget-posting.js.map +1 -1
- package/dist/admin/widget-scheduled.js +1 -1
- package/dist/admin/widget-top-posts.js +1 -1
- package/dist/autosave/index.d.ts +5 -0
- package/dist/autosave/index.d.ts.map +1 -0
- package/dist/autosave/index.js +3 -0
- package/dist/autosave/index.js.map +1 -0
- package/dist/autosave/key.d.ts +13 -0
- package/dist/autosave/key.d.ts.map +1 -0
- package/dist/autosave/key.js +29 -0
- package/dist/autosave/key.js.map +1 -0
- package/dist/autosave/store.d.ts +23 -0
- package/dist/autosave/store.d.ts.map +1 -0
- package/dist/autosave/store.js +114 -0
- package/dist/autosave/store.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +1 -0
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/boot.d.ts.map +1 -1
- package/dist/cms/boot.js +2 -0
- package/dist/cms/boot.js.map +1 -1
- package/dist/cms/create.d.ts +6 -0
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +1 -0
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/server-error.d.ts.map +1 -1
- package/dist/cms/server-error.js +6 -6
- package/dist/cms/server-error.js.map +1 -1
- package/dist/cms/services.d.ts +2 -0
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +9 -0
- package/dist/cms/services.js.map +1 -1
- package/dist/{micropub/content.d.ts → content/html-to-markdown.d.ts} +1 -1
- package/dist/content/html-to-markdown.d.ts.map +1 -0
- package/dist/{micropub/content.js → content/html-to-markdown.js} +11 -9
- package/dist/content/html-to-markdown.js.map +1 -0
- package/dist/content/post-type.d.ts +1 -0
- package/dist/content/post-type.d.ts.map +1 -1
- package/dist/content/post-type.js +1 -1
- package/dist/content/post-type.js.map +1 -1
- package/dist/content/review.d.ts +14 -0
- package/dist/content/review.d.ts.map +1 -1
- package/dist/content/review.js +31 -8
- package/dist/content/review.js.map +1 -1
- package/dist/content/write.d.ts +8 -0
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +1 -1
- package/dist/content/write.js.map +1 -1
- package/dist/files/data-files.d.ts +2 -0
- package/dist/files/data-files.d.ts.map +1 -1
- package/dist/files/data-files.js +12 -0
- package/dist/files/data-files.js.map +1 -1
- package/dist/fonts/css.d.ts +25 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/css.js +88 -0
- package/dist/fonts/css.js.map +1 -0
- package/dist/fonts/family.d.ts +23 -0
- package/dist/fonts/family.d.ts.map +1 -0
- package/dist/fonts/family.js +41 -0
- package/dist/fonts/family.js.map +1 -0
- package/dist/fonts/index.d.ts +10 -0
- package/dist/fonts/index.d.ts.map +1 -0
- package/dist/fonts/index.js +6 -0
- package/dist/fonts/index.js.map +1 -0
- package/dist/fonts/job.d.ts +20 -0
- package/dist/fonts/job.d.ts.map +1 -0
- package/dist/fonts/job.js +49 -0
- package/dist/fonts/job.js.map +1 -0
- package/dist/fonts/roles.d.ts +53 -0
- package/dist/fonts/roles.d.ts.map +1 -0
- package/dist/fonts/roles.js +64 -0
- package/dist/fonts/roles.js.map +1 -0
- package/dist/fonts/store.d.ts +69 -0
- package/dist/fonts/store.d.ts.map +1 -0
- package/dist/fonts/store.js +237 -0
- package/dist/fonts/store.js.map +1 -0
- package/dist/maintenance.d.ts +1 -0
- package/dist/maintenance.d.ts.map +1 -1
- package/dist/maintenance.js +1 -1
- package/dist/maintenance.js.map +1 -1
- package/dist/micropub/create.js +1 -1
- package/dist/micropub/create.js.map +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/settings/registry.d.ts.map +1 -1
- package/dist/settings/registry.js +5 -1
- package/dist/settings/registry.js.map +1 -1
- package/dist/settings/types.d.ts +1 -1
- package/dist/settings/types.d.ts.map +1 -1
- package/dist/site/dashboard-layout.d.ts +33 -26
- package/dist/site/dashboard-layout.d.ts.map +1 -1
- package/dist/site/dashboard-layout.js +94 -39
- package/dist/site/dashboard-layout.js.map +1 -1
- package/dist/site/namespace.d.ts +5 -0
- package/dist/site/namespace.d.ts.map +1 -1
- package/dist/site/namespace.js +40 -1
- package/dist/site/namespace.js.map +1 -1
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +4 -0
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sessions.d.ts +2 -1
- package/dist/store/sessions.d.ts.map +1 -1
- package/dist/store/sessions.js +30 -12
- package/dist/store/sessions.js.map +1 -1
- package/dist/theme/font-family.d.ts +13 -0
- package/dist/theme/font-family.d.ts.map +1 -0
- package/dist/theme/font-family.js +21 -0
- package/dist/theme/font-family.js.map +1 -0
- package/dist/theme/scheme-tokens.d.ts +50 -0
- package/dist/theme/scheme-tokens.d.ts.map +1 -0
- package/dist/theme/scheme-tokens.js +240 -0
- package/dist/theme/scheme-tokens.js.map +1 -0
- package/dist/theme/site-data.d.ts +12 -0
- package/dist/theme/site-data.d.ts.map +1 -1
- package/dist/theme/site-data.js +15 -0
- package/dist/theme/site-data.js.map +1 -1
- package/dist/theme/themes.d.ts +74 -0
- package/dist/theme/themes.d.ts.map +1 -1
- package/dist/theme/themes.js +100 -9
- package/dist/theme/themes.js.map +1 -1
- package/dist/util/file-size.d.ts +3 -0
- package/dist/util/file-size.d.ts.map +1 -0
- package/dist/util/file-size.js +9 -0
- package/dist/util/file-size.js.map +1 -0
- package/dist/web/asset-routes.d.ts.map +1 -1
- package/dist/web/asset-routes.js +2 -1
- package/dist/web/asset-routes.js.map +1 -1
- package/dist/web/conversation.d.ts +15 -0
- package/dist/web/conversation.d.ts.map +1 -1
- package/dist/web/conversation.js +10 -3
- package/dist/web/conversation.js.map +1 -1
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +11 -13
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/embed.d.ts.map +1 -1
- package/dist/web/embed.js +4 -2
- package/dist/web/embed.js.map +1 -1
- package/dist/web/env.d.ts +2 -0
- package/dist/web/env.d.ts.map +1 -1
- package/dist/web/federation-routes.d.ts.map +1 -1
- package/dist/web/federation-routes.js +2 -1
- package/dist/web/federation-routes.js.map +1 -1
- package/dist/web/feed-routes.d.ts +4 -2
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +22 -4
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/feed-source.d.ts +1 -1
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +1 -1
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/font-routes.d.ts +13 -0
- package/dist/web/font-routes.d.ts.map +1 -0
- package/dist/web/font-routes.js +27 -0
- package/dist/web/font-routes.js.map +1 -0
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +12 -14
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/maintenance.d.ts.map +1 -1
- package/dist/web/maintenance.js +12 -8
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/manifest.d.ts +8 -5
- package/dist/web/manifest.d.ts.map +1 -1
- package/dist/web/manifest.js +10 -7
- package/dist/web/manifest.js.map +1 -1
- package/dist/web/markdown-conversation.d.ts +72 -0
- package/dist/web/markdown-conversation.d.ts.map +1 -0
- package/dist/web/markdown-conversation.js +63 -0
- package/dist/web/markdown-conversation.js.map +1 -0
- package/dist/web/markdown-page.d.ts +39 -0
- package/dist/web/markdown-page.d.ts.map +1 -1
- package/dist/web/markdown-page.js +5 -2
- package/dist/web/markdown-page.js.map +1 -1
- package/dist/web/markdown-representation.d.ts +31 -1
- package/dist/web/markdown-representation.d.ts.map +1 -1
- package/dist/web/markdown-representation.js +161 -8
- package/dist/web/markdown-representation.js.map +1 -1
- package/dist/web/negotiate.d.ts +3 -2
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +7 -3
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/oembed.d.ts +17 -3
- package/dist/web/oembed.d.ts.map +1 -1
- package/dist/web/oembed.js +68 -26
- package/dist/web/oembed.js.map +1 -1
- package/dist/web/render.d.ts +64 -5
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +185 -10
- package/dist/web/render.js.map +1 -1
- package/dist/web/request.d.ts +0 -3
- package/dist/web/request.d.ts.map +1 -1
- package/dist/web/request.js +0 -7
- package/dist/web/request.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +13 -7
- package/dist/web/routes.js.map +1 -1
- package/dist/web/search.d.ts +6 -3
- package/dist/web/search.d.ts.map +1 -1
- package/dist/web/search.js +20 -5
- package/dist/web/search.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +2 -1
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/status-pages.d.ts +19 -0
- package/dist/web/status-pages.d.ts.map +1 -0
- package/dist/web/status-pages.js +44 -0
- package/dist/web/status-pages.js.map +1 -0
- package/dist/webmention/fetch-public.d.ts +6 -0
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +6 -1
- package/dist/webmention/fetch-public.js.map +1 -1
- package/package.json +1 -1
- package/themes/default/layouts/404.md.njk +8 -0
- package/themes/default/layouts/410.md.njk +7 -0
- package/themes/default/layouts/500.md.njk +8 -0
- package/themes/default/layouts/503.md.njk +9 -0
- package/themes/default/layouts/base.njk +28 -16
- package/themes/default/layouts/page.njk +4 -8
- package/themes/default/partials/bio.njk +1 -1
- package/themes/default/partials/contact-form.njk +1 -1
- package/themes/default/partials/markdown-footer.md.njk +121 -3
- package/themes/default/partials/markdown-header.md.njk +102 -0
- package/themes/default/partials/markdown-reply.md.njk +31 -0
- package/themes/default/src/style.css +326 -15
- package/themes/default/static/style.css +489 -3
- package/themes/default/theme.json +23 -1
- package/dist/micropub/content.d.ts.map +0 -1
- package/dist/micropub/content.js.map +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{#
|
|
2
2
|
The end of every page's Markdown: the archive on a page that asked for one,
|
|
3
|
-
|
|
3
|
+
what the page is filed under, what links to it, a post's neighbours, the
|
|
4
|
+
conversation, where the comment and contact forms are, the feeds, then a
|
|
5
|
+
heading and the site's link lists.
|
|
4
6
|
|
|
5
7
|
`archiveMonths` is on the context only of a page whose front matter says
|
|
6
8
|
`archive: true`: every published post as `{ month, posts }`, newest month
|
|
@@ -8,16 +10,42 @@
|
|
|
8
10
|
`description` already on one line, written here in the shape a listing's
|
|
9
11
|
Markdown has.
|
|
10
12
|
|
|
13
|
+
`categories` and `tags` are a post's, each a `label` (the term as written)
|
|
14
|
+
and the `url` of its archive. `backlinks` are the site's posts and pages
|
|
15
|
+
that link to this one, newest first, each a `label`, a `url` and a `date`.
|
|
16
|
+
This theme leaves them off a homepage that is a page, as its front page
|
|
17
|
+
layout does; a site theme may print them there.
|
|
18
|
+
`feeds` are the feeds the HTML head advertises, each a `label` (the feed's
|
|
19
|
+
title), a `url`, a `format` (`RSS`, `Atom` or `JSON Feed`) and a `type`.
|
|
20
|
+
`conversation` is on a post or page that has been answered: what
|
|
21
|
+
`conversation.njk` draws, from the same reader, so nothing the HTML hides
|
|
22
|
+
is in it. Its `rsvps`, `likes`, `boosts` and `mentions` are people, each a
|
|
23
|
+
`label` and a `url` when there is one. Its `replies` are threaded as the
|
|
24
|
+
HTML's are, each a `key`, `source`, `author` (a `label` and a `url`), `url`,
|
|
25
|
+
`published`, `rsvp`, `text` (its words as Markdown) and its own `replies`,
|
|
26
|
+
or a `withheld` placeholder with only `replies`. `nest` indents a reply
|
|
27
|
+
under its list item. `commentForm` and `contactForm` are each the `url` of
|
|
28
|
+
the form on the HTML page, printed as it is, since a form needs HTML;
|
|
29
|
+
`commentForm` is absent while comments are closed. `webmention` is there
|
|
30
|
+
when the site takes webmentions.
|
|
31
|
+
`thread` is on a comment's own page, as the header describes it: its
|
|
32
|
+
`comment.replies` are threaded as a conversation's are, and `onPostUrl` is the
|
|
33
|
+
comment on the post's page.
|
|
34
|
+
`type` is `post`, `page`, `listing`, `comment` or `status` (a 404, 410,
|
|
35
|
+
500 or 503 page); a listing's newer and older pages are written by the CMS
|
|
36
|
+
above this, so only a post's `previous` and `next` are printed here.
|
|
37
|
+
|
|
11
38
|
`byline` is a post's author, a `label` and the `url` of their archive.
|
|
12
39
|
`navigation` is every item of every menu the site stores, each URL once,
|
|
13
40
|
each a `label` and a `url`; `menus` has them by menu name, as the HTML
|
|
14
|
-
does. `home`, `previous` and `next` are here too
|
|
15
|
-
|
|
41
|
+
does. `home`, `previous` and `next` are here too; the front matter carries
|
|
42
|
+
them as well, for a Markdown browser.
|
|
16
43
|
|
|
17
44
|
Each link is a line of its own, with its own words, so the same data can be
|
|
18
45
|
written as a Gemini link line. Nothing is printed when there is nothing to
|
|
19
46
|
link.
|
|
20
47
|
#}
|
|
48
|
+
{% import "partials/markdown-reply.md.njk" as conversing with context %}
|
|
21
49
|
{% for group in archiveMonths %}
|
|
22
50
|
## {{ group.month | escapeMarkdown }}
|
|
23
51
|
|
|
@@ -26,6 +54,96 @@
|
|
|
26
54
|
{% endfor %}
|
|
27
55
|
|
|
28
56
|
{% endfor %}
|
|
57
|
+
{% if categories.length or tags.length %}
|
|
58
|
+
## Filed under
|
|
59
|
+
|
|
60
|
+
{% for link in categories %}
|
|
61
|
+
- [Category: {{ link.label | escapeMarkdown }}]({{ link.url | markdownUrl }})
|
|
62
|
+
{% endfor %}
|
|
63
|
+
{% for link in tags %}
|
|
64
|
+
- [Tag: {{ link.label | escapeMarkdown }}]({{ link.url | markdownUrl }})
|
|
65
|
+
{% endfor %}
|
|
66
|
+
|
|
67
|
+
{% endif %}
|
|
68
|
+
{% if backlinks.length and not staticFrontPage %}
|
|
69
|
+
## Linked from
|
|
70
|
+
|
|
71
|
+
{% for entry in backlinks %}
|
|
72
|
+
- [{{ (((entry.date + " ") if entry.date) + entry.label) | escapeMarkdown }}]({{ entry.url | markdownUrl }})
|
|
73
|
+
{% endfor %}
|
|
74
|
+
|
|
75
|
+
{% endif %}
|
|
76
|
+
{% if type == "post" and (previous or next) %}
|
|
77
|
+
## More posts
|
|
78
|
+
|
|
79
|
+
{% if previous %}
|
|
80
|
+
- [Previous: {{ previous.label | escapeMarkdown }}]({{ previous.url | markdownUrl }})
|
|
81
|
+
{% endif %}
|
|
82
|
+
{% if next %}
|
|
83
|
+
- [Next: {{ next.label | escapeMarkdown }}]({{ next.url | markdownUrl }})
|
|
84
|
+
{% endif %}
|
|
85
|
+
|
|
86
|
+
{% endif %}
|
|
87
|
+
{% if conversation %}
|
|
88
|
+
{% for group in conversation.rsvps.concat([{ label: "Likes", people: conversation.likes }, { label: "Boosts", people: conversation.boosts }, { label: "Mentions", people: conversation.mentions }]) %}
|
|
89
|
+
{% if group.people.length %}
|
|
90
|
+
## {{ group.label | escapeMarkdown }} ({{ group.people.length }})
|
|
91
|
+
|
|
92
|
+
{% for person in group.people %}
|
|
93
|
+
- {{ conversing.named(person) }}
|
|
94
|
+
{% endfor %}
|
|
95
|
+
|
|
96
|
+
{% endif %}
|
|
97
|
+
{% endfor %}
|
|
98
|
+
{% if conversation.replies.length %}
|
|
99
|
+
## {{ conversation.counts.replies | plural({ one: "One reply", other: "# replies" }, "en") }}
|
|
100
|
+
|
|
101
|
+
{% for entry in conversation.replies %}
|
|
102
|
+
{{ conversing.reply(entry) | trim }}
|
|
103
|
+
|
|
104
|
+
{% endfor %}
|
|
105
|
+
{% if not commentForm %}
|
|
106
|
+
Comments are closed.
|
|
107
|
+
|
|
108
|
+
{% endif %}
|
|
109
|
+
{% endif %}
|
|
110
|
+
{% endif %}
|
|
111
|
+
{% if thread %}
|
|
112
|
+
{% if thread.comment.replies.length %}
|
|
113
|
+
## Replies
|
|
114
|
+
|
|
115
|
+
{% for entry in thread.comment.replies %}
|
|
116
|
+
{{ conversing.reply(entry) | trim }}
|
|
117
|
+
|
|
118
|
+
{% endfor %}
|
|
119
|
+
{% endif %}
|
|
120
|
+
[The whole conversation on {{ thread.post.label | escapeMarkdown }}]({{ thread.onPostUrl | markdownUrl }})
|
|
121
|
+
|
|
122
|
+
{% endif %}
|
|
123
|
+
{% if commentForm %}
|
|
124
|
+
## Leave a comment
|
|
125
|
+
|
|
126
|
+
[Leave a comment on the web page]({{ commentForm.url }})
|
|
127
|
+
|
|
128
|
+
{% if webmention %}
|
|
129
|
+
Or reply from your own site and send a [webmention](https://indieweb.org/Webmention).
|
|
130
|
+
|
|
131
|
+
{% endif %}
|
|
132
|
+
{% endif %}
|
|
133
|
+
{% if contactForm %}
|
|
134
|
+
## Send a message
|
|
135
|
+
|
|
136
|
+
[Send a message on the web page]({{ contactForm.url }})
|
|
137
|
+
|
|
138
|
+
{% endif %}
|
|
139
|
+
{% if feeds.length %}
|
|
140
|
+
## Feeds
|
|
141
|
+
|
|
142
|
+
{% for feed in feeds %}
|
|
143
|
+
- [{{ (feed.label + " (" + feed.format + ")") | escapeMarkdown }}]({{ feed.url | markdownUrl }})
|
|
144
|
+
{% endfor %}
|
|
145
|
+
|
|
146
|
+
{% endif %}
|
|
29
147
|
{% if byline or navigation.length %}
|
|
30
148
|
## {{ site.title | escapeMarkdown }}
|
|
31
149
|
|
|
@@ -15,11 +15,91 @@
|
|
|
15
15
|
and a `url`). `staticFrontPage` is true on a homepage that is a page. This
|
|
16
16
|
theme prints the bio there only when the homepage lists posts, as its HTML
|
|
17
17
|
does (decision-45); a site theme may print it on a static homepage too.
|
|
18
|
+
|
|
19
|
+
A post then says what kind it is, with the data its HTML partials read.
|
|
20
|
+
`event` is an event's `start`, its `end` and its `location`, printed in the
|
|
21
|
+
site's zone as `event.njk` prints them. `cites` are what it answers or cites,
|
|
22
|
+
each a `verb`, a `url` and a `name`, as `reply-context.njk` and
|
|
23
|
+
`citations.njk` name them, with an `author` or `site`, an event's
|
|
24
|
+
`startDate` (in `startZone` when it has one), a `published` date, a
|
|
25
|
+
`location`, and a silo `copy`, each only when it is known. `review` is the
|
|
26
|
+
HTML's review with its words in plain text: `link`, `about`, `by`, `uid`
|
|
27
|
+
and `details`. `location` is where the post was written, only as far as
|
|
28
|
+
Settings > Privacy shares it, in the shape `location.njk` reads. `lang` is
|
|
29
|
+
the post's own language, which its dates are written in.
|
|
30
|
+
|
|
31
|
+
Then the post's recording and photos, in the order its HTML draws them.
|
|
32
|
+
`enclosure` is the object `recording.njk` reads: `player` (`audio` or
|
|
33
|
+
`video`), `url`, `type`, `length` in bytes (printed through `fileSize`), a
|
|
34
|
+
`transcript` with `url` and `captions`, and `alternates`, each a `url` and a
|
|
35
|
+
`type` with a `title` and a `length` when the front matter gives them.
|
|
36
|
+
`photos` are each a `url` and an `alt`, the alt text `photos.njk` prints.
|
|
37
|
+
|
|
38
|
+
`thread` is on a comment's own page, the chain `layouts/comment.njk` draws:
|
|
39
|
+
`post` (a `label`, a `url`, an `author` with a `label` and a `url`, a
|
|
40
|
+
`date` and a plain-text `summary`), then `ancestors`, the comments it
|
|
41
|
+
answers from the top of the thread down, each a reply as the footer's
|
|
42
|
+
conversation has one or `null` for one a reader may not see, then the
|
|
43
|
+
`comment` itself. The comment's words are the page's body, below this.
|
|
44
|
+
`quote` writes Markdown as a blockquote.
|
|
18
45
|
#}
|
|
46
|
+
{% import "partials/markdown-reply.md.njk" as conversing with context %}
|
|
19
47
|
{% if title %}
|
|
20
48
|
# {{ title | escapeMarkdown }}
|
|
21
49
|
|
|
22
50
|
{% endif %}
|
|
51
|
+
{% if event %}
|
|
52
|
+
When: {{ event.start | date("datetime", none, lang) }}{{ (" to " + (event.end | date("datetime", none, lang))) if event.end }}
|
|
53
|
+
|
|
54
|
+
{% if event.location %}
|
|
55
|
+
Where: {{ ("Online at [" + (event.location.url | host | escapeMarkdown) + "](" + (event.location.url | markdownUrl) + ")") if event.location.kind == "virtual" else (event.location.name | escapeMarkdown) }}
|
|
56
|
+
|
|
57
|
+
{% endif %}
|
|
58
|
+
{% endif %}
|
|
59
|
+
{% for cite in cites %}
|
|
60
|
+
{{ cite.verb }} [{{ cite.name | escapeMarkdown }}]({{ cite.url | markdownUrl }}){{ (" by " + (cite.author | escapeMarkdown)) if cite.author }}{{ (" · " + (cite.site | escapeMarkdown)) if cite.site }}{{ (", " + (cite.startDate | date("readable", cite.startZone, lang))) if cite.startDate }}{{ (", " + (cite.published | date("readable", none, lang))) if cite.published }}{{ (", " + (cite.location | escapeMarkdown)) if cite.location }}
|
|
61
|
+
|
|
62
|
+
{% if cite.copy %}
|
|
63
|
+
Also in reply to [its copy on {{ cite.copy | host | escapeMarkdown }}]({{ cite.copy }})
|
|
64
|
+
|
|
65
|
+
{% endif %}
|
|
66
|
+
{% endfor %}
|
|
67
|
+
{% if review %}
|
|
68
|
+
Review of {{ ("[" + (review.item.name | escapeMarkdown) + "](" + (review.link | markdownUrl) + ")") if review.link else (review.item.name | escapeMarkdown) }}{{ (" (" + (review.about | join(", ") | escapeMarkdown) + ")") if review.about.length }}{{ (", " + (review.by | escapeMarkdown)) if review.by }}{{ (", " + (review.uid | escapeMarkdown)) if review.uid }}
|
|
69
|
+
|
|
70
|
+
{% if review.details.length %}
|
|
71
|
+
{{ review.details | join(" ") | escapeMarkdown }}
|
|
72
|
+
|
|
73
|
+
{% endif %}
|
|
74
|
+
{% if review.rating %}
|
|
75
|
+
Rated {{ review.rating }} out of {{ review.best }}
|
|
76
|
+
|
|
77
|
+
{% endif %}
|
|
78
|
+
{% endif %}
|
|
79
|
+
{% if location %}
|
|
80
|
+
Location: {% for word in location.words %}{{ word.text | escapeMarkdown }}{{ ", " if not loop.last }}{% endfor %}{{ (location.geo.latitude + ", " + location.geo.longitude) if location.geo and not location.words.length }}
|
|
81
|
+
|
|
82
|
+
{% endif %}
|
|
83
|
+
{% if enclosure %}
|
|
84
|
+
[Download the {{ "video" if enclosure.player == "video" else "recording" }}]({{ enclosure.url | markdownUrl }}) ({{ enclosure.type }}, {{ enclosure.length | fileSize }})
|
|
85
|
+
|
|
86
|
+
{% if enclosure.transcript %}
|
|
87
|
+
[{{ "Captions" if enclosure.transcript.captions else "Transcript" }}]({{ enclosure.transcript.url | markdownUrl }})
|
|
88
|
+
|
|
89
|
+
{% endif %}
|
|
90
|
+
{% if enclosure.alternates.length %}
|
|
91
|
+
Other versions:
|
|
92
|
+
|
|
93
|
+
{% for alternate in enclosure.alternates %}
|
|
94
|
+
- [{{ (alternate.title or alternate.type) | escapeMarkdown }}]({{ alternate.url | markdownUrl }}){{ (" (" + ([alternate.type if alternate.title, alternate.length | fileSize] | select | join(", ")) + ")") if alternate.title or alternate.length }}
|
|
95
|
+
{% endfor %}
|
|
96
|
+
|
|
97
|
+
{% endif %}
|
|
98
|
+
{% endif %}
|
|
99
|
+
{% for photo in photos %}
|
|
100
|
+

|
|
101
|
+
|
|
102
|
+
{% endfor %}
|
|
23
103
|
{% if bio and not staticFrontPage %}
|
|
24
104
|
{% if bio.note %}
|
|
25
105
|
{{ bio.note | escapeMarkdown }}
|
|
@@ -29,3 +109,25 @@
|
|
|
29
109
|
- [{{ link.label | escapeMarkdown }}]({{ link.url | markdownUrl }})
|
|
30
110
|
{% endfor %}
|
|
31
111
|
{% endif %}
|
|
112
|
+
{% if thread %}
|
|
113
|
+
On [{{ thread.post.label | escapeMarkdown }}]({{ thread.post.url | markdownUrl }}){{ (" by " + conversing.named(thread.post.author)) if thread.post.author }}{{ (", " + (thread.post.date | date)) if thread.post.date }}
|
|
114
|
+
|
|
115
|
+
{% if thread.post.summary %}
|
|
116
|
+
{{ thread.post.summary | escapeMarkdown | quote }}
|
|
117
|
+
|
|
118
|
+
{% endif %}
|
|
119
|
+
{% for step in thread.ancestors %}
|
|
120
|
+
{% if step %}
|
|
121
|
+
In reply to {{ conversing.said(step) }}
|
|
122
|
+
|
|
123
|
+
{% if step.text %}
|
|
124
|
+
{{ step.text | quote }}
|
|
125
|
+
|
|
126
|
+
{% endif %}
|
|
127
|
+
{% else %}
|
|
128
|
+
In reply to a comment that is no longer shown.
|
|
129
|
+
|
|
130
|
+
{% endif %}
|
|
131
|
+
{% endfor %}
|
|
132
|
+
{{ conversing.said(thread.comment) }}
|
|
133
|
+
{% endif %}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{#
|
|
2
|
+
The macros the Markdown header and footer write a conversation with,
|
|
3
|
+
imported `with context` so `markdownUrl` gives a page of the site its `.md`.
|
|
4
|
+
|
|
5
|
+
`named(person)` is a person as a link, or their name when they have no URL.
|
|
6
|
+
`said(entry)` is a reply's byline: its author, its date linked to where it
|
|
7
|
+
can be read, and where it came from when that was not the comment form.
|
|
8
|
+
`reply(entry)` is a reply as a list item, its words and its own replies
|
|
9
|
+
indented under it, or the placeholder for a hidden one.
|
|
10
|
+
#}
|
|
11
|
+
{% macro named(person) %}{{ ("[" + (person.label | escapeMarkdown) + "](" + (person.url | markdownUrl) + ")") if person.url else (person.label | escapeMarkdown) }}{% endmacro %}
|
|
12
|
+
{% macro said(entry) %}{{ named(entry.author) }}, {{ ("[" + (entry.published | date) + "](" + (entry.url | markdownUrl) + ")") if entry.url else (entry.published | date) }}{{ ", via webmention" if entry.source == "webmention" }}{{ ", via the fediverse" if entry.source == "activitypub" }}{% endmacro %}
|
|
13
|
+
{% macro reply(entry) %}
|
|
14
|
+
{% if entry.withheld %}
|
|
15
|
+
- This comment is no longer shown.
|
|
16
|
+
{% else %}
|
|
17
|
+
- {{ said(entry) }}
|
|
18
|
+
{% if entry.rsvp %}
|
|
19
|
+
|
|
20
|
+
{{ entry.rsvp.label | escapeMarkdown }}
|
|
21
|
+
{% endif %}
|
|
22
|
+
{% if entry.text %}
|
|
23
|
+
|
|
24
|
+
{{ entry.text | nest(2) }}
|
|
25
|
+
{% endif %}
|
|
26
|
+
{% endif %}
|
|
27
|
+
{% for child in entry.replies %}
|
|
28
|
+
|
|
29
|
+
{{ reply(child) | trim | nest(2) }}
|
|
30
|
+
{% endfor %}
|
|
31
|
+
{% endmacro %}
|