indiekit

The little Node.js server with all the parts needed to publish content to your personal website and share it on social networks.

MIT License

Downloads
2.9K
Stars
320
Committers
12

Bot releases are hidden (Show)

indiekit - v1.0.0 Beta 16 Latest Release

Published by paulrobertlloyd 6 months ago

Bug Fixes

  • pass timeZone to date format filter (3202fe9)
indiekit - v1.0.0 Beta 15

Published by paulrobertlloyd 6 months ago

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)
indiekit - v1.0.0 Beta 14

Published by paulrobertlloyd 6 months ago

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)
indiekit - v1.0.0 Beta 13

Published by paulrobertlloyd 6 months ago

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.

indiekit - v1.0.0 Beta 12

Published by paulrobertlloyd 6 months ago

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.

indiekit - v1.0.0 Beta 11

Published by paulrobertlloyd 6 months ago

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)
indiekit - v1.0.0 Beta 10

Published by paulrobertlloyd 6 months ago

[!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)
indiekit - v1.0.0-beta.9

Published by paulrobertlloyd 7 months ago

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.

indiekit - v1.0.0 Beta 8

Published by paulrobertlloyd 8 months ago

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)
  • frontend: field spacing in fieldset group (771e5c5)
  • frontend: focused text colour for detail summary (cc67ab8)
  • frontend: force datetime input height on iOS (d1ea3db)
  • frontend: head order (3968e06)
  • frontend: hint spacing (28cf9a2)
  • frontend: label typography (0c3a37d)
  • frontend: mark title in card component as safe (3b374ac)
  • frontend: more specific selector for tag component styles (da5db8c)
  • frontend: only add aria-labelledby if section has title (db7ea28)
  • frontend: only add aria-labelledby if widget has title (8565cbf)
  • frontend: only apply min-block-size to authorize component when it contains client icon (c3bbd6c)
  • frontend: prevent horizontal scrolling (54d2850)
  • frontend: remove any errors when cloning another item (0a38ff9)
  • frontend: remove width on datetime-local input (e175dd1)
  • frontend: show full error name in notification banner (b21db87)
  • frontend: tag input input width (9c0a9fe)
  • frontend: use fixed value for xs space (6e64bd5)
  • frontend: use option to enable inline radios (b22d42b)
  • indiekit: add default post type dependencies (48b586e)
  • indiekit: add post type name if not provided (dedae13)
  • indiekit: check for database before querying for posts (f957218)
  • indiekit: get localised plug-in strings from response.locals (8858ba4)
  • indiekit: log donā€™t throw request cache errors (16877da)
  • internet-archive: correct option name for secretKey (f3231c5)
  • post-type-like: update swedish localisation (7aeb994)
  • util: validate that media item is url (194c291)
  • provide add another list in caller (5f8f33e)
  • show localised date in cards (f03f608)
indiekit - v1.0.0 Beta 7

Published by paulrobertlloyd 12 months ago

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.

indiekit - v1.0.0 Beta 6

Published by paulrobertlloyd 12 months ago

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
indiekit - v1.0.0 Beta 5

Published by paulrobertlloyd about 1 year ago

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
indiekit - v1.0.0 Beta 4

Published by paulrobertlloyd over 1 year ago

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
indiekit - v1.0.0 Beta 3

Published by paulrobertlloyd over 1 year ago

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 https://github.com/getindiekit/indiekit/issues/600 edbfc15 - thanks @aciccarello for reporting
  • endpoint-micropub: donā€™t require database to query config. fixes https://github.com/getindiekit/indiekit/issues/600 0ffc63a - thanks @aciccarello for reporting
  • frontend: allow for conditional summary rows. fixes https://github.com/getindiekit/indiekit/issues/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 https://github.com/getindiekit/indiekit/issues/560 b4cbd4b - thanks @alienlebarge for reporting
  • indiekit: decode url before testing if valid f9f4202
  • indiekit: use fallback post type icon on status page 5434ac2
indiekit - v1.0.0 Beta 2

Published by paulrobertlloyd almost 2 years ago

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)
indiekit - v1.0.0 Beta 1

Published by paulrobertlloyd almost 2 years ago

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)
indiekit - v1.0.0 Beta

Published by paulrobertlloyd almost 2 years ago

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)
indiekit - v1.0.0 Alpha 18

Published by paulrobertlloyd almost 2 years ago

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)
indiekit - v1.0.0 Alpha 17

Published by paulrobertlloyd almost 2 years ago

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)
indiekit - v1.0.0 Alpha 16

Published by paulrobertlloyd almost 2 years ago

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)