From 3762d3a24cf1b77e6d9bf1223ebdda173e53f498 Mon Sep 17 00:00:00 2001
From: John Feminella <jxf+github@jxf.me>
Date: Sun, 29 May 2022 18:46:30 +0000
Subject: [PATCH] Modularize <head> and baseof templates (#639)
---
layouts/_default/baseof.html | 193 +++++++--------------------
layouts/partials/home/avatar.html | 8 +
layouts/partials/head/custom-icons.html | 5
layouts/partials/home/social.html | 17 ++
layouts/partials/head/color-scheme.html | 11 +
layouts/partials/head/alternative-output-formats.html | 3
layouts/partials/home.html | 36 ----
layouts/partials/body/extensions.html | 5
layouts/partials/head/meta-tags.html | 15 ++
layouts/partials/home/author.html | 6
layouts/partials/head/extensions.html | 4
layouts/partials/head/custom-styles.html | 21 +++
layouts/partials/head.html | 23 +++
CONTRIBUTORS.md | 1
layouts/partials/head/theme-styles.html | 23 +++
layouts/partials/head/hugo-generator.html | 1
16 files changed, 200 insertions(+), 172 deletions(-)
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index badb8df..818a10a 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -108,4 +108,5 @@
- [Xiaoyang Luo](https://github.com/ccviolett/)
- [Michiel Appelman](https://appelman.se)
- [Mark Wood](https://digitalnotions.net)
+- [John Feminella](https://jxf.me)
- [zzsqwq](https://zzsqwq.cn)
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 6b2238d..d29d508 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,160 +1,71 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
+{{ partial "head.html" . }}
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="color-scheme" content="light dark">
+{{ $csClass := "colorscheme-light" }}
+{{ if eq .Site.Params.colorScheme "dark" }}
+{{ $csClass = "colorscheme-dark" }}
+{{ else if eq .Site.Params.colorScheme "auto" }}
+{{ $csClass = "colorscheme-auto" }}
+{{ end }}
- {{ if .Site.Params.csp }}
- {{ partial "csp.html" . }}
- {{ end }}
+<body class="preload-transitions {{ $csClass }}{{ if .Site.Params.rtl }} rtl{{ end }}">
+ {{ partial "float" . }}
+ <main class="wrapper">
+ {{ partial "header.html" . }}
- {{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
- <meta name="description" content="{{ .Description | default (.Summary | default .Site.Params.description ) }}">
- <meta name="keywords" content="{{ (delimit .Keywords ",") | default .Site.Params.keywords }}">
+ <div class="content">
+ {{ block "content" . }}{{ end }}
+ </div>
- {{ template "_internal/twitter_cards.html" . }}
- {{ template "_internal/opengraph.html" . }}
+ {{ partial "footer.html" . }}
+ </main>
- <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
-
- {{ if .Permalink }}
- <link rel="canonical" href="{{ .Permalink }}">
- {{ end }}
-
- <link rel="preload" href="/fonts/forkawesome-webfont.woff2?v=1.2.0" as="font" type="font/woff2" crossorigin>
-
- {{ if .Site.IsServer }}
- {{ $cssOpts := (dict "targetPath" "css/coder.css" "enableSourceMap" true ) }}
- {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
- {{ else }}
- {{ $cssOpts := (dict "targetPath" "css/coder.css" ) }}
- {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts | minify | fingerprint }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
- {{ end }}
-
- {{ if .Site.Params.rtl }}
- {{ if .Site.IsServer }}
- {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" "enableSourceMap" true ) }}
- {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
- {{ else }}
- {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" ) }}
- {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts | minify | fingerprint }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
- {{ end }}
- {{ end }}
-
- {{ if or (eq .Site.Params.colorScheme "auto") (eq .Site.Params.colorScheme "dark") }}
- {{ if .Site.IsServer }}
- {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" "enableSourceMap" true ) }}
- {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
- {{ else }}
- {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" ) }}
- {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts | minify | fingerprint }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
- {{ end }}
- {{ end }}
-
- {{ range .Site.Params.customCSS }}
- {{ if $.Site.IsServer }}
- {{ $styles := resources.Get . }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
- {{ else }}
- {{ $styles := resources.Get . | minify | fingerprint }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
- {{ end }}
- {{ end }}
-
- {{ range .Site.Params.customSCSS }}
- {{/* We don't change the targetPath to because it's transparent to users */}}
- {{ if $.Site.IsServer }}
- {{ $cssOpts := (dict "enableSourceMap" true ) }}
- {{ $styles := resources.Get . | toCSS $cssOpts }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
- {{ else }}
- {{ $styles := resources.Get . | toCSS | minify | fingerprint }}
- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
- {{ end }}
- {{ end }}
-
- <link rel="icon" type="image/png" href="{{ .Site.Params.favicon_32 | default "/images/favicon-32x32.png" | relURL }}" sizes="32x32">
- <link rel="icon" type="image/png" href="{{ .Site.Params.favicon_16 | default "/images/favicon-16x16.png" | relURL }}" sizes="16x16">
-
- <link rel="apple-touch-icon" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
- <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
-
- {{ range .AlternativeOutputFormats -}}
- {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
- {{ end -}}
-
- {{ hugo.Generator }}
- </head>
-
- {{ $csClass := "colorscheme-light" }}
- {{ if eq .Site.Params.colorScheme "dark" }}
- {{ $csClass = "colorscheme-dark" }}
- {{ else if eq .Site.Params.colorScheme "auto" }}
- {{ $csClass = "colorscheme-auto" }}
+ {{ if .Site.IsServer }}
+ {{ $script := resources.Get "js/coder.js" }}
+ <script src="{{ $script.RelPermalink }}"></script>
+ {{ else }}
+ {{ $script := resources.Get "js/coder.js" | minify | fingerprint }}
+ <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
{{ end }}
- <body class="preload-transitions {{ $csClass }}{{ if .Site.Params.rtl }} rtl{{ end }}">
- {{ partial "float" . }}
- <main class="wrapper">
- {{ partial "header.html" . }}
- <div class="content">
- {{ block "content" . }}{{ end }}
- </div>
+ {{ range .Site.Params.customJS }}
+ {{ if $.Site.IsServer }}
+ {{ $script := resources.Get . }}
+ <script src="{{ $script.RelPermalink }}"></script>
+ {{ else }}
+ {{ $script := resources.Get . | minify | fingerprint }}
+ <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
+ {{ end }}
+ {{ end }}
- {{ partial "footer.html" . }}
- </main>
+ {{ template "_internal/google_analytics.html" . }}
- {{ if .Site.IsServer }}
- {{ $script := resources.Get "js/coder.js" }}
- <script src="{{ $script.RelPermalink }}"></script>
- {{ else }}
- {{ $script := resources.Get "js/coder.js" | minify | fingerprint }}
- <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
- {{ end }}
+ {{ if and .Site.Params.fathomAnalytics .Site.Params.fathomAnalytics.siteID }}
+ {{- partial "analytics/fathom" . -}}
+ {{ end }}
- {{ range .Site.Params.customJS }}
- {{ if $.Site.IsServer }}
- {{ $script := resources.Get . }}
- <script src="{{ $script.RelPermalink }}"></script>
- {{ else }}
- {{ $script := resources.Get . | minify | fingerprint }}
- <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
- {{ end }}
- {{ end }}
+ {{ if and .Site.Params.plausibleAnalytics .Site.Params.plausibleAnalytics.domain }}
+ {{- partial "analytics/plausible" . -}}
+ {{ end }}
- {{ template "_internal/google_analytics.html" . }}
+ {{ if and .Site.Params.goatCounter .Site.Params.goatCounter.code }}
+ {{- partial "analytics/goatcounter" . -}}
+ {{ end }}
- {{ if and .Site.Params.fathomAnalytics .Site.Params.fathomAnalytics.siteID }}
- {{- partial "analytics/fathom" . -}}
- {{ end }}
+ {{ if and .Site.Params.cloudflare .Site.Params.cloudflare.token }}
+ {{- partial "analytics/cloudflare" . -}}
+ {{ end }}
- {{ if and .Site.Params.plausibleAnalytics .Site.Params.plausibleAnalytics.domain }}
- {{- partial "analytics/plausible" . -}}
- {{ end }}
+ {{ if and .Site.Params.matomo .Site.Params.matomo.serverURL }}
+ {{- partial "analytics/matomo" . -}}
+ {{ end }}
- {{ if and .Site.Params.goatCounter .Site.Params.goatCounter.code }}
- {{- partial "analytics/goatcounter" . -}}
- {{ end }}
+ {{ if and .Site.Params.googleTagManager .Site.Params.googleTagManager.id }}
+ {{- partial "analytics/googletagmanager" . -}}
+ {{ end }}
- {{ if and .Site.Params.cloudflare .Site.Params.cloudflare.token }}
- {{- partial "analytics/cloudflare" . -}}
- {{ end }}
-
- {{ if and .Site.Params.matomo .Site.Params.matomo.serverURL }}
- {{- partial "analytics/matomo" . -}}
- {{ end }}
-
- {{ if and .Site.Params.googleTagManager .Site.Params.googleTagManager.id }}
- {{- partial "analytics/googletagmanager" . -}}
- {{ end }}
- </body>
+ {{- partial "body/extensions" . -}}
+</body>
</html>
diff --git a/layouts/partials/body/extensions.html b/layouts/partials/body/extensions.html
new file mode 100644
index 0000000..6dddea7
--- /dev/null
+++ b/layouts/partials/body/extensions.html
@@ -0,0 +1,5 @@
+{{/*
+ This extension point occurs just before the end of each page's <body> tag.
+
+ You can add further theme extensions or customizations here if needed.
+*/}}
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..739c723
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,23 @@
+<head>
+ {{ partial "head/meta-tags.html" . }}
+
+ <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
+
+ {{ if .Permalink }}
+ <link rel="canonical" href="{{ .Permalink }}">
+ {{ end }}
+
+ {{ partialCached "head/theme-styles.html" . }}
+
+ {{ partialCached "head/color-scheme.html" . }}
+
+ {{ partialCached "head/custom-styles.html" . }}
+
+ {{ partialCached "head/custom-icons.html" . }}
+
+ {{ partialCached "head/alternative-output-formats.html" . }}
+
+ {{ partialCached "head/hugo-generator.html" . }}
+
+ {{ partial "head/extensions.html" . }}
+</head>
diff --git a/layouts/partials/head/alternative-output-formats.html b/layouts/partials/head/alternative-output-formats.html
new file mode 100644
index 0000000..8b1829a
--- /dev/null
+++ b/layouts/partials/head/alternative-output-formats.html
@@ -0,0 +1,3 @@
+{{ range .AlternativeOutputFormats -}}
+ {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
+{{ end -}}
diff --git a/layouts/partials/head/color-scheme.html b/layouts/partials/head/color-scheme.html
new file mode 100644
index 0000000..7a55e8e
--- /dev/null
+++ b/layouts/partials/head/color-scheme.html
@@ -0,0 +1,11 @@
+{{ if or (eq .Site.Params.colorScheme "auto") (eq .Site.Params.colorScheme "dark") }}
+ {{ if .Site.IsServer }}
+ {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" "enableSourceMap" true ) }}
+ {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
+ {{ else }}
+ {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" ) }}
+ {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts | minify | fingerprint }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
+ {{ end }}
+{{ end }}
diff --git a/layouts/partials/head/custom-icons.html b/layouts/partials/head/custom-icons.html
new file mode 100644
index 0000000..f7bfae5
--- /dev/null
+++ b/layouts/partials/head/custom-icons.html
@@ -0,0 +1,5 @@
+<link rel="icon" type="image/png" href="{{ .Site.Params.favicon_32 | default "/images/favicon-32x32.png" | relURL }}" sizes="32x32">
+<link rel="icon" type="image/png" href="{{ .Site.Params.favicon_16 | default "/images/favicon-16x16.png" | relURL }}" sizes="16x16">
+
+<link rel="apple-touch-icon" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
+<link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
diff --git a/layouts/partials/head/custom-styles.html b/layouts/partials/head/custom-styles.html
new file mode 100644
index 0000000..6496963
--- /dev/null
+++ b/layouts/partials/head/custom-styles.html
@@ -0,0 +1,21 @@
+ {{ range .Site.Params.customCSS }}
+ {{ if $.Site.IsServer }}
+ {{ $styles := resources.Get . }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
+ {{ else }}
+ {{ $styles := resources.Get . | minify | fingerprint }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
+ {{ end }}
+{{ end }}
+
+{{ range .Site.Params.customSCSS }}
+ {{/* We don't change the targetPath to because it's transparent to users */}}
+ {{ if $.Site.IsServer }}
+ {{ $cssOpts := (dict "enableSourceMap" true ) }}
+ {{ $styles := resources.Get . | toCSS $cssOpts }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
+ {{ else }}
+ {{ $styles := resources.Get . | toCSS | minify | fingerprint }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
+ {{ end }}
+{{ end }}
diff --git a/layouts/partials/head/extensions.html b/layouts/partials/head/extensions.html
new file mode 100644
index 0000000..a9eb885
--- /dev/null
+++ b/layouts/partials/head/extensions.html
@@ -0,0 +1,4 @@
+{{/*
+ You can add further theme extensions or customizations here if they should
+ appear in <head>.
+*/}}
diff --git a/layouts/partials/head/hugo-generator.html b/layouts/partials/head/hugo-generator.html
new file mode 100644
index 0000000..cee2034
--- /dev/null
+++ b/layouts/partials/head/hugo-generator.html
@@ -0,0 +1 @@
+{{ hugo.Generator }}
diff --git a/layouts/partials/head/meta-tags.html b/layouts/partials/head/meta-tags.html
new file mode 100644
index 0000000..aa929db
--- /dev/null
+++ b/layouts/partials/head/meta-tags.html
@@ -0,0 +1,15 @@
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="color-scheme" content="light dark">
+
+{{ if .Site.Params.csp }}
+{{ partial "csp.html" . }}
+{{ end }}
+
+{{ with .Site.Params.author }}
+<meta name="author" content="{{ . }}">{{ end }}
+<meta name="description" content="{{ .Description | default (.Summary | default .Site.Params.description ) }}">
+<meta name="keywords" content="{{ (delimit .Keywords " ,") | default .Site.Params.keywords }}">
+
+{{ template "_internal/twitter_cards.html" . }}
+{{ template "_internal/opengraph.html" . }}
diff --git a/layouts/partials/head/theme-styles.html b/layouts/partials/head/theme-styles.html
new file mode 100644
index 0000000..720b7b2
--- /dev/null
+++ b/layouts/partials/head/theme-styles.html
@@ -0,0 +1,23 @@
+<link rel="preload" href="/fonts/forkawesome-webfont.woff2?v=1.2.0" as="font" type="font/woff2" crossorigin>
+
+{{ if .Site.IsServer }}
+ {{ $cssOpts := (dict "targetPath" "css/coder.css" "enableSourceMap" true ) }}
+ {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
+{{ else }}
+ {{ $cssOpts := (dict "targetPath" "css/coder.css" ) }}
+ {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts | minify | fingerprint }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
+{{ end }}
+
+{{ if .Site.Params.rtl }}
+ {{ if .Site.IsServer }}
+ {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" "enableSourceMap" true ) }}
+ {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
+ {{ else }}
+ {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" ) }}
+ {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts | minify | fingerprint }}
+ <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
+ {{ end }}
+{{ end }}
diff --git a/layouts/partials/home.html b/layouts/partials/home.html
index ff640dd..85ca04e 100644
--- a/layouts/partials/home.html
+++ b/layouts/partials/home.html
@@ -1,35 +1,9 @@
<section class="container centered">
<div class="about">
- {{ if and (isset .Site.Params "avatarurl") (not (isset .Site.Params "gravatar")) }}
- {{ with .Site.Params.avatarURL }}
- <div class="avatar"><img src="{{ . | relURL }}" alt="avatar"></div>
- {{ end }}
- {{ end }}
- {{ with .Site.Params.gravatar }}
- <div class="avatar"><img src="https://www.gravatar.com/avatar/{{md5 .}}?s=240&d=mp" alt="gravatar"></div>
- {{ end }}
- <h1>{{ .Site.Params.author }}</h1>
- {{ if reflect.IsSlice .Site.Params.info }}
- <h2>{{ range .Site.Params.info }}{{.}}<br>{{ end}}</h2>
- {{ else }}
- <h2>{{ .Site.Params.info }}</h2>
- {{ end }}
- {{ with .Site.Params.social }}
- <ul>
- {{ range sort . "weight" }}
- {{ if .icon }}
- <li>
- <a href="{{ .url | safeURL }}" aria-label="{{ .name }}" {{ if .rel }}rel="{{ .rel }}"{{ end }} {{ if .target }}target="{{ .target }}"{{ end }} {{ if .type }}type="{{ .type }}"{{ end }}>
- <i class="{{ .icon }}" aria-hidden="true"></i>
- </a>
- </li>
- {{ else }}
- <li>
- <a href="{{ .url | safeURL }}" aria-label="{{ .name }}" {{ if .rel }}rel="{{ .rel }}"{{ end }} {{ if .target }}target="{{ .target }}"{{ end }}>{{ .name }}</a>
- </li>
- {{ end }}
- {{ end }}
- </ul>
- {{ end }}
+ {{ partialCached "home/avatar.html" . }}
+
+ {{ partialCached "home/author.html" . }}
+
+ {{ partialCached "home/social.html" . }}
</div>
</section>
diff --git a/layouts/partials/home/author.html b/layouts/partials/home/author.html
new file mode 100644
index 0000000..699447b
--- /dev/null
+++ b/layouts/partials/home/author.html
@@ -0,0 +1,6 @@
+<h1>{{ .Site.Params.author }}</h1>
+{{ if reflect.IsSlice .Site.Params.info }}
+<h2>{{ range .Site.Params.info }}{{.}}<br>{{ end}}</h2>
+{{ else }}
+<h2>{{ .Site.Params.info }}</h2>
+{{ end }}
diff --git a/layouts/partials/home/avatar.html b/layouts/partials/home/avatar.html
new file mode 100644
index 0000000..4928915
--- /dev/null
+++ b/layouts/partials/home/avatar.html
@@ -0,0 +1,8 @@
+{{ if and (isset .Site.Params "avatarurl") (not (isset .Site.Params "gravatar")) }}
+ {{ with .Site.Params.avatarURL }}
+ <div class="avatar"><img src="{{ . | relURL }}" alt="avatar"></div>
+ {{ end }}
+{{ end }}
+{{ with .Site.Params.gravatar }}
+ <div class="avatar"><img src="https://www.gravatar.com/avatar/{{md5 .}}?s=240&d=mp" alt="gravatar"></div>
+{{ end }}
diff --git a/layouts/partials/home/social.html b/layouts/partials/home/social.html
new file mode 100644
index 0000000..8d726c8
--- /dev/null
+++ b/layouts/partials/home/social.html
@@ -0,0 +1,17 @@
+{{ with .Site.Params.social }}
+<ul>
+ {{ range sort . "weight" }}
+ {{ if .icon }}
+ <li>
+ <a href="{{ .url | safeURL }}" aria-label="{{ .name }}" {{ if .rel }}rel="{{ .rel }}"{{ end }} {{ if .target }}target="{{ .target }}"{{ end }} {{ if .type }}type="{{ .type }}"{{ end }}>
+ <i class="{{ .icon }}" aria-hidden="true"></i>
+ </a>
+ </li>
+ {{ else }}
+ <li>
+ <a href="{{ .url | safeURL }}" aria-label="{{ .name }}" {{ if .rel }}rel="{{ .rel }}"{{ end }} {{ if .target }}target="{{ .target }}"{{ end }}>{{ .name }}</a>
+ </li>
+ {{ end }}
+ {{ end }}
+</ul>
+{{ end }}
\ No newline at end of file
--
Gitblit v1.10.0