Skip to content

Releases: getindiekit/indiekit

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

v1.0.0 Beta 7

07 Nov 01:15
Compare
Choose a tag to compare

There’s always something… This is a tiny release to fix 2 bugs released with Beta 6:

  • endpoint-posts: show content text when editing post. fixes #670 (7605b86)
  • frontend: secondary button color (2cbefc7)

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

v1.0.0 Beta 6

07 Nov 00:34
Compare
Choose a tag to compare

This release contains a number of bug fixes, underlying architecture changes and fit and finish improvements to the user interface. Of note:

  • Added Latin American Spanish localisation (thanks to Claudia Botero)
  • Added basic support for photo, video and audio post types (a future update will make it possible to upload files directly from the post form)
  • Publication dates can be edited after posts have been published
  • Micropub and Micropub media endpoints now provide uid (using the database record’s ObjectID) in source queries
  • Post and file endpoint interfaces then use these uid values in their URL schemes
  • @indiekit/store-ftp now uses the ssh2-sftp-client module
  • Common utilities moved to a separate @indiekit/util module
  • Interactive components now use native custom elements in place of Stimulus
  • Added a Web App Manifest
  • Plug-in icons have been updated to reflect the proposed set of IndieWeb building block icons
  • A small bug fix to the syndication endpoint that may prevent repeat syndications to the same target from happening… 🤞

🚨 Breaking changes

There are also a few breaking changes in this release:

  • The minimum supported Node version is now v20.6.
  • The createFile() and updateFile() methods on Indiekit.addStore API now return a URL for the stored file, not true. This will allow for finer grained reporting and logging in later releases.

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

Features

  • endpoint-files: accept micropub response with no content (23a0adf)
  • endpoint-files: query media using uid (02dbe5f)
  • endpoint-indieauth: use proposed indieauth icon (d26748b)
  • endpoint-media: add uid to media properties (3a18c3d)
  • endpoint-media: use proposed micropub icon (50c3c22)
  • endpoint-micropub: add uid to post properties (15551cc)
  • endpoint-micropub: get post count using uid (310a351)
  • endpoint-micropub: include publication date in property normalisation (b3ddac8)
  • endpoint-micropub: use proposed micropub icon (82f9414)
  • endpoint-posts: accept micropub response with no content (a20b395)
  • endpoint-posts: basic audio post support (6a01836)
  • endpoint-posts: basic photo post support (e0cc7d2)
  • endpoint-posts: basic video post support (3096e7a)
  • endpoint-posts: change order of advanced options (97d5811)
  • endpoint-posts: editable publication date (c362219)
  • endpoint-posts: locales for basic media post support (2d5f7e0)
  • endpoint-posts: query posts using uid (32be7f4)
  • endpoint-posts: use add another component (a12b052)
  • endpoint-posts: validate media arrays, allow for file paths (25d14a7)
  • frontend: add another component (0fa5e0a)
  • frontend: add attributes to fieldset legend (084023a)
  • frontend: add caller to input component (e98f044)
  • frontend: add element wrapping utility (cfcfe3d)
  • frontend: add localDate filter (35bd0b3)
  • frontend: apply focus styles to programmatically focused elements (9c865fb)
  • frontend: conditional checkboxes (9b6a640)
  • frontend: conditional radios (2c2b6b4)
  • frontend: customisable button padding (1b5f278)
  • frontend: element option on field component (27cca75)
  • frontend: exclusive checkbox behaviour (b722b0b)
  • frontend: fieldset group styles (f4dafd7)
  • frontend: global helper to get field data (54acbf4)
  • frontend: icon only button component (e7f96c2)
  • frontend: id option for summary row keys (48de30b)
  • frontend: increase size of touch icon (4bb7cc1)
  • frontend: link to web app manifest (caaa34f)
  • frontend: option to add icon title (e145311)
  • frontend: slugify error-list paths (daec422)
  • indiekit: add share_target to web app manifest (6fa88d1)
  • indiekit: web app manifest (cd57f2c)
  • store-bitbucket: return url for createFile and updateFile (c5adcde)
  • store-file-system: return url for createFile and updateFile (80bbf9a)
  • store-ftp: return url for createFile and updateFile (440a5e8)
  • store-gitea: return url for createFile and updateFile (1ea85e8)
  • store-github: return url for createFile and updateFile (48e5f00)
  • store-gitlab: return url for createFile and updateFile (f63258b)
  • syndicator-mastodon: add option to include permalink in status (ee056d8)
  • util: format a date as local date (ca1ad47)
  • util: get object id (447b2a7)
  • util: get offset minutes from time zone name (66a5cc4)
  • util: remove isUrl util (59dd42e)
  • add Latin American Spanish localisation from Claudia Botero (8898656)
  • use url input type with placeholder (e958fa3)
  • pass all options to slugify util (01c4542)
  • require node.js v20 (4785170)

