From e8614d96f44c290224ae65a2dd029acdff1d3c74 Mon Sep 17 00:00:00 2001 From: Serghei Iakovlev Date: Sun, 5 Jun 2022 14:50:21 +0200 Subject: Provided initial support os schema.org microdata --- CHANGELOG.md | 2 + exampleSite/config.toml | 5 +++ layouts/_default/list.json.json | 4 +- layouts/partials/head.html | 1 + layouts/partials/schema.org/article.html | 65 +++++++++++++++++++++++++++++ layouts/partials/schema.org/website.html | 10 +++++ layouts/partials/templates/schema_json.html | 5 +++ 7 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 layouts/partials/schema.org/article.html create mode 100644 layouts/partials/schema.org/website.html create mode 100644 layouts/partials/templates/schema_json.html diff --git a/CHANGELOG.md b/CHANGELOG.md index f6ffd40..debdd05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add tagging support - Provide ability to hide particular page from the sitemap by using `private: true` in front matter +- Provided initial support os schema.org microdata for the site + and for the posts ### Changed diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 1141174..5ef6fe6 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -176,6 +176,11 @@ disableKinds = ['RSS'] logo = '/img/open-graph-logo.png' # Logo image, relative to ./assets disable_fingerprinting = false + [params.seo] + # Will be used in schema.org/Organization. + # The site.Title will be used if empty. + publisher = 'Serghei Iakovlev' + [social] # Facebook Page Admin ID for Domain Insights facebook_admin = '' diff --git a/layouts/_default/list.json.json b/layouts/_default/list.json.json index 70ea7a4..f6b89cc 100644 --- a/layouts/_default/list.json.json +++ b/layouts/_default/list.json.json @@ -16,7 +16,7 @@ { "version": "https://jsonfeed.org/version/1.1", - "title": {{ (printf "%s" (partial "title.html" .)) | htmlUnescape | jsonify }}, + "title": {{ (partial "title.html" .) | htmlUnescape | jsonify }}, "home_page_url": {{ printf "%s?utm_source=json_feed" site.BaseURL | absURL | jsonify }}, {{ with .OutputFormats.Get "JSON" }}"feed_url": {{ .Permalink | absURL | jsonify }},{{ end }} {{ with site.Params.description}}"description": {{ site.Params.description | jsonify }},{{ end }} @@ -39,6 +39,6 @@ "date_published": {{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ if ne .Date .Lastmod }}, "date_modified" : {{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ end }} } - {{- end}} + {{- end }} ] } diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 39e3255..00a5f82 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -33,4 +33,5 @@ {{- /* Misc */}} {{ template "partials/templates/opengraph.html" . }} {{ template "partials/templates/twitter_cards.html" . }} + {{ template "partials/templates/schema_json.html" . }} diff --git a/layouts/partials/schema.org/article.html b/layouts/partials/schema.org/article.html new file mode 100644 index 0000000..ff1558b --- /dev/null +++ b/layouts/partials/schema.org/article.html @@ -0,0 +1,65 @@ +{{- /* Get schema type. */}} +{{ $schemaType := "Article" }} +{{ if or (eq .Type "post") (eq .Type "posts") }} + {{ $schemaType = "BlogPosting" }} +{{ end -}} + +{{- $publisher := site.Params.seo.publisher | default site.Title }} +{{ $logo := resources.Get (site.Params.assets.logo | default "/img/open-graph-logo.png") }} +{{ $logo = $logo.Resize "96x96" -}} + + + + diff --git a/layouts/partials/schema.org/website.html b/layouts/partials/schema.org/website.html new file mode 100644 index 0000000..ef6609e --- /dev/null +++ b/layouts/partials/schema.org/website.html @@ -0,0 +1,10 @@ + +{{- /* TODO: Add "potentialAction" with search. + For more see: https://developers.google.com/structured-data/slsb-overview */ -}} diff --git a/layouts/partials/templates/schema_json.html b/layouts/partials/templates/schema_json.html new file mode 100644 index 0000000..aaed1e2 --- /dev/null +++ b/layouts/partials/templates/schema_json.html @@ -0,0 +1,5 @@ +{{ if .IsHome }} + {{ partial "schema.org/website.html" . }} +{{ else if and .IsPage (ne .Params.private true) }} + {{ partial "schema.org/article.html" . }} +{{ end }} -- cgit v1.2.3