@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/admin/static/admin.css
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
--admin-link: #2271b1;
|
|
21
21
|
--admin-notice: #00a32a;
|
|
22
22
|
--admin-error: #d63638;
|
|
23
|
+
--admin-unread: #f0f6fc;
|
|
23
24
|
--admin-nav-width: 11rem;
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -129,12 +130,73 @@ a {
|
|
|
129
130
|
font-weight: 600;
|
|
130
131
|
}
|
|
131
132
|
|
|
133
|
+
/* A section is a heading over its screens. Only the open one shows them, so
|
|
134
|
+
the menu is a list of nine things until you are inside one of them. */
|
|
135
|
+
|
|
136
|
+
.admin-nav-section + .admin-nav-section {
|
|
137
|
+
border-top: 1px solid #3c434a;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.admin-nav-heading {
|
|
141
|
+
font-weight: 600;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.admin-nav-open > .admin-nav-heading {
|
|
145
|
+
background: #1d2327;
|
|
146
|
+
color: #fff;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.admin-nav-children {
|
|
150
|
+
background: #32373c;
|
|
151
|
+
font-size: 0.95em;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.admin-nav-children a {
|
|
155
|
+
padding-left: 1.6rem;
|
|
156
|
+
font-weight: 400;
|
|
157
|
+
}
|
|
158
|
+
|
|
132
159
|
.admin-main {
|
|
133
160
|
flex: 1;
|
|
134
161
|
min-width: 0;
|
|
135
162
|
padding: 1.25rem 1.5rem 3rem;
|
|
136
163
|
}
|
|
137
164
|
|
|
165
|
+
/* Narrow: the column would be a sliver, so the menu goes above the screen and
|
|
166
|
+
wraps, sections on one line and the open section's children under them. */
|
|
167
|
+
|
|
168
|
+
@media (max-width: 45rem) {
|
|
169
|
+
.admin-shell {
|
|
170
|
+
display: block;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.admin-nav > ul,
|
|
174
|
+
.admin-nav-children {
|
|
175
|
+
display: flex;
|
|
176
|
+
flex-wrap: wrap;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.admin-nav-section + .admin-nav-section {
|
|
180
|
+
border-top: 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.admin-nav-section {
|
|
184
|
+
flex: 1 0 auto;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.admin-nav-open {
|
|
188
|
+
flex-basis: 100%;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.admin-nav-children a {
|
|
192
|
+
padding-left: 0.9rem;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.admin-main {
|
|
196
|
+
padding: 1rem 1rem 3rem;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
138
200
|
/* Login and setup: no navigation, one card in the middle of the page. */
|
|
139
201
|
|
|
140
202
|
.admin-plain {
|
|
@@ -230,10 +292,20 @@ h2 {
|
|
|
230
292
|
color: var(--admin-muted);
|
|
231
293
|
}
|
|
232
294
|
|
|
295
|
+
/* What a page is to the site besides a page: Front Page, Posts Page. */
|
|
296
|
+
.admin-page-role {
|
|
297
|
+
color: var(--admin-muted);
|
|
298
|
+
}
|
|
299
|
+
|
|
233
300
|
.admin-status-draft {
|
|
234
301
|
color: var(--admin-error);
|
|
235
302
|
}
|
|
236
303
|
|
|
304
|
+
/* Published, but not yet: waiting for its date rather than for a decision. */
|
|
305
|
+
.admin-status-scheduled {
|
|
306
|
+
color: var(--admin-link);
|
|
307
|
+
}
|
|
308
|
+
|
|
237
309
|
.admin-empty {
|
|
238
310
|
color: var(--admin-muted);
|
|
239
311
|
}
|
|
@@ -248,6 +320,7 @@ label {
|
|
|
248
320
|
|
|
249
321
|
input[type='text'],
|
|
250
322
|
input[type='password'],
|
|
323
|
+
input[type='email'],
|
|
251
324
|
textarea {
|
|
252
325
|
width: 100%;
|
|
253
326
|
padding: 0.4rem 0.5rem;
|
|
@@ -570,7 +643,7 @@ button[type='submit']:hover,
|
|
|
570
643
|
font-size: 1.05rem;
|
|
571
644
|
}
|
|
572
645
|
|
|
573
|
-
.admin-settings h2:first-
|
|
646
|
+
.admin-settings h2:first-of-type {
|
|
574
647
|
margin-top: 0;
|
|
575
648
|
padding-top: 0;
|
|
576
649
|
border-top: 0;
|
|
@@ -602,8 +675,8 @@ button[type='submit']:hover,
|
|
|
602
675
|
margin: 0;
|
|
603
676
|
}
|
|
604
677
|
|
|
605
|
-
/*
|
|
606
|
-
|
|
678
|
+
/* One user's screen stacks five panels of the same shape, so they need the gap
|
|
679
|
+
the settings screen's single panel never did. */
|
|
607
680
|
|
|
608
681
|
.admin-list + .admin-settings,
|
|
609
682
|
.admin-settings + .admin-settings {
|
|
@@ -696,6 +769,22 @@ button[type='submit']:hover,
|
|
|
696
769
|
display: block;
|
|
697
770
|
}
|
|
698
771
|
|
|
772
|
+
/* Whether Akismet is on, which is the first thing anybody opening that panel
|
|
773
|
+
is asking. A line rather than a badge, so it can say what it means. */
|
|
774
|
+
|
|
775
|
+
.admin-akismet-state {
|
|
776
|
+
margin: 0.75rem 0 0.25rem;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.admin-akismet-state.admin-akismet-valid strong {
|
|
780
|
+
color: var(--admin-notice);
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.admin-akismet-state.admin-akismet-invalid strong,
|
|
784
|
+
.admin-akismet-state.admin-akismet-unchecked strong {
|
|
785
|
+
color: var(--admin-error);
|
|
786
|
+
}
|
|
787
|
+
|
|
699
788
|
.admin-actor-identity {
|
|
700
789
|
display: flex;
|
|
701
790
|
gap: 0.75rem;
|
|
@@ -724,3 +813,409 @@ button[type='submit']:hover,
|
|
|
724
813
|
.admin-status-failed {
|
|
725
814
|
color: var(--admin-error);
|
|
726
815
|
}
|
|
816
|
+
|
|
817
|
+
/* The taxonomy screens: a table of terms with an inline rename field in each
|
|
818
|
+
row, so a rename is one field and one button rather than a second screen.
|
|
819
|
+
The users screen edits an email address the same way, for the same reason. */
|
|
820
|
+
|
|
821
|
+
.admin-inline {
|
|
822
|
+
display: flex;
|
|
823
|
+
align-items: baseline;
|
|
824
|
+
gap: 0.4rem;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
.admin-inline input[type='text'],
|
|
828
|
+
.admin-inline input[type='email'] {
|
|
829
|
+
width: 12rem;
|
|
830
|
+
margin: 0;
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
.admin-inline button {
|
|
834
|
+
margin: 0;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/* One user's screen (TASK-97): the same panels the settings pages are made of,
|
|
838
|
+
so a field here looks like a field anywhere else in the admin. What is left
|
|
839
|
+
is what a panel holds that a settings page does not — a line of prose about
|
|
840
|
+
the account, and one notice at a time. */
|
|
841
|
+
|
|
842
|
+
.admin-field-static {
|
|
843
|
+
margin: 0 0 0.25rem;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
.admin-notice + .admin-notice {
|
|
847
|
+
margin-top: 1.25rem;
|
|
848
|
+
padding-top: 1.25rem;
|
|
849
|
+
border-top: 1px solid var(--admin-border);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.admin-notice h3 {
|
|
853
|
+
margin: 1rem 0 0.25rem;
|
|
854
|
+
font-size: 1rem;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
.admin-notice .admin-inline {
|
|
858
|
+
margin-top: 0.5rem;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/* The how-often select beside a notification switch: narrow, so a row of
|
|
862
|
+
switches and windows still reads as one column rather than as a form. */
|
|
863
|
+
|
|
864
|
+
.admin-inline select {
|
|
865
|
+
margin: 0;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/* A label the screen reader reads and the eye does not: every rename field
|
|
869
|
+
needs its own name, and printing "Rename eleventy to" beside each one would
|
|
870
|
+
say five times over what the column heading says once. */
|
|
871
|
+
|
|
872
|
+
.admin-visually-hidden {
|
|
873
|
+
position: absolute;
|
|
874
|
+
width: 1px;
|
|
875
|
+
height: 1px;
|
|
876
|
+
margin: -1px;
|
|
877
|
+
padding: 0;
|
|
878
|
+
border: 0;
|
|
879
|
+
overflow: hidden;
|
|
880
|
+
clip-path: inset(50%);
|
|
881
|
+
white-space: nowrap;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/* The media library. Wide rows: a thumbnail, the two copyable fields, and the
|
|
885
|
+
documents pointing at the file, which is what a delete has to warn about. */
|
|
886
|
+
|
|
887
|
+
.admin-media td {
|
|
888
|
+
vertical-align: top;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
.admin-media-file {
|
|
892
|
+
display: flex;
|
|
893
|
+
align-items: center;
|
|
894
|
+
gap: 0.6rem;
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
.admin-media-thumbnail {
|
|
898
|
+
display: block;
|
|
899
|
+
width: 60px;
|
|
900
|
+
height: 60px;
|
|
901
|
+
object-fit: cover;
|
|
902
|
+
background: var(--admin-field);
|
|
903
|
+
border: 1px solid var(--admin-border);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/* What a file that is not a picture gets instead of a thumbnail: its
|
|
907
|
+
extension, at the size a thumbnail would have been, so the rows line up. */
|
|
908
|
+
|
|
909
|
+
.admin-media-icon {
|
|
910
|
+
display: flex;
|
|
911
|
+
align-items: center;
|
|
912
|
+
justify-content: center;
|
|
913
|
+
width: 60px;
|
|
914
|
+
height: 60px;
|
|
915
|
+
flex: 0 0 auto;
|
|
916
|
+
background: var(--admin-field);
|
|
917
|
+
border: 1px solid var(--admin-border);
|
|
918
|
+
color: var(--admin-muted);
|
|
919
|
+
font-size: 0.75em;
|
|
920
|
+
font-weight: 600;
|
|
921
|
+
letter-spacing: 0.05em;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
.admin-media-links {
|
|
925
|
+
min-width: 18rem;
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
/* The copy control: a readonly field that works on its own, and a button that
|
|
929
|
+
copy.js reveals. The field is monospaced because what is in it is a URL or a
|
|
930
|
+
line of Markdown, and both are read character by character. */
|
|
931
|
+
|
|
932
|
+
.admin-copy {
|
|
933
|
+
display: flex;
|
|
934
|
+
align-items: stretch;
|
|
935
|
+
gap: 0.3rem;
|
|
936
|
+
margin-bottom: 0.3rem;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
.admin-copy input {
|
|
940
|
+
flex: 1 1 auto;
|
|
941
|
+
min-width: 0;
|
|
942
|
+
margin: 0;
|
|
943
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
944
|
+
font-size: 0.85em;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
.admin-copy button {
|
|
948
|
+
flex: 0 0 auto;
|
|
949
|
+
margin: 0;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
.admin-references {
|
|
953
|
+
margin: 0;
|
|
954
|
+
padding-left: 1.1rem;
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
/* The comments and messages screens. Both are lists of something a stranger
|
|
958
|
+
wrote, so both are cards rather than table rows: a paragraph is read across,
|
|
959
|
+
and a column narrow enough for a table is not wide enough to read one in.
|
|
960
|
+
The two screens share every rule here, because a contact message is a
|
|
961
|
+
comment nobody can approve and the eye should not have to relearn the shape
|
|
962
|
+
between them. */
|
|
963
|
+
|
|
964
|
+
.admin-comments {
|
|
965
|
+
margin: 0;
|
|
966
|
+
padding: 0;
|
|
967
|
+
list-style: none;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
.admin-comment {
|
|
971
|
+
padding: 0.9rem 1.1rem 1.1rem;
|
|
972
|
+
background: var(--admin-surface);
|
|
973
|
+
border: 1px solid var(--admin-border);
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
.admin-comment + .admin-comment {
|
|
977
|
+
margin-top: 0.75rem;
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
/* An unread message, marked down its left edge the way a flash notice is and
|
|
981
|
+
tinted behind, so a run of them is findable down a long list. Mark read
|
|
982
|
+
drops the class and the row goes back to the card every other row is. */
|
|
983
|
+
|
|
984
|
+
.admin-comment-unread {
|
|
985
|
+
background: var(--admin-unread);
|
|
986
|
+
border-left: 4px solid var(--admin-link);
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
/* Who wrote, how to reach them, and where it stands: one line that wraps
|
|
990
|
+
rather than a stack, because none of it is the thing being read. */
|
|
991
|
+
|
|
992
|
+
.admin-comment-meta {
|
|
993
|
+
display: flex;
|
|
994
|
+
flex-wrap: wrap;
|
|
995
|
+
align-items: baseline;
|
|
996
|
+
gap: 0.15rem 0.6rem;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
.admin-comment-author {
|
|
1000
|
+
font-weight: 600;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
/* A website and an address are both arbitrarily long and neither is worth a
|
|
1004
|
+
line of its own, so they are quiet and they break rather than push the card
|
|
1005
|
+
wider than the screen. */
|
|
1006
|
+
|
|
1007
|
+
.admin-comment-site,
|
|
1008
|
+
.admin-comment-email {
|
|
1009
|
+
color: var(--admin-muted);
|
|
1010
|
+
font-size: 0.9em;
|
|
1011
|
+
overflow-wrap: anywhere;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
.admin-comment-where {
|
|
1015
|
+
margin: 0.15rem 0 0;
|
|
1016
|
+
color: var(--admin-muted);
|
|
1017
|
+
font-size: 0.9em;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
.admin-comment-where code {
|
|
1021
|
+
font-size: 0.9em;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
/* The comment itself. Capped at the measure the settings form reads at: a
|
|
1025
|
+
paragraph running the full width of a wide screen is a paragraph nobody
|
|
1026
|
+
finishes. */
|
|
1027
|
+
|
|
1028
|
+
.admin-comment-body {
|
|
1029
|
+
max-width: 42rem;
|
|
1030
|
+
margin: 0.6rem 0 0;
|
|
1031
|
+
overflow-wrap: anywhere;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
.admin-comment-body > :first-child {
|
|
1035
|
+
margin-top: 0;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
.admin-comment-body > :last-child {
|
|
1039
|
+
margin-bottom: 0;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
/* Somebody else's markup, so it is held inside the card whatever it is. */
|
|
1043
|
+
|
|
1044
|
+
.admin-comment-body img {
|
|
1045
|
+
max-width: 100%;
|
|
1046
|
+
height: auto;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
.admin-comment-body pre {
|
|
1050
|
+
overflow-x: auto;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
.admin-comment-body blockquote {
|
|
1054
|
+
margin-left: 0;
|
|
1055
|
+
padding-left: 0.9rem;
|
|
1056
|
+
border-left: 3px solid var(--admin-border);
|
|
1057
|
+
color: var(--admin-muted);
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
.admin-message-subject {
|
|
1061
|
+
max-width: 42rem;
|
|
1062
|
+
margin: 0.6rem 0 0;
|
|
1063
|
+
overflow-wrap: anywhere;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
/* A comment arrives as Markdown and is rendered; a contact message is plain
|
|
1067
|
+
text and is printed, so the only thing standing between it and one long
|
|
1068
|
+
line is this. */
|
|
1069
|
+
|
|
1070
|
+
.admin-message-body {
|
|
1071
|
+
white-space: pre-wrap;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
/* Approve, Spam, Delete, Reply, Mark read: the same underlined-link row the
|
|
1075
|
+
listings use, but wrapping, because a card is narrower than a table and the
|
|
1076
|
+
Reply link on the messages screen is a button rather than a form. */
|
|
1077
|
+
|
|
1078
|
+
.admin-comment .admin-actions {
|
|
1079
|
+
flex-wrap: wrap;
|
|
1080
|
+
margin-top: 0.9rem;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
.admin-comment .admin-actions .admin-button {
|
|
1084
|
+
margin: 0;
|
|
1085
|
+
padding: 0.1rem 0.5rem;
|
|
1086
|
+
font-size: 0.9em;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
/* The reply box, folded away: most rows are read and moderated without one,
|
|
1090
|
+
and an open textarea under every comment would bury the list. */
|
|
1091
|
+
|
|
1092
|
+
.admin-comment-reply {
|
|
1093
|
+
margin-top: 0.6rem;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
.admin-comment-reply summary {
|
|
1097
|
+
color: var(--admin-link);
|
|
1098
|
+
cursor: pointer;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
.admin-comment-reply form {
|
|
1102
|
+
max-width: 42rem;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
.admin-comment-reply textarea {
|
|
1106
|
+
min-height: 6rem;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
/* Where a comment stands, and whether a message has been read. Pending is the
|
|
1110
|
+
one waiting for a person, which is why it is the loud one; approved is
|
|
1111
|
+
settled and spam is held back. */
|
|
1112
|
+
|
|
1113
|
+
.admin-status-pending {
|
|
1114
|
+
color: var(--admin-link);
|
|
1115
|
+
font-weight: 600;
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
.admin-status-approved {
|
|
1119
|
+
color: var(--admin-notice);
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
.admin-status-spam {
|
|
1123
|
+
color: var(--admin-error);
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/* The paragraph under each of these lists names a directory, and a path with
|
|
1127
|
+
no spaces in it is one long word: on a narrow screen it has to be allowed to
|
|
1128
|
+
break rather than push the page sideways. Every hint that names a file has
|
|
1129
|
+
the same problem. */
|
|
1130
|
+
|
|
1131
|
+
.admin-hint code {
|
|
1132
|
+
overflow-wrap: anywhere;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
/* These two screens wrap their filter tabs in a `nav`, for the label a
|
|
1136
|
+
screen reader reads out; the listings put the class straight on the `ul`.
|
|
1137
|
+
Both end up as one row of links. */
|
|
1138
|
+
|
|
1139
|
+
.admin-filters,
|
|
1140
|
+
.admin-filters ul {
|
|
1141
|
+
flex-wrap: wrap;
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
.admin-filters ul {
|
|
1145
|
+
display: flex;
|
|
1146
|
+
gap: 0.75rem;
|
|
1147
|
+
margin: 0;
|
|
1148
|
+
padding: 0;
|
|
1149
|
+
list-style: none;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
/* Appearance > Themes. One card per theme, the way WordPress lays them out,
|
|
1153
|
+
because the unit here is a whole theme rather than a row in a table: it has
|
|
1154
|
+
a name, a sentence about itself, the directory it is chosen by, and one
|
|
1155
|
+
thing you can do to it. The grid fills the width it is given and folds to
|
|
1156
|
+
one column on a narrow screen without a media query. */
|
|
1157
|
+
|
|
1158
|
+
.admin-themes,
|
|
1159
|
+
.admin-broken-themes {
|
|
1160
|
+
margin: 1rem 0;
|
|
1161
|
+
padding: 0;
|
|
1162
|
+
list-style: none;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
.admin-themes {
|
|
1166
|
+
display: grid;
|
|
1167
|
+
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
1168
|
+
gap: 1rem;
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
.admin-theme {
|
|
1172
|
+
display: flex;
|
|
1173
|
+
flex-direction: column;
|
|
1174
|
+
gap: 0.4rem;
|
|
1175
|
+
padding: 1rem;
|
|
1176
|
+
background: var(--admin-surface);
|
|
1177
|
+
border: 1px solid var(--admin-border);
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
/* The one in use, marked the way the open section of the menu is: by the same
|
|
1181
|
+
blue, so "this is where you are" reads the same everywhere in the admin. */
|
|
1182
|
+
|
|
1183
|
+
.admin-theme-current {
|
|
1184
|
+
border-color: var(--admin-nav-current);
|
|
1185
|
+
box-shadow: inset 0 0 0 1px var(--admin-nav-current);
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.admin-theme h2 {
|
|
1189
|
+
margin: 0;
|
|
1190
|
+
font-size: 1.1em;
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
.admin-theme p {
|
|
1194
|
+
margin: 0;
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
.admin-status-active {
|
|
1198
|
+
color: var(--admin-nav-current);
|
|
1199
|
+
font-weight: 600;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.admin-theme-description {
|
|
1203
|
+
color: var(--admin-muted);
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
/* The directory name, which is what `site.json` holds and what a person types
|
|
1207
|
+
when they are editing that file by hand rather than pressing a button. */
|
|
1208
|
+
|
|
1209
|
+
.admin-theme-id code {
|
|
1210
|
+
overflow-wrap: anywhere;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
/* A directory that was meant to be a theme. Listed, with the reason, because a
|
|
1214
|
+
theme that quietly stopped appearing is the hardest kind of typo to find. */
|
|
1215
|
+
|
|
1216
|
+
.admin-broken-theme {
|
|
1217
|
+
padding: 0.35rem 0;
|
|
1218
|
+
border-bottom: 1px solid var(--admin-field);
|
|
1219
|
+
color: var(--admin-muted);
|
|
1220
|
+
overflow-wrap: anywhere;
|
|
1221
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* The media screen's copy buttons, and nothing else.
|
|
2
|
+
|
|
3
|
+
Every URL and every ready-made Markdown line is already a readonly text
|
|
4
|
+
input, which selects and copies like any other text, so the screen is
|
|
5
|
+
complete before this file loads. The buttons are rendered `hidden` and
|
|
6
|
+
revealed here: a button that did nothing without JavaScript would be worse
|
|
7
|
+
than no button.
|
|
8
|
+
|
|
9
|
+
It is a file rather than an inline <script> for the same reason slug.js is:
|
|
10
|
+
the admin's Content-Security-Policy says `script-src 'self'` and means it.
|
|
11
|
+
|
|
12
|
+
Plain ES5-shaped browser JavaScript, checked by eslint's browser config and
|
|
13
|
+
left alone by the TypeScript build: it is served as it is written. */
|
|
14
|
+
(function () {
|
|
15
|
+
/* The clipboard API is the whole point of the button. Without it — an
|
|
16
|
+
insecure origin, an old browser — the fields stay as they are and no
|
|
17
|
+
button appears. */
|
|
18
|
+
if (!navigator.clipboard) return;
|
|
19
|
+
|
|
20
|
+
var buttons = document.querySelectorAll('.admin-copy-button');
|
|
21
|
+
if (!buttons.length) return;
|
|
22
|
+
|
|
23
|
+
Array.prototype.forEach.call(buttons, function (button) {
|
|
24
|
+
var field = document.getElementById(button.getAttribute('data-copy'));
|
|
25
|
+
if (!field) return;
|
|
26
|
+
|
|
27
|
+
button.hidden = false;
|
|
28
|
+
button.addEventListener('click', function () {
|
|
29
|
+
navigator.clipboard.writeText(field.value).then(
|
|
30
|
+
function () {
|
|
31
|
+
said(button, 'Copied');
|
|
32
|
+
},
|
|
33
|
+
function () {
|
|
34
|
+
/* Refused, usually because the document was not focused. Selecting
|
|
35
|
+
the text is then the useful thing to do: the keyboard shortcut
|
|
36
|
+
everybody already knows takes it from there. */
|
|
37
|
+
field.select();
|
|
38
|
+
said(button, 'Press ⌘C');
|
|
39
|
+
},
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
/* Say something on the button for a moment, then put its label back. */
|
|
45
|
+
function said(button, message) {
|
|
46
|
+
if (button.dataset.label === undefined) button.dataset.label = button.textContent;
|
|
47
|
+
button.textContent = message;
|
|
48
|
+
window.setTimeout(function () {
|
|
49
|
+
button.textContent = button.dataset.label;
|
|
50
|
+
}, 1500);
|
|
51
|
+
}
|
|
52
|
+
})();
|