Skip to content

Releases: getindiekit/indiekit

v1.0.0 Beta 17

11 May 11:02
2ea02a1
Compare
Choose a tag to compare

A quick bug fix release. Turns out it wasn’t possible to log in to a site using the IndieAuth endpoint when a scope wasn’t requested (the authorization flow).

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.


Features

  • frontend: remove global letter spacing (5f695c7)

Bug Fixes

  • endpoint-auth: authorization flow (2f1da8e)
  • frontend: date input focus background colour (7722750)
  • frontend: unset token header styles (0617dc4)

v1.0.0 Beta 16

19 Apr 22:15
9ee1b42
Compare
Choose a tag to compare

Bug Fixes

  • pass timeZone to date format filter (3202fe9)

v1.0.0 Beta 15

19 Apr 21:51
40de396
Compare
Choose a tag to compare

A few small fixes and a brand new localisation: Hindi 🇮🇳🎉

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.


Features

  • add Hindi localisation from Sesa Malinda (3fb8e5c)
  • endpoint-posts: keep radio options when editing published date (b2bce8d)
  • endpoint-posts: update formatting for published date (a48a039)
  • post-type-photo: increase rows for photo description (a1023cc)
  • util: enable date formatter to accept upstream timeZone option (16af3b9)
  • pass timeZone to date format filter (4a7a08b)

Bug Fixes

  • endpoint-auth: show password validation without tripping up on scope (9f4810c)
  • endpoint-posts: add media endpoint to markdown editors (84db24f)
  • endpoint-posts: remove image value from post form data (2139877)
  • frontend: fix textarea shift on focus (8ea2cbf)
  • frontend: move error message before tag input (4e7dd1d)
  • frontend: replace hard-coded media endpoint with value provided in attribute (f4f72f2)
  • preset-jekyll: remove incorrect use of excerpt property (c1e3c5f)

v1.0.0 Beta 14

16 Apr 10:52
4140d8f
Compare
Choose a tag to compare

This release contains a few bug fixes, with the big feature being the addition of a service worker. This should make the app feel a bit more sprightly, and of course mean previously viewed pages can be viewed offline. There’s been some updates to the app.webmanifest file; you might need to clear your cache for these changes to be reflected before installing as a web app.

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.


Features

  • endpoint-files: add back link to file upload page (acb0721)
  • endpoint-files: shortcut icon (8140b27)
  • endpoint-posts: always hide advanced options when creating new post (8a0e42c)
  • endpoint-posts: remove editor height attributes (860c8ef)
  • endpoint-posts: sanitize tag input (50a3497)
  • endpoint-posts: shortcut icon (4969d37)
  • frontend: add icon option to warning component (55c2c2f)
  • frontend: add sanitizer for tag input (e0b47db)
  • frontend: add shortcut icon function (8d77a53)
  • frontend: create a new tag when comma key pressed (08906d1)
  • frontend: export theme color helpers (5322184)
  • frontend: increase font size of actions component (a9b3415)
  • frontend: move actions below heading (14aa3e1)
  • frontend: offline icon (0c0d9d6)
  • frontend: option to not show hidden prefix for warning text (2a66c36)
  • frontend: service worker (799134c)
  • frontend: update app icon function to take purpose (7bc22c6)
  • frontend: update path to apple-touch-icon (aea2f54)
  • frontend: use fixed min, not customisable max height for markdown editor (3af3cfa)
  • frontend: use theme color based on color scheme (c66b7a3)
  • indiekit: add theme_color and background_color to web app manifest (b1ffaf5)
  • indiekit: maskable app icon (6fabca3)
  • indiekit: robots.txt (e6bac12)
  • indiekit: shortcut icons (5229634)
  • indiekit: update web app manifest (da11b4f)
  • indiekit: use service worker (fac293a)

Bug Fixes

  • endpoint-media: correctly remove original file extension (f17ba2e)
  • frontend: increase size of logo in maskable icon (b48c3db)
  • frontend: only resize share preview when parent form (c071059)
  • frontend: style misspelt words in markdown editor (e4fb607)
  • frontend: svg icons with titles should be focusable (cc5fde9)
  • frontend: use explicit image dimensions (5800028)
  • indiekit: remove database requirement check from shortcuts (e6b2099)
  • post-type-audio: contain audio within figure (18162c5)
  • post-type-photo: contain photo within figure (34a506f)
  • post-type-video: contain video within figure (aa0d6ae)