Bug Fixes

  • add missing indonesian translations (ed3a9ce)
  • endpoint-micropub: create file on content store when undeleting (18e7b22)
  • endpoint-micropub: delete content from store (261aca3)
  • endpoint-micropub: use getObjectId util (3df6c8b)
  • endpoint-posts: return content if validation error (fbfdc2d)
  • endpoint-syndicate: correctly syndicate to targets (bc1939a)
  • frontend: don’t use client-side validation on forms (66eb7c9)
  • frontend: fix css nesting (84afe66)
  • frontend: missing add another list item (f428367)
  • frontend: remove background from file input (fa8d337)
  • frontend: remove spacing around summary keys (d6d8f53)
  • frontend: small icon in small button (a193a27)
  • store-gitlab: correct uid when projectId credentials (a06f235)
  • util: add mongodb as a dependency. fixes #658 (e8fd8ce)

v1.0.0 Beta 5

05 Aug 00:03
Compare
Choose a tag to compare

This release adds a number of new features and improvements:

  • npm create indiekit will now ask if you want to deploy your server using Docker. If you select yes, the initialiser will generate Dockerfile, docker-compose.yml and .dockerignore files with a recommended setup. Thanks to @sentience for the suggestion. See #639.
  • Before creating a new post, you will now be asked what type of post you want to create, meaning you no longer need to visit the dashboard to create different post types. Thanks to @roobottom for the suggestion. See #632.
  • Post slugs can now be edited. Indeed, the Micropub endpoint and included store plug-ins have been updated so that posts can be saved to a renamed file path. See #648.
  • The category input is now far more accessible, thanks to the wonderful @accesible-components/tag-input library. See #650.
  • The Mastodon syndicator has been rewritten to use Masto.js and now uses the same post visibility setting when syndicating posts. See #629 and #633.
  • Consolidated repeated utility functions within a new @indiekit/util package. See #616, #617 and #619.

🚨 Breaking changes

There are also a few breaking changes in this release:

  • The Twitter syndicator has been deprecated. While still available (npm i @indiekit/syndicator-twitter), it will no longer be updated because, well, you know. See #637.
  • Support for the forced option on syndicator plug-ins has been removed, the first step in reviewing and simplifying Indiekit’s syndication mechanics. See #630 and #643.
  • The Indiekit.addStore API has been updated such that a commit message is now provided via an options object. See #647.

⏭️ Next up

As well as the above, there has been a glut of fixes and updates, with a bit of polish to the application interface. All in service of procrastinating over addressing the myriad syndication issues. Fixing those – and writing tutorials for different web hosting platforms – are the two remaining areas I want to address before calling 1.0.0 done.

Thanks again for your suggestions, bug reports and support. Slowly but surely this project is getting closer to the vision of making the IndieWeb accessible to everyone. Onwards!


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

