Rather than the custom event sorting plugin being based on the `created`
value, this change adds a new `field_event_date` field to the talk node
type and uses this for the sorting instead.
This commit also adds a new `TalkDateUpdater` service that extracts
either the next event date if there is a future date, or the last past
event date if there is no future date, from `field_events` for each talk
and saves it into the event date field.
For consistency, and to ensure that the results are ordered correctly,
the talk date updater converts the date from a date string (e.g.
`2020-08-24`) into a UNIX timestamp, and the timestamp is saved in the
event date field. This can be changed at a later date if needed.
The talks view has been updated to use the updated sort plugin, and the
existing tests have been updated to use the new field.
References #204
Add the ability to add links to external blog posts within my blog feed.
This is done based on a new `field_external_link` field that allows for
adding the external link URL and the domain name as the title.
The node links are then overridden to use the external link if there is
one, so the node title and 'read more' links are changed to use the
external link.
Currently, automated tweets are not generated for external posts.
Fixes#182
Check if a post has previously been sent to social media, by checking
the value of a `field_sent_to_social_media` field.
This field is hidden on the node add/edit forms, and populated when a
post is sent to social media. Once this happens, it will not be sent to
social media again.
This change also populates the field for all existing posts, so that
they won't be re-sent to social media either.
Improve the accessibility for the nav toggle button by adding a border
around the button when it is focussed on.
I've added a custom Tailwind CSS variant to do this using a custom
`focus-visible` variant in tailwind.config.js, and using the
https://www.npmjs.com/package/focus-visible polyfill.
Update the ordering of the future talks on the talks page so that
upcoming talks are shown in chronological order (soonest first),
followed by past talks in reverse chronological order (most recent
first).
This still uses the `created` date for ordering, which is updated
automatically on saving the node to match the furthest future talk, but
I may want to move that into a custom node property at some point.
Fixes#140
- Updated npm dependencies
- Replaced `webpack.mix.js` with `webpack.config.js`
- Added `postcss.config.js`
- Removed the `src` directory and moved `css` and `js` to the root level
of the theme
- Renamed `dist` to `build` and updated in libraries file
References #41
Update the test for updating a talk node as it was essentially doing the
same as the test for creating a new talk node.
The test now ensures that the talk is saved before adding an event, and
that the talk created date is different to the original created date as
well as that it matches the latest event date.
To ensure that the event dates for a talk are always in the correct
order, and to make the editing experience easier, this change
automatically re-orders the events on a talk node to be based on the
event date.
Fixes#74
Include the file containing the body field values within the `purge`
settings so that Tailwind uses it and prevents any classes within it
from being removed from the production CSS.
References #55
Add a custom Drush command that exports the body field values for node
and block body fields into a file.
This file can then be included within Tailwind's `purge` settings to
prevent classes used within the body fields from being purged.
References #55
Automatically update the created dates for talk nodes so that they match
the most-future event. This means that the talks are ordered correctly
on the Talks page.