v1.0.0 Beta 13

10 Apr 23:49
c7c6246
Compare
Choose a tag to compare

Another tiny release to fix issues sported while using the new media upload features in anger.

Features

  • post-type-audio: loosen audio field validation (27c9504)
  • post-type-photo: loosen photo field validation (8dab984)
  • post-type-video: loosen video field validation (8283485)

Bug Fixes

  • endpoint-posts: resolve item photo (605a8d0)
  • frontend: check for hint in tag input before insertion (d55e936)

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.

v1.0.0 Beta 12

09 Apr 23:02
1baeb91
Compare
Choose a tag to compare

A few more bits of fallout from the Beta 10 release. Fixes header background colour in dark mode, correctly resolves the media store and the file upload component now correctly reports any errors encountered when uploading media.

Features

  • error: handle non-json response from fetch request (1a4d0ad)
  • frontend: replace widont filter with text-wrap balance (60d4dec)

Bug Fixes

  • frontend: check for textarea character count before updating (309b11f)
  • frontend: header background colour in dark mode (508343c)
  • frontend: resolve fetched error message in file upload component (dc6174a)
  • indiekit: correctly resolve media store fallback (dcd42ee)

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.

v1.0.0 Beta 11

09 Apr 12:59
f15c59d
Compare
Choose a tag to compare

There’s always something… This tiny release fixes a module resolution bug introduced in Beta 10:

  • frontend: resolve path to css imported from node_modules (b369ced)

v1.0.0 Beta 10

09 Apr 12:53
97cfaeb
Compare
Choose a tag to compare

Warning

This release introduced a module resolution error that prevents the application from starting. This has been fixed in v1.0.0-beta.11

Another packed release, this time focused on improving the editing experience and uploading media files. These changes alone now make Indiekit a really compelling content management system, I think.