Features

  • create-indiekit: add option to generate docker files (aba0730)
  • create-indiekit: remove twitter from syndicator options (c5e37a1)
  • endpoint-auth: shorter redirect hint on consent form (512ed92)
  • endpoint-files: remove back link (f55eaaa)
  • endpoint-media: pass commit message as option (74215c0)
  • endpoint-micropub: file renaming for updates (f18e9fa)
  • endpoint-micropub: pass commit message as option (573c71e)
  • endpoint-micropub: remove support for forced syndication (7f72141)
  • endpoint-posts: add back link to new post form (bb148bc)
  • endpoint-posts: add hint text for slug field (2ccd4ed)
  • endpoint-posts: editable url slug (1ad70ed)
  • endpoint-posts: new post type (2f93ad7)
  • endpoint-posts: only show slug field for new posts (86e1d90)
  • endpoint-posts: remove back link (8869296)
  • endpoint-posts: update french locale (994627f)
  • error: allow status to be set via options (0e6d460)
  • frontend: accessible tag input component (f437c22)
  • frontend: add card component to default layout (4c7bbd9)
  • frontend: add heading level option for card component (0a1bcd5)
  • frontend: add photo option to heading component (72ffad4)
  • frontend: add photo to document heading (142bf29)
  • frontend: disable automatic linking in markdown (03e2d93)
  • frontend: except custom back link text (b93db16)
  • frontend: remove deprecated pagination localisations (b08559f)
  • frontend: simpler card footer layout (79e5da8)
  • frontend: simpler text for geo input button (e660b78)
  • frontend: update <samp> text style (b13f80f)
  • indiekit: move plug-in icon to heading (5f81502)
  • indiekit: plug-in presentation in server status (e315635)
  • indiekit: remove express proxy trust (0d56d7d)
  • indiekit: restore express proxy trust (ef89611)
  • store-bitbucket: file renaming for updates (2350ac9)
  • store-bitbucket: provide environment variables (0d27789)
  • store-bitbucket: use object for optional params (0c95340)
  • store-file-system: file renaming for updates (b94cfde)
  • store-ftp: file renaming for updates (c988dfa)
  • store-ftp: provide environment variables (bba1a6b)
  • store-gitea: file renaming for updates (18b193d)
  • store-gitea: provide environment variables (775da2e)
  • store-gitea: return error message (037b47e)
  • store-gitea: use object for optional params (19a8d97)
  • store-github: file renaming for updates (cda8fc1)
  • store-github: provide environment variables (1c4c65a)
  • store-github: use object for optional params (aca7869)
  • store-gitlab: file renaming for updates (40ced8d)
  • store-gitlab: provide environment variables (d8240d3)
  • store-gitlab: use object for optional params (5575d8c)
  • syndicator-internet-archive: provide environment variables (936f8b6)
  • syndicator-internet-archive: remove support for forced syndication (637c357)
  • syndicator-mastodon: post visibility (0135219)
  • syndicator-mastodon: provide environment variables (85fbe85)
  • syndicator-mastodon: remove support for forced syndication (d6f58b4)
  • util: add util package (d0de454)
  • util: formatDate (062fa6a)
  • util: getCanonicalUrl (52501dc)
  • util: getCursor (52bb680)
  • util: getDate (2bb29d1)
  • util: getServerTimeZone (7049e9a)
  • util: isSameOrigin (bd14d3b)
  • util: isUrl (3973ae5)
  • util: randomString (74edb07)
  • util: slugify (52c56c5)
  • util: supplant (d3bf184)
  • update french localisation strings (b649a77)
  • remove twitter syndicator (4ff0667)

