Releases: getindiekit/indiekit
v1.0.0 Beta 9
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
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:
@indiekit/post-type-event
allows you to add event posts to your website.@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
ormeta
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)
- *...
v1.0.0 Beta 7
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
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 thessh2-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()
andupdateFile()
methods onIndiekit.addStore
API now return a URL for the stored file, nottrue
. 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
andupdateFile
(c5adcde) - store-file-system: return url for
createFile
andupdateFile
(80bbf9a) - store-ftp: return url for
createFile
andupdateFile
(440a5e8) - store-gitea: return url for
createFile
andupdateFile
(1ea85e8) - store-github: return url for
createFile
andupdateFile
(48e5f00) - store-gitlab: return url for
createFile
andupdateFile
(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
whenprojectId
credentials (a06f235) - util: add
mongodb
as a dependency. fixes #658 (e8fd8ce)
v1.0.0 Beta 5
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 generateDockerfile
,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 commitmessage
is now provided via anoptions
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
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 renamedapplication.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
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
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 onindiekit 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
Wow, what a week!
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 toblockquote
(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
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)