Skip to content

Commit 046f8a7

Browse files
authored
Fix Timestamp Parsing Error that renders Invalid Datetime (#252)
* fix: Some timestamps cannot be parsed * fix: update dateToZulu to use try catch
1 parent 7bbcbec commit 046f8a7

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

.eleventy.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -517,9 +517,13 @@ module.exports = function (eleventyConfig) {
517517

518518

519519
eleventyConfig.addFilter("dateToZulu", function (date) {
520-
if (!date) return "";
521-
return new Date(date).toISOString("dd-MM-yyyyTHH:mm:ssZ");
520+
try {
521+
return new Date(date).toISOString("dd-MM-yyyyTHH:mm:ssZ");
522+
} catch {
523+
return "";
524+
}
522525
});
526+
523527
eleventyConfig.addFilter("jsonify", function (variable) {
524528
return JSON.stringify(variable) || '""';
525529
});
+14-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
<script src=" https://fastly.jsdelivr.net/npm/[email protected]/build/global/luxon.min.js "></script>
22
<script defer>
3-
TIMESTAMP_FORMAT = "{{meta.timestampSettings.timestampFormat}}";
4-
document.querySelectorAll('.human-date').forEach(function (el) {
5-
el.innerHTML = luxon.DateTime.fromISO(el.getAttribute('data-date') || el.innerText).toFormat(TIMESTAMP_FORMAT);
6-
});
3+
TIMESTAMP_FORMAT = "{{meta.timestampSettings.timestampFormat}}";
4+
document.querySelectorAll('.human-date').forEach(function (el) {
5+
date = el.getAttribute('data-date') || el.innerText
6+
parsed_date = luxon.DateTime.fromISO(date)
7+
if (parsed_date.invalid != null){
8+
// Date cannot be parsed
9+
parsed_date = luxon.DateTime.fromSQL(date)
10+
}
11+
if (parsed_date.invalid != null){
12+
// Date still cannot be parsed
13+
parsed_date = luxon.DateTime.fromHTML(date)
14+
}
15+
el.innerHTML = parsed_date.toFormat(TIMESTAMP_FORMAT);
16+
})
717
</script>

src/site/sitemap.njk

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ eleventyExcludeFromCollections: true
77
{% for page in collections.all %}
88
<url>
99
<loc>{{ meta.siteBaseUrl }}{{ page.url | url }}</loc>
10-
<lastmod>{{ page.date.toISOString() }}</lastmod>
10+
<lastmod>{{ page.date | dateToZulu }}</lastmod>
1111
</url>
1212
{% endfor %}
1313
</urlset>

0 commit comments

Comments
 (0)