Bug Fixes

  • endpoint-auth: canonicalise client url (0b75534)
  • endpoint-auth: check for existence of app url (e22b80f)
  • endpoint-auth: client logo not appearing (58faea4)
  • endpoint-auth: improve client information discovery. fixes #626 (5ee9c1a)
  • endpoint-media: correct source response (274ad1b)
  • endpoint-media: don’t use slug separating characters in file basename (e69b0a5)
  • endpoint-media: remove unused dependency (2cf3cb2)
  • endpoint-micropub: correct source response (e63ea84)
  • endpoint-micropub: ensure random slug is 5 characters long (539d8d9)
  • endpoint-micropub: exclude current document from aggregated post type count. fixes #621 (f6606eb)
  • endpoint-micropub: only post to content store if update includes changes (a050649)
  • endpoint-posts: correct back link from edit form (9d357c3)
  • endpoint-posts: missing category input label (4e383f2)
  • endpoint-posts: uppercase rsvp in form title (3407ba3)
  • endpoint-posts: use accessible categories input (b9b25d3)
  • frontend: max inline size for images (97d9c8c)
  • frontend: missing warning icon fallback text (18bb9b2)
  • frontend: token input focus trap. fixes #578 (0b03990)
  • frontend: warning button hover colour (0d0f367)
  • frontend: warning text spacing (919e2a3)
  • indiekit: always return a status code to template (786f128)
  • store-gitea: set content-type header (f658fc7)

v1.0.0 Beta 4

02 Jul 23:13
Compare
Choose a tag to compare

This release contains a number of small changes:

  • you can now provide a configuration file that exports an ES module (i.e. uses the export declaration). This caught a lot of users out, so hopefully having this fixed will improve the onboarding experience a little.
  • the IndieAuth endpoint has been updated to provide a token introspection endpoint to verify access tokens.
  • errors output to stderr and notification banners in the application interface will provide more detail, too.
  • moved to cursor based pagination. This aligns with the paging specification for Microsub.

This release also adds type checking for JSDoc comments, leading to a number of documentation and other issues being caught and fixed.

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

🚨 Breaking changes

  • publication.timeZone option has been renamed application.timeZone a72ff74

Features

  • enable async configuration (f2aa036)
  • show stack in frontend error messages (28f6d3f)
  • endpoint-auth: introspection endpoint (68056b1)
  • endpoint-files: use cursor-based pagination (c3e8f76)
  • endpoint-media: add post count token (ff0578e)
  • endpoint-media: cursor-based pagination (f2a1667)
  • endpoint-media: use media-type property (3a6a008)
  • endpoint-micropub: cursor-based pagination (9bc6a35)
  • endpoint-posts: use cursor-based pagination (e6dbab7)
  • frontend: details in notification component (9a42bad)
  • frontend: pass details to notification component (a03562e)
  • frontend: remove pages global (2f3f645)
  • frontend: remove results summary from pagination component (2245d8e)
  • indiekit: log errors (e415ce6)
  • indiekit: use token introspection endpoint (712e0ac)
  • syndicator-mastodon: check for user option (874b2d7)
  • syndicator-twitter: check for user option (721217a)

Big Fixes

  • docs: correct language for syntax highlighting (8e071fe)
  • endpoint-auth: remove param on toString (dd7983a)
  • endpoint-image: correct type for cache option (62f5e9b)
  • endpoint-image: no second param on Buffer.from (1a66ca5)
  • endpoint-media: correctly parse limit/offset query (c21981e)
  • endpoint-media: only add data to configured database. fixes #613 (ad554f8) - thanks @nondeterminischtick for reporting
  • endpoint-media: respond once to source query (7ca788e)
  • endpoint-micropub: correctly parse limit/offset query. fixes #603 (bacbe2d)
  • endpoint-micropub: missing param on mf2ToJf2 (981db18)
  • endpoint-micropub: only add data to configured database. fixes #613 (ead04f7) - thanks @nondeterminischtick for reporting
  • endpoint-micropub: respond once to source query (e41d5a6)
  • endpoint-posts: default checkTargets to false (79e6d8c)
  • endpoint-posts: only show label if syndication targets. fixes #602 (763841d)
  • frontend: add block padding to details (70c4494)
  • frontend: conditionally show pagination (be536ee)
  • frontend: correct type JSON.stringify replacer (0366a2b)
  • frontend: correct value for classes global (9ef433f)
  • frontend: options in details component (fe7e797)
  • indiekit: correct minimum node version (38be651)
  • indiekit: plug-in icon size (e7d7fc2)
  • indiekit: remove deprecated connection value (7d66a10)
  • indiekit: remove deprecated MongoClient option (5e3deb9)
  • indiekit: remove param on toString (6be7582)
  • indiekit: use string for cookieSession secret (d628aa1)
  • preset-hugo: add empty line between front matter and content (26eb118)
  • preset-jekyll: add empty line between front matter and content (45352e2)

