Semantic Dates in Wagtail Blog Posts


(Written because I couldn't find an easy guide online.)

Here's the code (formatted for readability):

<time datetime="{{page.first_published_at|date:"c"}}">
   {{page.first_published_at|date:"j F Y"}}
</time>

You can also use last_published_at if it is a page which has been updated.

WHY?!??!

Semantics. HTML5 contains the <time> element. The contents of it show up as normal running text, but the metadata gives information to anything that reads the source-code that the text relates to a date.

It's fairly easy to tell that <p>3rd of May</p> is a date - well, it's only easy if you know that you're only ever looking for English text formatted a specific way.

For example, does <p>3/5</p> mean three-fifth, or does it mean 3rd of May? Or, are you American, and it means 5th of March?

So, we can use a <time> element with the datetime= metadata. The datetime tag takes an ISO8601 string.

Luckily, we don't have to write it out by hand. Django has a built-in template for that.

Hey presto! Your blog posts now contain machine-readable data about when they were published.


Share this post on…

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

See allowed HTML elements: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">