From 4d5f58a7e65733f1fe6e4c8819708abdfcc295cd Mon Sep 17 00:00:00 2001 From: Matt Baer Date: Wed, 29 Jan 2020 06:42:32 -0500 Subject: [PATCH] Fix date-based post header links Posts without an explicit title render the date as the post header in lists of posts (like on the blog index and tag pages). This updates localdate.js to properly adjust those dates, too. --- static/js/localdate.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/static/js/localdate.js b/static/js/localdate.js index 19fa502..879ebe4 100644 --- a/static/js/localdate.js +++ b/static/js/localdate.js @@ -1,9 +1,16 @@ -function toLocalDate(el) { - var d = new Date(el.getAttribute("datetime")); - el.textContent = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' }); +function toLocalDate(dateEl, displayEl) { + var d = new Date(dateEl.getAttribute("datetime")); + displayEl.textContent = d.toLocaleDateString(navigator.language || "en-US", { year: 'numeric', month: 'long', day: 'numeric' }); } -var $dates = document.querySelectorAll("time"); +// Adjust dates on individual post pages, and on posts in a list *with* an explicit title +var $dates = document.querySelectorAll("article > time"); for (var i=0; i < $dates.length; i++) { - toLocalDate($dates[i]); + toLocalDate($dates[i], $dates[i]); } + +// Adjust dates on posts in a list without an explicit title, where they act as the header +$dates = document.querySelectorAll("h2.post-title > time"); +for (i=0; i < $dates.length; i++) { + toLocalDate($dates[i], $dates[i].querySelector('a')); +} \ No newline at end of file