diff options
author | Alexandre Vicenzi <vicenzi.alexandre@gmail.com> | 2020-02-10 23:30:40 +0300 |
---|---|---|
committer | Alexandre Vicenzi <vicenzi.alexandre@gmail.com> | 2020-02-10 23:30:40 +0300 |
commit | b8c709e73559476677dfcd1c5ab4d33856d7c751 (patch) | |
tree | 9fd8d05b9205991a130a3da7cfa371f7b37e2dca | |
parent | a48ee22a03a2df246f4cac8d20919c3f5ab6f97c (diff) |
SEO
-rw-r--r-- | README.md | 17 | ||||
-rw-r--r-- | layouts/_default/baseof.html | 29 | ||||
-rw-r--r-- | layouts/partials/seo.html | 81 |
3 files changed, 118 insertions, 9 deletions
@@ -4,6 +4,21 @@ Lanyon is a minimalist two-column [hugo](https://gohugo.io) theme based on [Hyde ![Screenshot](https://raw.githubusercontent.com/alexandrevicenzi/lanyon/master/images/tn.png) +## Features + +- Mobile First +- Responsive +- Semantic +- SEO Best Practices +- Open Graph +- Rich Snippets (JSON-LD) +- Customizable + +## Integrations + +- [Disqus](https://disqus.com/) +- [Google Analytics](https://www.google.com/analytics/web/) + ## Installation To install Lanyon as your default theme, first install this repository in the `themes/` directory: @@ -22,7 +37,6 @@ at the top of the file. ```toml baseURL = "https://example.com" title = "Lanyon" -author = "Author Name" languageCode = "en" enableInlineShortcodes = true @@ -30,6 +44,7 @@ summarylength = 10 enableEmoji = true [params] +author = "Author Name" description = "My Blog" ## Set one of: diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 658c98e..194b19a 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -2,10 +2,8 @@ <html xmlns="http://www.w3.org/1999/xhtml"{{with .Site.LanguageCode}} xml:lang="{{.}}" lang="{{.}}"{{end}}> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> - - {{ hugo.Generator }} - <meta name="viewport" content="width=device-width, initial-scale=1.0"> + {{ hugo.Generator }} {{ if .IsHome -}} <title>{{ .Site.Title }}</title> @@ -15,9 +13,20 @@ <meta name="description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}" /> - <link type="text/css" rel="stylesheet" href="{{ .Site.BaseURL }}css/print.css" media="print"> - <link type="text/css" rel="stylesheet" href="{{ .Site.BaseURL }}css/poole.css"> - <link type="text/css" rel="stylesheet" href="{{ .Site.BaseURL }}css/hyde.css"> + {{ partial "seo.html" . }} + + <link type="text/css" + rel="stylesheet" + href="{{ .Site.BaseURL }}css/print.css" + media="print"> + + <link type="text/css" + rel="stylesheet" + href="{{ .Site.BaseURL }}css/poole.css"> + + <link type="text/css" + rel="stylesheet" + href="{{ .Site.BaseURL }}css/hyde.css"> {{ partial "theme-color.html" . }} @@ -25,14 +34,18 @@ <link type="text/css" rel="stylesheet" href="{{ $.Site.BaseURL }}{{ . }}"> {{- end}} - <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700&display=swap" rel="stylesheet"> + <link rel="stylesheet" + href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700&display=swap"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" /> - <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png"> + <link rel="apple-touch-icon-precomposed" + sizes="144x144" + href="/apple-touch-icon-144-precomposed.png"> + <link rel="shortcut icon" href="/favicon.png"> <!-- RSS --> diff --git a/layouts/partials/seo.html b/layouts/partials/seo.html new file mode 100644 index 0000000..46b0c29 --- /dev/null +++ b/layouts/partials/seo.html @@ -0,0 +1,81 @@ + + <meta property="og:locale" content="{{ .Site.LanguageCode }}"/> + + {{ with .Site.Params.gravatar }} + <meta property="og:image" content="https://www.gravatar.com/avatar/{{md5 .}}?s=400&d=mp"> + {{- else -}} + {{ with .Site.Params.profilePicture }} + <meta property="og:image" content="{{ $.Site.BaseURL }}{{ . }}"> + {{- end -}} + {{ end }} + + {{ if eq .Type "post" }} + <meta property="og:site_name" content="{{ .Site.Title }}"/> + <meta property="og:title" content="{{ .Title }}"/> + <meta property="og:description" content="{{ if .Description }}{{ .Description }}{{ else }}{{ .Summary }}{{ end }}"/> + <meta property="og:url" content="{{ .Permalink }}"/> + <meta property="og:type" content="article"/> + <meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05Z0700" }}"/> + <meta property="article:modified_time" content="{{ .Date.Format "2006-01-02T15:04:05Z0700" }}"/> + <meta property="article:author" content="{{ .Site.Params.author }}"> + <!-- <meta property="article:section" content="category"/> --> + <!-- <meta property="article:tag" content="tag"/> --> + {{ else }} + <meta property="og:type" content="blog"/> + <meta property="og:site_name" content="{{ .Site.Title }}"/> + + {{- if .IsHome }} + <meta property="og:title" content="{{ .Site.Title }}"/> + <meta property="og:url" content="{{ .Site.BaseURL }}"/> + <meta property="og:description" content="{{ .Site.Params.description }}"/> + {{- else -}} + <meta property="og:title" content="{{ .Title }}"/> + <meta property="og:url" content="{{ .Permalink }}"/> + <meta property="og:description" content="{{ if .Description }}{{ .Description }}{{ else }}{{ .Summary }}{{ end }}"/> + {{- end -}} + + {{ end }} + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Blog", + "name": {{ .Site.Title }}, + "url" : {{ .Site.BaseURL }}, + {{- with .Site.Params.gravatar }} + "image": "https://www.gravatar.com/avatar/{{md5 .}}?s=400&d=mp", + {{- else -}} + {{ with .Site.Params.profilePicture }} + "image": {{ . | printf "%s%s" $.Site.BaseURL }}, + {{- end -}} + {{- end }} + "description": "{{ .Site.Params.description }}" + } + </script> + + {{ if eq .Type "post" }} + <script type="application/ld+json"> + { + "@context": "http://schema.org", + "@type": "BlogPosting", + "name": "{{ .Title }}", + "headline": "{{ .Title }}", + "datePublished": "{{ .Date.Format "2006-01-02T15:04:05Z0700" }}", + "dateModified": "{{ .Date.Format "2006-01-02T15:04:05Z0700" }}", + "author": { + "@type": "Person", + "name": "{{ .Site.Params.author }}", + "url": {{ .Site.BaseURL }} + }, + {{- with .Site.Params.gravatar }} + "image": "https://www.gravatar.com/avatar/{{md5 .}}?s=400&d=mp", + {{- else -}} + {{ with .Site.Params.profilePicture }} + "image": {{ . | printf "%s%s" $.Site.BaseURL }}, + {{- end -}} + {{- end }} + "url": {{ .Permalink }}, + "description": "{{ if .Description }}{{ .Description }}{{ else }}{{ .Summary }}{{ end }}" + } + </script> + {{ end }} |