There was also a fairly messy diversion trying to fix and/or improve slug generation (follow the fun in #719 and #726). Doubt this’ll be the last of figuring out the best way to generate post slugs.

🚨 BREAKING CHANGES

  • {uuid} path tokens are no longer supported
  • {random} media path token is no longer supported
  • {originalfile} media path token is now called {filename}

✨ New features

  • The file upload component now allows images to be uploaded I’m the background, returning the path of the uploaded file. This allows images to be added to posts from within the editor (#721)
  • Rich Markdown editor now used for content and summary fields (#728)
  • Configure a separate content store for media files (#730)
  • Option in Micropub media endpoint to transform files prior to uploading (only supports resizing, for now) (#700)
  • S3-compatible content store plug-in (#725)
  • Menu shortcuts to create a new post or upload a file when installed as a web app (#714)

💅 Improvements

  • The Eleventy publication preset is now an option when creating a new configuration file.
  • Requests are now compressed with assets now minified and cached.
  • The authentication screen now displays all requested permissions (and indicates which, if any, Indiekit doesn’t yet support).
  • Logged in session cookie will now expire after 7 days.
  • Errors with mis-configured syndication targets are now shown in the application interface.
  • Sticky navigation header (currently broken in dark mode, will be fixed in v1.0.0-beta.12).

This image of the Markdown editor in full screen mode with Indiekit installed as a web app makes me very happy:

Screenshot of editor in full screen mode.

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.


Features

  • create-indiekit: add eleventy as publication preset option (e27fc4f)
  • endpoint-auth: show requested scopes and indicate which are supported (91537d6)
  • endpoint-files: add web app shortcut (80fe919)
  • endpoint-media: add md5 path token (2b0f247)
  • endpoint-media: add random token (33fd39f)
  • endpoint-media: decouple slug post property from slug token (306596a)
  • endpoint-media: media transformations (2061f15)
  • endpoint-media: remove random token (7042e68)
  • endpoint-media: remove uuid token (1a763a5)
  • endpoint-media: slugify filename to make url safe (d2beef9)
  • endpoint-media: use publication’s media store (98f083a)
  • endpoint-micropub: add random token (7d91e6f)
  • endpoint-micropub: remove random token (ce9b38b)
  • endpoint-micropub: remove uuid token (6c6590e)
  • endpoint-micropub: revert decoupling slug post property from slug token (8970fe3)
  • endpoint-posts: add web app shortcut (324213e)
  • endpoint-posts: show syndication target error (f6f4559)
  • endpoint-posts: use markdown editor for content and summary fields (c480a9f)
  • frontend: add easy-markdown-editor (714b8aa)
  • frontend: add hairline border to full screen editor toolbar (8c78cc7)
  • frontend: bundle javascript as es module (47a58d6)
  • frontend: disable character-count component (97b6151)
  • frontend: disable character-count component (a6b0173)
  • frontend: file upload input component (6082299)
  • frontend: minify javascript bundle (558f546)
  • frontend: progress component (e3b3791)
  • frontend: remove web font (d21ad28)
  • frontend: sticky glass header (96ea922)
  • frontend: strip final slash from pathless friendly url (6f24cfa)
  • frontend: support common markdown extensions (3cf0b90)
  • frontend: swap in webfont when loaded (0e2fbcf)
  • frontend: update borders on block pagination (e39c6e7)
  • frontend: use application css and js paths (d235828)
  • indiekit: add shortcuts (02b3a8d)
  • indiekit: configure separate media store for a publication (a08392f)
  • indiekit: don’t send x-powered-by header (b797b2b)
  • indiekit: expire session cookie after 7 days (91a08c7)
  • indiekit: fingerprint and immutably caching for css and js assets (343b8ec)
  • indiekit: localised scopes (fe4e98d)
  • indiekit: remove mentions of IndieAuth from login view (d78aac8)
  • indiekit: set 7 day cache on static assets (1b7992d)
  • indiekit: set 7 day cache on web manifest (320fd0a)
  • indiekit: use compression on responses (7884249)
  • post-type-article: show summary above content (d3d953a)
  • post-type-audio: use file upload component (d3ef94f)
  • post-type-photo: use file upload component (4da8c20)
  • post-type-video: use file upload component (b8c0fc1)
  • preset-eleventy: remove slug property (c13c705)
  • preset-hugo: remove slug property (485bbf3)
  • preset-jekyll: remove slug property (c7b5a0a)
  • store-s3: s3-compatible content store (21e77aa)
  • syndicator-internet-archive: return configuration errors (685f85f)
  • syndicator-mastodon: return configuration errors (6ec8287)

Bug Fixes

  • create-indiekit: use semver for node version (4da1170)
  • endpoint-auth: support older token verification endpoint. fixes #716 (5ed629d)
  • endpoint-files: update localisations (db0ba5b)
  • endpoint-micropub: missing renderPath param (5a195c9)
  • endpoint-micropub: prevent slug property from being deleted (fc3bcfc)
  • endpoint-micropub: update PTD algorithm. fixes #711 (a3d6c35)
  • endpoint-posts: get saved slug property (cd52726)
  • endpoint-posts: hide image upload toolbar button for photo post type (b05e52e)
  • frontend: add class to file path input (4afca24)
  • frontend: add implicit tags. fixes #707 (e7901e0)
  • frontend: adjust heading spacing (60524c4)
  • frontend: don’t count markdown syntax in character count component (90812c5)
  • frontend: prevent re-cloning of file picker in file input (c115498)
  • frontend: prevent re-cloning of find button in geo input (7168c47)
  • frontend: remove unused data attribute (4183980)
  • frontend: use browser exports in bundle (d9aa206)
  • indiekit: add conditional for error cause message (97cd803)
  • indiekit: update Swedish localisation strings (6cff940)
  • syndicator-internet-archive: photo path (3db6d7f)
  • syndicator-mastodon: photo path (0198f5f)

v1.0.0 Beta 9

10 Mar 13:55
fabf5f1
Compare
Choose a tag to compare

A new release to coincide with IndieWebCamp Brighton 2024. 🎉

New feature

  • preset-eleventy: eleventy preset (8229d2a)

Bug Fixes

  • frontend: use em-based sizing for checkboxes and radios (b987197)

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.

v1.0.0 Beta 8

03 Mar 20:11
c34ec50
Compare
Choose a tag to compare

Indiekit’s first beta release of 2024 is a fairly substantial one. Largely focused on post type configuration, it contains a breaking change in this area.

It also improves the onboarding experience and documentation, and includes a number of bug fixes. Read on to learn more.

🚨 BREAKING CHANGES

Post type configuration

To aid the introduction of post type plug-ins, post type configuration has changed. You can read more about the decision in this ADR, but in short, Indiekit now expects a keyed collection of objects instead of an array:

// Before
postTypes: [
  {
    type: "note",
    post: {
      path: "notes/{yyyy}-{MM}-{dd}-{slug}.markdown",
      url: "notes/{yyyy}/{DDD}/a{n}/{slug}/",
    }
  }
]

// After
postTypes: {
  note: {
     post: {
       path: "notes/{yyyy}-{MM}-{dd}-{slug}.markdown",
       url: "notes/{yyyy}/{DDD}/a{n}/{slug}/",
     }
   }
}

Presets

If you are using the Hugo or Jekyll presets, there may be some slight changes in output, as post templates now output all provided properties (except those prefixed with mp-*). However, in most cases there should be no difference.

In addition, in order to better conform with Jekyll’s preference for front matter keys, these now use snake_case instead of kebab-case:

---
date: 2024-03-03
- like-of: https://getindiekit.com
+ like_of: https://getindiekit.com
---

(That Eleventy tends to favour camelCase for its properties might be the nudge I need to create a specific preset for that static generator.)

✨ New features

🔌 Post type plugins

Turns out that publication presets were doing a lot of heavy lifting, and dictating more of the publishing pipeline than I intended. In fact, a number of assumptions around post types had been baked into various different parts of the application.

Post type plug-ins attempt to abstract a lot of this behaviour, and in doing so, make this aspect of Indiekit more customisable. They allow plug-in authors to:

  • Determine a post type’s name
  • Dictate which properties a post type has (and which are required)
  • Provide means of creating and editing properties in Indiekit’s interface, and validate fields before form submission

These features are available via the new Indiekit.addPostType API.

In addition to adapting the existing post-types into plug-ins (for which article, bookmark, like, note, photo and reply are installed by default), 2 new post types have been added:

  1. @indiekit/post-type-event allows you to add event posts to your website.
  2. @indiekit/post-type-jam enables posting music you are currently listening to.

🔢 Character count

The content field in the editing interface now includes a character and word count. This follows a similar design to that used by the GOV.UK design system, that includes a delay before announcing updated counts to screen reader users. (#697)

🇸🇪 Swedish localisation

Thanks to @carlrafting for translating Indiekit into Swedish, bringing the number of available localisations up to 12.

Improvements and bug fixes

First run

  • npm create indiekit would incorrectly report the minimum supported Node version, this has now been fixed. Thanks to @jphastings for reporting (#674).
  • Any issues discovered while creating a MongoDB connection or connecting to a database are now reported in the interface. Thanks to @jackdbd for reporting and suggesting a fix (#690).
  • The MongoDB database name can now be configured in the connection string. Thanks to @jphastings for reporting (#681).

Publishing

  • Indiekit will now fetch references for form-encoded Micropub requests. Thanks to @aciccarello for reporting (#671).
  • Indiekit will no longer throw an error when generating a JF2 feed. Thanks to @aciccarello for reporting (#676).
  • Indiekit will now accept a publish date in form-encoded Micropub requests. Thanks to @jackdbd for reporting (#691).

Documentation

  • API documentation now follows a format that is closer to that used on MDN (#699).
  • Sections around configuration have been reorganised and expanded (#701).

Thanks to feedback from @kwaa and @davepeck in this area (#652).

Plug-ins

  • Plug-in authors no longer need to provide id or meta properties on the plug-in constructor (#698).

Chores

  • Replaced AVA with Node.js test runner
  • Replaced C8 with Node.js test coverage reporter

💟 Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.


Features

  • endpoint-files: close file properties (e2e8faf)
  • endpoint-media: log CRUD operations (9e7b0e2)
  • endpoint-media: update link to documentation (13ad159)
  • endpoint-micropub: add custom types to post type discovery (1aec035)
  • endpoint-micropub: add jam to post type discovery (91eeae6)
  • endpoint-micropub: log CRUD operations (06c7785)
  • endpoint-micropub: query supported post type properties (feadee6)
  • endpoint-micropub: remove server commands from post template properties (128299c)
  • endpoint-micropub: update link to documentation (5bee191)
  • endpoint-posts: close post properties (1941232)
  • endpoint-posts: delete non-mf2 post values (5a6cc36)
  • endpoint-posts: display all property values for a post (07e9a94)
  • endpoint-posts: event post fields (0deba98)
  • endpoint-posts: make visibility optional (6ddb244)
  • endpoint-posts: new form validation (9d9703d)
  • endpoint-posts: only show fields for supported properties (650791b)
  • endpoint-posts: sanitise submitted post values (ebb0f95)
  • endpoint-posts: show character and word count on content field (ba769f9)
  • endpoint-posts: use validation schema from post type config (aa348c8)
  • endpoint-share: adjust share bookmarklet width and height (c08ee0e)
  • frontend: add border to inline fieldset (fe30dc1)
  • frontend: add items conditional to checkbox and radio components (28892be)
  • frontend: additional prose styles (14188fc)
  • frontend: allow radios to be marked as optional (5a39225)
  • frontend: character count component (621d582)
  • frontend: cross, location and tick icons (48ac368)
  • frontend: event duration component (d126e61)
  • frontend: isArray filter (41060db)
  • frontend: jam post icon (9b5bc48)
  • frontend: resize share preview window to fit form (5f95f51)
  • frontend: simplify minimal ui layout on narrower viewports (925ebbf)
  • frontend: split offset and group fieldset modifiers (435ea84)
  • frontend: tag component (bf04eb9)
  • frontend: update app icon (b73cf33)
  • frontend: use normal font style for citations (048635c)
  • indiekit: add default post type properties (1368667)
  • indiekit: default h value to entry (77f8d70)
  • indiekit: gracefully shutdown server (bbf2f8b)
  • indiekit: improve mongo connection error notifications (c42225b)
  • indiekit: keep ‘indiekit’ as default database name (78ac4a8)
  • indiekit: remove superfluous heading on plug-in view (c9d572c)
  • indiekit: remove theme_color from web app manifest (ef9f019)
  • indiekit: translate plug-in options heading (5975b61)
  • indiekit: update app icon (6a98b44)
  • indiekit: update link to documentation (ded4559)
  • post-type-jam: add locales (a7ab137)
  • post-type-rsvp: update locales (02de8b5)
  • preset-hugo: accept unknown post properties (f7ccce9)
  • preset-hugo: support configured post types (e0ce1ed)
  • preset-jekyll: accept unknown post properties (adbfc2a)
  • preset-jekyll: support configured post types (e3891fa)
  • preset-jekyll: use snake_case for front matter property keys (8e9736e)
  • util: isDate (ae7b907)
  • util: regex for geographic location coordinates (1eb1456)
  • util: sanitise (2c91f5d)
  • util: validation schemes (833a3b7)
  • move post type validation into plug-ins via api method (7e396bf)
  • move post types into plug-ins (841bce1)
  • remove need for plugins to provide id value (a866ec0)
  • remove need for plugins to provide meta value (833893e)
  • add swedish localisation from @carlrafting (37f2124)

Bug Fixes

  • create: update minimum supported node version (530f25a)
  • endpoint-auth: only show error if message (176fc47)
  • endpoint-micropub: discard items in posts collection without properties (3937452)
  • endpoint-micropub: don’t decode date strings in query parameters (4c6198e)
  • endpoint-micropub: don’t send post-type property to template (bdb1fb3)
  • endpoint-micropub: fetch references for form-encoded requests (a3ad0fa)
  • endpoint-micropub: files list in package.json (f4bab79)
  • endpoint-micropub: post template properties (0eb3fd5)
  • endpoint-posts: add width class to published date input (fc21a27)
  • endpoint-posts: check all day if event date has no time (9c6c4b1)
  • endpoint-posts: don’t return useless location property (0778519)
  • endpoint-posts: index value in media post fields (cc6dc9a)
  • endpoint-posts: inline radios (a2da82c)
  • endpoint-posts: reading/editing geographic coordinates (f28325a)
  • endpoint-posts: use option to enable inline radios (dbcef51)
  • frontend: adjust icon spacing in badge component (717817b)
  • frontend: conditional checkbox and radio inline padding (c39017d)
  • frontend: details spacing (e493f85)
  • frontend: error colors with dark scheme (ccc68be)
  • frontend: error message spacing (ba2761e)
  • frontend: event-duration spacing (dc211b9)
  • *...
Read more