Skip to content

Releases: getindiekit/indiekit

v1.0.0 Alpha 18

14 Dec 13:29
Compare
Choose a tag to compare
v1.0.0 Alpha 18 Pre-release
Pre-release

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 a 410 Gone status, rather than the less helpful 404 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 of draft: 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 and publishDate with a post’s published property. Additionally, lastmod is populated when a post is updated, and expiryDate 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

07 Dec 02:09
Compare
Choose a tag to compare
v1.0.0 Alpha 17 Pre-release
Pre-release

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!

Screenshot of new homepage.

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

02 Dec 17:36
Compare
Choose a tag to compare
v1.0.0 Alpha 16 Pre-release
Pre-release

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

23 Nov 12:37
Compare
Choose a tag to compare
v1.0.0 Alpha 15 Pre-release
Pre-release

This release improves compatibility with Micropub clients that support an older version of the IndieAuth spec, such as Micro.blog.

Features

  • endpoint-auth: include me paramter in authorization response (f571735)
  • endpoint-auth: use password input, to help with password managers (6eacede)

v1.0.0 Alpha 14

23 Nov 11:46
Compare
Choose a tag to compare
v1.0.0 Alpha 14 Pre-release
Pre-release

This release contains a breaking change, so please read before upgrading.

New built-in IndieAuth endpoints

  • #503 Remove token endpoint
  • #504 Add authorization endpoint

@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:

  1. Rename TOKEN_SECRET to SECRET

  2. Visit [INDIEKIT_URL]/auth/new-password and create a password to sign in with

  3. Save the generated code in a new PASSWORD_SECRET environment variable.

  4. Sign in to your Indiekit server, copy the generated access token, and update any applications that were using any previous token

  5. Update the authorization_endpoint and token_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.authorizationEndpointapplication.authorizationEndpoint
  • publication.tokenEndpointapplication.tokenEndpoint
  • publication.mediaEndpointapplication.mediaEndpoint
  • publication.micropubEndpointapplication.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

  • #495 Use VitePress to generate documentation website
  • #511 Update getting started guide

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:

  • #492 Return custom post types if no preset provided. Thanks to @gerwitz for reporting.
  • #505 Warn about database requirement when attempting to get post count. Thanks to @hober for reporting.

v1.0.0 Alpha 13

23 Nov 11:16
Compare
Choose a tag to compare
v1.0.0 Alpha 13 Pre-release
Pre-release

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

15 Jul 21:25
Compare
Choose a tag to compare
v1.0.0 Alpha 12 Pre-release
Pre-release

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

  • create-indiekit: correct syndicator dependencies (0a2f16f)
  • endpoint-posts: use fetch from undici (d9da860)
  • error: handle unspecified errors (3243592)
  • indiekit: fix incorrect session link being shown (d081ed1)
  • more robust error handling when rendering views (7909f89)

v1.0.0 Alpha 9

12 Jul 23:12
Compare
Choose a tag to compare
v1.0.0 Alpha 9 Pre-release
Pre-release

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

  • watch files with .cjs extension (i.e. config file) (ba30e5b)
  • error: correctly merge options on static methods (d200ea5)

v1.0.0 Alpha 11

12 Jul 23:51
Compare
Choose a tag to compare
v1.0.0 Alpha 11 Pre-release
Pre-release

Bug Fixes

  • frontend: include scripts folder in package (06f6d0c)

v1.0.0 Alpha 10

12 Jul 23:50
Compare
Choose a tag to compare
v1.0.0 Alpha 10 Pre-release
Pre-release

Bug Fixes

  • error: include errors.js in package (d863aa6)