@geekity/cms 0.3.0 → 0.4.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 +2091 -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/pages/documents/editor.njk +196 -0
- 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/media/library.njk +160 -0
- package/admin/pages/messages/all.njk +110 -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/federation.njk +75 -0
- package/admin/pages/settings/general.njk +29 -0
- package/admin/pages/settings/permalinks.njk +50 -0
- package/admin/pages/settings/reading.njk +72 -0
- package/admin/pages/users/edit.njk +239 -0
- package/admin/pages/users/list.njk +48 -0
- package/admin/pages/users/new.njk +41 -0
- package/admin/static/admin.css +498 -3
- package/admin/static/copy.js +52 -0
- package/admin/static/editor.js +16 -16
- package/admin/static/slug.js +61 -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 +127 -10
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +360 -41
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/federation.d.ts +151 -50
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +225 -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 +126 -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/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 +155 -105
- package/dist/admin/routes.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 +39 -0
- package/dist/admin/settings-federation.d.ts.map +1 -0
- package/dist/admin/settings-federation.js +103 -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 +102 -0
- package/dist/admin/settings-page.d.ts.map +1 -0
- package/dist/admin/settings-page.js +126 -0
- package/dist/admin/settings-page.js.map +1 -0
- package/dist/admin/settings-pages.d.ts +19 -0
- package/dist/admin/settings-pages.d.ts.map +1 -0
- package/dist/admin/settings-pages.js +33 -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 +33 -0
- package/dist/admin/settings-reading.d.ts.map +1 -0
- package/dist/admin/settings-reading.js +48 -0
- package/dist/admin/settings-reading.js.map +1 -0
- package/dist/admin/settings.d.ts +325 -96
- package/dist/admin/settings.d.ts.map +1 -1
- package/dist/admin/settings.js +650 -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 +44 -14
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +44 -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/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 +424 -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 +75 -0
- package/dist/comments/form.d.ts.map +1 -0
- package/dist/comments/form.js +64 -0
- package/dist/comments/form.js.map +1 -0
- package/dist/comments/index.d.ts +15 -0
- package/dist/comments/index.d.ts.map +1 -0
- package/dist/comments/index.js +9 -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 +58 -0
- package/dist/comments/routes.d.ts.map +1 -0
- package/dist/comments/routes.js +177 -0
- package/dist/comments/routes.js.map +1 -0
- package/dist/comments/submission.d.ts +263 -0
- package/dist/comments/submission.d.ts.map +1 -0
- package/dist/comments/submission.js +241 -0
- package/dist/comments/submission.js.map +1 -0
- package/dist/config.d.ts +190 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +118 -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 +202 -7
- package/dist/content/store.d.ts.map +1 -1
- package/dist/content/store.js +374 -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 +58 -4
- 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 +42 -10
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +266 -26
- 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 +327 -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 +73 -0
- package/dist/web/navigation.d.ts.map +1 -0
- package/dist/web/navigation.js +110 -0
- package/dist/web/navigation.js.map +1 -0
- package/dist/web/negotiate.d.ts +9 -0
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +6 -1
- 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 +197 -9
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +334 -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 +845 -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 +205 -0
- package/dist/web/themes.d.ts.map +1 -0
- package/dist/web/themes.js +277 -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 +1 -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 +1096 -50
- package/themes/default/layouts/404.njk +2 -3
- package/themes/default/layouts/author.njk +37 -0
- package/themes/default/layouts/base.njk +172 -31
- package/themes/default/layouts/category.njk +27 -0
- package/themes/default/layouts/front-page.njk +57 -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 +77 -0
- package/themes/default/partials/comment-form.njk +109 -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/pagination.njk +12 -6
- package/themes/default/partials/post-list.njk +51 -18
- package/themes/default/partials/search-form.njk +17 -0
- package/themes/default/partials/tags.njk +26 -5
- package/themes/default/static/highlight.js +4 -0
- package/themes/default/static/style.css +1119 -194
- package/themes/default/theme.json +5 -0
- package/admin/layouts/document-editor.njk +0 -167
- 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/content/store.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
/** File name of the derived index inside a site's data directory. */
|
|
5
|
-
export const DATABASE_FILE = 'geekity.db';
|
|
1
|
+
import { databaseFile, openDatabase } from '../cache.js';
|
|
2
|
+
import { searchExpression, searchText, SNIPPET_CLOSE, SNIPPET_OPEN } from './search.js';
|
|
3
|
+
export { DATABASE_FILE } from '../cache.js';
|
|
6
4
|
/** Directory name that marks a document as thrown away but not yet deleted. */
|
|
7
5
|
export const TRASH_DIRECTORY = '_trash';
|
|
6
|
+
/** The clock an index uses when it is not given one. */
|
|
7
|
+
export const systemClock = () => new Date();
|
|
8
8
|
/**
|
|
9
9
|
* Thrown when two files claim the same permalink. Two documents at one URL is
|
|
10
10
|
* a content mistake the site owner has to fix, so the index refuses it rather
|
|
@@ -47,18 +47,67 @@ export function dateSortKey(date) {
|
|
|
47
47
|
const parsed = new Date(date);
|
|
48
48
|
return Number.isNaN(parsed.getTime()) ? null : parsed.toISOString();
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* The clause every public query carries: a document is public only once its
|
|
52
|
+
* date has arrived.
|
|
53
|
+
*
|
|
54
|
+
* A document with no date — or one nobody can read — has nothing to wait for
|
|
55
|
+
* and is public straight away, which is what keeps an undated page out of the
|
|
56
|
+
* scheduling rule without a second predicate. The value compared against is a
|
|
57
|
+
* {@link dateSortKey} of the clock, so the comparison is between two UTC ISO
|
|
58
|
+
* strings and lexicographic order is chronological order.
|
|
59
|
+
*/
|
|
60
|
+
const DUE_CLAUSE = '(date_sort IS NULL OR date_sort <= ?)';
|
|
61
|
+
/** The reverse: a document whose date is still ahead of the clock. */
|
|
62
|
+
const SCHEDULED_CLAUSE = '(date_sort IS NOT NULL AND date_sort > ?)';
|
|
63
|
+
/**
|
|
64
|
+
* The clause that picks out a document some follower holds a copy of: one
|
|
65
|
+
* whose `activitypub` block records when it was announced.
|
|
66
|
+
*
|
|
67
|
+
* `published` rather than `id`, because after decision-13 a post's id is its
|
|
68
|
+
* permalink and is never written into the file: the announcement date is the
|
|
69
|
+
* only mark a delivery leaves, and it is the one thing that says a follower
|
|
70
|
+
* was ever told. The block is stored as JSON rather than shredded into
|
|
71
|
+
* columns, so the date is read back out of it here. An empty value is no
|
|
72
|
+
* value: the front matter is a file somebody may have typed, and
|
|
73
|
+
* `activitypub: {published: ""}` is what a half-finished hand edit looks like.
|
|
74
|
+
*/
|
|
75
|
+
const FEDERATED_CLAUSE = `COALESCE(json_extract(activitypub, '$.published'), '') <> ''`;
|
|
76
|
+
/**
|
|
77
|
+
* The public side of a search: the full-text match joined to the documents it
|
|
78
|
+
* indexes, held to exactly what every public listing is held to.
|
|
79
|
+
*
|
|
80
|
+
* The draft, trash and due clauses are applied to the documents table rather
|
|
81
|
+
* than indexed alongside the words, so a post that is drafted, trashed or
|
|
82
|
+
* pushed into the future drops out of the results the moment the listings drop
|
|
83
|
+
* it, with no second write to keep in step.
|
|
84
|
+
*/
|
|
85
|
+
const SEARCH_FROM = `
|
|
86
|
+
FROM documents_fts
|
|
87
|
+
JOIN documents ON documents.path = documents_fts.path
|
|
88
|
+
WHERE documents_fts MATCH ?
|
|
89
|
+
AND documents.draft = 0 AND documents.trashed = 0
|
|
90
|
+
AND (documents.date_sort IS NULL OR documents.date_sort <= ?)
|
|
91
|
+
`;
|
|
92
|
+
/**
|
|
93
|
+
* How much a match in each column of the index counts, in the order the table
|
|
94
|
+
* declares them: the path is not indexed, a title match counts for most, the
|
|
95
|
+
* description and the taxonomy for half as much, and the body for least.
|
|
96
|
+
*/
|
|
97
|
+
const SEARCH_WEIGHTS = '0.0, 10.0, 5.0, 5.0, 1.0';
|
|
50
98
|
/**
|
|
51
99
|
* Open (and if needed create) the index in `dataDir`, applying every migration
|
|
52
100
|
* the package ships. Applying them is idempotent, so reopening an up-to-date
|
|
53
101
|
* database does nothing.
|
|
54
102
|
*/
|
|
55
103
|
export function openContentStore(options) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
104
|
+
const clock = options.now ?? systemClock;
|
|
105
|
+
/** The clock as the index sorts dates, so the two compare as strings. */
|
|
106
|
+
function nowKey() {
|
|
107
|
+
return clock().toISOString();
|
|
108
|
+
}
|
|
109
|
+
const file = databaseFile(options.dataDir);
|
|
110
|
+
const db = openDatabase({ dataDir: options.dataDir, ledger: LEDGER, migrations: MIGRATIONS });
|
|
62
111
|
const statements = {
|
|
63
112
|
insert: db.prepare(`
|
|
64
113
|
INSERT INTO documents (
|
|
@@ -88,19 +137,24 @@ export function openContentStore(options) {
|
|
|
88
137
|
`),
|
|
89
138
|
deleteTags: db.prepare('DELETE FROM document_tags WHERE path = ?'),
|
|
90
139
|
insertTag: db.prepare('INSERT INTO document_tags (path, tag, position) VALUES (?, ?, ?)'),
|
|
140
|
+
deleteCategories: db.prepare('DELETE FROM document_categories WHERE path = ?'),
|
|
141
|
+
insertCategory: db.prepare('INSERT INTO document_categories (path, category, position) VALUES (?, ?, ?)'),
|
|
91
142
|
pathForPermalink: db.prepare('SELECT path FROM documents WHERE permalink = ?'),
|
|
92
143
|
remove: db.prepare('DELETE FROM documents WHERE path = ?'),
|
|
93
144
|
byPath: db.prepare('SELECT * FROM documents WHERE path = ?'),
|
|
94
145
|
byPermalink: db.prepare('SELECT * FROM documents WHERE permalink = ?'),
|
|
146
|
+
byStoredObjectId: db.prepare(`SELECT * FROM documents WHERE json_extract(activitypub, '$.id') = ? LIMIT 1`),
|
|
95
147
|
bySlug: db.prepare(`SELECT * FROM documents WHERE slug = ? ORDER BY date_sort DESC, path DESC LIMIT 1`),
|
|
96
148
|
tagsFor: db.prepare('SELECT tag FROM document_tags WHERE path = ? ORDER BY position'),
|
|
149
|
+
categoriesFor: db.prepare('SELECT category FROM document_categories WHERE path = ? ORDER BY position'),
|
|
97
150
|
paths: db.prepare('SELECT path FROM documents ORDER BY path'),
|
|
98
151
|
counts: db.prepare(`
|
|
99
152
|
SELECT
|
|
100
153
|
COUNT(*) AS total,
|
|
101
|
-
COALESCE(SUM(type = 'post' AND draft = 0 AND trashed = 0), 0) AS posts,
|
|
102
|
-
COALESCE(SUM(type = 'page' AND draft = 0 AND trashed = 0), 0) AS pages,
|
|
154
|
+
COALESCE(SUM(type = 'post' AND draft = 0 AND trashed = 0 AND ${DUE_CLAUSE}), 0) AS posts,
|
|
155
|
+
COALESCE(SUM(type = 'page' AND draft = 0 AND trashed = 0 AND ${DUE_CLAUSE}), 0) AS pages,
|
|
103
156
|
COALESCE(SUM(draft = 1 AND trashed = 0), 0) AS drafts,
|
|
157
|
+
COALESCE(SUM(draft = 0 AND trashed = 0 AND ${SCHEDULED_CLAUSE}), 0) AS scheduled,
|
|
104
158
|
COALESCE(SUM(trashed = 1), 0) AS trashed
|
|
105
159
|
FROM documents
|
|
106
160
|
`),
|
|
@@ -109,21 +163,60 @@ export function openContentStore(options) {
|
|
|
109
163
|
FROM document_tags
|
|
110
164
|
JOIN documents ON documents.path = document_tags.path
|
|
111
165
|
WHERE documents.draft = 0 AND documents.trashed = 0
|
|
166
|
+
AND (documents.date_sort IS NULL OR documents.date_sort <= ?)
|
|
112
167
|
GROUP BY document_tags.tag
|
|
113
168
|
ORDER BY count DESC, tag ASC
|
|
169
|
+
`),
|
|
170
|
+
categoryCounts: db.prepare(`
|
|
171
|
+
SELECT document_categories.category AS category, COUNT(*) AS count
|
|
172
|
+
FROM document_categories
|
|
173
|
+
JOIN documents ON documents.path = document_categories.path
|
|
174
|
+
WHERE documents.draft = 0 AND documents.trashed = 0
|
|
175
|
+
AND (documents.date_sort IS NULL OR documents.date_sort <= ?)
|
|
176
|
+
GROUP BY document_categories.category
|
|
177
|
+
ORDER BY count DESC, category ASC
|
|
178
|
+
`),
|
|
179
|
+
tagUsage: db.prepare(termUsageSql('document_tags', 'tag')),
|
|
180
|
+
categoryUsage: db.prepare(termUsageSql('document_categories', 'category')),
|
|
181
|
+
nextDue: db.prepare(`
|
|
182
|
+
SELECT MIN(date_sort) AS due FROM documents
|
|
183
|
+
WHERE draft = 0 AND trashed = 0 AND ${SCHEDULED_CLAUSE}
|
|
184
|
+
`),
|
|
185
|
+
deleteText: db.prepare('DELETE FROM documents_fts WHERE path = ?'),
|
|
186
|
+
insertText: db.prepare('INSERT INTO documents_fts (path, title, description, terms, body) VALUES (?, ?, ?, ?, ?)'),
|
|
187
|
+
search: db.prepare(`
|
|
188
|
+
SELECT documents.*,
|
|
189
|
+
snippet(documents_fts, -1, '${SNIPPET_OPEN}', '${SNIPPET_CLOSE}', '…', 24) AS snippet
|
|
190
|
+
${SEARCH_FROM}
|
|
191
|
+
ORDER BY bm25(documents_fts, ${SEARCH_WEIGHTS}), documents.date_sort DESC, documents.path DESC
|
|
192
|
+
LIMIT ? OFFSET ?
|
|
193
|
+
`),
|
|
194
|
+
countSearch: db.prepare(`SELECT COUNT(*) AS count ${SEARCH_FROM}`),
|
|
195
|
+
dueSince: db.prepare(`
|
|
196
|
+
SELECT * FROM documents
|
|
197
|
+
WHERE draft = 0 AND trashed = 0
|
|
198
|
+
AND date_sort IS NOT NULL AND date_sort > ? AND date_sort <= ?
|
|
199
|
+
ORDER BY date_sort ASC, path ASC
|
|
114
200
|
`),
|
|
115
201
|
};
|
|
116
202
|
let open = true;
|
|
117
203
|
function tagsOf(contentPath) {
|
|
118
204
|
return statements.tagsFor.all(contentPath).map((row) => String(row['tag']));
|
|
119
205
|
}
|
|
206
|
+
function categoriesOf(contentPath) {
|
|
207
|
+
return statements.categoriesFor.all(contentPath).map((row) => String(row['category']));
|
|
208
|
+
}
|
|
120
209
|
function hydrate(row) {
|
|
121
210
|
if (row === undefined)
|
|
122
211
|
return undefined;
|
|
123
|
-
return
|
|
212
|
+
return hydrateOne(row);
|
|
213
|
+
}
|
|
214
|
+
function hydrateOne(row) {
|
|
215
|
+
const contentPath = String(row['path']);
|
|
216
|
+
return toDocument(row, tagsOf(contentPath), categoriesOf(contentPath));
|
|
124
217
|
}
|
|
125
218
|
function hydrateAll(rows) {
|
|
126
|
-
return rows.map(
|
|
219
|
+
return rows.map(hydrateOne);
|
|
127
220
|
}
|
|
128
221
|
function writeOne(document) {
|
|
129
222
|
const contentPath = document.path;
|
|
@@ -137,6 +230,72 @@ export function openContentStore(options) {
|
|
|
137
230
|
document.tags.forEach((tag, position) => {
|
|
138
231
|
statements.insertTag.run(contentPath, tag, position);
|
|
139
232
|
});
|
|
233
|
+
statements.deleteCategories.run(contentPath);
|
|
234
|
+
document.categories.forEach((category, position) => {
|
|
235
|
+
statements.insertCategory.run(contentPath, category, position);
|
|
236
|
+
});
|
|
237
|
+
// The words it is found by. Replaced rather than updated, because an FTS5
|
|
238
|
+
// table has no key to conflict on: the path is only a column in it.
|
|
239
|
+
const words = searchText(document);
|
|
240
|
+
statements.deleteText.run(contentPath);
|
|
241
|
+
statements.insertText.run(contentPath, words.title, words.description, words.terms, words.body);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* One taxonomy archive: the published, untrashed documents whose term list
|
|
245
|
+
* holds `term`, newest first. Tags and categories are the same query over two
|
|
246
|
+
* tables, so neither can drift from the other.
|
|
247
|
+
*/
|
|
248
|
+
function selectByTerm(table, column, term, options) {
|
|
249
|
+
const where = [
|
|
250
|
+
'draft = 0',
|
|
251
|
+
'trashed = 0',
|
|
252
|
+
DUE_CLAUSE,
|
|
253
|
+
`path IN (SELECT path FROM ${table} WHERE ${column} = ?)`,
|
|
254
|
+
];
|
|
255
|
+
const params = [nowKey(), term];
|
|
256
|
+
if (options.type !== undefined) {
|
|
257
|
+
where.unshift('type = ?');
|
|
258
|
+
params.unshift(options.type);
|
|
259
|
+
}
|
|
260
|
+
return select(where, params, options);
|
|
261
|
+
}
|
|
262
|
+
/** {@link selectByTerm}'s total, for the pager and the archive's existence. */
|
|
263
|
+
function countByTerm(table, column, term, options) {
|
|
264
|
+
const where = [
|
|
265
|
+
'documents.draft = 0',
|
|
266
|
+
'documents.trashed = 0',
|
|
267
|
+
'(documents.date_sort IS NULL OR documents.date_sort <= ?)',
|
|
268
|
+
`${table}.${column} = ?`,
|
|
269
|
+
];
|
|
270
|
+
const params = [nowKey(), term];
|
|
271
|
+
if (options.type !== undefined) {
|
|
272
|
+
where.push('documents.type = ?');
|
|
273
|
+
params.push(options.type);
|
|
274
|
+
}
|
|
275
|
+
const row = db
|
|
276
|
+
.prepare(`SELECT COUNT(*) AS count FROM ${table}
|
|
277
|
+
JOIN documents ON documents.path = ${table}.path
|
|
278
|
+
WHERE ${where.join(' AND ')}`)
|
|
279
|
+
.get(...params);
|
|
280
|
+
return Number(row['count']);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* The nearest published post on one side of a point in the archive.
|
|
284
|
+
*
|
|
285
|
+
* `direction` is which way to look — `<` for older, `>` for newer — and
|
|
286
|
+
* `order` is the sort that puts the nearest one first, so one query serves
|
|
287
|
+
* both ends of {@link ContentStore.neighbours}.
|
|
288
|
+
*/
|
|
289
|
+
function neighbour(direction, order, key, contentPath) {
|
|
290
|
+
const row = db
|
|
291
|
+
.prepare(`SELECT * FROM documents
|
|
292
|
+
WHERE type = 'post' AND draft = 0 AND trashed = 0 AND ${DUE_CLAUSE}
|
|
293
|
+
AND date_sort IS NOT NULL
|
|
294
|
+
AND (date_sort, path) ${direction} (?, ?)
|
|
295
|
+
ORDER BY date_sort ${order}, path ${order}
|
|
296
|
+
LIMIT 1`)
|
|
297
|
+
.get(...[nowKey(), key, contentPath]);
|
|
298
|
+
return hydrate(row);
|
|
140
299
|
}
|
|
141
300
|
function select(where, params, options) {
|
|
142
301
|
const clause = where.length === 0 ? '' : `WHERE ${where.join(' AND ')}`;
|
|
@@ -147,6 +306,9 @@ export function openContentStore(options) {
|
|
|
147
306
|
}
|
|
148
307
|
return {
|
|
149
308
|
file,
|
|
309
|
+
now() {
|
|
310
|
+
return clock();
|
|
311
|
+
},
|
|
150
312
|
upsert(document) {
|
|
151
313
|
writeOne(document);
|
|
152
314
|
},
|
|
@@ -163,6 +325,8 @@ export function openContentStore(options) {
|
|
|
163
325
|
}
|
|
164
326
|
},
|
|
165
327
|
remove(contentPath) {
|
|
328
|
+
// Nothing cascades into a virtual table, so the words go by hand.
|
|
329
|
+
statements.deleteText.run(contentPath);
|
|
166
330
|
return statements.remove.run(contentPath).changes > 0;
|
|
167
331
|
},
|
|
168
332
|
getByPath(contentPath) {
|
|
@@ -171,24 +335,60 @@ export function openContentStore(options) {
|
|
|
171
335
|
getByPermalink(permalink) {
|
|
172
336
|
return hydrate(statements.byPermalink.get(permalink));
|
|
173
337
|
},
|
|
338
|
+
getByStoredObjectId(objectId) {
|
|
339
|
+
if (objectId === '')
|
|
340
|
+
return undefined;
|
|
341
|
+
return hydrate(statements.byStoredObjectId.get(objectId));
|
|
342
|
+
},
|
|
174
343
|
getBySlug(slug) {
|
|
175
344
|
return hydrate(statements.bySlug.get(slug));
|
|
176
345
|
},
|
|
177
346
|
listPosts(options = {}) {
|
|
178
|
-
return select(["type = 'post'", 'draft = 0', 'trashed = 0'], [], options);
|
|
347
|
+
return select(["type = 'post'", 'draft = 0', 'trashed = 0', DUE_CLAUSE], [nowKey()], options);
|
|
348
|
+
},
|
|
349
|
+
listPostsSince(instant) {
|
|
350
|
+
const since = dateSortKey(instant);
|
|
351
|
+
if (since === null)
|
|
352
|
+
return [];
|
|
353
|
+
return select(["type = 'post'", 'draft = 0', 'trashed = 0', DUE_CLAUSE, 'date_sort >= ?'], [nowKey(), since], {});
|
|
354
|
+
},
|
|
355
|
+
neighbours(document) {
|
|
356
|
+
// A page is nobody's neighbour, and neither is a document the archive
|
|
357
|
+
// does not order: without a date there is no place in the sequence to be
|
|
358
|
+
// either side of.
|
|
359
|
+
const key = dateSortKey(document.date);
|
|
360
|
+
if (document.type !== 'post' || key === null)
|
|
361
|
+
return {};
|
|
362
|
+
// The listings are ordered by `date_sort DESC, path DESC`, so "before"
|
|
363
|
+
// and "after" are that same pair compared as a row: two posts sharing an
|
|
364
|
+
// instant are separated by their paths exactly as the listing separates
|
|
365
|
+
// them, and the document itself is excluded by the comparison being
|
|
366
|
+
// strict.
|
|
367
|
+
const previous = neighbour('<', 'DESC', key, document.path);
|
|
368
|
+
const next = neighbour('>', 'ASC', key, document.path);
|
|
369
|
+
return {
|
|
370
|
+
...(previous === undefined ? {} : { previous }),
|
|
371
|
+
...(next === undefined ? {} : { next }),
|
|
372
|
+
};
|
|
373
|
+
},
|
|
374
|
+
nextDue() {
|
|
375
|
+
const row = statements.nextDue.get(nowKey());
|
|
376
|
+
return text(row['due']);
|
|
377
|
+
},
|
|
378
|
+
listDueSince(after) {
|
|
379
|
+
const rows = statements.dueSince.all(after, nowKey());
|
|
380
|
+
return hydrateAll(rows);
|
|
179
381
|
},
|
|
180
382
|
listByTag(tag, options = {}) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if (
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
return select(where, params, options);
|
|
383
|
+
return selectByTerm('document_tags', 'tag', tag, options);
|
|
384
|
+
},
|
|
385
|
+
listByCategory(category, options = {}) {
|
|
386
|
+
return selectByTerm('document_categories', 'category', category, options);
|
|
387
|
+
},
|
|
388
|
+
listByAuthor(names, options = {}) {
|
|
389
|
+
if (names.length === 0)
|
|
390
|
+
return [];
|
|
391
|
+
return select(["type = 'post'", 'draft = 0', 'trashed = 0', DUE_CLAUSE, authorClause(names)], [nowKey(), ...names], options);
|
|
192
392
|
},
|
|
193
393
|
listAll(options = {}) {
|
|
194
394
|
const where = [];
|
|
@@ -203,45 +403,88 @@ export function openContentStore(options) {
|
|
|
203
403
|
}
|
|
204
404
|
where.push('trashed = ?');
|
|
205
405
|
params.push(options.trashed === true ? 1 : 0);
|
|
406
|
+
if (options.scheduled !== undefined) {
|
|
407
|
+
where.push(options.scheduled ? SCHEDULED_CLAUSE : DUE_CLAUSE);
|
|
408
|
+
params.push(nowKey());
|
|
409
|
+
}
|
|
206
410
|
if (options.tag !== undefined) {
|
|
207
411
|
where.push('path IN (SELECT path FROM document_tags WHERE tag = ?)');
|
|
208
412
|
params.push(options.tag);
|
|
209
413
|
}
|
|
414
|
+
if (options.category !== undefined) {
|
|
415
|
+
where.push('path IN (SELECT path FROM document_categories WHERE category = ?)');
|
|
416
|
+
params.push(options.category);
|
|
417
|
+
}
|
|
210
418
|
return select(where, params, options);
|
|
211
419
|
},
|
|
420
|
+
listFederated(options = {}) {
|
|
421
|
+
return select([`type = 'post'`, FEDERATED_CLAUSE], [], options);
|
|
422
|
+
},
|
|
212
423
|
listPaths() {
|
|
213
424
|
return statements.paths.all().map((row) => String(row['path']));
|
|
214
425
|
},
|
|
215
426
|
counts() {
|
|
216
|
-
const
|
|
427
|
+
const now = nowKey();
|
|
428
|
+
const row = statements.counts.get(now, now, now);
|
|
217
429
|
return {
|
|
218
430
|
total: Number(row['total']),
|
|
219
431
|
posts: Number(row['posts']),
|
|
220
432
|
pages: Number(row['pages']),
|
|
221
433
|
drafts: Number(row['drafts']),
|
|
434
|
+
scheduled: Number(row['scheduled']),
|
|
222
435
|
trashed: Number(row['trashed']),
|
|
223
436
|
};
|
|
224
437
|
},
|
|
225
438
|
countByTag(tag, options = {}) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
439
|
+
return countByTerm('document_tags', 'tag', tag, options);
|
|
440
|
+
},
|
|
441
|
+
countByCategory(category, options = {}) {
|
|
442
|
+
return countByTerm('document_categories', 'category', category, options);
|
|
443
|
+
},
|
|
444
|
+
countByAuthor(names) {
|
|
445
|
+
if (names.length === 0)
|
|
446
|
+
return 0;
|
|
232
447
|
const row = db
|
|
233
|
-
.prepare(`SELECT COUNT(*) AS count FROM
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
.get(...
|
|
448
|
+
.prepare(`SELECT COUNT(*) AS count FROM documents
|
|
449
|
+
WHERE type = 'post' AND draft = 0 AND trashed = 0
|
|
450
|
+
AND ${DUE_CLAUSE} AND ${authorClause(names)}`)
|
|
451
|
+
.get(...[nowKey(), ...names]);
|
|
237
452
|
return Number(row['count']);
|
|
238
453
|
},
|
|
239
454
|
listTags() {
|
|
240
|
-
return statements.tagCounts.all().map((row) => ({
|
|
455
|
+
return statements.tagCounts.all(nowKey()).map((row) => ({
|
|
241
456
|
tag: String(row['tag']),
|
|
242
457
|
count: Number(row['count']),
|
|
243
458
|
}));
|
|
244
459
|
},
|
|
460
|
+
listCategories() {
|
|
461
|
+
return statements.categoryCounts.all(nowKey()).map((row) => ({
|
|
462
|
+
category: String(row['category']),
|
|
463
|
+
count: Number(row['count']),
|
|
464
|
+
}));
|
|
465
|
+
},
|
|
466
|
+
listTermUsage(taxonomy) {
|
|
467
|
+
const query = taxonomy === 'tag' ? statements.tagUsage : statements.categoryUsage;
|
|
468
|
+
return query.all(nowKey()).map((row) => ({
|
|
469
|
+
term: String(row['term']),
|
|
470
|
+
published: Number(row['published']),
|
|
471
|
+
total: Number(row['total']),
|
|
472
|
+
}));
|
|
473
|
+
},
|
|
474
|
+
search(query, options = {}) {
|
|
475
|
+
const expression = searchExpression(query);
|
|
476
|
+
if (expression === undefined)
|
|
477
|
+
return [];
|
|
478
|
+
const rows = statements.search.all(expression, nowKey(), options.limit ?? -1, options.offset ?? 0);
|
|
479
|
+
return rows.map((row) => ({ document: hydrateOne(row), snippet: String(row['snippet']) }));
|
|
480
|
+
},
|
|
481
|
+
countSearch(query) {
|
|
482
|
+
const expression = searchExpression(query);
|
|
483
|
+
if (expression === undefined)
|
|
484
|
+
return 0;
|
|
485
|
+
const row = statements.countSearch.get(expression, nowKey());
|
|
486
|
+
return Number(row['count']);
|
|
487
|
+
},
|
|
245
488
|
close() {
|
|
246
489
|
if (!open)
|
|
247
490
|
return;
|
|
@@ -250,6 +493,38 @@ export function openContentStore(options) {
|
|
|
250
493
|
},
|
|
251
494
|
};
|
|
252
495
|
}
|
|
496
|
+
/**
|
|
497
|
+
* The query behind {@link ContentStore.listTermUsage} for one of the two join
|
|
498
|
+
* tables: every term, the public count and the total, in one pass.
|
|
499
|
+
*
|
|
500
|
+
* The table and column names are the module's own literals rather than
|
|
501
|
+
* anything a caller supplies, so there is nothing here to interpolate from
|
|
502
|
+
* outside; the clock is the one bound parameter.
|
|
503
|
+
*/
|
|
504
|
+
function termUsageSql(table, column) {
|
|
505
|
+
return `
|
|
506
|
+
SELECT ${table}.${column} AS term,
|
|
507
|
+
COALESCE(SUM(
|
|
508
|
+
documents.draft = 0 AND documents.trashed = 0
|
|
509
|
+
AND (documents.date_sort IS NULL OR documents.date_sort <= ?)
|
|
510
|
+
), 0) AS published,
|
|
511
|
+
COUNT(*) AS total
|
|
512
|
+
FROM ${table}
|
|
513
|
+
JOIN documents ON documents.path = ${table}.path
|
|
514
|
+
GROUP BY ${table}.${column}
|
|
515
|
+
ORDER BY term ASC
|
|
516
|
+
`;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* `author IN (?, ?, …)`, with one placeholder per name.
|
|
520
|
+
*
|
|
521
|
+
* Only the count of the names is interpolated; every name itself is a bound
|
|
522
|
+
* parameter, so a display name holding a quote is a string to match rather
|
|
523
|
+
* than anything SQLite reads as syntax.
|
|
524
|
+
*/
|
|
525
|
+
function authorClause(names) {
|
|
526
|
+
return `author IN (${names.map(() => '?').join(', ')})`;
|
|
527
|
+
}
|
|
253
528
|
function limitClause(options) {
|
|
254
529
|
if (options.limit === undefined && options.offset === undefined)
|
|
255
530
|
return '';
|
|
@@ -288,7 +563,7 @@ function toRow(document) {
|
|
|
288
563
|
* Optional fields are left off entirely when the column is NULL, so a document
|
|
289
564
|
* that went through the index deep-equals the one that was parsed from the file.
|
|
290
565
|
*/
|
|
291
|
-
function toDocument(row, tags) {
|
|
566
|
+
function toDocument(row, tags, categories) {
|
|
292
567
|
return {
|
|
293
568
|
type: String(row['type']),
|
|
294
569
|
path: String(row['path']),
|
|
@@ -298,6 +573,7 @@ function toDocument(row, tags) {
|
|
|
298
573
|
...optional('date', text(row['date'])),
|
|
299
574
|
...optional('updated', text(row['updated'])),
|
|
300
575
|
tags,
|
|
576
|
+
categories,
|
|
301
577
|
draft: row['draft'] === 1,
|
|
302
578
|
...optional('description', text(row['description'])),
|
|
303
579
|
...optional('author', text(row['author'])),
|
|
@@ -337,6 +613,8 @@ function isUniqueViolation(error, column) {
|
|
|
337
613
|
return false;
|
|
338
614
|
return error.message.includes('UNIQUE constraint failed') && error.message.includes(column);
|
|
339
615
|
}
|
|
616
|
+
/** The table this store's applied versions are recorded in. */
|
|
617
|
+
const LEDGER = 'migrations';
|
|
340
618
|
/**
|
|
341
619
|
* Schema versions, applied in order. Never edit a migration that has shipped;
|
|
342
620
|
* append a new one, so a site that upgrades lands on the same schema as a site
|
|
@@ -380,32 +658,61 @@ const MIGRATIONS = [
|
|
|
380
658
|
CREATE INDEX document_tags_tag ON document_tags (tag);
|
|
381
659
|
`,
|
|
382
660
|
},
|
|
661
|
+
{
|
|
662
|
+
version: 2,
|
|
663
|
+
sql: `
|
|
664
|
+
CREATE TABLE document_categories (
|
|
665
|
+
path TEXT NOT NULL REFERENCES documents (path) ON DELETE CASCADE,
|
|
666
|
+
category TEXT NOT NULL,
|
|
667
|
+
position INTEGER NOT NULL,
|
|
668
|
+
PRIMARY KEY (path, category)
|
|
669
|
+
);
|
|
670
|
+
|
|
671
|
+
CREATE INDEX document_categories_category ON document_categories (category);
|
|
672
|
+
|
|
673
|
+
-- A file that already carried categories hashes the same as it did
|
|
674
|
+
-- before the key was modelled, so a sync would find every row up to date
|
|
675
|
+
-- and never learn what those files are filed under. Emptying the index
|
|
676
|
+
-- is what makes the next scan read them all again; the files are the
|
|
677
|
+
-- source of truth, so nothing is lost (decision-1).
|
|
678
|
+
DELETE FROM documents;
|
|
679
|
+
`,
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
version: 3,
|
|
683
|
+
sql: `
|
|
684
|
+
-- The renderer now puts \`tabindex="0"\` on every \`<pre>\` (TASK-86), so a
|
|
685
|
+
-- wide block of code can be scrolled from the keyboard. The HTML in this
|
|
686
|
+
-- table was rendered by the old one, and the hash covers the file rather
|
|
687
|
+
-- than what was made of it, so a scan would find every row up to date and
|
|
688
|
+
-- serve the old markup for as long as nobody edited the post. Emptying
|
|
689
|
+
-- the index is what makes the next scan render them all again; the files
|
|
690
|
+
-- are the source of truth, so nothing is lost (decision-1).
|
|
691
|
+
DELETE FROM documents;
|
|
692
|
+
`,
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
version: 4,
|
|
696
|
+
sql: `
|
|
697
|
+
-- The full-text index (TASK-22): one row per document, keyed by path,
|
|
698
|
+
-- holding the words it is found by. \`porter\` so "running" finds "run",
|
|
699
|
+
-- \`remove_diacritics\` so "cafe" finds "café".
|
|
700
|
+
CREATE VIRTUAL TABLE documents_fts USING fts5 (
|
|
701
|
+
path UNINDEXED,
|
|
702
|
+
title,
|
|
703
|
+
description,
|
|
704
|
+
terms,
|
|
705
|
+
body,
|
|
706
|
+
tokenize = 'porter unicode61 remove_diacritics 2'
|
|
707
|
+
);
|
|
708
|
+
|
|
709
|
+
-- The body is indexed as the text of its rendered HTML, which SQL cannot
|
|
710
|
+
-- work out from the row, and the hash covers the file rather than the
|
|
711
|
+
-- index, so a scan would find every row up to date and never fill the
|
|
712
|
+
-- table. Emptying the index is what makes the next scan index them all;
|
|
713
|
+
-- the files are the source of truth, so nothing is lost (decision-1).
|
|
714
|
+
DELETE FROM documents;
|
|
715
|
+
`,
|
|
716
|
+
},
|
|
383
717
|
];
|
|
384
|
-
function migrate(db) {
|
|
385
|
-
db.exec(`
|
|
386
|
-
CREATE TABLE IF NOT EXISTS migrations (
|
|
387
|
-
version INTEGER PRIMARY KEY,
|
|
388
|
-
applied_at TEXT NOT NULL
|
|
389
|
-
)
|
|
390
|
-
`);
|
|
391
|
-
const applied = new Set(db
|
|
392
|
-
.prepare('SELECT version FROM migrations')
|
|
393
|
-
.all()
|
|
394
|
-
.map((row) => Number(row['version'])));
|
|
395
|
-
const record = db.prepare('INSERT INTO migrations (version, applied_at) VALUES (?, ?)');
|
|
396
|
-
for (const migration of MIGRATIONS) {
|
|
397
|
-
if (applied.has(migration.version))
|
|
398
|
-
continue;
|
|
399
|
-
db.exec('BEGIN');
|
|
400
|
-
try {
|
|
401
|
-
db.exec(migration.sql);
|
|
402
|
-
record.run(migration.version, new Date().toISOString());
|
|
403
|
-
db.exec('COMMIT');
|
|
404
|
-
}
|
|
405
|
-
catch (error) {
|
|
406
|
-
db.exec('ROLLBACK');
|
|
407
|
-
throw error;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
718
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/content/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/content/store.ts"],"names":[],"mappings":"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"}
|