You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cms: ADMIN_TEMPLATES, which @geekity/cms exports, now names every template under pages/, layouts/ or components/, and its users and user keys are usersList, usersNew and usersEdit.
cms: themeDir and GEEKITY_THEME_DIR are gone; a site's theme/ becomes themes// with a theme.json, chosen by the theme setting in content/_data/site.json.
cms: the site actor is gone and /ap/ is unregistered. The actorHandle, actorType and avatar settings and the site avatar upload are removed, followers move to content/_data/federation/{username}/followers.json, and the site actor's keys and followers are retired rather than migrated: a site that federated as the site actor starts again as its users. Follower, InboxActivity, the AdminStore follower methods, deliveryTargets, followersPage and delivery.updateActor changed signature; siteActor and ACTOR_CLASSES are replaced by userActor.
cms: the template context's author is a profile object rather than the front-matter string, so a theme printing {{ author }} must move to {{ author.name }}. author and inbox are reserved top-level paths, so a site using either as a taxonomy base or permalink prefix must move. createRenderer takes a users resolver.
cms: home.njk's title block and body slot change, Renderer gains frontPageSlugs and renderFrontPage, navigationPages takes a second argument, and /page/N/ under a static homepage redirects to the posts page instead of serving the listing.
cms: /admin/settings no longer accepts the whole-settings form; each page posts its own fields to its own URL. The settings admin template is replaced by six under admin/layouts/settings/, and mountSettings, the AVATAR_, AKISMET_ and MAIL_ names and the panels are exported from their page modules.
cms: AdminSection gains children and the top-level order changed; TAG_KIND.section and CATEGORY_KIND.section are now 'posts'; adding a user moved from POST /admin/users to POST /admin/users/new.
cms: RSS subscribers of a post born on this CMS see it once more as new. Its guid was the old {baseUrl}/ap/posts/{slug} object id and is now the permalink, marked isPermaLink="true"; a post carrying an activitypub.id keeps that guid, marked isPermaLink="false". Atom's entry id and JSON Feed's item id print the same object id rather than the permalink, which moves only a post carrying a stored id. All three formats now list categories as well as tags, and all three summarise with the description if there is one and an excerpt of the body if there is not.
cms: a post's ActivityStreams id is now its permalink, and the /ap/posts/{slug} route is gone. A post announced under the old id, and with no activitypub.id in its file, is a new object to its followers; its RSS guid moves with it. A post whose file names an activitypub.id keeps it. postObjectId, postObjectPath, POST_OBJECT_PATH and federatedObject left the public exports.
cms: postConversation, postComments, siteComments, commentCounts, commentInteractions, interactionOf and the Comment and CommentContext types are no longer exported. Use createConversation, its thread, counts and latest members, spokenIn and feedComments.
cms: Conversation gained a mentions group and counts.mentions, InteractionKind gained mention and repost, CommentAuthor gained a required avatar and CommentRecord a required url. Themes or embedders that construct these types or switch exhaustively on kind must change.
cms: DeliveryService.redeliver(activityId) is replaced by resend(slug); REDELIVER_PATH, redeliveryMessage, OutboundActivity, NewOutboundActivity and the AdminStore outbound-activity methods are removed; NewDelivery requires activityType, objectId and slug; the admin route moves from /admin/federation/redeliver to /admin/federation/resend; the ap_outbound table is dropped.
cms: AdminStore.countUsers, listUsers, getUser, getUserById, createUser, verifyPassword, setPassword and deleteUser are removed in favour of file-backed functions exported from the admin module; User, StoredUser, CreateUserInput and DuplicateUsernameError move with them; the users table no longer exists.
cms: loadActorKeyPairs takes the data directory instead of the admin store; AdminStore.listActorKeys and putActorKey and the ActorKey and NewActorKey types are removed; ACTOR_KEY_ALGORITHMS and ActorKeyAlgorithm move to the federation module; the actor_keys table no longer exists.
cms: seedSiteSettings, writeSiteSettings, storeSiteSettings, settingsSiteData and the SiteSettingsSource renderer option are removed; readSiteSettings takes the content directory instead of the admin store, and the settings table no longer exists.
cms: the theme date filter's readable, html and year formats render in the site's timezone instead of UTC; iso is unchanged.
cms:/feed.xml and /feed.json are gone without redirects; FEED_FILES is replaced by FEED_SEGMENTS, FeedFormat gains rss, and feedHref takes a taxonomy term instead of a tag.
cms:TAG_SEGMENT and CATEGORY_SEGMENT are replaced by DEFAULT_TAXONOMY_BASES; termHref, tagHref, categoryHref and feedHref take the bases as a required trailing argument, and partials/tags.njk must be imported with context.
Features
cms: a shipped front page with recent posts, and archive pages by month (6d7fa55)
cms: accept native comments with moderation, per-post switch and auto-close (9b917d7)
cms: add a /healthz health check that answers 503 when the site cannot serve (67c3447)
cms: add a media screen that lists, uploads and deletes files under content/uploads (3302381)
cms: add categories as a second taxonomy alongside tags (7b87811)
cms: advertise an rssCloud/WebSub notify server and ping it on publish (1580240)
cms: appearance screen that lists the site's themes and activates one (dac3d83)
cms: batch pending-comment notices into an hourly or daily digest (8da199f)
cms: check native comments and webmentions with Akismet when a key is set (a172e70)
cms: choose what the homepage displays, with an optional posts page (f87ebab)
cms: derive image variants with sharp and render uploads as responsive pictures (744823b)
cms: email moderators about pending comments and commenters about replies (a29dac0)
cms: federate posts under their permalink (323b704)
cms: full-text search over posts and pages (4238216)
cms: full-text search over posts and pages (c440807)
cms: give each user an edit page of their own (baee3d8)
cms: give every admin section children and mark the landing child (c837c14)
cms: give every user a profile, an archive and feeds at /author/{username}/ (6033ff3)
cms: highlight code on the client with a self-hosted highlight.js bundle (3997746)
cms: hold future-dated posts as scheduled and publish them on time (aa14180)
cms: honour a user's stored actor id, and serve them under it (b917173)
cms: import a WordPress ActivityPub actor's keys, ids and followers (ecb8612)
cms: keep the actor's key pairs as JWK files under data/keys (799192b)
cms: keep users in data/users.json and treat sessions as a cache (dbf3952)
cms: key every feed by the post's object id, with one set of terms and one summary (bbd992f)
cms: listings as an h-feed of feed items with excerpt, date and categories (c8ffdfc)
cms: make content/_data/site.json the source of truth for settings (6639a82)
cms: make every user an actor at their author URL (ba8db33)
cms: make tag and category bases settings defaulting to /tag/ and /category/ (c285ab8)
cms: manage tags and categories with rename, merge and delete (9bf6cab)
cms: meta tags, icons from the site avatar and a JSON-LD graph in the head (04eaab4)