Make metadata more consistent

This commit is contained in:
Chris Josten 2020-06-27 16:54:06 +02:00
parent 561bcdc366
commit 8d2feaa76b
6 changed files with 51 additions and 12 deletions

View file

@ -62,4 +62,5 @@ class Article : Page {
@property string author() { return m_author; } @property string author() { return m_author; }
@property DateTime firstPublished() { return m_firstPublished; } @property DateTime firstPublished() { return m_firstPublished; }
@property DateTime updated() { return m_updated; } @property DateTime updated() { return m_updated; }
@property bool isModified() { return m_firstPublished != m_updated; }
} }

View file

@ -3,5 +3,6 @@
*/ */
class Constants { class Constants {
public static immutable string SITE_NAME = "Chris Netsoj.nl"; public static immutable string SITE_NAME = "Chris Netsoj.nl";
public static immutable string SITE_URL = "https://chris.netsoj.nl";
public static immutable string COPYRIGHT = "© Chris Josten, 2020"; public static immutable string COPYRIGHT = "© Chris Josten, 2020";
} }

View file

@ -1,11 +1,16 @@
extends /parts/page extends /parts/page
block header
title #{content.title} - Chris Netsoj.nl
meta(name="og:title", content="#{content.title}")
meta(name="og:type", content="article")
meta(name="og:article", content="article")
block sidebar block meta_data
- page_type = "article";
- page_title = content.title;
- page_url = "/post/" ~ content.slug;
- page_description = content.excerpt;
block extra_meta_data
meta(name="og:article:author:username", content=content.author)
meta(name="og:article:published_time", content=content.firstPublished.toISOExtString)
- if (content.isModified)
meta(name="og:article:modified_time", content=content.updated.toISOExtString)
block content block content
article(itemscope, itemtype="https://schema.org/BlogPosting") article(itemscope, itemtype="https://schema.org/BlogPosting")
@ -15,6 +20,6 @@ block content
p.subtitle p.subtitle
| By <span itemprop="author">#{content.author}</span> | By <span itemprop="author">#{content.author}</span>
| on <span itemprop="datePublished">#{content.firstPublished.toHumanString}</span> | on <span itemprop="datePublished">#{content.firstPublished.toHumanString}</span>
- if (content.firstPublished != content.updated) - if (content.isModified)
|, updated on <span itemprop="dateModified">#{content.updated.toHumanString}</span> |, updated on <span itemprop="dateModified">#{content.updated.toHumanString}</span>
section(itemprop="articleBody") !{content.content} section(itemprop="articleBody") !{content.content}

View file

@ -1,7 +1,11 @@
extends /parts/page.dt extends /parts/page.dt
block header block meta_data
title #{content.title} - Chris Netsoj.nl - page_title = content.title;
- if (content.slug == "index")
- page_url = "/";
- else
- page_url = "/" ~ content.slug;
block sidebar block sidebar

View file

@ -1,6 +1,9 @@
extends /parts/page extends /parts/page
block header block meta_data
title #{content.title} - Netsoj.nl - page_title = content.title;
- page_url = "/project/" ~ content.slug;
- page_image = content.icon;
- page_description = content.description;
block sidebar block sidebar

View file

@ -2,14 +2,39 @@ doctype html
html(prefix="og: http://ogp.me/ns#") html(prefix="og: http://ogp.me/ns#")
- import constants; - import constants;
head head
//- Kick off loading the css as fast as possible
meta(name="viewport", content="width=device-width; initial-scale=1") meta(name="viewport", content="width=device-width; initial-scale=1")
link(rel="stylesheet", href="/static/style/base.css") link(rel="stylesheet", href="/static/style/base.css")
- string page_image = "/static/img/logo.png";
- string page_title;
- string page_type;
- string page_url;
- string page_description;
block meta_data
- if (page_title !is null)
title #{page_title} - Chris Netsoj.nl
meta(name="og:title", content=page_title)
- else
title Chris Netsoj.nl
meta(name="og:site_name", content=Constants.SITE_NAME)
- if (page_image !is null)
meta(name="og:image", content=Constants.SITE_URL ~ page_image)
- if (page_type !is null)
meta(name="og:type", content=page_type)
- if (page_url !is null)
meta(name="og:url", content=Constants.SITE_URL ~ page_url)
- if (page_description !is null)
meta(name="og:description", content=page_description)
block extra_meta_data
link(rel="stylesheet", href="/static/style/highlight.css", defer) link(rel="stylesheet", href="/static/style/highlight.css", defer)
link(rel="alternate stylesheet", href="/static/style/old.css", title="1999") link(rel="alternate stylesheet", href="/static/style/old.css", title="1999")
link(rel="shortcut icon", href="/static/img/logo.png") link(rel="shortcut icon", href="/static/img/logo.png")
link(rel="apple-touch-icon", href="/static/img/logo.png") link(rel="apple-touch-icon", href="/static/img/logo.png")
meta(name="theme-color", content="#7f0602") meta(name="theme-color", content="#7f0602")
meta(name="og:site_name", content="#{Constants.SITE_NAME}")
block header block header
body body