Releases: getindiekit/indiekit
v1.0.0 Alpha 18
The final alpha release before the beta launch. The primary feature of this release is the ability to create and update several post types (media and event post types will be added during the beta).
🚨 Breaking changes
There are a few breaking changes to be aware of:
- Deleting a post now doesn’t remove that post’s file from a content store, but instead removes all content-like values and adds a
deleted
date. This is so that deleted posts can be correctly given a410 Gone
status, rather than the less helpful404 Not Found
- although this very much depends on how a static site generator is configured. - The Jekyll preset now sets
published: false
in a post’s front matter (instead ofdraft: true
) if saved as a draft. This is the documented means of preventing a post from being published. - The Hugo preset now sets both
date
andpublishDate
with a post’s published property. Additionally,lastmod
is populated when a post is updated, andexpiryDate
is added when a post is deleted.
Features
- endpoint-files: return 404 if no file (86ef71d)
- endpoint-files: show post type icon in file card (8964f0f)
- endpoint-files: use details component for file properties (f2efacc)
- endpoint-media: sort source query by published date (6bf5e7a)
- endpoint-micropub: refactor delete/undelete (118c0e3)
- endpoint-micropub: say restored, not undelete (261a956)
- endpoint-micropub: say restored, not undelete (db7308e)
- endpoint-micropub: sort source query by published date (52d9350)
- endpoint-posts: categories (19b9174)
- endpoint-posts: create (note) post (0309377)
- endpoint-posts: create article or bookmark post (b4a7ce8)
- endpoint-posts: create/update like post (93bb8d1)
- endpoint-posts: create/update reply post (62da2ed)
- endpoint-posts: create/update repost post (acb1b2b)
- endpoint-posts: create/update rsvp post (c30ba8f)
- endpoint-posts: display post status (facc6ce)
- endpoint-posts: edit post (11fcef9)
- endpoint-posts: return 404 if no post (1f37040)
- endpoint-posts: undelete post (dc6a92a)
- endpoint-posts: update new post url (f6bd9a6)
- endpoint-posts: use details component for file properties (487bb4b)
- endpoint-syndicate: find posts with syndication target(s) (29dda48)
- endpoint-syndicate: only syndicate posts with published post status (920d463)
- endpoint: add updated date when updating post (4c98091)
- frontend: add block outside of fieldset, add form block (602caa0)
- frontend: add undelete icon (c88daa4)
- frontend: allow label to be a page heading (cc2a942)
- frontend: badge component (7666d5f)
- frontend: better display of code values in summary rows (903d2b4)
- frontend: button-group style (340edb8)
- frontend: card component (f3ebbf8)
- frontend: createPost icon (7eaf867)
- frontend: declarative colour and size properties on badge component (10529a9)
- frontend: define colour to use on focus (c8bc279)
- frontend: delete file list component (f0c666e)
- frontend: details component (981cf18)
- frontend: excerpt filter (93134ff)
- frontend: header navigation styles (ff73d89)
- frontend: review accessibility and design of notification component (0e4dff1)
- frontend: style for current navigation item (7ccaa09)
- frontend: token input (b9a58a6)
- frontend: updatePost icon (f78190a)
- frontend: use mona sans (0c4a64d)
- frontend: widont filter (675f945)
- indiekit: indicate current navigation item (a8a492a)
- preset-hugo: populate expiryDate if deleted property (7d7573f)
- preset-hugo: populate lastmod if updated property (77b9a10)
- preset-jekyll: populate deleted if deleted property (47a599b)
- preset-jekyll: populate updated if updated property (00e4887)
Bug Fixes
- endpoint-auth: move buttons outside fieldset (f72a3d9)
- endpoint-auth: remove fieldset from new password view (0ccb12b)
- endpoint-auth: use notification not warning for new password setup (f37a493)
- endpoint-files: move buttons outside fieldset (3d2c7d6)
- endpoint-files: use prose for download link (4a2df56)
- endpoint-micropub: correct response for source url query (55120e7)
- endpoint-micropub: only update post-status property after publishing (38a78e2)
- endpoint-posts: correct localisation string for widget title (62a1a3b)
- endpoint-posts: missing parent post name text (e3c60df)
- endpoint-posts: move buttons outside fieldset (a218438)
- endpoint-posts: use correct response from micropub source url query (ad7e55c)
- endpoint-posts: use deleted (not post-status) property to indicate deleted posts (af1d108)
- endpoint-share: don’t remove preview values on page load (4faaa6a)
- endpoint-share: move buttons outside fieldset (bf39196)
- frontend: add outline to offset badge (b2cb3c2)
- frontend: badge component style refinement (35100ba)
- frontend: base style for textarea (8adac07)
- frontend: check for actions in summary row (d339ad1)
- frontend: correct errorMessage options (cd0c4f4)
- frontend: define font for button, allowing override (89629b6)
- frontend: define font for inputs (5f9ffd5)
- frontend: ensure focus ring stays above other content (9c87d31)
- frontend: limit heading line length (99897ba)
- frontend: main container spacing (6ed14dc)
- frontend: offset badge colour (697ee7c)
- frontend: only list actions with text (2ddcbbc)
- frontend: remove field spacing after visually hidden elements (8442e67)
- frontend: smaller description excerpt on card (d0fdb24)
- indiekit: always show access token on status page (f7457ae)
- indiekit: remove fieldset from login view (84b04ac)
- micropub: use existing post status, if present, when not in draft mode (4f1baf5)
- preset-hugo: populate publishDate with published property (e4a4140)
- preset-jekyll: use false value for published if draft post status (11177ac)
- syndicator-mastodon: throw error if reply post not relevant (98544ec)
- syndicator-twitter: throw error if reply post not relevant (0bdf3e6)
v1.0.0 Alpha 17
With the previous release having set the groundwork, tidying up and fixing the frontend foundations, Alpha 17 starts to concentrate on the application interface by adding a number of new features:
- Homepage (separate from the server status page)
- Homepage widgets
- Delete files
- Delete posts
- JSON Feed moved into a separate optional plug-in
- Skip link
Note
The homepage is missing some translations, and the ‘Create a new post’ links go to a 404 page. More still to come!
This release also fixes a long standing issue when syndicating posts. Previously, on occasion, a post would get syndicated over and over again – very embarrassing. Turns out this was happening whenever a post failed to syndicate to another configured target.
Rather than throw a 500 error (additionally leading to Netlify suspending any post-deploy webhooks), errors are now silently logged to the console. In addition, any failed syndications are captured both in the mp-syndicate-to
property, and in the JSON response. Thanks to @alienlebarge for helping me track down this issue.
Features
- endpoint-auth: change order of scopes (44f7cd6)
- endpoint-files: delete file (f4649ed)
- endpoint-files: get file name from url (61f3e28)
- endpoint-files: homepage widget (870bbd8)
- endpoint-files: respect scope permissions (a79ef8d)
- endpoint-files: use card grid component (bfa8e8d)
- endpoint-files: use prose for empty state (0cab0bf)
- endpoint-json-feed: make json feed an endpoint plug-in (d3832f3)
- endpoint-json-feed: use widget component (a6bb84b)
- endpoint-media: check scope against multiple actions (144d06c)
- endpoint-media: delete media action (bf2ea72)
- endpoint-media: don’t record last action (5b12042)
- endpoint-media: remove path components from source query response (d8ae9cb)
- endpoint-micropub: replace last action with post-status property (6350d7f)
- endpoint-micropub: smarter replace operation for array values (b610e3e)
- endpoint-micropub: smarter replace operation with empty array (dcdcf31)
- endpoint-posts: delete post (af98b4b)
- endpoint-posts: homepage widget (4191e94)
- endpoint-posts: use prose for empty state (daf205f)
- endpoint-share: plug-in icon (eb8d660)
- endpoint-share: remove navigation item (718a9c7)
- endpoint-share: use widget component (7297678)
- frontend: allow card grid component to accept more media types and include a published date (ea3f2bc)
- frontend: actions component (17a15b4)
- frontend: additional button component styles (a2236a3)
- frontend: back link component (5f4ed1d)
- frontend: delete icon (4570dec)
- frontend: deleted file style (98a5778)
- frontend: enforce line measure upon flow content (ab1cab0)
- frontend: remove file grid component (a45cb8a)
- frontend: skip link component (3e33881)
- frontend: warning button style (b0463f0)
- frontend: widget component (4de91b7)
- indiekit: homepage widgets (7446652)
- indiekit: remove json feed (533a524)
- indiekit: split homepage from server status (f4782db)
- indiekit: update label for delete scope (dd52ef9)
- preset-hugo: rename rsvp post type (00b7bf1)
- preset-jekyll: rename rsvp post type (d3e9cdb)
Bug Fixes
- endpoint-files: correct delete page title (206b3d9)
- endpoint-files: only show widget contents if database (16e6384)
- endpoint-files: use unique view name (f858fdc)
- endpoint-media: delete record from database (3dff8ff)
- endpoint-micropub: enforce arrays for syndication, only add targets when creating data (516d479)
- endpoint-posts: only show widget contents if database (b884385)
- endpoint-syndicator: don’t throw if syndication fails (b429a38)
- endpoint-syndicator: retain syndication targets that failed (1eea6ca)
- frontend: back link default text (3fd8626)
- frontend: consistent anchor styling (a643aac)
- frontend: enable overflow wrap within hint component (af08ab8)
- frontend: fieldset spacing (642982d)
- frontend: footer items alignment (b7e2893)
- frontend: increase error contrast (5a69113)
- frontend: only adjust position of svg icons (796be05)
- frontend: revisit field and fieldset set flow scope (d3f01db)
- frontend: text wrapping in summary key (07fa951)
- frontend: wrapping of code in summary lists (79426c3)
- indiekit: sort categories array (1c01e0e)
v1.0.0 Alpha 16
This release primarily focuses on quality of life improvements within the frontend package, its styles and components. However, it also adds the following features:
- support for Micropub’s
draft
scope - better display of installed plugins in the application interface
- JF2 and JSON feeds, which may be useful for integrating with other services
- improved interface design, especially on smaller screens and in dark mode
- updated interface theming, with the chosen theme colour now creating a matching touch icon
- better integration with password managers on the sign in consent screen
🚨 Breaking change
This release also includes a breaking change for anyone upgrading from 1.0.0 Alpha 13/14/15. The method for hashing passwords has been updated to use bcrypt, rather than md5, meaning your existing password will no longer work.
After updating your server, visit /auth/new-password
to generate a new password secret, and update your existing PASSWORD_SECRET
environment variable with this value.
Features
- endpoint-auth: add draft scope to consent form (4297ab7)
- endpoint-auth: expose username to password managers (21ff717)
- endpoint-auth: remove scope hints (4536090)
- endpoint-auth: use bcrypt for password hashing (df0dd67)
- endpoint-micropub: check scope for draft value (3fe3e5c)
- endpoint-micropub: update post status if draft scope (0be8dcb)
- frontend: card grid component (df4b0e4)
- frontend: custom icon properties (7f5ee2a)
- frontend: heading component (11aee2d)
- frontend: logo component (19a9ee8)
- frontend: navigation component (112c85b)
- frontend: prose component (b99e8f4)
- frontend: section component (68835ff)
- frontend: slugify filter (230bdb8)
- frontend: themed touch icon (80924c5)
- frontend: wrap client url on authorize component (d70156a)
- indiekit: feeds (be582d2)
- indiekit: don’t include draft posts in feeds (2f5f515)
- indiekit: installed plugins. fixes #510 (296480e)
- indiekit: simpler scope labels (bc5ff7d)
- indiekit: themed touch icon (21513e4)
- indiekit: update default theme colour (bd7249c)
- update locale catalogs (ca0e8a9)
Bug Fixes
- frontend: background colour for client icon (612f30a)
- frontend: dark mode (5b488b2)
- frontend: don’t set theme-colour (ae28807)
- frontend: error appearance with minimal ui (a958b04)
- frontend: fieldset and field classes (0837a7b)
- frontend: increase space below legend in nested fieldsets (2c04dd2)
- frontend: notification anchor style (c1544ff)
- frontend: rendering of line breaks in preview (6332d83)
- frontend: summary row wrapping (672554c)
- frontend: tweak adjusted height of textarea (8789268)
- indiekit: non-closing dt element (c3032a5)
- syndicator-twitter: correct curve in logo (d78bf99)
v1.0.0 Alpha 15
v1.0.0 Alpha 14
This release contains a breaking change, so please read before upgrading.
New built-in IndieAuth endpoints
@indiekit/endpoint-token
has been deprecated in favour of @indiekit/endpoint-auth
. This new plug-in provides both built-in authentication and token endpoints, with a streamlined permissions interface, and support for the latest version of the IndieAuth specification. It also provides the foundation for some later features, such as supporting a draft
scope.
Note To maintain the previous behaviour and continuing using the endpoints provided by IndieAuth.com, add the following options to your configuration file:
"application": { "authorizationEndpoint": "https://indieauth.com/auth", "tokenEndpoint": "https://tokens.indieauth.com/token" }
To use the new built-in endpoints:
-
Rename
TOKEN_SECRET
toSECRET
-
Visit
[INDIEKIT_URL]/auth/new-password
and create a password to sign in with -
Save the generated code in a new
PASSWORD_SECRET
environment variable. -
Sign in to your Indiekit server, copy the generated access token, and update any applications that were using any previous token
-
Update the
authorization_endpoint
andtoken_endpoint
links in your website’s<head>
:<link rel="authorization_endpoint" href="[INDIEKIT_URL]/ auth"> <link rel="token_endpoint" href="[INDIEKIT_URL]/auth/token">
Note If you are using Micro.blog, ensure you are using the latest version of this package, v1.0.0 Alpha 15. This provides compatibility for this and other Micropub clients that support an older version of the IndieAuth specification.
Updated configuration options
- #508 Refactor application endpoints
The following configuration options have been renamed:
publication.authorizationEndpoint
→application.authorizationEndpoint
publication.tokenEndpoint
→application.tokenEndpoint
publication.mediaEndpoint
→application.mediaEndpoint
publication.micropubEndpoint
→application.micropubEndpoint
New option to enrich post data
- #493 Enrich post data with Microformats from referenced URLs
If enabled, Indiekit will try to fetch Microformats data for any URL given in a new post (for example bookmark-of
, like-of
, repost-of
, in-reply-to
).
See publication.enrichPostData
Updated documentation
The documentation site has been updated and expanded, and includes a revised getting started guide and set of recommended Micropub clients.
The site is now built using VitePress, which brings with it improved navigation, dark mode and the ability to copy code examples to your clipboard.
Ecosystem
Added the first third-party plug-in to the plug-in directory: indiekit-preset-fff
. 🎉 Thanks to @kwaa for contributing.
Fixes
The following issues have been fixed:
v1.0.0 Alpha 13
Alpha 13 was an unlucky release, as I forgot to include @indiekit/endpoint-auth
in the list of dependencies 😊
See v1.0.0 Alpha 14 for a description of the changes in this release.
v1.0.0 Alpha 12
Features
- endpoint-token: throw error if missing token secret (ebf5946)
- error: add localised string for missing token (957adea)
- error: remove
toJSON()
method (f69a9da). Thanks to @gerwitz for reporting. - frontend: refactor language filters (0d3363c)
- indekit: use English name for unsupported language (7eca162)
Bug Fixes
v1.0.0 Alpha 9
This release is mainly focused on refactoring error handling (using a custom error handler that provides more detail about the nature and cause of an error), and localising many more strings, notably those used in error messages.
Features
- add Polish localisation from Arookei The Wolf (5432ddd)
- add Serbian localisation from Anđela Radojlović (ab54ef7)
- link notification text if
error_uri
given (4506821) - endpoint-files: use custom error handler (cd618f1)
- endpoint-media: localise insufficient scope error (a42f780)
- endpoint-media: localise upload errors (d6121ab)
- endpoint-media: remove unused read method on mediaData (3c37ce3)
- endpoint-media: use custom error handler (f4f7193)
- endpoint-micropub: localise action errors (e558baa)
- endpoint-micropub: localise insufficient scope error (86fdf84)
- endpoint-micropub: use custom error handler (424d5c8)
- endpoint-posts: use custom error handler (217b0b5)
- endpoint-share: use custom error handler (68b1bce)
- endpoint-syndicate: use custom error handler (013c4d4)
- endpoint-token: use custom error handler (c9c7818)
- error: add custom error handlers (8fa8868)
- error: include cause and plugin in error (d92b608)
- frontend: add error layout (ac60358)
- frontend: add error summary focus behaviours (6b25104)
- frontend: add localised title to notifications (101a416)
- frontend: component localisations (f039b16)
- frontend: include publication me value in application head (477ca4e)
- frontend: link error message if uri given (732156e)
- frontend: support showing error uri (d2c6db0)
- frontend: use stimulus to enhance components (b9d05da)
- indiekit: check for publication URL before starting server (de60363)
- indiekit: import frontend localisations (c5bc3df)
- indiekit: localise auth token response (1e5834a)
- indiekit: localise invalid token error (d211300)
- indiekit: remove check for publication URL in token verification (98881b9)
- indiekit: showing error uri in HTML response (a3a73ff)
- indiekit: use custom error handler (49ab698)
- store-github: use custom error handler (e1c1928)
- syndicator-mastodon: update mastodon logo (f328151)
- syndicator-mastodon: use custom error handler (57da7b7)
Bug Fixes
v1.0.0 Alpha 11
Bug Fixes
- frontend: include scripts folder in package (06f6d0c)
v1.0.0 Alpha 10
Bug Fixes
- error: include
errors.js
in package (d863aa6)