v1.0.0 Beta 3

19 May 01:36
Compare
Choose a tag to compare

This release includes a few quality of life improvements as well as a new translation: simplified Chinese!

There are still some chunky problems that need resolving before releasing a final v1.0.0 (namely syndication issues), and I hope to find some time in the next few months to address those. In the meantime, thanks for your continued support and feedback.

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

Features

  • add simplified chinese (70cbb8b) - thanks @xyb and @kwaa
  • don’t include mp-syndicate-to in post file (9b6e9a7)
  • endpoint-media: update database before content store (38d39a5)
  • endpoint-micropub: update database before content store (c6a5fbb)
  • frontend: return undefined for unknown icon name (bda5ff1)

Bug Fixes

  • create-indiekit: decode url before testing if valid (2eb5963)
  • endpoint-auth: decode url before testing if valid (e0cebb1)
  • endpoint-media: don’t require database to query config. fixes #600 (edbfc15) - thanks @aciccarello for reporting
  • endpoint-micropub: don’t require database to query config. fixes #600 (0ffc63a) - thanks @aciccarello for reporting
  • frontend: allow for conditional summary rows. fixes #599 (2851eff) - thanks @aciccarello for reporting
  • frontend: correct heading hierarchy in preview component (4681e51)
  • frontend: increase text contrast in syntax highlighting (078dfab)
  • frontend: increase text contrast of preview placeholder (5a51dc1)
  • frontend: prevent indented textarea content. fixes #560 (b4cbd4b) - thanks @alienlebarge for reporting
  • indiekit: decode url before testing if valid (f9f4202)
  • indiekit: use fallback post type icon on status page (5434ac2)

v1.0.0 Beta 2

12 Jan 21:22
Compare
Choose a tag to compare

This release contains a number of bug fixes for the syndication endpoint, and a number of smaller fixes to the frontend code. Here are the highlights:

  • Use a shared secret for your Netlify webhook: Wheres before you would include your server’s access token in the URL to notify (and update it after it had expired), you can now use a shared secret instead. Set a WEBHOOK_SECRET environment variable for your Indiekit server, and use the same value for ‘JWS secret token’ on Netlify.
  • Customise character length for posts syndicated to Mastodon: This was previously hard coded to 500, but this value can now be altered using the characterLimit option. See the plug-in documentation.
  • Use asynchronous post template: Some content store plug-ins would error if you tried to return an asynchronous post template function. These are now officially supported.
  • Debugging: Using the -d/--debug flag on indiekit serve was not working. This has now been fixed.
  • Edit post slug: A regression in the last release meant it was not possible to add a custom slug when creating a new post from the web interface. This has now been fixed.

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

Features

  • endpoint-micropub: allow async postTemplate method. fixes #562 (8e19a05)
  • endpoint-syndicate: support multiple methods of supplying a token (f0aab70)
  • frontend: container utility (47a979b)
  • frontend: itemId global (7bf85bc)
  • frontend: linkTo filter (b7c3f18)
  • frontend: option to disable auto focus on notification banner (797fb8b)
  • frontend: token input component macro (68e7de6)
  • syndicator-mastodon: character limit option. fixes #572 (8c026cd)

