fix(datetime): add missing datetime attribute on time element#2759
Conversation
The datetime attribute was missing from the time element, which is recommended for semantic HTML. Add it using the date_to_xmlschema Liquid filter to ensure proper ISO 8601 format.
|
The time elements in footer.html and archives.html encode only the year, which remains valid for machine‑readable metadata. |
cotes2020
left a comment
There was a problem hiding this comment.
The datetime attribute is only required when the HTML element is <time> and its text content does not fall within the range specified in valid datetime values. Therefore, you should add a flag to determine whether the datetime attribute needs to be generated, instead of simply generating it everywhere datetime.html is included, as in your current modification.
You might consider naming this flag datetime_attr with a boolean type.
Example:
{% include datetime.html datetime_attr=true %}
|
Applied the suggested changes, but I ended up having to add the flag everywhere the include is used. At that point it starts to feel redundant, because generating the attribute by default inside the include would produce the same result without requiring extra parameters in every import. I do agree with the idea of dynamicly determining whether the datetime attribute needs to be generated. One approach I’ve been considering is patching the elements directly by adding another function to locale-datetime.js. That function could validate the content using dayjs (with the CustomParseFormat plugin) and automatically assign the attribute whenever the value fails validation. What are your thoughts on this direction? |
|
You might have a slight misunderstanding about Liquid here. This flag is completely optional; if you don't explicitly pass Going the JS route to patch HTML elements feels overly complex. The core design pattern here is that HTML elements should be generated and modified by Liquid during the Jekyll build process, unless it completely hits a wall with Liquid's capabilities. JS should generally only be responsible for handling user interaction events. |
cotes2020
left a comment
There was a problem hiding this comment.
My apologies, I misread the code earlier. Every place that calls datetime.html actually generates a <time> element, so adding the flag is indeed redundant. In other words, we don't need the flag, nor do we need JS modifications. Your original commit was the most straightforward and elegant solution.
If we want to be more precise about whether to generate the datetime attribute, the logic should be: using Liquid inside datetime.html to check if the output text complies with the MDN standards. Of course, this would add some complexity to the code, so it's entirely up to you if you'd like to go that route.
…lement" This reverts commit 42a1ded.
|
Let's keep it simple. The string format is defined via site data locales, which is always provided in a non‑machine‑readable format. |
|
No problem, I will simplify the JS and remove the |
* chore(dev-deps): add eslint config file * chore: avoid auto-formatting liquid and sass mixed code * fix: avoid `mathjax` loading failure on page refresh (cotes2020#2389) * fix: improve accuracy of moving `img` element classes (cotes2020#2399) * chore: upgrade dependencies to the latest version (cotes2020#2409) * chore(release): 7.3.0 ## [7.3.0](cotes2020/jekyll-theme-chirpy@v7.2.4...v7.3.0) (2025-05-18) ### Features * **i18n:** add Catalan Spanish locale translation ([cotes2020#2349](cotes2020#2349)) ([167c98c](cotes2020@167c98c)) * **i18n:** add Dutch locale ([cotes2020#2076](cotes2020#2076)) ([981ddba](cotes2020@981ddba)) * **i18n:** add Japanese locale ([cotes2020#2295](cotes2020#2295)) ([571c90f](cotes2020@571c90f)) * **i18n:** add persian language ([cotes2020#2238](cotes2020#2238)) ([7d4d35c](cotes2020@7d4d35c)) ### Bug Fixes * avoid `mathjax` loading failure on page refresh ([cotes2020#2389](cotes2020#2389)) ([401e2af](cotes2020@401e2af)) * improve accuracy of moving `img` element classes ([cotes2020#2399](cotes2020#2399)) ([d0f8f95](cotes2020@d0f8f95)) * prevent the search bar from moving when focused ([cotes2020#2336](cotes2020#2336)) ([f744929](cotes2020@f744929)) * recognize global theme mode ([cotes2020#2357](cotes2020#2357)) ([7708adb](cotes2020@7708adb)) * **search:** avoid missing spaces between paragraphs in search results ([cotes2020#2199](cotes2020#2199)) ([0eb7efa](cotes2020@0eb7efa)) * **ui:** fix incomplete border color on hover for tags ([cotes2020#2359](cotes2020#2359)) ([c626447](cotes2020@c626447)) ### Improvements * **seo:** improve accessibility and aligns with best practices ([cotes2020#2289](cotes2020#2289)) ([54d4d59](cotes2020@54d4d59)) * feat(i18n): add Danish locale (cotes2020#2410) * feat(i18n): add locale files for some rtl languages (cotes2020#2415) * fix: correct GoatCounter pageviews extraction (cotes2020#2420) * fix: resolve discrepancy in lqip between post and main page (cotes2020#2453) * fix: escape special JSON characters in search results (cotes2020#2481) Also restore full-text search * chore(release): 7.3.1 ## [7.3.1](cotes2020/jekyll-theme-chirpy@v7.3.0...v7.3.1) (2025-07-26) ### Bug Fixes * escape special JSON characters in search results ([cotes2020#2481](cotes2020#2481)) ([7615d72](cotes2020@7615d72)) * chore: complete ESLint v9 configuration * style: unify quote style in rollup config * ci: migrate eslint and stylelint from codacy to gh-actions * style: change css color functions to use modern notation - `rgba()` → `rgb()` * ci: change filter script to ESM format Because `"type": "module"` was added to `package.json` * fix: avoid unconfigured social options in sidebar (cotes2020#2507) * feat: add support for embed spotify (cotes2020#2515) * docs: update timezone picker reference (cotes2020#2518) * fix: restore blurry animation for homepage LQIP (cotes2020#2551) * chore: remove deprecated URL * chore: improve ESLint config * build(deps): bump the gh-actions group across 1 directory with 5 updates (cotes2020#2550) Bumps the gh-actions group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4` | `5` | | [actions/setup-node](https://github.com/actions/setup-node) | `4` | `5` | | [github/codeql-action](https://github.com/github/codeql-action) | `3` | `4` | | [actions/github-script](https://github.com/actions/github-script) | `7` | `8` | | [actions/stale](https://github.com/actions/stale) | `9` | `10` | Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) Updates `actions/setup-node` from 4 to 5 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v5) Updates `github/codeql-action` from 3 to 4 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) Updates `actions/github-script` from 7 to 8 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v8) Updates `actions/stale` from 9 to 10 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](actions/stale@v9...v10) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/setup-node dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/stale dependency-version: '10' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: avoid converting media‘s relative paths to absolute paths (cotes2020#2552) * fix(search): restore full-text search for posts with description (cotes2020#2557) * refactor: update favicon files and documentation (cotes2020#2558) * build(dev-deps): upgrade dependencies * refactor: resolve various StyleLint warnings * build(deps): upgrade dependencies * chore(release): 7.4.0 ## [7.4.0](cotes2020/jekyll-theme-chirpy@v7.3.1...v7.4.0) (2025-10-19) ### Features * add support for embed spotify ([cotes2020#2515](cotes2020#2515)) ([cda62e2](cotes2020@cda62e2)) * **i18n:** add Danish locale ([cotes2020#2410](cotes2020#2410)) ([f5802b8](cotes2020@f5802b8)) * **i18n:** add locale files for some rtl languages ([cotes2020#2415](cotes2020#2415)) ([18c48b4](cotes2020@18c48b4)) ### Bug Fixes * avoid unconfigured social options in sidebar ([cotes2020#2507](cotes2020#2507)) ([5f8ec7f](cotes2020@5f8ec7f)) * correct GoatCounter pageviews extraction ([cotes2020#2420](cotes2020#2420)) ([c706799](cotes2020@c706799)) * resolve discrepancy in lqip between post and main page ([cotes2020#2453](cotes2020#2453)) ([1bac96a](cotes2020@1bac96a)) * restore blurry animation for homepage LQIP ([cotes2020#2551](cotes2020#2551)) ([221ca9f](cotes2020@221ca9f)) * **search:** restore full-text search for posts with description ([cotes2020#2557](cotes2020#2557)) ([604528e](cotes2020@604528e)) * Revert "refactor: avoid converting media‘s relative paths to absolute paths (cotes2020#2552)" This reverts commit b3d7db3. * fix: avoid duplicate base URL for homepage preview images (cotes2020#2568) * chore(release): 7.4.1 ## [7.4.1](cotes2020/jekyll-theme-chirpy@v7.4.0...v7.4.1) (2025-10-26) ### Bug Fixes * avoid duplicate base URL for homepage preview images ([cotes2020#2568](cotes2020#2568)) ([66bf232](cotes2020@66bf232)) * feat: add support for `fediverse:creator` meta tag (cotes2020#2593) * fix(i18n): localize the title (cotes2020#2610) * build(deps): update platforms in Gemfile for Windows (cotes2020#2628) * chore: reduce optional config defaults * build(dev-deps): upgrade node packages * style: interpolate sass variable in CSS custom property * chore: update ESLint dependencies and improve js style * build(gh-actions): enable `dependabot` to scan the starter workflow * build(deps): bump the gh-actions group across 2 directories with 4 updates (cotes2020#2678) Bumps the gh-actions group with 2 updates in the /.github/workflows directory: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-node](https://github.com/actions/setup-node). Bumps the gh-actions group with 3 updates in the /.github/workflows/starter directory: [actions/checkout](https://github.com/actions/checkout), [actions/configure-pages](https://github.com/actions/configure-pages) and [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) Updates `actions/setup-node` from 5 to 6 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v5...v6) Updates `actions/checkout` from 4 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) Updates `actions/configure-pages` from 4 to 5 - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](actions/configure-pages@v4...v5) Updates `actions/upload-pages-artifact` from 3 to 4 - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/configure-pages dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/upload-pages-artifact dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: fix typos in tutorial * refactor: correct typos in comments and identifiers (cotes2020#2681) - Rename `loadTooptip` to `loadTooltip` in tooltip-loader.js, components.js, and basic.js - Fix grammar: "This script make" → "This script makes" in search-display.js - Fix "HomgPage" → "HomePage" in post-paginator.html - Fix "CND URL" → "CDN URL" in media-url.html - Fix "locale-dateime.js" → "locale-datetime.js" in datetime.html - Fix "LaTex" → "LaTeX" in language-alias.html - Fix "exist <a> tag" → "existing <a> tag" in refactor-content.html - Fix "Archvies" → "Archives" in _archives.scss - Fix "underlinke" → "underline" in _syntax.scss * ci: update ruby version to 3.4 Ruby 3.1 and 3.2 are now EOL See: https://www.ruby-lang.org/en/downloads/branches/ * chore(deps): update packages to latest version @fortawesome/fontawesome-free 7.1.0 -> 7.2.0 dayjs 1.11.18 -> 1.11.20 mermaid 11.12.0 -> 11.13.0 * chore(release): 7.5.0 ## [7.5.0](cotes2020/jekyll-theme-chirpy@v7.4.1...v7.5.0) (2026-03-15) ### Features * add support for `fediverse:creator` meta tag ([cotes2020#2593](cotes2020#2593)) ([d2db439](cotes2020@d2db439)) ### Bug Fixes * **i18n:** localize the title ([cotes2020#2610](cotes2020#2610)) ([52d160f](cotes2020@52d160f)) * chore: ignore hidden system files and editor backups (cotes2020#2704) * docs: improve readme * fix: prevent Firefox from opening blank page on `mailto` links (cotes2020#2642) * feat: add edit this post link (cotes2020#2517) * chore: update github issue template * docs: update readme * chore(deps): bump mathjax from 3.2.2 to 4.x * refactor(deps): update CDN URLs to follow production best practices (cotes2020#2740) * chore: remove funding * fix(pwa): avoid iOS status bar overlapping PWA content (cotes2020#2173) Fixes cotes2020#2173 * fix(giscus): synchronize theme state during lazy loading (cotes2020#2742) Previously, theme switch events were lost if triggered before the Giscus iframe was fully loaded (e.g., when deferred by lazy loading or before the client script executed). This resulted in Giscus rendering with the outdated initial theme once it finally appeared in the viewport. This commit handles these edge cases by: 1. Updating the `data-theme` attribute on the Giscus script node if the iframe hasn't been created yet. 2. Modifying the `theme` query parameter in the iframe's `src` URL if it is currently in a pending/lazy-loading state. * feat(theme): persist user theme preferences (cotes2020#2756) - Migrate theme persistence from `sessionStorage` to `localStorage` - Rename theme HTML attribute to `data-bs-theme` for Bootstrap compatibility - Trim and compile CSS according to the chosen theme mode * feat(ui): optimize design of PWA update notification (cotes2020#2757) * refactor(ui): reduce the size of the 'close' and 'copy' buttons - The close button in the TOC popup - The copy button in the code block * perf(ui): prevent vertical flickering caused by subtitle loading * chore(deps-dev): update dependencies @babel/core ^7.29.0 → ^7.29.7 @babel/preset-env ^7.29.0 → ^7.29.7 @commitlint/cli ^20.4.4 → ^21.0.2 @commitlint/config-conventional ^20.4.4 → ^21.0.2 @eslint/js ^10.0.0 → ^10.0.1 @rollup/plugin-babel ^7.0.0 → ^7.1.0 concurrently ^9.2.1 → ^10.0.3 conventional-changelog-conventionalcommits ^9.3.0 → ^9.3.1 eslint ^10.0.3 → ^10.5.0 globals ^17.4.0 → ^17.6.0 rollup ^4.59.0 → ^4.62.2 semantic-release ^25.0.3 → ^25.0.5 stylelint ^17.4.0 → ^17.13.0 * ci(deps): bump the gh-actions group across 2 directories with 5 updates Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/github-script` from 8 to 9 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v8...v9) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/configure-pages` from 5 to 6 - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](actions/configure-pages@v5...v6) Updates `actions/upload-pages-artifact` from 4 to 5 - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v4...v5) Updates `actions/deploy-pages` from 4 to 5 - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](actions/deploy-pages@v4...v5) * chore(deps): upgrade static assets * chore(release): 7.6.0 ## [7.6.0](cotes2020/jekyll-theme-chirpy@v7.5.0...v7.6.0) (2026-06-20) ### Features * add edit this post link ([cotes2020#2517](cotes2020#2517)) ([6bd446c](cotes2020@6bd446c)) * **theme:** persist user theme preferences ([cotes2020#2756](cotes2020#2756)) ([7496dd4](cotes2020@7496dd4)) * **ui:** optimize design of PWA update notification ([cotes2020#2757](cotes2020#2757)) ([5cc9dc6](cotes2020@5cc9dc6)) ### Bug Fixes * **giscus:** synchronize theme state during lazy loading ([cotes2020#2742](cotes2020#2742)) ([ceb2a41](cotes2020@ceb2a41)) * prevent Firefox from opening blank page on `mailto` links ([cotes2020#2642](cotes2020#2642)) ([2685b91](cotes2020@2685b91)) * **pwa:** avoid iOS status bar overlapping PWA content ([cotes2020#2173](cotes2020#2173)) ([3823212](cotes2020@3823212)) ### Improvements * **ui:** prevent vertical flickering caused by subtitle loading ([2db0535](cotes2020@2db0535)) * fix(dom): add missing datetime attribute on time element (cotes2020#2759) The datetime attribute was missing from the time element, which is recommended for semantic HTML. Add it using the date_to_xmlschema Liquid filter to ensure proper ISO 8601 format. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Cotes Chung <11371340+cotes2020@users.noreply.github.com> Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: Nicolai Skødt Holmgaard <24588044+Nicolai9852@users.noreply.github.com> Co-authored-by: Zakaria Fatahi <zakaria@buzzjective.com> Co-authored-by: Alexander Fuks <kungfux@users.noreply.github.com> Co-authored-by: Josh Wickham <josh@i-josh.com> Co-authored-by: Jason Raveling <jason@webunraveling.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nakamura <71050561+manabu-nakamura@users.noreply.github.com> Co-authored-by: Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Co-authored-by: Shen Lin <shhenlin@gmail.com> Co-authored-by: lynkos <kiwi2mii@gmail.com> Co-authored-by: Yura <yury.kabernik.berazouski@gmail.com>
* chore(dev-deps): add eslint config file * chore: avoid auto-formatting liquid and sass mixed code * fix: avoid `mathjax` loading failure on page refresh (cotes2020#2389) * fix: improve accuracy of moving `img` element classes (cotes2020#2399) * chore: upgrade dependencies to the latest version (cotes2020#2409) * chore(release): 7.3.0 ## [7.3.0](cotes2020/jekyll-theme-chirpy@v7.2.4...v7.3.0) (2025-05-18) ### Features * **i18n:** add Catalan Spanish locale translation ([cotes2020#2349](cotes2020#2349)) ([167c98c](cotes2020@167c98c)) * **i18n:** add Dutch locale ([cotes2020#2076](cotes2020#2076)) ([981ddba](cotes2020@981ddba)) * **i18n:** add Japanese locale ([cotes2020#2295](cotes2020#2295)) ([571c90f](cotes2020@571c90f)) * **i18n:** add persian language ([cotes2020#2238](cotes2020#2238)) ([7d4d35c](cotes2020@7d4d35c)) ### Bug Fixes * avoid `mathjax` loading failure on page refresh ([cotes2020#2389](cotes2020#2389)) ([401e2af](cotes2020@401e2af)) * improve accuracy of moving `img` element classes ([cotes2020#2399](cotes2020#2399)) ([d0f8f95](cotes2020@d0f8f95)) * prevent the search bar from moving when focused ([cotes2020#2336](cotes2020#2336)) ([f744929](cotes2020@f744929)) * recognize global theme mode ([cotes2020#2357](cotes2020#2357)) ([7708adb](cotes2020@7708adb)) * **search:** avoid missing spaces between paragraphs in search results ([cotes2020#2199](cotes2020#2199)) ([0eb7efa](cotes2020@0eb7efa)) * **ui:** fix incomplete border color on hover for tags ([cotes2020#2359](cotes2020#2359)) ([c626447](cotes2020@c626447)) ### Improvements * **seo:** improve accessibility and aligns with best practices ([cotes2020#2289](cotes2020#2289)) ([54d4d59](cotes2020@54d4d59)) * feat(i18n): add Danish locale (cotes2020#2410) * feat(i18n): add locale files for some rtl languages (cotes2020#2415) * fix: correct GoatCounter pageviews extraction (cotes2020#2420) * fix: resolve discrepancy in lqip between post and main page (cotes2020#2453) * fix: escape special JSON characters in search results (cotes2020#2481) Also restore full-text search * chore(release): 7.3.1 ## [7.3.1](cotes2020/jekyll-theme-chirpy@v7.3.0...v7.3.1) (2025-07-26) ### Bug Fixes * escape special JSON characters in search results ([cotes2020#2481](cotes2020#2481)) ([7615d72](cotes2020@7615d72)) * chore: complete ESLint v9 configuration * style: unify quote style in rollup config * ci: migrate eslint and stylelint from codacy to gh-actions * style: change css color functions to use modern notation - `rgba()` → `rgb()` * ci: change filter script to ESM format Because `"type": "module"` was added to `package.json` * fix: avoid unconfigured social options in sidebar (cotes2020#2507) * feat: add support for embed spotify (cotes2020#2515) * docs: update timezone picker reference (cotes2020#2518) * fix: restore blurry animation for homepage LQIP (cotes2020#2551) * chore: remove deprecated URL * chore: improve ESLint config * build(deps): bump the gh-actions group across 1 directory with 5 updates (cotes2020#2550) Bumps the gh-actions group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4` | `5` | | [actions/setup-node](https://github.com/actions/setup-node) | `4` | `5` | | [github/codeql-action](https://github.com/github/codeql-action) | `3` | `4` | | [actions/github-script](https://github.com/actions/github-script) | `7` | `8` | | [actions/stale](https://github.com/actions/stale) | `9` | `10` | Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) Updates `actions/setup-node` from 4 to 5 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v5) Updates `github/codeql-action` from 3 to 4 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) Updates `actions/github-script` from 7 to 8 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v8) Updates `actions/stale` from 9 to 10 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](actions/stale@v9...v10) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/setup-node dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/stale dependency-version: '10' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: avoid converting media‘s relative paths to absolute paths (cotes2020#2552) * fix(search): restore full-text search for posts with description (cotes2020#2557) * refactor: update favicon files and documentation (cotes2020#2558) * build(dev-deps): upgrade dependencies * refactor: resolve various StyleLint warnings * build(deps): upgrade dependencies * chore(release): 7.4.0 ## [7.4.0](cotes2020/jekyll-theme-chirpy@v7.3.1...v7.4.0) (2025-10-19) ### Features * add support for embed spotify ([cotes2020#2515](cotes2020#2515)) ([cda62e2](cotes2020@cda62e2)) * **i18n:** add Danish locale ([cotes2020#2410](cotes2020#2410)) ([f5802b8](cotes2020@f5802b8)) * **i18n:** add locale files for some rtl languages ([cotes2020#2415](cotes2020#2415)) ([18c48b4](cotes2020@18c48b4)) ### Bug Fixes * avoid unconfigured social options in sidebar ([cotes2020#2507](cotes2020#2507)) ([5f8ec7f](cotes2020@5f8ec7f)) * correct GoatCounter pageviews extraction ([cotes2020#2420](cotes2020#2420)) ([c706799](cotes2020@c706799)) * resolve discrepancy in lqip between post and main page ([cotes2020#2453](cotes2020#2453)) ([1bac96a](cotes2020@1bac96a)) * restore blurry animation for homepage LQIP ([cotes2020#2551](cotes2020#2551)) ([221ca9f](cotes2020@221ca9f)) * **search:** restore full-text search for posts with description ([cotes2020#2557](cotes2020#2557)) ([604528e](cotes2020@604528e)) * Revert "refactor: avoid converting media‘s relative paths to absolute paths (cotes2020#2552)" This reverts commit b3d7db3. * fix: avoid duplicate base URL for homepage preview images (cotes2020#2568) * chore(release): 7.4.1 ## [7.4.1](cotes2020/jekyll-theme-chirpy@v7.4.0...v7.4.1) (2025-10-26) ### Bug Fixes * avoid duplicate base URL for homepage preview images ([cotes2020#2568](cotes2020#2568)) ([66bf232](cotes2020@66bf232)) * feat: add support for `fediverse:creator` meta tag (cotes2020#2593) * fix(i18n): localize the title (cotes2020#2610) * build(deps): update platforms in Gemfile for Windows (cotes2020#2628) * chore: reduce optional config defaults * build(dev-deps): upgrade node packages * style: interpolate sass variable in CSS custom property * chore: update ESLint dependencies and improve js style * build(gh-actions): enable `dependabot` to scan the starter workflow * build(deps): bump the gh-actions group across 2 directories with 4 updates (cotes2020#2678) Bumps the gh-actions group with 2 updates in the /.github/workflows directory: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-node](https://github.com/actions/setup-node). Bumps the gh-actions group with 3 updates in the /.github/workflows/starter directory: [actions/checkout](https://github.com/actions/checkout), [actions/configure-pages](https://github.com/actions/configure-pages) and [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) Updates `actions/setup-node` from 5 to 6 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v5...v6) Updates `actions/checkout` from 4 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) Updates `actions/configure-pages` from 4 to 5 - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](actions/configure-pages@v4...v5) Updates `actions/upload-pages-artifact` from 3 to 4 - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/configure-pages dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions - dependency-name: actions/upload-pages-artifact dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: gh-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: fix typos in tutorial * refactor: correct typos in comments and identifiers (cotes2020#2681) - Rename `loadTooptip` to `loadTooltip` in tooltip-loader.js, components.js, and basic.js - Fix grammar: "This script make" → "This script makes" in search-display.js - Fix "HomgPage" → "HomePage" in post-paginator.html - Fix "CND URL" → "CDN URL" in media-url.html - Fix "locale-dateime.js" → "locale-datetime.js" in datetime.html - Fix "LaTex" → "LaTeX" in language-alias.html - Fix "exist <a> tag" → "existing <a> tag" in refactor-content.html - Fix "Archvies" → "Archives" in _archives.scss - Fix "underlinke" → "underline" in _syntax.scss * ci: update ruby version to 3.4 Ruby 3.1 and 3.2 are now EOL See: https://www.ruby-lang.org/en/downloads/branches/ * chore(deps): update packages to latest version @fortawesome/fontawesome-free 7.1.0 -> 7.2.0 dayjs 1.11.18 -> 1.11.20 mermaid 11.12.0 -> 11.13.0 * chore(release): 7.5.0 ## [7.5.0](cotes2020/jekyll-theme-chirpy@v7.4.1...v7.5.0) (2026-03-15) ### Features * add support for `fediverse:creator` meta tag ([cotes2020#2593](cotes2020#2593)) ([d2db439](cotes2020@d2db439)) ### Bug Fixes * **i18n:** localize the title ([cotes2020#2610](cotes2020#2610)) ([52d160f](cotes2020@52d160f)) * chore: ignore hidden system files and editor backups (cotes2020#2704) * docs: improve readme * fix: prevent Firefox from opening blank page on `mailto` links (cotes2020#2642) * feat: add edit this post link (cotes2020#2517) * chore: update github issue template * docs: update readme * chore(deps): bump mathjax from 3.2.2 to 4.x * refactor(deps): update CDN URLs to follow production best practices (cotes2020#2740) * chore: remove funding * fix(pwa): avoid iOS status bar overlapping PWA content (cotes2020#2173) Fixes cotes2020#2173 * fix(giscus): synchronize theme state during lazy loading (cotes2020#2742) Previously, theme switch events were lost if triggered before the Giscus iframe was fully loaded (e.g., when deferred by lazy loading or before the client script executed). This resulted in Giscus rendering with the outdated initial theme once it finally appeared in the viewport. This commit handles these edge cases by: 1. Updating the `data-theme` attribute on the Giscus script node if the iframe hasn't been created yet. 2. Modifying the `theme` query parameter in the iframe's `src` URL if it is currently in a pending/lazy-loading state. * feat(theme): persist user theme preferences (cotes2020#2756) - Migrate theme persistence from `sessionStorage` to `localStorage` - Rename theme HTML attribute to `data-bs-theme` for Bootstrap compatibility - Trim and compile CSS according to the chosen theme mode * feat(ui): optimize design of PWA update notification (cotes2020#2757) * refactor(ui): reduce the size of the 'close' and 'copy' buttons - The close button in the TOC popup - The copy button in the code block * perf(ui): prevent vertical flickering caused by subtitle loading * chore(deps-dev): update dependencies @babel/core ^7.29.0 → ^7.29.7 @babel/preset-env ^7.29.0 → ^7.29.7 @commitlint/cli ^20.4.4 → ^21.0.2 @commitlint/config-conventional ^20.4.4 → ^21.0.2 @eslint/js ^10.0.0 → ^10.0.1 @rollup/plugin-babel ^7.0.0 → ^7.1.0 concurrently ^9.2.1 → ^10.0.3 conventional-changelog-conventionalcommits ^9.3.0 → ^9.3.1 eslint ^10.0.3 → ^10.5.0 globals ^17.4.0 → ^17.6.0 rollup ^4.59.0 → ^4.62.2 semantic-release ^25.0.3 → ^25.0.5 stylelint ^17.4.0 → ^17.13.0 * ci(deps): bump the gh-actions group across 2 directories with 5 updates Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/github-script` from 8 to 9 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v8...v9) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) Updates `actions/configure-pages` from 5 to 6 - [Release notes](https://github.com/actions/configure-pages/releases) - [Commits](actions/configure-pages@v5...v6) Updates `actions/upload-pages-artifact` from 4 to 5 - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v4...v5) Updates `actions/deploy-pages` from 4 to 5 - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](actions/deploy-pages@v4...v5) * chore(deps): upgrade static assets * chore(release): 7.6.0 ## [7.6.0](cotes2020/jekyll-theme-chirpy@v7.5.0...v7.6.0) (2026-06-20) ### Features * add edit this post link ([cotes2020#2517](cotes2020#2517)) ([6bd446c](cotes2020@6bd446c)) * **theme:** persist user theme preferences ([cotes2020#2756](cotes2020#2756)) ([7496dd4](cotes2020@7496dd4)) * **ui:** optimize design of PWA update notification ([cotes2020#2757](cotes2020#2757)) ([5cc9dc6](cotes2020@5cc9dc6)) ### Bug Fixes * **giscus:** synchronize theme state during lazy loading ([cotes2020#2742](cotes2020#2742)) ([ceb2a41](cotes2020@ceb2a41)) * prevent Firefox from opening blank page on `mailto` links ([cotes2020#2642](cotes2020#2642)) ([2685b91](cotes2020@2685b91)) * **pwa:** avoid iOS status bar overlapping PWA content ([cotes2020#2173](cotes2020#2173)) ([3823212](cotes2020@3823212)) ### Improvements * **ui:** prevent vertical flickering caused by subtitle loading ([2db0535](cotes2020@2db0535)) * fix(dom): add missing datetime attribute on time element (cotes2020#2759) The datetime attribute was missing from the time element, which is recommended for semantic HTML. Add it using the date_to_xmlschema Liquid filter to ensure proper ISO 8601 format. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Cotes Chung <11371340+cotes2020@users.noreply.github.com> Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: Nicolai Skødt Holmgaard <24588044+Nicolai9852@users.noreply.github.com> Co-authored-by: Zakaria Fatahi <zakaria@buzzjective.com> Co-authored-by: Alexander Fuks <kungfux@users.noreply.github.com> Co-authored-by: Josh Wickham <josh@i-josh.com> Co-authored-by: Jason Raveling <jason@webunraveling.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nakamura <71050561+manabu-nakamura@users.noreply.github.com> Co-authored-by: Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Co-authored-by: Shen Lin <shhenlin@gmail.com> Co-authored-by: lynkos <kiwi2mii@gmail.com> Co-authored-by: Yura <yury.kabernik.berazouski@gmail.com>
Type of change
Description
The datetime attribute was missing from the time element, which is recommended for semantic HTML. Added it using the date_to_xmlschema Liquid filter to ensure proper ISO 8601 format.
Additional context
Running pages under HTML validator reporting an issue with translating rendered dates into machine-readable format.
The attribute allows to translate it to a valid formal: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values