@geekity/cms 0.3.0 → 0.5.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 +2217 -214
- package/admin/components/fields.njk +165 -0
- package/admin/layouts/base.njk +1 -1
- package/admin/layouts/settings-page.njk +26 -0
- package/admin/layouts/shell.njk +17 -3
- package/admin/pages/account/forgot.njk +47 -0
- package/admin/pages/account/login.njk +26 -0
- package/admin/pages/account/reset.njk +38 -0
- package/admin/pages/account/setup.njk +28 -0
- package/admin/pages/appearance/themes.njk +69 -0
- package/admin/pages/comments/all.njk +133 -0
- package/admin/{layouts/dashboard.njk → pages/dashboard/home.njk} +8 -15
- package/admin/{layouts/document-conflict.njk → pages/documents/conflict.njk} +1 -0
- package/admin/{layouts/document-editor.njk → pages/documents/editor.njk} +75 -59
- package/admin/{layouts/document-list.njk → pages/documents/list.njk} +19 -2
- package/admin/pages/documents/taxonomy.njk +95 -0
- package/admin/pages/federation/followers.njk +238 -0
- package/admin/pages/federation/settings.njk +77 -0
- package/admin/pages/media/library.njk +160 -0
- package/admin/pages/messages/all.njk +110 -0
- package/admin/pages/navigation/menus.njk +129 -0
- package/admin/{layouts → pages}/placeholder.njk +5 -1
- package/admin/pages/settings/discussion.njk +99 -0
- package/admin/pages/settings/email.njk +203 -0
- package/admin/pages/settings/general.njk +29 -0
- package/admin/pages/settings/permalinks.njk +50 -0
- package/admin/pages/settings/reading.njk +64 -0
- package/admin/pages/tools/content-index.njk +89 -0
- package/admin/pages/users/edit.njk +239 -0
- package/admin/pages/users/list.njk +51 -0
- package/admin/pages/users/new.njk +41 -0
- package/admin/static/admin.css +558 -3
- package/admin/static/copy.js +52 -0
- package/admin/static/editor.js +16 -16
- package/admin/static/slug.js +61 -0
- package/dist/access-log.d.ts +44 -0
- package/dist/access-log.d.ts.map +1 -0
- package/dist/access-log.js +71 -0
- package/dist/access-log.js.map +1 -0
- package/dist/admin/accounts.d.ts +413 -0
- package/dist/admin/accounts.d.ts.map +1 -0
- package/dist/admin/accounts.js +680 -0
- package/dist/admin/accounts.js.map +1 -0
- package/dist/admin/appearance.d.ts +80 -0
- package/dist/admin/appearance.d.ts.map +1 -0
- package/dist/admin/appearance.js +136 -0
- package/dist/admin/appearance.js.map +1 -0
- package/dist/admin/comments.d.ts +90 -0
- package/dist/admin/comments.d.ts.map +1 -0
- package/dist/admin/comments.js +244 -0
- package/dist/admin/comments.js.map +1 -0
- package/dist/admin/credentials.d.ts +26 -2
- package/dist/admin/credentials.d.ts.map +1 -1
- package/dist/admin/credentials.js +35 -2
- package/dist/admin/credentials.js.map +1 -1
- package/dist/admin/documents.d.ts +117 -10
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +328 -41
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/federation.d.ts +161 -50
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +235 -93
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/formatting.d.ts +20 -0
- package/dist/admin/formatting.d.ts.map +1 -0
- package/dist/admin/formatting.js +72 -0
- package/dist/admin/formatting.js.map +1 -0
- package/dist/admin/headers.d.ts +65 -0
- package/dist/admin/headers.d.ts.map +1 -0
- package/dist/admin/headers.js +104 -0
- package/dist/admin/headers.js.map +1 -0
- package/dist/admin/index.d.ts +38 -12
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +25 -7
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/media.d.ts +168 -0
- package/dist/admin/media.d.ts.map +1 -0
- package/dist/admin/media.js +295 -0
- package/dist/admin/media.js.map +1 -0
- package/dist/admin/menu.d.ts +79 -0
- package/dist/admin/menu.d.ts.map +1 -0
- package/dist/admin/menu.js +143 -0
- package/dist/admin/menu.js.map +1 -0
- package/dist/admin/messages.d.ts +80 -0
- package/dist/admin/messages.d.ts.map +1 -0
- package/dist/admin/messages.js +152 -0
- package/dist/admin/messages.js.map +1 -0
- package/dist/admin/navigation.d.ts +155 -0
- package/dist/admin/navigation.d.ts.map +1 -0
- package/dist/admin/navigation.js +292 -0
- package/dist/admin/navigation.js.map +1 -0
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +31 -7
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/recovery.d.ts +92 -0
- package/dist/admin/recovery.d.ts.map +1 -0
- package/dist/admin/recovery.js +229 -0
- package/dist/admin/recovery.js.map +1 -0
- package/dist/admin/routes.d.ts +0 -20
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +164 -105
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/session.d.ts +17 -3
- package/dist/admin/session.d.ts.map +1 -1
- package/dist/admin/session.js +19 -5
- package/dist/admin/session.js.map +1 -1
- package/dist/admin/settings-discussion.d.ts +37 -0
- package/dist/admin/settings-discussion.d.ts.map +1 -0
- package/dist/admin/settings-discussion.js +117 -0
- package/dist/admin/settings-discussion.js.map +1 -0
- package/dist/admin/settings-email.d.ts +54 -0
- package/dist/admin/settings-email.d.ts.map +1 -0
- package/dist/admin/settings-email.js +189 -0
- package/dist/admin/settings-email.js.map +1 -0
- package/dist/admin/settings-federation.d.ts +48 -0
- package/dist/admin/settings-federation.d.ts.map +1 -0
- package/dist/admin/settings-federation.js +123 -0
- package/dist/admin/settings-federation.js.map +1 -0
- package/dist/admin/settings-general.d.ts +12 -0
- package/dist/admin/settings-general.d.ts.map +1 -0
- package/dist/admin/settings-general.js +48 -0
- package/dist/admin/settings-general.js.map +1 -0
- package/dist/admin/settings-page.d.ts +119 -0
- package/dist/admin/settings-page.d.ts.map +1 -0
- package/dist/admin/settings-page.js +132 -0
- package/dist/admin/settings-page.js.map +1 -0
- package/dist/admin/settings-pages.d.ts +30 -0
- package/dist/admin/settings-pages.d.ts.map +1 -0
- package/dist/admin/settings-pages.js +43 -0
- package/dist/admin/settings-pages.js.map +1 -0
- package/dist/admin/settings-permalinks.d.ts +16 -0
- package/dist/admin/settings-permalinks.d.ts.map +1 -0
- package/dist/admin/settings-permalinks.js +32 -0
- package/dist/admin/settings-permalinks.js.map +1 -0
- package/dist/admin/settings-reading.d.ts +34 -0
- package/dist/admin/settings-reading.d.ts.map +1 -0
- package/dist/admin/settings-reading.js +49 -0
- package/dist/admin/settings-reading.js.map +1 -0
- package/dist/admin/settings.d.ts +339 -96
- package/dist/admin/settings.d.ts.map +1 -1
- package/dist/admin/settings.js +600 -308
- package/dist/admin/settings.js.map +1 -1
- package/dist/admin/store.d.ts +606 -152
- package/dist/admin/store.d.ts.map +1 -1
- package/dist/admin/store.js +863 -268
- package/dist/admin/store.js.map +1 -1
- package/dist/admin/taxonomy.d.ts +114 -0
- package/dist/admin/taxonomy.d.ts.map +1 -0
- package/dist/admin/taxonomy.js +289 -0
- package/dist/admin/taxonomy.js.map +1 -0
- package/dist/admin/templates.d.ts +46 -14
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +46 -14
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/throttle.d.ts +84 -0
- package/dist/admin/throttle.d.ts.map +1 -0
- package/dist/admin/throttle.js +143 -0
- package/dist/admin/throttle.js.map +1 -0
- package/dist/admin/tools.d.ts +111 -0
- package/dist/admin/tools.d.ts.map +1 -0
- package/dist/admin/tools.js +182 -0
- package/dist/admin/tools.js.map +1 -0
- package/dist/admin/uploads.d.ts +28 -2
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +43 -4
- package/dist/admin/uploads.js.map +1 -1
- package/dist/admin/users.d.ts +100 -13
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +412 -39
- package/dist/admin/users.js.map +1 -1
- package/dist/cache.d.ts +141 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +207 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +14 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +429 -21
- package/dist/cli.js.map +1 -1
- package/dist/comments/akismet.d.ts +130 -0
- package/dist/comments/akismet.d.ts.map +1 -0
- package/dist/comments/akismet.js +274 -0
- package/dist/comments/akismet.js.map +1 -0
- package/dist/comments/conversation.d.ts +29 -0
- package/dist/comments/conversation.d.ts.map +1 -0
- package/dist/comments/conversation.js +60 -0
- package/dist/comments/conversation.js.map +1 -0
- package/dist/comments/form.d.ts +123 -0
- package/dist/comments/form.d.ts.map +1 -0
- package/dist/comments/form.js +79 -0
- package/dist/comments/form.js.map +1 -0
- package/dist/comments/index.d.ts +16 -0
- package/dist/comments/index.d.ts.map +1 -0
- package/dist/comments/index.js +10 -0
- package/dist/comments/index.js.map +1 -0
- package/dist/comments/markdown.d.ts +8 -0
- package/dist/comments/markdown.d.ts.map +1 -0
- package/dist/comments/markdown.js +85 -0
- package/dist/comments/markdown.js.map +1 -0
- package/dist/comments/moderate.d.ts +71 -0
- package/dist/comments/moderate.d.ts.map +1 -0
- package/dist/comments/moderate.js +88 -0
- package/dist/comments/moderate.js.map +1 -0
- package/dist/comments/policy.d.ts +57 -0
- package/dist/comments/policy.d.ts.map +1 -0
- package/dist/comments/policy.js +80 -0
- package/dist/comments/policy.js.map +1 -0
- package/dist/comments/records.d.ts +266 -0
- package/dist/comments/records.d.ts.map +1 -0
- package/dist/comments/records.js +487 -0
- package/dist/comments/records.js.map +1 -0
- package/dist/comments/routes.d.ts +60 -0
- package/dist/comments/routes.d.ts.map +1 -0
- package/dist/comments/routes.js +212 -0
- package/dist/comments/routes.js.map +1 -0
- package/dist/comments/submission.d.ts +297 -0
- package/dist/comments/submission.d.ts.map +1 -0
- package/dist/comments/submission.js +280 -0
- package/dist/comments/submission.js.map +1 -0
- package/dist/comments/viewer.d.ts +21 -0
- package/dist/comments/viewer.d.ts.map +1 -0
- package/dist/comments/viewer.js +45 -0
- package/dist/comments/viewer.js.map +1 -0
- package/dist/config.d.ts +225 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +121 -6
- package/dist/config.js.map +1 -1
- package/dist/contact/delivery.d.ts +60 -0
- package/dist/contact/delivery.d.ts.map +1 -0
- package/dist/contact/delivery.js +87 -0
- package/dist/contact/delivery.js.map +1 -0
- package/dist/contact/form.d.ts +130 -0
- package/dist/contact/form.d.ts.map +1 -0
- package/dist/contact/form.js +163 -0
- package/dist/contact/form.js.map +1 -0
- package/dist/contact/index.d.ts +17 -0
- package/dist/contact/index.d.ts.map +1 -0
- package/dist/contact/index.js +13 -0
- package/dist/contact/index.js.map +1 -0
- package/dist/contact/records.d.ts +124 -0
- package/dist/contact/records.d.ts.map +1 -0
- package/dist/contact/records.js +218 -0
- package/dist/contact/records.js.map +1 -0
- package/dist/contact/routes.d.ts +17 -0
- package/dist/contact/routes.d.ts.map +1 -0
- package/dist/contact/routes.js +127 -0
- package/dist/contact/routes.js.map +1 -0
- package/dist/contact/submission.d.ts +103 -0
- package/dist/contact/submission.d.ts.map +1 -0
- package/dist/contact/submission.js +166 -0
- package/dist/contact/submission.js.map +1 -0
- package/dist/content/document.d.ts +7 -2
- package/dist/content/document.d.ts.map +1 -1
- package/dist/content/document.js +1 -0
- package/dist/content/document.js.map +1 -1
- package/dist/content/index.d.ts +7 -2
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +4 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +24 -2
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +11 -4
- package/dist/content/parser.js.map +1 -1
- package/dist/content/save.d.ts +5 -0
- package/dist/content/save.d.ts.map +1 -1
- package/dist/content/save.js +44 -1
- package/dist/content/save.js.map +1 -1
- package/dist/content/schedule.d.ts +125 -0
- package/dist/content/schedule.d.ts.map +1 -0
- package/dist/content/schedule.js +207 -0
- package/dist/content/schedule.js.map +1 -0
- package/dist/content/search.d.ts +64 -0
- package/dist/content/search.d.ts.map +1 -0
- package/dist/content/search.js +136 -0
- package/dist/content/search.js.map +1 -0
- package/dist/content/store.d.ts +220 -7
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +392 -67
- package/dist/content/store.js.map +1 -1
- package/dist/content/sync.d.ts +7 -1
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +18 -10
- package/dist/content/sync.js.map +1 -1
- package/dist/content/time.d.ts +56 -0
- package/dist/content/time.d.ts.map +1 -0
- package/dist/content/time.js +141 -0
- package/dist/content/time.js.map +1 -0
- package/dist/content/writer.d.ts.map +1 -1
- package/dist/content/writer.js +3 -0
- package/dist/content/writer.js.map +1 -1
- package/dist/env.d.ts +70 -5
- package/dist/env.d.ts.map +1 -1
- package/dist/federation/actor.d.ts +95 -41
- package/dist/federation/actor.d.ts.map +1 -1
- package/dist/federation/actor.js +180 -53
- package/dist/federation/actor.js.map +1 -1
- package/dist/federation/article.d.ts +44 -17
- package/dist/federation/article.d.ts.map +1 -1
- package/dist/federation/article.js +98 -46
- package/dist/federation/article.js.map +1 -1
- package/dist/federation/delivery.d.ts +63 -15
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +154 -80
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts +22 -17
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +98 -77
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/followers.d.ts +3 -2
- package/dist/federation/followers.d.ts.map +1 -1
- package/dist/federation/followers.js +6 -5
- package/dist/federation/followers.js.map +1 -1
- package/dist/federation/import-wordpress.d.ts +128 -0
- package/dist/federation/import-wordpress.d.ts.map +1 -0
- package/dist/federation/import-wordpress.js +426 -0
- package/dist/federation/import-wordpress.js.map +1 -0
- package/dist/federation/inbox.d.ts +36 -13
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +120 -49
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/index.d.ts +22 -10
- package/dist/federation/index.d.ts.map +1 -1
- package/dist/federation/index.js +13 -8
- package/dist/federation/index.js.map +1 -1
- package/dist/federation/keys.d.ts +98 -20
- package/dist/federation/keys.d.ts.map +1 -1
- package/dist/federation/keys.js +269 -39
- package/dist/federation/keys.js.map +1 -1
- package/dist/federation/mount.d.ts +46 -10
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +300 -28
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/paths.d.ts +23 -35
- package/dist/federation/paths.d.ts.map +1 -1
- package/dist/federation/paths.js +26 -39
- package/dist/federation/paths.js.map +1 -1
- package/dist/federation/records.d.ts +223 -0
- package/dist/federation/records.d.ts.map +1 -0
- package/dist/federation/records.js +506 -0
- package/dist/federation/records.js.map +1 -0
- package/dist/federation/relays.d.ts +114 -0
- package/dist/federation/relays.d.ts.map +1 -0
- package/dist/federation/relays.js +290 -0
- package/dist/federation/relays.js.map +1 -0
- package/dist/federation/replies.d.ts +80 -0
- package/dist/federation/replies.d.ts.map +1 -0
- package/dist/federation/replies.js +166 -0
- package/dist/federation/replies.js.map +1 -0
- package/dist/federation/wordpress.d.ts +131 -0
- package/dist/federation/wordpress.d.ts.map +1 -0
- package/dist/federation/wordpress.js +341 -0
- package/dist/federation/wordpress.js.map +1 -0
- package/dist/files/atomic.d.ts +103 -0
- package/dist/files/atomic.d.ts.map +1 -0
- package/dist/files/atomic.js +150 -0
- package/dist/files/atomic.js.map +1 -0
- package/dist/files/index.d.ts +3 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +2 -0
- package/dist/files/index.js.map +1 -0
- package/dist/forms/protection.d.ts +85 -0
- package/dist/forms/protection.d.ts.map +1 -0
- package/dist/forms/protection.js +116 -0
- package/dist/forms/protection.js.map +1 -0
- package/dist/images/icons.d.ts +59 -0
- package/dist/images/icons.d.ts.map +1 -0
- package/dist/images/icons.js +131 -0
- package/dist/images/icons.js.map +1 -0
- package/dist/images/index.d.ts +7 -0
- package/dist/images/index.d.ts.map +1 -0
- package/dist/images/index.js +4 -0
- package/dist/images/index.js.map +1 -0
- package/dist/images/markup.d.ts +47 -0
- package/dist/images/markup.d.ts.map +1 -0
- package/dist/images/markup.js +175 -0
- package/dist/images/markup.js.map +1 -0
- package/dist/images/paths.d.ts +34 -0
- package/dist/images/paths.d.ts.map +1 -0
- package/dist/images/paths.js +41 -0
- package/dist/images/paths.js.map +1 -0
- package/dist/images/variants.d.ts +104 -0
- package/dist/images/variants.d.ts.map +1 -0
- package/dist/images/variants.js +320 -0
- package/dist/images/variants.js.map +1 -0
- package/dist/index.d.ts +123 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +344 -25
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +18 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +34 -3
- package/dist/init.js.map +1 -1
- package/dist/mail/brevo.d.ts +35 -0
- package/dist/mail/brevo.d.ts.map +1 -0
- package/dist/mail/brevo.js +85 -0
- package/dist/mail/brevo.js.map +1 -0
- package/dist/mail/credentials.d.ts +62 -0
- package/dist/mail/credentials.d.ts.map +1 -0
- package/dist/mail/credentials.js +86 -0
- package/dist/mail/credentials.js.map +1 -0
- package/dist/mail/index.d.ts +15 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +8 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/memory.d.ts +35 -0
- package/dist/mail/memory.d.ts.map +1 -0
- package/dist/mail/memory.js +29 -0
- package/dist/mail/memory.js.map +1 -0
- package/dist/mail/provider.d.ts +80 -0
- package/dist/mail/provider.d.ts.map +1 -0
- package/dist/mail/provider.js +23 -0
- package/dist/mail/provider.js.map +1 -0
- package/dist/mail/service.d.ts +156 -0
- package/dist/mail/service.d.ts.map +1 -0
- package/dist/mail/service.js +265 -0
- package/dist/mail/service.js.map +1 -0
- package/dist/mail/smtp.d.ts +39 -0
- package/dist/mail/smtp.d.ts.map +1 -0
- package/dist/mail/smtp.js +58 -0
- package/dist/mail/smtp.js.map +1 -0
- package/dist/mail/templates.d.ts +91 -0
- package/dist/mail/templates.d.ts.map +1 -0
- package/dist/mail/templates.js +69 -0
- package/dist/mail/templates.js.map +1 -0
- package/dist/notifications/comments.d.ts +66 -0
- package/dist/notifications/comments.d.ts.map +1 -0
- package/dist/notifications/comments.js +151 -0
- package/dist/notifications/comments.js.map +1 -0
- package/dist/notifications/digest.d.ts +135 -0
- package/dist/notifications/digest.d.ts.map +1 -0
- package/dist/notifications/digest.js +287 -0
- package/dist/notifications/digest.js.map +1 -0
- package/dist/notifications/index.d.ts +13 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +8 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/links.d.ts +60 -0
- package/dist/notifications/links.d.ts.map +1 -0
- package/dist/notifications/links.js +63 -0
- package/dist/notifications/links.js.map +1 -0
- package/dist/notifications/optouts.d.ts +48 -0
- package/dist/notifications/optouts.d.ts.map +1 -0
- package/dist/notifications/optouts.js +93 -0
- package/dist/notifications/optouts.js.map +1 -0
- package/dist/notifications/preferences.d.ts +158 -0
- package/dist/notifications/preferences.d.ts.map +1 -0
- package/dist/notifications/preferences.js +195 -0
- package/dist/notifications/preferences.js.map +1 -0
- package/dist/notifications/routes.d.ts +28 -0
- package/dist/notifications/routes.d.ts.map +1 -0
- package/dist/notifications/routes.js +184 -0
- package/dist/notifications/routes.js.map +1 -0
- package/dist/notifications/tokens.d.ts +60 -0
- package/dist/notifications/tokens.d.ts.map +1 -0
- package/dist/notifications/tokens.js +125 -0
- package/dist/notifications/tokens.js.map +1 -0
- package/dist/notify.d.ts +84 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +149 -0
- package/dist/notify.js.map +1 -0
- package/dist/web/archive.d.ts +49 -0
- package/dist/web/archive.d.ts.map +1 -0
- package/dist/web/archive.js +59 -0
- package/dist/web/archive.js.map +1 -0
- package/dist/web/assets.d.ts +6 -5
- package/dist/web/assets.d.ts.map +1 -1
- package/dist/web/assets.js +5 -7
- package/dist/web/assets.js.map +1 -1
- package/dist/web/authors.d.ts +143 -0
- package/dist/web/authors.d.ts.map +1 -0
- package/dist/web/authors.js +178 -0
- package/dist/web/authors.js.map +1 -0
- package/dist/web/comments.d.ts +60 -0
- package/dist/web/comments.d.ts.map +1 -0
- package/dist/web/comments.js +207 -0
- package/dist/web/comments.js.map +1 -0
- package/dist/web/context.d.ts +162 -28
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +123 -26
- package/dist/web/context.js.map +1 -1
- package/dist/web/conversation.d.ts +209 -0
- package/dist/web/conversation.d.ts.map +1 -0
- package/dist/web/conversation.js +557 -0
- package/dist/web/conversation.js.map +1 -0
- package/dist/web/documents.d.ts +36 -6
- package/dist/web/documents.d.ts.map +1 -1
- package/dist/web/documents.js +52 -10
- package/dist/web/documents.js.map +1 -1
- package/dist/web/feed-atom.d.ts +22 -0
- package/dist/web/feed-atom.d.ts.map +1 -0
- package/dist/web/feed-atom.js +83 -0
- package/dist/web/feed-atom.js.map +1 -0
- package/dist/web/feed-item.d.ts +145 -0
- package/dist/web/feed-item.d.ts.map +1 -0
- package/dist/web/feed-item.js +120 -0
- package/dist/web/feed-item.js.map +1 -0
- package/dist/web/feed-json.d.ts +79 -0
- package/dist/web/feed-json.d.ts.map +1 -0
- package/dist/web/feed-json.js +53 -0
- package/dist/web/feed-json.js.map +1 -0
- package/dist/web/feed-rss.d.ts +26 -0
- package/dist/web/feed-rss.d.ts.map +1 -0
- package/dist/web/feed-rss.js +203 -0
- package/dist/web/feed-rss.js.map +1 -0
- package/dist/web/feed-source.d.ts +244 -0
- package/dist/web/feed-source.d.ts.map +1 -0
- package/dist/web/feed-source.js +201 -0
- package/dist/web/feed-source.js.map +1 -0
- package/dist/web/feed-xml.d.ts +63 -0
- package/dist/web/feed-xml.d.ts.map +1 -0
- package/dist/web/feed-xml.js +116 -0
- package/dist/web/feed-xml.js.map +1 -0
- package/dist/web/feeds.d.ts +31 -96
- package/dist/web/feeds.d.ts.map +1 -1
- package/dist/web/feeds.js +94 -198
- package/dist/web/feeds.js.map +1 -1
- package/dist/web/health.d.ts +31 -0
- package/dist/web/health.d.ts.map +1 -0
- package/dist/web/health.js +44 -0
- package/dist/web/health.js.map +1 -0
- package/dist/web/index.d.ts +30 -10
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +18 -7
- package/dist/web/index.js.map +1 -1
- package/dist/web/navigation.d.ts +195 -0
- package/dist/web/navigation.d.ts.map +1 -0
- package/dist/web/navigation.js +300 -0
- package/dist/web/navigation.js.map +1 -0
- package/dist/web/negotiate.d.ts +31 -0
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +31 -11
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/recent.d.ts +43 -0
- package/dist/web/recent.d.ts.map +1 -0
- package/dist/web/recent.js +37 -0
- package/dist/web/recent.js.map +1 -0
- package/dist/web/render.d.ts +203 -9
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +341 -17
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts +25 -8
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +854 -93
- package/dist/web/routes.js.map +1 -1
- package/dist/web/sanitize.d.ts +19 -0
- package/dist/web/sanitize.d.ts.map +1 -0
- package/dist/web/sanitize.js +272 -0
- package/dist/web/sanitize.js.map +1 -0
- package/dist/web/search.d.ts +79 -0
- package/dist/web/search.d.ts.map +1 -0
- package/dist/web/search.js +94 -0
- package/dist/web/search.js.map +1 -0
- package/dist/web/sitemap.d.ts +120 -0
- package/dist/web/sitemap.d.ts.map +1 -0
- package/dist/web/sitemap.js +199 -0
- package/dist/web/sitemap.js.map +1 -0
- package/dist/web/taxonomy.d.ts +152 -0
- package/dist/web/taxonomy.d.ts.map +1 -0
- package/dist/web/taxonomy.js +237 -0
- package/dist/web/taxonomy.js.map +1 -0
- package/dist/web/templates.d.ts +54 -16
- package/dist/web/templates.d.ts.map +1 -1
- package/dist/web/templates.js +109 -28
- package/dist/web/templates.js.map +1 -1
- package/dist/web/themes.d.ts +226 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +314 -0
- package/dist/web/themes.js.map +1 -0
- package/dist/webmention/discovery.d.ts +51 -0
- package/dist/webmention/discovery.d.ts.map +1 -0
- package/dist/webmention/discovery.js +176 -0
- package/dist/webmention/discovery.js.map +1 -0
- package/dist/webmention/html.d.ts +71 -0
- package/dist/webmention/html.d.ts.map +1 -0
- package/dist/webmention/html.js +285 -0
- package/dist/webmention/html.js.map +1 -0
- package/dist/webmention/index.d.ts +12 -0
- package/dist/webmention/index.d.ts.map +1 -0
- package/dist/webmention/index.js +8 -0
- package/dist/webmention/index.js.map +1 -0
- package/dist/webmention/links.d.ts +18 -0
- package/dist/webmention/links.d.ts.map +1 -0
- package/dist/webmention/links.js +64 -0
- package/dist/webmention/links.js.map +1 -0
- package/dist/webmention/microformats.d.ts +93 -0
- package/dist/webmention/microformats.d.ts.map +1 -0
- package/dist/webmention/microformats.js +376 -0
- package/dist/webmention/microformats.js.map +1 -0
- package/dist/webmention/receive.d.ts +141 -0
- package/dist/webmention/receive.d.ts.map +1 -0
- package/dist/webmention/receive.js +264 -0
- package/dist/webmention/receive.js.map +1 -0
- package/dist/webmention/routes.d.ts +37 -0
- package/dist/webmention/routes.d.ts.map +1 -0
- package/dist/webmention/routes.js +75 -0
- package/dist/webmention/routes.js.map +1 -0
- package/dist/webmention/service.d.ts +94 -0
- package/dist/webmention/service.d.ts.map +1 -0
- package/dist/webmention/service.js +207 -0
- package/dist/webmention/service.js.map +1 -0
- package/package.json +11 -6
- package/templates/site/content/_data/site.json +8 -0
- package/templates/site/content/pages/about.md +7 -0
- package/templates/site/content/posts/2026-01-01-hello-world.md +5 -3
- package/templates/site/geekity.config.ts +11 -1
- package/templates/site/tsconfig.json +1 -1
- package/themes/default/README.md +1216 -50
- package/themes/default/layouts/404.njk +2 -3
- package/themes/default/layouts/author.njk +36 -0
- package/themes/default/layouts/base.njk +161 -31
- package/themes/default/layouts/category.njk +27 -0
- package/themes/default/layouts/front-page.njk +56 -0
- package/themes/default/layouts/home.njk +17 -1
- package/themes/default/layouts/page.njk +57 -5
- package/themes/default/layouts/post.njk +78 -19
- package/themes/default/layouts/search.njk +57 -0
- package/themes/default/layouts/tag.njk +3 -6
- package/themes/default/mail/comment-digest.html.njk +37 -0
- package/themes/default/mail/comment-digest.subject.njk +3 -0
- package/themes/default/mail/comment-digest.txt.njk +40 -0
- package/themes/default/mail/comment-pending.html.njk +27 -0
- package/themes/default/mail/comment-pending.subject.njk +2 -0
- package/themes/default/mail/comment-pending.txt.njk +24 -0
- package/themes/default/mail/comment-reply.html.njk +21 -0
- package/themes/default/mail/comment-reply.subject.njk +2 -0
- package/themes/default/mail/comment-reply.txt.njk +22 -0
- package/themes/default/mail/contact-message.html.njk +24 -0
- package/themes/default/mail/contact-message.subject.njk +5 -0
- package/themes/default/mail/contact-message.txt.njk +20 -0
- package/themes/default/mail/password-changed.html.njk +18 -0
- package/themes/default/mail/password-changed.subject.njk +2 -0
- package/themes/default/mail/password-changed.txt.njk +17 -0
- package/themes/default/mail/password-reset.html.njk +22 -0
- package/themes/default/mail/password-reset.subject.njk +2 -0
- package/themes/default/mail/password-reset.txt.njk +18 -0
- package/themes/default/mail/test.html.njk +14 -0
- package/themes/default/mail/test.subject.njk +2 -0
- package/themes/default/mail/test.txt.njk +12 -0
- package/themes/default/partials/archive.njk +27 -0
- package/themes/default/partials/bio.njk +71 -0
- package/themes/default/partials/comment-form.njk +137 -0
- package/themes/default/partials/contact-form.njk +88 -0
- package/themes/default/partials/conversation.njk +139 -0
- package/themes/default/partials/feeds.njk +26 -0
- package/themes/default/partials/jsonld.njk +120 -0
- package/themes/default/partials/menu.njk +32 -0
- package/themes/default/partials/pagination.njk +12 -6
- package/themes/default/partials/post-list.njk +51 -18
- package/themes/default/partials/search-form.njk +22 -0
- package/themes/default/partials/tags.njk +26 -5
- package/themes/default/static/highlight.js +4 -0
- package/themes/default/static/style.css +1142 -194
- package/themes/default/theme.json +9 -0
- package/admin/layouts/federation.njk +0 -145
- package/admin/layouts/login.njk +0 -23
- package/admin/layouts/settings.njk +0 -116
- package/admin/layouts/setup.njk +0 -27
- package/admin/layouts/users.njk +0 -91
- /package/admin/{layouts/_flash.njk → components/flash.njk} +0 -0
package/dist/web/context.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ResolvedConfig } from '../config.ts';
|
|
2
2
|
import type { Document } from '../content/document.ts';
|
|
3
|
+
import type { ImageConfig } from '../images/variants.ts';
|
|
4
|
+
import type { AuthorContext } from './authors.ts';
|
|
5
|
+
import type { TaxonomyBases, TaxonomyRedirect } from './taxonomy.ts';
|
|
3
6
|
/** Where the site-wide data file lives, relative to the content directory. */
|
|
4
7
|
export declare const SITE_DATA_FILE = "_data/site.json";
|
|
5
8
|
/** How many posts a listing page holds when the site does not say. */
|
|
@@ -20,6 +23,12 @@ export interface SiteData {
|
|
|
20
23
|
url: string;
|
|
21
24
|
/** Site author. */
|
|
22
25
|
author?: string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* The site's language as a BCP 47 tag, `en` unless the site says otherwise.
|
|
28
|
+
* It is the `<html lang>`, the RSS channel's `<language>` and the Atom
|
|
29
|
+
* feed's `xml:lang`.
|
|
30
|
+
*/
|
|
31
|
+
language?: string | undefined;
|
|
23
32
|
/**
|
|
24
33
|
* The site's avatar, as the public path it is served at. Empty until one has
|
|
25
34
|
* been uploaded on the settings screen; the ActivityPub actor's `icon`.
|
|
@@ -27,6 +36,47 @@ export interface SiteData {
|
|
|
27
36
|
avatar?: string | undefined;
|
|
28
37
|
/** How many posts a listing page holds. */
|
|
29
38
|
postsPerPage?: number | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The first URL segment the tag archives live under, without slashes:
|
|
41
|
+
* `tag` unless the site says otherwise.
|
|
42
|
+
*/
|
|
43
|
+
tagBase?: string | undefined;
|
|
44
|
+
/** The same for the category archives. `category` by default. */
|
|
45
|
+
categoryBase?: string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* The rssCloud and WebSub server the feeds advertise and this site pings,
|
|
48
|
+
* as an absolute URL. Empty — or missing — means the site names none.
|
|
49
|
+
*/
|
|
50
|
+
notifyServer?: string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* The relay inboxes the site subscribes to (FEP-ae0c), as absolute URLs.
|
|
53
|
+
* The setting itself; where each subscription stands lives in the database
|
|
54
|
+
* rather than here, because a handshake is not the site's to decide.
|
|
55
|
+
*/
|
|
56
|
+
relays?: readonly string[] | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The theme the site renders through: the name of one directory under the
|
|
59
|
+
* configured themes directory. Absent — the ordinary state — is the theme
|
|
60
|
+
* the package ships (decision-15).
|
|
61
|
+
*/
|
|
62
|
+
theme?: string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* The slug of the page served at `/`, when the site shows a page there
|
|
65
|
+
* rather than its latest posts. Absent for the latest posts.
|
|
66
|
+
*/
|
|
67
|
+
homepage?: string | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* The slug of the page whose own URL carries the post listing, when there is
|
|
70
|
+
* one. Absent unless `homepage` names a page as well.
|
|
71
|
+
*/
|
|
72
|
+
postsPage?: string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* The taxonomy archives that have moved, as `{ taxonomy, from, to }`: what
|
|
75
|
+
* lets the URL a renamed archive used to live at point at the one it lives
|
|
76
|
+
* at now. Written by the taxonomy screens; an Eleventy build of the same
|
|
77
|
+
* content can publish the same redirects from it.
|
|
78
|
+
*/
|
|
79
|
+
taxonomyRedirects?: readonly TaxonomyRedirect[] | undefined;
|
|
30
80
|
[key: string]: unknown;
|
|
31
81
|
}
|
|
32
82
|
/**
|
|
@@ -59,8 +109,20 @@ export interface DocumentContext {
|
|
|
59
109
|
date?: Date | undefined;
|
|
60
110
|
/** Taxonomy, in the order the file lists it. */
|
|
61
111
|
tags: string[];
|
|
112
|
+
/** The second taxonomy: what the document is filed under, in file order. */
|
|
113
|
+
categories: string[];
|
|
62
114
|
/** The Markdown body rendered to HTML. Templates print it with `| safe`. */
|
|
63
115
|
content: string;
|
|
116
|
+
/**
|
|
117
|
+
* What the document is about in one line of plain text: the `description`
|
|
118
|
+
* the author wrote, else an excerpt of the rendered body, else empty.
|
|
119
|
+
*
|
|
120
|
+
* The very string the feeds publish as a summary, from the same function, so
|
|
121
|
+
* a feed item and the entry a listing prints for the same post cannot say
|
|
122
|
+
* two different things (decision-16). Always present, empty included, so a
|
|
123
|
+
* theme prints it without asking whether it is there.
|
|
124
|
+
*/
|
|
125
|
+
summary: string;
|
|
64
126
|
/** The document's URL path, the same value as `page.url`. */
|
|
65
127
|
url: string;
|
|
66
128
|
/** Eleventy's `page`. */
|
|
@@ -70,52 +132,124 @@ export interface DocumentContext {
|
|
|
70
132
|
/** Everything else from the front matter, including unmodelled keys. */
|
|
71
133
|
[key: string]: unknown;
|
|
72
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* One of a post's neighbours by date, as a theme links it: `previous` and
|
|
137
|
+
* `next` under an entry.
|
|
138
|
+
*
|
|
139
|
+
* Two keys rather than the whole document, because that is what the link is —
|
|
140
|
+
* the words on it and where it goes — and a theme that was handed a second
|
|
141
|
+
* document context would be a theme that could print a second post by
|
|
142
|
+
* accident.
|
|
143
|
+
*/
|
|
144
|
+
export interface NeighbourContext {
|
|
145
|
+
/** The neighbour's title, which is what the link says. */
|
|
146
|
+
title: string;
|
|
147
|
+
/** Its URL path. */
|
|
148
|
+
url: string;
|
|
149
|
+
}
|
|
73
150
|
/**
|
|
74
151
|
* A document as a template sees it.
|
|
75
152
|
*
|
|
76
153
|
* Front matter goes on first so the keys the CMS models always win: a file
|
|
77
154
|
* with a stray `content` or `page` key cannot displace the rendered body or
|
|
78
155
|
* the page data.
|
|
156
|
+
*
|
|
157
|
+
* `images` is the site's image config, and giving it is what turns an uploaded
|
|
158
|
+
* picture in `content` into a `<picture>` with a `srcset` (decision-10). It is
|
|
159
|
+
* an argument rather than something `renderMarkdown` does, because only the
|
|
160
|
+
* theme's HTML may have it: the feeds, the JSON and Markdown representations
|
|
161
|
+
* and the ActivityStreams `content` all read `document.html` directly and must
|
|
162
|
+
* keep the plain `<img>` of the original.
|
|
163
|
+
*
|
|
164
|
+
* `author` is the profile behind the front matter's `author` (TASK-67), and it
|
|
165
|
+
* is an argument for the reason `images` is: only something holding the site's
|
|
166
|
+
* users can resolve a name to a person. Given one, the context's `author` is
|
|
167
|
+
* that object rather than the raw string — `author.name` to print and
|
|
168
|
+
* `author.url` to link — so a theme writes one thing whether the file names a
|
|
169
|
+
* login, a display name from before decision-14, or somebody who has no
|
|
170
|
+
* account here at all. Without one the file's own string is left where it was,
|
|
171
|
+
* which is what a test over a single template renders.
|
|
79
172
|
*/
|
|
80
|
-
export declare function documentContext(document: Document): DocumentContext;
|
|
173
|
+
export declare function documentContext(document: Document, images?: ImageConfig, author?: AuthorContext): DocumentContext;
|
|
81
174
|
/** Reads `content/_data/site.json`, and re-reads it when the file changes. */
|
|
82
175
|
export interface SiteDataSource {
|
|
83
176
|
/** The current site data, defaults filled in. */
|
|
84
177
|
read(): SiteData;
|
|
85
178
|
}
|
|
86
179
|
/**
|
|
87
|
-
*
|
|
180
|
+
* A source over one site's data.
|
|
181
|
+
*
|
|
182
|
+
* `content/_data/site.json` is the only source of it (decision-9): the
|
|
183
|
+
* settings screen writes that file and nothing else remembers what it said, so
|
|
184
|
+
* a save and a hand edit reach the theme by exactly the same route.
|
|
88
185
|
*
|
|
89
|
-
* The
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
186
|
+
* The file is read on every call and parsed only when its bytes differ from
|
|
187
|
+
* the last read, so a render costs one small read rather than one parse. A
|
|
188
|
+
* `stat` key was tried first and is not enough: a filesystem rounds the
|
|
189
|
+
* modification time to its clock tick, a few milliseconds on Linux, so a
|
|
190
|
+
* second write inside one tick that keeps the size and the inode, a theme
|
|
191
|
+
* name swapped for one of the same length say, looked like no write at all.
|
|
192
|
+
* The file is a few hundred bytes; reading it is cheaper than being wrong. A
|
|
193
|
+
* file that is missing or will not parse falls back to the defaults instead
|
|
194
|
+
* of failing the request: a typo in `site.json` should not take the site down.
|
|
94
195
|
*/
|
|
95
|
-
export
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
196
|
+
export declare function createSiteDataSource(config: ResolvedConfig): SiteDataSource;
|
|
197
|
+
/** How many posts a listing page holds, from the site data or the default. */
|
|
198
|
+
export declare function postsPerPage(site: SiteData): number;
|
|
199
|
+
/**
|
|
200
|
+
* The theme this site has chosen, from the site data, or the empty string for
|
|
201
|
+
* the theme the package ships.
|
|
202
|
+
*
|
|
203
|
+
* Read as tolerantly as everything else out of `site.json` — a key of the
|
|
204
|
+
* wrong type is a site on the packaged theme rather than a broken render —
|
|
205
|
+
* and read as a name rather than resolved to a directory, for the reason the
|
|
206
|
+
* front page is read as a slug: only something holding the themes directory
|
|
207
|
+
* can say whether the name still points at a theme.
|
|
208
|
+
*/
|
|
209
|
+
export declare function themeName(site: SiteData): string;
|
|
210
|
+
/**
|
|
211
|
+
* The zone this site's dates are read in, from the site data, or UTC when it
|
|
212
|
+
* names none.
|
|
213
|
+
*
|
|
214
|
+
* The same lens the `date` filter applies (decision-11), for the things the
|
|
215
|
+
* CMS rather than a template has to put a date through: which month of an
|
|
216
|
+
* archive a post belongs to is the same calendar question as which day the
|
|
217
|
+
* line under it says, and the two must not be answered by different clocks.
|
|
218
|
+
*/
|
|
219
|
+
export declare function siteTimezone(site: SiteData): string;
|
|
220
|
+
/** WordPress's Reading choice, as `site.json` spells it. */
|
|
221
|
+
export interface FrontPageSlugs {
|
|
222
|
+
/** The page served at `/`, or empty for the site's latest posts. */
|
|
223
|
+
homepage: string;
|
|
224
|
+
/** The page whose permalink carries the listing, or empty for none. */
|
|
225
|
+
postsPage: string;
|
|
103
226
|
}
|
|
104
227
|
/**
|
|
105
|
-
*
|
|
228
|
+
* Which page is the front page and which carries the listing, from the site
|
|
229
|
+
* data.
|
|
106
230
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
231
|
+
* Read as tolerantly as everything else out of `site.json`, and read as slugs
|
|
232
|
+
* rather than resolved to documents: only something holding the index can say
|
|
233
|
+
* whether a slug still names a published page, and a slug that names none is a
|
|
234
|
+
* site showing its latest posts.
|
|
235
|
+
*/
|
|
236
|
+
export declare function frontPageSlugs(site: SiteData): FrontPageSlugs;
|
|
237
|
+
/**
|
|
238
|
+
* Where this site's taxonomy archives live, from the site data.
|
|
111
239
|
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
240
|
+
* A base the site could not actually be served under — an empty one, one with
|
|
241
|
+
* a slash in it, one that would shadow `/admin`, or two that are the same word
|
|
242
|
+
* — falls back to the default rather than taking the archives down: the value
|
|
243
|
+
* was refused at the settings screen, so anything that reaches here came from
|
|
244
|
+
* a hand-edited `site.json`.
|
|
117
245
|
*/
|
|
118
|
-
export declare function
|
|
119
|
-
/**
|
|
120
|
-
|
|
246
|
+
export declare function taxonomyBases(site: SiteData): TaxonomyBases;
|
|
247
|
+
/**
|
|
248
|
+
* The archive renames this site records, from the site data.
|
|
249
|
+
*
|
|
250
|
+
* Read as tolerantly as everything else out of `site.json`: an entry that is
|
|
251
|
+
* not a rename is dropped rather than taking the archives down, because a site
|
|
252
|
+
* may have written the key by hand.
|
|
253
|
+
*/
|
|
254
|
+
export declare function termRedirects(site: SiteData): TaxonomyRedirect[];
|
|
121
255
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"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"}
|
package/dist/web/context.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { readFileSync
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { DEFAULT_TIMEZONE } from '../content/time.js';
|
|
4
|
+
import { siteImageMarkup } from '../images/markup.js';
|
|
5
|
+
import { feedExcerpt } from './feed-item.js';
|
|
6
|
+
import { DEFAULT_TAXONOMY_BASES, taxonomyBasesOrDefault, taxonomyRedirectsOf } from './taxonomy.js';
|
|
3
7
|
/** Where the site-wide data file lives, relative to the content directory. */
|
|
4
8
|
export const SITE_DATA_FILE = '_data/site.json';
|
|
5
9
|
/** How many posts a listing page holds when the site does not say. */
|
|
@@ -10,8 +14,24 @@ export const DEFAULT_POSTS_PER_PAGE = 10;
|
|
|
10
14
|
* Front matter goes on first so the keys the CMS models always win: a file
|
|
11
15
|
* with a stray `content` or `page` key cannot displace the rendered body or
|
|
12
16
|
* the page data.
|
|
17
|
+
*
|
|
18
|
+
* `images` is the site's image config, and giving it is what turns an uploaded
|
|
19
|
+
* picture in `content` into a `<picture>` with a `srcset` (decision-10). It is
|
|
20
|
+
* an argument rather than something `renderMarkdown` does, because only the
|
|
21
|
+
* theme's HTML may have it: the feeds, the JSON and Markdown representations
|
|
22
|
+
* and the ActivityStreams `content` all read `document.html` directly and must
|
|
23
|
+
* keep the plain `<img>` of the original.
|
|
24
|
+
*
|
|
25
|
+
* `author` is the profile behind the front matter's `author` (TASK-67), and it
|
|
26
|
+
* is an argument for the reason `images` is: only something holding the site's
|
|
27
|
+
* users can resolve a name to a person. Given one, the context's `author` is
|
|
28
|
+
* that object rather than the raw string — `author.name` to print and
|
|
29
|
+
* `author.url` to link — so a theme writes one thing whether the file names a
|
|
30
|
+
* login, a display name from before decision-14, or somebody who has no
|
|
31
|
+
* account here at all. Without one the file's own string is left where it was,
|
|
32
|
+
* which is what a test over a single template renders.
|
|
13
33
|
*/
|
|
14
|
-
export function documentContext(document) {
|
|
34
|
+
export function documentContext(document, images, author) {
|
|
15
35
|
const date = toDate(document.date);
|
|
16
36
|
return {
|
|
17
37
|
...document.extra,
|
|
@@ -19,13 +39,18 @@ export function documentContext(document) {
|
|
|
19
39
|
slug: document.slug,
|
|
20
40
|
draft: document.draft,
|
|
21
41
|
...optional('description', document.description),
|
|
22
|
-
...optional('author', document.author),
|
|
42
|
+
...optional('author', author ?? document.author),
|
|
23
43
|
...optional('updated', toDate(document.updated)),
|
|
24
44
|
...optional('activitypub', document.activitypub),
|
|
25
45
|
title: document.title,
|
|
26
46
|
...optional('date', date),
|
|
27
47
|
tags: document.tags,
|
|
28
|
-
|
|
48
|
+
categories: document.categories,
|
|
49
|
+
content: images === undefined ? document.html : siteImageMarkup(images, document.html),
|
|
50
|
+
// The plain-text summary, taken off the document rather than off the
|
|
51
|
+
// markup above: an excerpt is text, and the `<picture>` a site's image
|
|
52
|
+
// config puts in the HTML is not something to cut words out of.
|
|
53
|
+
summary: feedExcerpt(document),
|
|
29
54
|
url: document.permalink,
|
|
30
55
|
type: document.type,
|
|
31
56
|
page: {
|
|
@@ -39,36 +64,38 @@ export function documentContext(document) {
|
|
|
39
64
|
/**
|
|
40
65
|
* A source over one site's data.
|
|
41
66
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* a typo in `site.json` should not take the site down.
|
|
67
|
+
* `content/_data/site.json` is the only source of it (decision-9): the
|
|
68
|
+
* settings screen writes that file and nothing else remembers what it said, so
|
|
69
|
+
* a save and a hand edit reach the theme by exactly the same route.
|
|
46
70
|
*
|
|
47
|
-
* The
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
71
|
+
* The file is read on every call and parsed only when its bytes differ from
|
|
72
|
+
* the last read, so a render costs one small read rather than one parse. A
|
|
73
|
+
* `stat` key was tried first and is not enough: a filesystem rounds the
|
|
74
|
+
* modification time to its clock tick, a few milliseconds on Linux, so a
|
|
75
|
+
* second write inside one tick that keeps the size and the inode, a theme
|
|
76
|
+
* name swapped for one of the same length say, looked like no write at all.
|
|
77
|
+
* The file is a few hundred bytes; reading it is cheaper than being wrong. A
|
|
78
|
+
* file that is missing or will not parse falls back to the defaults instead
|
|
79
|
+
* of failing the request: a typo in `site.json` should not take the site down.
|
|
52
80
|
*/
|
|
53
|
-
export function createSiteDataSource(config
|
|
81
|
+
export function createSiteDataSource(config) {
|
|
54
82
|
const file = path.join(config.contentDir, ...SITE_DATA_FILE.split('/'));
|
|
55
|
-
const settings = options.settings;
|
|
56
83
|
let cached = {};
|
|
57
|
-
let
|
|
84
|
+
let cachedText;
|
|
58
85
|
function fromFile() {
|
|
59
|
-
let
|
|
86
|
+
let text;
|
|
60
87
|
try {
|
|
61
|
-
|
|
88
|
+
text = readFileSync(file, 'utf8');
|
|
62
89
|
}
|
|
63
90
|
catch {
|
|
64
|
-
|
|
91
|
+
cachedText = undefined;
|
|
65
92
|
cached = {};
|
|
66
93
|
return cached;
|
|
67
94
|
}
|
|
68
|
-
if (
|
|
95
|
+
if (text === cachedText)
|
|
69
96
|
return cached;
|
|
70
|
-
|
|
71
|
-
cached =
|
|
97
|
+
cachedText = text;
|
|
98
|
+
cached = parseSiteFile(text);
|
|
72
99
|
return cached;
|
|
73
100
|
}
|
|
74
101
|
return {
|
|
@@ -76,14 +103,19 @@ export function createSiteDataSource(config, options = {}) {
|
|
|
76
103
|
// The defaults are rebuilt per read rather than captured, because
|
|
77
104
|
// `config.baseUrl` may have been settled from the settings after this
|
|
78
105
|
// source was made.
|
|
79
|
-
const defaults = {
|
|
80
|
-
|
|
106
|
+
const defaults = {
|
|
107
|
+
title: 'Geekity',
|
|
108
|
+
url: config.baseUrl,
|
|
109
|
+
tagBase: DEFAULT_TAXONOMY_BASES.tag,
|
|
110
|
+
categoryBase: DEFAULT_TAXONOMY_BASES.category,
|
|
111
|
+
};
|
|
112
|
+
return { ...defaults, ...fromFile() };
|
|
81
113
|
},
|
|
82
114
|
};
|
|
83
115
|
}
|
|
84
|
-
function
|
|
116
|
+
function parseSiteFile(text) {
|
|
85
117
|
try {
|
|
86
|
-
const parsed = JSON.parse(
|
|
118
|
+
const parsed = JSON.parse(text);
|
|
87
119
|
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
|
|
88
120
|
? parsed
|
|
89
121
|
: {};
|
|
@@ -100,6 +132,71 @@ export function postsPerPage(site) {
|
|
|
100
132
|
}
|
|
101
133
|
return DEFAULT_POSTS_PER_PAGE;
|
|
102
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* The theme this site has chosen, from the site data, or the empty string for
|
|
137
|
+
* the theme the package ships.
|
|
138
|
+
*
|
|
139
|
+
* Read as tolerantly as everything else out of `site.json` — a key of the
|
|
140
|
+
* wrong type is a site on the packaged theme rather than a broken render —
|
|
141
|
+
* and read as a name rather than resolved to a directory, for the reason the
|
|
142
|
+
* front page is read as a slug: only something holding the themes directory
|
|
143
|
+
* can say whether the name still points at a theme.
|
|
144
|
+
*/
|
|
145
|
+
export function themeName(site) {
|
|
146
|
+
return typeof site['theme'] === 'string' ? site['theme'].trim() : '';
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* The zone this site's dates are read in, from the site data, or UTC when it
|
|
150
|
+
* names none.
|
|
151
|
+
*
|
|
152
|
+
* The same lens the `date` filter applies (decision-11), for the things the
|
|
153
|
+
* CMS rather than a template has to put a date through: which month of an
|
|
154
|
+
* archive a post belongs to is the same calendar question as which day the
|
|
155
|
+
* line under it says, and the two must not be answered by different clocks.
|
|
156
|
+
*/
|
|
157
|
+
export function siteTimezone(site) {
|
|
158
|
+
const timezone = site['timezone'];
|
|
159
|
+
return typeof timezone === 'string' && timezone !== '' ? timezone : DEFAULT_TIMEZONE;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Which page is the front page and which carries the listing, from the site
|
|
163
|
+
* data.
|
|
164
|
+
*
|
|
165
|
+
* Read as tolerantly as everything else out of `site.json`, and read as slugs
|
|
166
|
+
* rather than resolved to documents: only something holding the index can say
|
|
167
|
+
* whether a slug still names a published page, and a slug that names none is a
|
|
168
|
+
* site showing its latest posts.
|
|
169
|
+
*/
|
|
170
|
+
export function frontPageSlugs(site) {
|
|
171
|
+
const homepage = typeof site['homepage'] === 'string' ? site['homepage'].trim() : '';
|
|
172
|
+
const postsPage = typeof site['postsPage'] === 'string' ? site['postsPage'].trim() : '';
|
|
173
|
+
// A posts page without a homepage would be a second URL for the listing that
|
|
174
|
+
// is already at `/`. The settings screen refuses the pair; a hand-edited
|
|
175
|
+
// file is read the same way rather than serving it.
|
|
176
|
+
return { homepage, postsPage: homepage === '' ? '' : postsPage };
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Where this site's taxonomy archives live, from the site data.
|
|
180
|
+
*
|
|
181
|
+
* A base the site could not actually be served under — an empty one, one with
|
|
182
|
+
* a slash in it, one that would shadow `/admin`, or two that are the same word
|
|
183
|
+
* — falls back to the default rather than taking the archives down: the value
|
|
184
|
+
* was refused at the settings screen, so anything that reaches here came from
|
|
185
|
+
* a hand-edited `site.json`.
|
|
186
|
+
*/
|
|
187
|
+
export function taxonomyBases(site) {
|
|
188
|
+
return taxonomyBasesOrDefault({ tag: site['tagBase'], category: site['categoryBase'] });
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The archive renames this site records, from the site data.
|
|
192
|
+
*
|
|
193
|
+
* Read as tolerantly as everything else out of `site.json`: an entry that is
|
|
194
|
+
* not a rename is dropped rather than taking the archives down, because a site
|
|
195
|
+
* may have written the key by hand.
|
|
196
|
+
*/
|
|
197
|
+
export function termRedirects(site) {
|
|
198
|
+
return taxonomyRedirectsOf(site['taxonomyRedirects']);
|
|
199
|
+
}
|
|
103
200
|
function toDate(value) {
|
|
104
201
|
if (value === undefined)
|
|
105
202
|
return undefined;
|
package/dist/web/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"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"}
|