Bug Fixes

  • endpoint-files: absolute hrefs for action links (19e32a1)
  • endpoint-micropub: don’t linkify incoming context text (7128915)
  • endpoint-micropub: only convert content when necessary (d2db706)
  • endpoint-posts: absolute hrefs for action links (8274ed4)
  • endpoint-syndicate: don’t syndicate posts that have already been syndicated (711f61a)
  • endpoint-syndicate: prevent repeated syndication (0e185d4)
  • frontend: don’t return attributes with falsy values (37e15d5)
  • frontend: flow relative values not widely supported (9b7c7dc)
  • frontend: prevent img overflowing container (71f2856)
  • indiekit: enable debugging when debug flag set (ab00b34)
  • indiekit: use string not boolean to indicate current navigation item (8777bd0)
  • update syndication endpoint params. fixes #567 (f7fc748)

v1.0.0 Beta 1

28 Dec 20:30
Compare
Choose a tag to compare

Wow, what a week! ☺️ It’s lovely to see Indiekit getting some attention, not least in the form of bug reports, pull requests and documentation feedback.

This release contains one new feature: the ability to add location co-ordinates to a post. Not sure why I felt the need to add this, and it took much longer than the hour or so I thought it would! However, it did mean uncovering some issues with nested vocabularies when converting between JF2 and mf2, so hopefully that’s a little more robust.

There are a few bug fixes, notably around encoding/decoding of < and > characters, and whitespace being introduced on subsequent post editing, and a number of improvements to the styling of various bits of the user interface. The documentation is slowly being improved too – still lots to do there, however.

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

Features

  • improved french translation (33d25cc, aa12036) – thanks @alienlebarge
  • endpoint-posts: automatically toggle advanced options (6b9641e)
  • endpoint-posts: change order of badges (9abffb7)
  • endpoint-posts: don’t allow editing of slug (9806696)
  • endpoint-posts: location coordinates field (b9da438)
  • endpoint-posts: narrower input for slug (0a5a78d)
  • frontend: allow for boolean attributes (191c9da)
  • frontend: disabled button style (045ffbd, 29ae633)
  • frontend: font scale at smaller sizes (c61e7ff)
  • frontend: geo input (daa8914)
  • frontend: increase width of thickest border (8e6f328)
  • frontend: input group (c4af53d)
  • frontend: open option for details component (b998fb2)
  • frontend: pass attributes to input fields (efb75df)
  • frontend: remove border around readonly inputs (cafbe46)
  • frontend: style pre similar to blockquote (a0ef8fc)

Bug Fixes

  • correctly encode html/text content containing </> characters (b64b7d4) - thanks @bwlng for reporting
  • don’t indent textarea components (b667a2f) - thanks @bwlng for reporting
  • pagination wraps if list width exceed container width (4fd56e2) – thanks @alienlebarge
  • use MONGO_URL env variable if specified (38ecc55) - thanks @sentience
  • boolean value for readonly attribute (00e7691)
  • correct jf2 for location (85fb6a5)
  • correct mf2 for nested vocabularies when converting from jf2 (380fc17)
  • endpoint-micropub: correct replacement of nested vocabularies (824e660)
  • endpoint-posts: simplify radio/checkbox selection (3b0ad05)
  • endpoint-syndicate: only allow local redirect (24749ae)
  • frontend: allow fieldset to be marked as optional (61e5ef4)
  • frontend: button padding and positioning (7cf57bb)
  • frontend: consistent focus behaviour across components (97c9f4f)
  • frontend: correct element for error message (6e1aa93)
  • frontend: fieldset spacing, one more time (3f70724)
  • frontend: increase excerpt length (618a59f)
  • frontend: input width classes designed to accept wider font (320d754)
  • frontend: padding shift on focus (a0966df)
  • frontend: reduce prominence of details border (f2712bf)
  • frontend: visual alignment of badge text (56b84aa)

v1.0.0 Beta

17 Dec 18:16
Compare
Choose a tag to compare

The first beta release for v1.0.0. 🎉 For those new to the project, Indiekit is the little Node.js server with all the parts needed to publish content to your personal website and share it on social networks. Think of it as the missing link between a statically generated website and the social web protocols developed by the IndieWeb community and recommended by the W3C.

Publish content to your website using any application that supports Micropub. Write an article in iA Writer, post a note or photo from Micro.blog, or use a service like OwnYourSwarm to cross-post a check-in from Swarm. Then have it shared automatically on social networks like Mastodon and Twitter.

Read the launch post to learn more about the background to Indiekit, and what’s coming next.

💟 Indiekit is supported by its community. This release was sponsored by @roobottom.

Major changes since v0.3.0

  • A simpler configuration file format
  • A server executable: indiekit serve
  • Project initialiser: npm create indiekit [directory]
  • IndieAuth server endpoint plug-in
  • Support for draft scope in access tokens
  • Support for enriching posts with referenced data
  • An updated and revised web interface:
    • Delete media files
    • Delete and restore posts
    • Create and update 7 different post types, including articles and notes
    • View installed plug-ins, with information pages for each
    • Signed in homepage that can display widgets provided by plug-ins
  • New file system store plug-in
  • A JSON Feed plug-in
  • 4 additional localisations
    • 🇪🇸 Español (with contributions from Anthony Ciccarello)
    • 🇮🇩 bahasa Indonesia (with contributions from Zeky Chandra)
    • 🇵🇱 Polski (with contributions from Arookei The Wolf)
    • 🇷🇸 Srpski (with contributions from Anđela Radojlović)
  • New documentation site powered by VitePress

All this and plenty of bug fixes and other improvements.

Below are changes made since the last release, v1.0.0 Alpha 18.

Features

  • endpoint-auth: add plug-in icon (61f961b)
  • endpoint-auth: change colour of plug-in icon (c5541e3)
  • endpoint-image: add plug-in icon (f550914)
  • endpoint-media: change colour of plugin icon (1b8a565)
  • endpoint-micropub: change colour of plug-in icon (f230545)
  • endpoint-posts: add plug-in icon (faacd00)
  • endpoint-posts: article summary (7dfa215)
  • endpoint-posts: only show supported post types (9e0be58)
  • endpoint-posts: syndicate post button (ada4539)
  • endpoint-share: tweak design of plug-in icon (a730668)
  • endpoint-syndicate: add plug-in icon (6948294)
  • endpoint-syndicate: support form submission and redirect (b717a56)
  • frontend: allow prose font to be overridden (c6d3dc1)
  • frontend: conditional checkboxes (markup and style) (7581f27)
  • frontend: conditional radios (markup and style) (9ce64ce)
  • frontend: imageUrl filter (4a92c83)
  • frontend: includes filter (f2c8444)
  • frontend: increase maximum container size (9587b0c)
  • frontend: lazy loading for card images (9d87488)
  • frontend: small button variant (18c7da9)
  • frontend: syndicate icon (307fe0c)
  • frontend: tweak design of default plug-in icon (84828ef)
  • frontend: tweak design of not-found image (2153f71)
  • frontend: use prose for card meta (b59271f)
  • store-file-system: tweak design of plug-in icon (35c7795)
  • store-ftp: tweak design of plug-in icon (5ca9dd5)
  • update locale catalogs (ff4fecd)

Bug Fixes

  • endpoint-posts: post content prose (5dc3ff2)
  • endpoint-posts: show media within post prose (83b52a5)
  • endpoint-posts: show photo in post card (0342daa)
  • endpoint-share: bookmarklet window size (6d5bce3)
  • endpoint-share: use persisted access token (dfe2b99)
  • frontend: clearer focused input state (882ed45)
  • frontend: error summary inline size (330b8f5)
  • frontend: fieldset spacing (31764b3)
  • frontend: height of token input (4189f10)
  • frontend: icon alignment (00906d7)
  • frontend: main container padding in minimal ui (09cab79)
  • frontend: still trying to figure out field(set) spacing (e74d51c)
  • frontend: text wrapping in summary values (cbe3dc9)
  • frontend: token input background colour on dark scheme (e9a62a2)
  • frontend: warning text flow spacing override (3fff223)
  • indiekit: don’t use a grid to list installed plug-ins (a03d572)
  • indiekit: persist scope and token across views (d8f0894)