diff options
author | gabrielgio <gabriel.giovanini@pm.me> | 2020-07-11 22:35:14 +0200 |
---|---|---|
committer | gabrielgio <gabriel.giovanini@pm.me> | 2020-07-11 22:35:14 +0200 |
commit | 60fe49ea3af38d4a7d5e8de1cdb72887b167b22d (patch) | |
tree | bb05011c311b74c7c7676b7b689bbbc2c8546c9a /themes/ananke/layouts | |
parent | 60b4299cb90a5b3f6e74ffd0ee0f51a0008fb3cf (diff) | |
download | gabrielgio.me-60fe49ea3af38d4a7d5e8de1cdb72887b167b22d.tar.gz gabrielgio.me-60fe49ea3af38d4a7d5e8de1cdb72887b167b22d.tar.bz2 gabrielgio.me-60fe49ea3af38d4a7d5e8de1cdb72887b167b22d.zip |
Moving from jekyll to hugo
Diffstat (limited to 'themes/ananke/layouts')
44 files changed, 746 insertions, 0 deletions
diff --git a/themes/ananke/layouts/404.html b/themes/ananke/layouts/404.html new file mode 100755 index 0000000..4da44e2 --- /dev/null +++ b/themes/ananke/layouts/404.html @@ -0,0 +1,8 @@ +{{ define "header" }}{{ partial "page-header.html" . }}{{ end }} +{{ define "main" }} + <article class="center cf pv5 measure-wide-l"> + <h1> + This is not the page you were looking for + </h1> + </article> +{{ end }} diff --git a/themes/ananke/layouts/_default/baseof.html b/themes/ananke/layouts/_default/baseof.html new file mode 100755 index 0000000..ff53aa9 --- /dev/null +++ b/themes/ananke/layouts/_default/baseof.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="{{ $.Site.LanguageCode | default "en" }}"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + {{/* NOTE: the Site's title, and if there is a page title, that is set too */}} + <title>{{ block "title" . }}{{ with .Params.Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title> + <meta name="viewport" content="width=device-width,minimum-scale=1"> + {{ hugo.Generator }} + {{/* NOTE: For Production make sure you add `HUGO_ENV="production"` before your build command */}} + {{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} + <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW"> + {{ else }} + <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> + {{ end }} + + {{ $stylesheet := .Site.Data.webpack_assets.app }} + {{ with $stylesheet.css }} + <link href="{{ relURL (printf "%s%s" "dist/" .) }}" rel="stylesheet"> + {{ end }} + + {{ range .Site.Params.custom_css }} + <link rel="stylesheet" href="{{ relURL (.) }}"> + {{ end }} + + {{ block "favicon" . }} + {{ partialCached "site-favicon.html" . }} + {{ end }} + + {{ if .OutputFormats.Get "RSS" }} + {{ with .OutputFormats.Get "RSS" }} + <link href="{{ .RelPermalink }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" /> + <link href="{{ .RelPermalink }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" /> + {{ end }} + {{ end }} + + {{/* NOTE: These Hugo Internal Templates can be found starting at https://github.com/spf13/hugo/blob/master/tpl/tplimpl/template_embedded.go#L158 */}} + {{- template "_internal/opengraph.html" . -}} + {{- template "_internal/schema.html" . -}} + {{- template "_internal/twitter_cards.html" . -}} + + {{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} + {{ template "_internal/google_analytics_async.html" . }} + {{ end }} + {{ block "head" . }}{{ partial "head-additions.html" }}{{ end }} + </head> + + <body class="ma0 {{ $.Param "body_classes" | default "avenir bg-near-white"}}{{ with getenv "HUGO_ENV" }} {{ . }}{{ end }}"> + + {{ block "header" . }}{{ partial "site-header.html" .}}{{ end }} + <main class="pb7" role="main"> + {{ block "main" . }}{{ end }} + </main> + {{ block "footer" . }}{{ partialCached "site-footer.html" . }}{{ end }} + {{ block "scripts" . }}{{ partialCached "site-scripts.html" . }}{{ end }} + </body> +</html> diff --git a/themes/ananke/layouts/_default/list.html b/themes/ananke/layouts/_default/list.html new file mode 100755 index 0000000..130a357 --- /dev/null +++ b/themes/ananke/layouts/_default/list.html @@ -0,0 +1,15 @@ +{{ define "main" }} + <article class="pa3 pa4-ns nested-copy-line-height nested-img"> + <section class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray"> + {{- .Content -}} + </section> + <section class="flex-ns flex-wrap justify-around mt5"> + {{ range .Paginator.Pages }} + <div class="relative w-100 w-30-l mb4 bg-white"> + {{- partial "summary.html" . -}} + </div> + {{ end }} + </section> + {{- template "_internal/pagination.html" . -}} + </article> +{{ end }} diff --git a/themes/ananke/layouts/_default/single.html b/themes/ananke/layouts/_default/single.html new file mode 100755 index 0000000..e63f129 --- /dev/null +++ b/themes/ananke/layouts/_default/single.html @@ -0,0 +1,66 @@ +{{ define "header" }} + {{/* We can override any block in the baseof file be defining it in the template */}} + {{ partial "page-header.html" . }} +{{ end }} + +{{ define "main" }} + {{ $section := .Site.GetPage "section" .Section }} + <article class="flex-l flex-wrap justify-between mw8 center ph3"> + <header class="mt4 w-100"> + <aside class="instapaper_ignoref b helvetica tracked"> + {{/* + CurrentSection allows us to use the section title instead of inferring from the folder. + https://gohugo.io/variables/page/#section-variables-and-methods + */}} + {{with .CurrentSection.Title }}{{. | upper }}{{end}} + </aside> + {{ partial "social-share.html" . }} + <h1 class="f1 athelas mt3 mb1"> + {{- .Title -}} + </h1> + {{ with .Params.author }} + <p class="tracked"> + By <strong> + {{ if reflect.IsSlice . }} + {{ delimit . ", " | markdownify }} + {{else}} + {{ . | markdownify }} + {{ end }} + </strong> + </p> + {{ end }} + {{/* Hugo uses Go's date formatting is set by example. Here are two formats */}} + <time class="f6 mv4 dib tracked" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}"> + {{- .Date.Format "January 2, 2006" -}} + </time> + + {{/* + Show "reading time" and "word count" but only if one of the following are true: + 1) A global config `params` value is set `show_reading_time = true` + 2) A section front matter value is set `show_reading_time = true` + 3) A page front matter value is set `show_reading_time = true` + */}} + {{ if (or (eq (.Param "show_reading_time") true) (eq $section.Params.show_reading_time true) )}} + <span class="f6 mv4 dib tracked"> - {{ .ReadingTime}} minutes read</span> + <span class="f6 mv4 dib tracked"> - {{ .WordCount}} words</span> + {{ end }} + </header> + <div class="nested-copy-line-height lh-copy {{ $.Param "post_content_classes" | default "serif"}} f4 nested-links nested-img mid-gray pr4-l w-two-thirds-l"> + {{- .Content -}} + {{- partial "tags.html" . -}} + <div class="mt6 instapaper_ignoref"> + {{ if .Site.DisqusShortname }} + {{ template "_internal/disqus.html" . }} + {{ end }} + {{ if .Site.Params.commentoEnable }} + {{- partial "commento.html" . -}} + {{ end }} + </div> + </div> + + <aside class="w-30-l mt6-l"> + {{- partial "menu-contextual.html" . -}} + </aside> + + </article> +{{ end }} diff --git a/themes/ananke/layouts/_default/taxonomy.html b/themes/ananke/layouts/_default/taxonomy.html new file mode 100644 index 0000000..1dc0ff2 --- /dev/null +++ b/themes/ananke/layouts/_default/taxonomy.html @@ -0,0 +1,16 @@ +{{ define "main" }} + <article class="cf pa3 pa4-m pa4-l"> + <div class="measure-wide-l center f4 lh-copy nested-copy-line-height nested-links nested-img mid-gray"> + <p>{{i18n "taxonomyPageList" .}}</p> + </div> + </article> + <div class="mw8 center"> + <section class="flex-ns flex-wrap justify-around mt5"> + {{ range .Pages }} + <div class="relative w-100 mb4 bg-white"> + {{ partial "summary.html" . }} + </div> + {{ end }} + </section> + </div> +{{ end }} diff --git a/themes/ananke/layouts/_default/terms.html b/themes/ananke/layouts/_default/terms.html new file mode 100644 index 0000000..87275c7 --- /dev/null +++ b/themes/ananke/layouts/_default/terms.html @@ -0,0 +1,22 @@ +{{ define "main" }} + {{ $data := .Data }} + <article class="cf pa3 pa4-m pa4-l"> + <div class="measure-wide-l center f4 lh-copy nested-copy-line-height nested-links nested-img mid-gray"> + {{ .Content }} + </div> + </article> + <div class="mw8 center"> + <section class="ph4"> + {{ range $key, $value := .Data.Terms }} + <h2 class="f1"> + <a href="{{ "/" | relLangURL }}{{ $.Data.Plural | urlize }}/{{ $key | urlize }}" class="link blue hover-black"> + {{ $.Data.Singular | humanize }}: {{ $key }} + </a> + </h2> + {{ range $value.Pages }} + {{ partial "summary.html" . }} + {{ end }} + {{ end }} + </section> + </div> +{{ end }} diff --git a/themes/ananke/layouts/index.html b/themes/ananke/layouts/index.html new file mode 100755 index 0000000..148525e --- /dev/null +++ b/themes/ananke/layouts/index.html @@ -0,0 +1,55 @@ +{{ define "main" }} + <article class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray"> + {{ .Content }} + </article> + {{/* Define a section to pull recent posts from. For Hugo 0.20 this will default to the section with the most number of pages. */}} + {{ $mainSections := .Site.Params.mainSections | default (slice "post") }} + {{/* Create a variable with that section to use in multiple places. */}} + {{ $section := where .Site.RegularPages "Section" "in" $mainSections }} + {{/* Check to see if the section is defined for ranging through it */}} + {{ $section_count := len $section }} + {{ if ge $section_count 1 }} + {{/* Derive the section name */}} + {{ $section_name := index (.Site.Params.mainSections) 0 }} + + <div class="pa3 pa4-ns w-100 w-70-ns center"> + {{/* Use $section_name to get the section title. Use "with" to only show it if it exists */}} + {{ with .Site.GetPage "section" $section_name }} + <h1 class="flex-none"> + {{ $.Param "recent_copy" | default (i18n "recentTitle" .) }} + </h1> + {{ end }} + + {{ $n_posts := $.Param "recent_posts_number" | default 3 }} + + <section class="w-100 mw8"> + {{/* Range through the first $n_posts items of the section */}} + {{ range (first $n_posts $section) }} + <div class="relative w-100 mb4"> + {{ partial "summary-with-image.html" . }} + </div> + {{ end }} + </section> + + {{ if ge $section_count (add $n_posts 1) }} + <section class="w-100"> + <h1 class="f3">{{ i18n "more" }}</h1> + {{/* Now, range through the next four after the initial $n_posts items. Nest the requirements, "after" then "first" on the outside */}} + {{ range (first 4 (after $n_posts $section)) }} + <h2 class="f5 fw4 mb4 dib mr3"> + <a href="{{ .Permalink }}" class="link black dim"> + {{ .Title }} + </a> + </h2> + {{ end }} + + {{/* As above, Use $section_name to get the section title, and URL. Use "with" to only show it if it exists */}} + {{ with .Site.GetPage "section" $section_name }} + <a href="{{ .Permalink }}" class="link db f6 pa2 br3 bg-mid-gray white dim w4 tc">{{ i18n "allTitle" . }}</a> + {{ end }} + </section> + {{ end }} + + </div> + {{ end }} +{{ end }} diff --git a/themes/ananke/layouts/page/single.html b/themes/ananke/layouts/page/single.html new file mode 100644 index 0000000..ac9d199 --- /dev/null +++ b/themes/ananke/layouts/page/single.html @@ -0,0 +1,18 @@ +{{ define "header" }}{{ partial "page-header.html" . }}{{ end }} +{{ define "main" }} + <div class="flex-l mt2 mw8 center"> + <article class="center cf pv5 ph3 ph4-ns mw7"> + <header> + <p class="f6 b helvetica tracked"> + {{ humanize .Section | upper }} + </p> + <h1 class="f1"> + {{ .Title }} + </h1> + </header> + <div class="nested-copy-line-height lh-copy f4 nested-links nested-img mid-gray"> + {{ .Content }} + </div> + </article> + </div> +{{ end }} diff --git a/themes/ananke/layouts/partials/commento.html b/themes/ananke/layouts/partials/commento.html new file mode 100644 index 0000000..54e7589 --- /dev/null +++ b/themes/ananke/layouts/partials/commento.html @@ -0,0 +1,2 @@ +<div id="commento"></div> +<script defer src="https://cdn.commento.io/js/commento.js"></script> diff --git a/themes/ananke/layouts/partials/func/GetFeaturedImage.html b/themes/ananke/layouts/partials/func/GetFeaturedImage.html new file mode 100644 index 0000000..3c0d5de --- /dev/null +++ b/themes/ananke/layouts/partials/func/GetFeaturedImage.html @@ -0,0 +1,35 @@ +{{/* + GetFeaturedImage + + This partial gets the url for featured image for a given page. + + If a featured_image was set in the page's front matter, then that will be used. + + If not set, this will search page resources to find an image that contains the word + "cover", and if found, returns the path to that resource. + + If no featured_image was set, and there's no "cover" image in page resources, then + this partial returns an empty string (which evaluates to false). + + @return Permalink to featured image, or an empty string if not found. + +*/}} + +{{/* Declare a new string variable, $linkToCover */}} +{{ $linkToCover := "" }} + +{{/* Use the value from front matter if present */}} +{{ if .Params.featured_image }} + {{ $linkToCover = .Params.featured_image }} + +{{/* Find the first image with 'cover' in the name in this page bundle. */}} +{{ else }} + {{ $img := (.Resources.ByType "image").GetMatch "*cover*" }} + {{ with $img }} + {{ $linkToCover = .Permalink }} + {{ end }} +{{ end }} + +{{/* return either a permalink, or an empty string. Note that partials can only have a single +return statement, so this needs to be at the end of the partial (and not in the if block) */}} +{{ return $linkToCover }}
\ No newline at end of file diff --git a/themes/ananke/layouts/partials/head-additions.html b/themes/ananke/layouts/partials/head-additions.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/ananke/layouts/partials/head-additions.html diff --git a/themes/ananke/layouts/partials/i18nlist.html b/themes/ananke/layouts/partials/i18nlist.html new file mode 100644 index 0000000..ba7c1ea --- /dev/null +++ b/themes/ananke/layouts/partials/i18nlist.html @@ -0,0 +1,10 @@ +{{ if .IsTranslated }} +<h4>{{ i18n "translations" }}</h4> +<ul class="pl0 mr3"> + {{ range .Translations }} + <li class="list f5 f4-ns fw4 dib pr3"> + <a class="hover-white no-underline white-90" href="{{ .Permalink }}">{{ .Lang }}</a> + </li> + {{ end}} +</ul> +{{ end }} diff --git a/themes/ananke/layouts/partials/menu-contextual.html b/themes/ananke/layouts/partials/menu-contextual.html new file mode 100644 index 0000000..ae50dc6 --- /dev/null +++ b/themes/ananke/layouts/partials/menu-contextual.html @@ -0,0 +1,33 @@ +{{/* + Use Hugo's native Table of contents feature. You must set `toc: true` in your parameters for this to show. + https://gohugo.io/content-management/toc/ +*/}} + +{{- if .Params.toc -}} + <div class="bg-light-gray pa3 nested-list-reset nested-copy-line-height nested-links"> + <p class="f5 b mb3">{{ i18n "whatsInThis" . }}</p> + {{ .TableOfContents }} + </div> +{{- end -}} + +{{/* + Use Hugo's native related content feature to pull in content that may have similar parameters, like tags. etc. + https://gohugo.io/content-management/related/ +*/}} + +{{ $related := .Site.RegularPages.Related . | first 15 }} + +{{ with $related }} + <div class="bg-light-gray pa3 nested-list-reset nested-copy-line-height nested-links"> + <p class="f5 b mb3">{{ i18n "related" }}</p> + <ul class="pa0 list"> + {{ range . }} + <li class="mb2"> + <a href="{{ .RelPermalink }}"> + {{- .Title -}} + </a> + </li> + {{ end }} + </ul> +</div> +{{ end }} diff --git a/themes/ananke/layouts/partials/new-window-icon.html b/themes/ananke/layouts/partials/new-window-icon.html new file mode 100644 index 0000000..8f422ca --- /dev/null +++ b/themes/ananke/layouts/partials/new-window-icon.html @@ -0,0 +1,2 @@ +{{ $new_window_icon_size := "8px" }} +<span class="new-window">{{ partial "svg/new-window.svg" (dict "size" $new_window_icon_size) }}</span>
\ No newline at end of file diff --git a/themes/ananke/layouts/partials/page-header.html b/themes/ananke/layouts/partials/page-header.html new file mode 100644 index 0000000..9f2ebd5 --- /dev/null +++ b/themes/ananke/layouts/partials/page-header.html @@ -0,0 +1,26 @@ +{{ $featured_image := partial "func/GetFeaturedImage.html" . }} +{{ if $featured_image }} + {{/* Trimming the slash and adding absURL make sure the image works no matter where our site lives */}} + {{ $featured_image := (trim $featured_image "/") | absURL }} + <header class="cover bg-top" style="background-image: url('{{ $featured_image }}');"> + <div class="pb3-m pb6-l bg-black-60"> + {{ partial "site-navigation.html" . }} + <div class="tc-l pv6 ph3 ph4-ns"> + {{ if not .Params.omit_header_text }} + <h1 class="f2 f1-l fw2 white-90 mb0 lh-title">{{ .Title | default .Site.Title }}</h1> + {{ with .Params.description }} + <h2 class="fw1 f5 f3-l white-80 measure-wide-l center lh-copy mt3 mb4"> + {{ . }} + </h2> + {{ end }} + {{ end }} + </div> + </div> + </header> +{{ else }} + <header> + <div class="{{ .Site.Params.background_color_class | default "bg-black" }}"> + {{ partial "site-navigation.html" . }} + </div> + </header> +{{ end }} diff --git a/themes/ananke/layouts/partials/site-favicon.html b/themes/ananke/layouts/partials/site-favicon.html new file mode 100644 index 0000000..b7bb9c1 --- /dev/null +++ b/themes/ananke/layouts/partials/site-favicon.html @@ -0,0 +1,3 @@ +{{ if .Site.Params.favicon }} +<link rel="shortcut icon" href="{{ relURL ($.Site.Params.favicon) }}" type="image/x-icon" /> +{{ end }} diff --git a/themes/ananke/layouts/partials/site-footer.html b/themes/ananke/layouts/partials/site-footer.html new file mode 100755 index 0000000..41c0629 --- /dev/null +++ b/themes/ananke/layouts/partials/site-footer.html @@ -0,0 +1,8 @@ +<footer class="{{ .Site.Params.background_color_class | default "bg-black" }} bottom-0 w-100 pa3" role="contentinfo"> + <div class="flex justify-between"> + <a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="{{ .Site.BaseURL }}" > + © {{ with .Site.Copyright | default .Site.Title }} {{ . | safeHTML }} {{ now.Format "2006"}} {{ end }} + </a> + <div>{{ partial "social-follow.html" . }}</div> + </div> +</footer> diff --git a/themes/ananke/layouts/partials/site-header.html b/themes/ananke/layouts/partials/site-header.html new file mode 100755 index 0000000..10a682f --- /dev/null +++ b/themes/ananke/layouts/partials/site-header.html @@ -0,0 +1,36 @@ +{{ $featured_image := .Param "featured_image"}} +{{ if $featured_image }} + {{/* Trimming the slash and adding absURL make sure the image works no matter where our site lives */}} + {{ $featured_image := (trim $featured_image "/") | absURL }} + <header class="cover bg-top" style="background-image: url('{{ $featured_image }}');"> + <div class="{{ .Site.Params.cover_dimming_class | default "bg-black-60" }}"> + {{ partial "site-navigation.html" .}} + <div class="tc-l pv4 pv6-l ph3 ph4-ns"> + <h1 class="f2 f-subheadline-l fw2 white-90 mb0 lh-title"> + {{ .Title | default .Site.Title }} + </h1> + {{ with .Params.description }} + <h2 class="fw1 f5 f3-l white-80 measure-wide-l center mt3"> + {{ . }} + </h2> + {{ end }} + </div> + </div> + </header> +{{ else }} + <header> + <div class="pb3-m pb6-l {{ .Site.Params.background_color_class | default "bg-black" }}"> + {{ partial "site-navigation.html" . }} + <div class="tc-l pv3 ph3 ph4-ns"> + <h1 class="f2 f-subheadline-l fw2 light-silver mb0 lh-title"> + {{ .Title | default .Site.Title }} + </h1> + {{ with .Params.description }} + <h2 class="fw1 f5 f3-l white-80 measure-wide-l center lh-copy mt3 mb4"> + {{ . }} + </h2> + {{ end }} + </div> + </div> + </header> +{{ end }} diff --git a/themes/ananke/layouts/partials/site-navigation.html b/themes/ananke/layouts/partials/site-navigation.html new file mode 100644 index 0000000..d73c66d --- /dev/null +++ b/themes/ananke/layouts/partials/site-navigation.html @@ -0,0 +1,26 @@ +<nav class="pv3 ph3 ph4-ns" role="navigation"> + <div class="flex-l justify-between items-center center"> + <a href="{{ .Site.Home.RelPermalink }}" class="f3 fw2 hover-white no-underline white-90 dib"> + {{ with .Site.Params.site_logo }} + <img src="{{ . }}" class="w100 mw5-ns" alt="{{ $.Site.Title }}" /> + {{ else }} + {{ .Site.Title }} + {{ end }} + </a> + <div class="flex-l items-center"> + {{ partial "i18nlist.html" . }} + {{ if .Site.Menus.main }} + <ul class="pl0 mr3"> + {{ range .Site.Menus.main }} + <li class="list f5 f4-ns fw4 dib pr3"> + <a class="hover-white no-underline white-90" href="{{ .URL }}" title="{{ .Name }} page"> + {{ .Name }} + </a> + </li> + {{ end }} + </ul> + {{ end }} + {{ partialCached "social-follow.html" . }} + </div> + </div> +</nav> diff --git a/themes/ananke/layouts/partials/site-scripts.html b/themes/ananke/layouts/partials/site-scripts.html new file mode 100644 index 0000000..bd6c7f5 --- /dev/null +++ b/themes/ananke/layouts/partials/site-scripts.html @@ -0,0 +1,4 @@ +{{ $script := .Site.Data.webpack_assets.app }} +{{ with $script.js }} + <script src="{{ relURL (printf "%s%s" "dist/" .) }}"></script> +{{ end }} diff --git a/themes/ananke/layouts/partials/social-follow.html b/themes/ananke/layouts/partials/social-follow.html new file mode 100644 index 0000000..0755ce2 --- /dev/null +++ b/themes/ananke/layouts/partials/social-follow.html @@ -0,0 +1,80 @@ +<!-- TODO: Add follow intents where available TODO: Revisit color and hover color --> +{{ $icon_size := "32px" }} +{{ with .Param "stackoverflow" }} +<a href="{{ . }}" target="_blank" class="link-transition stackoverflow link dib z-999 pt3 pt0-l mr1" title="Stack Overflow link" rel="noopener" aria-label="follow on Stack Overflow——Opens in a new window"> + {{ partial "svg/stackoverflow.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "facebook" }} +<a href="{{ . }}" target="_blank" class="link-transition facebook link dib z-999 pt3 pt0-l mr1" title="Facebook link" rel="noopener" aria-label="follow on Facebook——Opens in a new window"> + {{ partial "svg/facebook.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "twitter" }} +<a href="{{ . }}" target="_blank" class="link-transition twitter link dib z-999 pt3 pt0-l mr1" title="Twitter link" rel="noopener" aria-label="follow on Twitter——Opens in a new window"> + {{ partial "svg/twitter.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "instagram" }} +<a href="{{ . }}" target="_blank" class="link-transition instagram link dib z-999 pt3 pt0-l mr1" title="Instagram link" rel="noopener" aria-label="follow on Instagram——Opens in a new window"> + {{ partial "svg/instagram.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "youtube" }} +<a href="{{ . }}" target="_blank" class="link-transition youtube link dib z-999 pt3 pt0-l mr1" title="Youtube link" rel="noopener" aria-label="follow on Youtube——Opens in a new window"> + {{ partial "svg/youtube.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "linkedin" }} +<a href="{{ . }}" target="_blank" class="link-transition linkedin link dib z-999 pt3 pt0-l mr1" title="LinkedIn link" rel="noopener" aria-label="follow on LinkedIn——Opens in a new window"> + {{ partial "svg/linkedin.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "github" }} +<a href="{{ . }}" target="_blank" class="link-transition github link dib z-999 pt3 pt0-l mr1" title="Github link" rel="noopener" aria-label="follow on Github——Opens in a new window"> + {{ partial "svg/github.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "gitlab" }} +<a href="{{ . }}" target="_blank" class="link-transition gitlab link dib z-999 pt3 pt0-l mr1" title="Gitlab link" rel="noopener" aria-label="follow on Gitlab——Opens in a new window"> + {{ partial "svg/gitlab.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "keybase" }} +<a href="{{ . }}" target="_blank" class="link-transition keybase link dib z-999 pt3 pt0-l mr1" title="Keybase link" rel="noopener" aria-label="follow on Keybase——Opens in a new window"> + {{ partial "svg/keybase.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "medium" }} +<a href="{{ . }}" target="_blank" class="link-transition medium link dib z-999 pt3 pt0-l mr1" title="Medium link" rel="noopener" aria-label="follow on Medium——Opens in a new window"> + {{ partial "svg/medium.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "mastodon" }} +<a href="{{ . }}" target="_blank" class="link-transition mastodon link dib z-999 pt3 pt0-l mr1" title="Mastodon link" rel="noopener" aria-label="follow on Mastodon——Opens in a new window"> + {{ partial "svg/mastodon.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "slack" }} +<a href="{{ . }}" target="_blank" class="link-transition slack link dib z-999 pt3 pt0-l mr1" title="Slack link" rel="noopener" aria-label="follow on Slack——Opens in a new window"> + {{ partial "svg/slack.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} +{{ with .Param "rss" }} +<a href="{{ . }}" target="_blank" class="link-transition rss link dib z-999 pt3 pt0-l mr1" title="RSS link" rel="noopener" aria-label="RSS——Opens in a new window"> + {{ partial "svg/rss.svg" (dict "size" $icon_size) }} + {{- partial "new-window-icon.html" . -}} +</a> +{{ end }} diff --git a/themes/ananke/layouts/partials/social-share.html b/themes/ananke/layouts/partials/social-share.html new file mode 100644 index 0000000..eb313c0 --- /dev/null +++ b/themes/ananke/layouts/partials/social-share.html @@ -0,0 +1,26 @@ +{{ $title := .Title }} +{{ $url := printf "%s" .Permalink | absLangURL }} +{{ $icon_size := "32px" }} + +{{ if not .Params.disable_share }} + <div id="sharing" class="mt3"> + + {{ $facebook_href := printf "https://www.facebook.com/sharer.php?u=%s" $url }} + <a href="{{ $facebook_href }}" class="facebook no-underline" aria-label="share on Facebook"> + {{ partialCached "svg/facebook.svg" (dict "size" $icon_size) $icon_size }} + </a> + + {{ $twitter_href := printf "https://twitter.com/share?url=%s&text=%s" $url $title }} + {{ with .Site.Social.twitter }} + {{ $twitter_href = printf "%s&via=%s" $twitter_href . }} + {{ end }} + <a href="{{ $twitter_href }}" class="twitter no-underline" aria-label="share on Twitter"> + {{ partialCached "svg/twitter.svg" (dict "size" $icon_size) $icon_size }} + </a> + + {{ $linkedin_href := printf "https://www.linkedin.com/shareArticle?mini=true&url=%s&title=%s" $url $title }} + <a href="{{ $linkedin_href }}" class="linkedin no-underline" aria-label="share on LinkedIn"> + {{ partialCached "svg/linkedin.svg" (dict "size" $icon_size) $icon_size }} + </a> + </div> +{{ end }} diff --git a/themes/ananke/layouts/partials/summary-with-image.html b/themes/ananke/layouts/partials/summary-with-image.html new file mode 100644 index 0000000..702a305 --- /dev/null +++ b/themes/ananke/layouts/partials/summary-with-image.html @@ -0,0 +1,29 @@ +{{ $featured_image := partial "func/GetFeaturedImage.html" . }} +<article class="bb b--black-10"> + <div class="db pv4 ph3 ph0-l no-underline dark-gray"> + <div class="flex flex-column flex-row-ns"> + {{ if $featured_image }} + {{/* Trimming the slash and adding absURL make sure the image works no matter where our site lives */}} + {{ $featured_image := (trim $featured_image "/") | absURL }} + <div class="pr3-ns mb4 mb0-ns w-100 w-40-ns"> + <a href="{{.Permalink}}" class="db grow"> + <img src="{{ $featured_image }}" class="img" alt="image from {{ .Title }}"> + </a> + </div> + {{ end }} + <div class="blah w-100{{ if $featured_image }} w-60-ns pl3-ns{{ end }}"> + <h1 class="f3 fw1 athelas mt0 lh-title"> + <a href="{{.Permalink}}" class="color-inherit dim link"> + {{ .Title }} + </a> + </h1> + <div class="f6 f5-l lh-copy nested-copy-line-height nested-links"> + {{ .Summary }} + </div> + <a href="{{.Permalink}}" class="ba b--moon-gray bg-light-gray br2 color-inherit dib f7 hover-bg-moon-gray link mt2 ph2 pv1">{{ $.Param "read_more_copy" | default (i18n "readMore") }}</a> + {{/* TODO: add author + <p class="f6 lh-copy mv0">By {{ .Author }}</p> */}} + </div> + </div> + </div> +</article> diff --git a/themes/ananke/layouts/partials/summary.html b/themes/ananke/layouts/partials/summary.html new file mode 100644 index 0000000..65b3eaa --- /dev/null +++ b/themes/ananke/layouts/partials/summary.html @@ -0,0 +1,13 @@ +<div class="relative w-100 mb4 bg-white nested-copy-line-height"> + <div class="bg-white mb3 pa4 gray overflow-hidden"> + <span class="f6 db">{{ humanize .Section }}</span> + <h1 class="f3 near-black"> + <a href="{{ .Permalink }}" class="link black dim"> + {{ .Title }} + </a> + </h1> + <div class="nested-links f5 lh-copy nested-copy-line-height"> + {{ .Summary }} + </div> + </div> +</div> diff --git a/themes/ananke/layouts/partials/svg/facebook.svg b/themes/ananke/layouts/partials/svg/facebook.svg new file mode 100644 index 0000000..0afb80f --- /dev/null +++ b/themes/ananke/layouts/partials/svg/facebook.svg @@ -0,0 +1 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M28.765,50.32h6.744V33.998h4.499l0.596-5.624h-5.095 l0.007-2.816c0-1.466,0.14-2.253,2.244-2.253h2.812V17.68h-4.5c-5.405,0-7.307,2.729-7.307,7.317v3.377h-3.369v5.625h3.369V50.32z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;"/></svg> diff --git a/themes/ananke/layouts/partials/svg/github.svg b/themes/ananke/layouts/partials/svg/github.svg new file mode 100644 index 0000000..a362a60 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/github.svg @@ -0,0 +1,3 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > + <path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1 c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14 c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5 c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7 c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3 c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7 C480,134.8,379.7,32,256,32z"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/gitlab.svg b/themes/ananke/layouts/partials/svg/gitlab.svg new file mode 100644 index 0000000..36a3bed --- /dev/null +++ b/themes/ananke/layouts/partials/svg/gitlab.svg @@ -0,0 +1 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"></path></svg> diff --git a/themes/ananke/layouts/partials/svg/instagram.svg b/themes/ananke/layouts/partials/svg/instagram.svg new file mode 100644 index 0000000..2fa7d47 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/instagram.svg @@ -0,0 +1 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M42.271,26.578v-0.006c0.502,0,1.005,0.01,1.508-0.002 c0.646-0.017,1.172-0.57,1.172-1.217c0-0.963,0-1.927,0-2.89c0-0.691-0.547-1.24-1.236-1.241c-0.961,0-1.922-0.001-2.883,0 c-0.688,0.001-1.236,0.552-1.236,1.243c-0.001,0.955-0.004,1.91,0.003,2.865c0.001,0.143,0.028,0.291,0.073,0.426 c0.173,0.508,0.639,0.82,1.209,0.823C41.344,26.579,41.808,26.578,42.271,26.578z M33,27.817c-3.384-0.002-6.135,2.721-6.182,6.089 c-0.049,3.46,2.72,6.201,6.04,6.272c3.454,0.074,6.248-2.686,6.321-6.043C39.254,30.675,36.462,27.815,33,27.817z M21.046,31.116 v0.082c0,4.515-0.001,9.03,0,13.545c0,0.649,0.562,1.208,1.212,1.208c7.16,0.001,14.319,0.001,21.479,0 c0.656,0,1.215-0.557,1.215-1.212c0.001-4.509,0-9.02,0-13.528v-0.094h-2.912c0.411,1.313,0.537,2.651,0.376,4.014 c-0.161,1.363-0.601,2.631-1.316,3.803s-1.644,2.145-2.779,2.918c-2.944,2.006-6.821,2.182-9.946,0.428 c-1.579-0.885-2.819-2.12-3.685-3.713c-1.289-2.373-1.495-4.865-0.739-7.451C22.983,31.116,22.021,31.116,21.046,31.116z M45.205,49.255c0.159-0.026,0.318-0.049,0.475-0.083c1.246-0.265,2.264-1.304,2.508-2.557c0.025-0.137,0.045-0.273,0.067-0.409 V21.794c-0.021-0.133-0.04-0.268-0.065-0.401c-0.268-1.367-1.396-2.428-2.78-2.618c-0.058-0.007-0.113-0.02-0.17-0.03H20.761 c-0.147,0.027-0.296,0.047-0.441,0.08c-1.352,0.308-2.352,1.396-2.545,2.766c-0.008,0.057-0.02,0.114-0.029,0.171V46.24 c0.028,0.154,0.05,0.311,0.085,0.465c0.299,1.322,1.427,2.347,2.77,2.52c0.064,0.008,0.13,0.021,0.195,0.03H45.205z M33,64 C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg> diff --git a/themes/ananke/layouts/partials/svg/keybase.svg b/themes/ananke/layouts/partials/svg/keybase.svg new file mode 100644 index 0000000..9fdb8b3 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/keybase.svg @@ -0,0 +1,3 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 33 33;" version="1.1" viewBox="0 0 33 33" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <path d="M16.1477825,0.840201442 C7.31178255,0.840201442 0.147782547,8.00420144 0.147782547,16.8402014 C0.147782547,25.6762014 7.31178255,32.8402014 16.1477825,32.8402014 C24.9837825,32.8402014 32.1477825,25.6762014 32.1477825,16.8402014 C32.1477825,8.00420144 24.9837825,0.840201442 16.1477825,0.840201442 Z M14.533,26.371 C14.533,26.899 14.105,27.324 13.579,27.324 C13.054,27.324 12.625,26.899 12.625,26.371 C12.625,25.845 13.053,25.417 13.578,25.417 C14.102,25.417 14.529,25.848 14.529,26.372 M14.75,5 L15.957,5.71 C15.361,6.981 15.428,7.453 15.461,7.558 C15.942,7.544 16.516,7.647 17.172,7.863 C18.254,8.223 19.119,8.988 19.61,10.023 C20.097,11.055 20.14,12.214 19.73,13.278 C19.719,13.306 19.707,13.334 19.695,13.361 L19.695,13.361 L19.925,13.439 C21.375,13.957 22.72,14.804 23.88,15.943 C23.898,15.962 23.915,15.978 23.93,15.996 L23.93,15.996 L24.065,16.127 L24.156,16.226 L24.232,16.306 C24.342,16.426 24.447,16.545 24.551,16.665 C24.598,16.721 24.647,16.773 24.692,16.834 C24.739,16.893 24.789,16.949 24.835,17.009 L24.835,17.009 L24.991,17.213 C26.389,19.066 27.174,21.288 27.175,23.487 C27.175,25.567 26.77,27.436 25.994,28.999 L25.994,28.999 L24.383,28.999 C25.508,27.174 25.763,25.05 25.763,23.487 C25.763,22.989 25.713,22.489 25.622,21.991 L25.622,21.991 L25.518,22.156 C24.605,23.452 22.85,23.945 21.045,23.413 C16.879,22.192 13.21,22.708 10.135,24.942 L10.135,24.942 L8.395,26.21 L9.38,23.119 L7.467,25.149 C7.728,26.571 8.314,27.883 9.147,28.997 L9.147,28.997 L7.45,28.997 C6.957,28.189 6.571,27.312 6.305,26.382 L6.305,26.382 L5,27.769 L5.0005667,25.4970384 C5.01020062,22.6453117 5.18361111,19.2052778 8.305,16.048 C9.379,14.965 10.619,14.126 11.965,13.564 C11.633,12.878 11.495,12.098 11.56,11.258 L11.56,11.258 L10.558,11.197 C9.53,11.133 8.742,10.247 8.803,9.218 L8.803,9.218 L8.803,9.215 L8.891,7.813 C8.951,6.829 9.771,6.058 10.761,6.058 C10.795,6.058 10.832,6.058 10.865,6.061 L10.865,6.061 L10.877,6.061 L12.273,6.147 C12.752,6.175 13.19,6.382 13.518,6.727 C13.815,6.294 14.133,5.854 14.463,5.399 L14.463,5.399 L14.75,5 Z M19.493,25.417 C20.019,25.417 20.447,25.848 20.447,26.372 L20.451,26.371 C20.451,26.899 20.023,27.324 19.496,27.324 C18.97,27.324 18.544,26.899 18.544,26.371 C18.544,25.845 18.967,25.417 19.493,25.417 Z M12.981,11.191 C13.104,10.189 13.559,9.242 14.211,8.221 C14.236,8.271 14.265,8.318 14.295,8.365 C14.559,8.763 15.008,8.99 15.494,8.97 C15.711,8.962 16.099,8.995 16.727,9.202 C17.441,9.438 18.013,9.946 18.335,10.627 C18.657,11.308 18.684,12.069 18.414,12.776 C18.241,13.221 17.96,13.596 17.608,13.885 L17.2,13.383 L17.198,13.38 C16.919,13.039 16.504,12.845 16.064,12.845 C15.729,12.845 15.4,12.962 15.139,13.175 C14.805,13.445 14.625,13.835 14.605,14.233 C13.405,13.692 12.805,12.59 12.977,11.192 L12.981,11.191 L12.981,11.191 Z M17.285,16.301 L16.766,16.726 C16.72,16.762 16.671,16.779 16.62,16.779 C16.554,16.779 16.487,16.749 16.443,16.694 L16.332,16.559 C16.249,16.459 16.265,16.309 16.366,16.225 L16.876,15.805 L15.821,14.506 C15.712,14.373 15.73,14.176 15.865,14.07 C15.923,14.022 15.991,13.998 16.059,13.998 C16.15,13.998 16.24,14.036 16.299,14.111 L19.262,17.756 C19.371,17.891 19.352,18.086 19.22,18.192 C19.181,18.221 19.138,18.245 19.094,18.255 C19.071,18.261 19.049,18.264 19.024,18.264 C18.934,18.264 18.846,18.224 18.784,18.151 L18.489,17.786 L17.444,18.64 C17.398,18.677 17.344,18.695 17.29,18.695 C17.222,18.695 17.151,18.665 17.104,18.605 L16.627,18.026 C16.545,17.924 16.559,17.774 16.662,17.69 L17.713,16.833 L17.287,16.3 L17.285,16.301 L17.285,16.301 Z M11.84,9.866 L10.644,9.791 C10.389,9.776 10.194,9.556 10.209,9.303 L10.299,7.902 C10.313,7.657 10.515,7.466 10.76,7.466 L10.784,7.466 L12.185,7.557 C12.308,7.563 12.421,7.617 12.502,7.709 C12.585,7.803 12.625,7.919 12.618,8.045 L12.611,8.146 C12.291,8.713 12.026,9.28 11.838,9.866 L11.84,9.866 L11.84,9.866 Z M24.364,21.347 C23.799,22.152 22.677,22.428 21.44,22.065 C17.554,20.924 14.044,21.162 10.972,22.766 L12.608,17.643 L7.317,23.252 C7.416,19.49 9.77,16.286 13.075,14.941 C13.546,15.314 14.109,15.601 14.748,15.782 C14.908,15.826 15.07,15.856 15.228,15.884 C15.045,16.342 15.109,16.881 15.438,17.291 L15.513,17.381 C15.341,17.831 15.408,18.356 15.734,18.755 L16.209,19.337 C16.475,19.662 16.868,19.85 17.288,19.85 C17.609,19.85 17.923,19.739 18.174,19.536 L18.459,19.304 C18.633,19.378 18.826,19.417 19.025,19.417 C19.138,19.417 19.247,19.407 19.355,19.382 C19.573,19.332 19.779,19.232 19.953,19.091 C20.576,18.581 20.673,17.656 20.162,17.031 L18.492,14.975 C18.637,14.858 18.773,14.731 18.9,14.594 C19.035,14.631 19.171,14.672 19.3,14.714 C19.566,14.811 19.833,14.912 20.095,15.029 C21.1,15.474 22.049,16.129 22.866,16.926 C22.895,16.956 22.925,16.981 22.951,17.009 L23.121,17.184 C23.159,17.223 23.197,17.263 23.232,17.304 C23.311,17.389 23.392,17.479 23.471,17.571 L23.597,17.721 C23.642,17.774 23.683,17.825 23.727,17.881 L23.841,18.031 C23.881,18.082 23.92,18.133 23.958,18.185 C24.796,19.334 24.945,20.514 24.362,21.342 L24.362,21.347 L24.364,21.347 Z M11.806,9.115 L10.971,9.064 L11.024,8.229 L11.858,8.28 L11.806,9.115 Z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/linkedin.svg b/themes/ananke/layouts/partials/svg/linkedin.svg new file mode 100644 index 0000000..744ef7c --- /dev/null +++ b/themes/ananke/layouts/partials/svg/linkedin.svg @@ -0,0 +1,3 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 65 65;" version="1.1" viewBox="0 0 65 65" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <path d="M50.837,48.137V36.425c0-6.275-3.35-9.195-7.816-9.195 c-3.604,0-5.219,1.983-6.119,3.374V27.71h-6.79c0.09,1.917,0,20.427,0,20.427h6.79V36.729c0-0.609,0.044-1.219,0.224-1.655 c0.49-1.22,1.607-2.483,3.482-2.483c2.458,0,3.44,1.873,3.44,4.618v10.929H50.837z M22.959,24.922c2.367,0,3.842-1.57,3.842-3.531 c-0.044-2.003-1.475-3.528-3.797-3.528s-3.841,1.524-3.841,3.528c0,1.961,1.474,3.531,3.753,3.531H22.959z M34,64 C17.432,64,4,50.568,4,34C4,17.431,17.432,4,34,4s30,13.431,30,30C64,50.568,50.568,64,34,64z M26.354,48.137V27.71h-6.789v20.427 H26.354z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/mastodon.svg b/themes/ananke/layouts/partials/svg/mastodon.svg new file mode 100644 index 0000000..205345b --- /dev/null +++ b/themes/ananke/layouts/partials/svg/mastodon.svg @@ -0,0 +1,4 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 230 230;" version="1.1" viewBox="0 0 230 230" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<path d="M211.80683 139.0875c-3.1825 16.36625-28.4925 34.2775-57.5625 37.74875-15.16 1.80875-30.0825 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.3925 27.9425 21.115.7225 39.91625-5.20625 39.91625-5.20625l.86875 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23183 213.82 1.40558 165.31125.20808 116.09125c-.36375-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67058 3.45375 78.20308.2425 107.86433 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.97625 14.7525 32.97625 65.0825 0 0 .4125 37.13375-4.6 62.915" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/> +<path d="M65.68743 96.45938c0 9.01375-7.3075 16.32125-16.3225 16.32125-9.01375 0-16.32-7.3075-16.32-16.32125 0-9.01375 7.30625-16.3225 16.32-16.3225 9.015 0 16.3225 7.30875 16.3225 16.3225M124.52893 96.45938c0 9.01375-7.30875 16.32125-16.3225 16.32125-9.01375 0-16.32125-7.3075-16.32125-16.32125 0-9.01375 7.3075-16.3225 16.32125-16.3225 9.01375 0 16.3225 7.30875 16.3225 16.3225M183.36933 96.45938c0 9.01375-7.3075 16.32125-16.32125 16.32125-9.01375 0-16.32125-7.3075-16.32125-16.32125 0-9.01375 7.3075-16.3225 16.32125-16.3225 9.01375 0 16.32125 7.30875 16.32125 16.3225" fill="#fff"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/medium.svg b/themes/ananke/layouts/partials/svg/medium.svg new file mode 100644 index 0000000..cc5dc23 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/medium.svg @@ -0,0 +1,3 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 170 170;" version="1.1" viewBox="0 0 170 170" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > +<path d="M46.5340803,65.2157554 C46.6968378,63.6076572 46.0836,62.018231 44.8828198,60.93592 L32.6512605,46.2010582 L32.6512605,44 L70.6302521,44 L99.9859944,108.380952 L125.794585,44 L162,44 L162,46.2010582 L151.542017,56.2281011 C150.640424,56.9153477 150.193188,58.0448862 150.380019,59.1628454 L150.380019,132.837155 C150.193188,133.955114 150.640424,135.084652 151.542017,135.771899 L161.755369,145.798942 L161.755369,148 L110.38282,148 L110.38282,145.798942 L120.963119,135.527337 C122.002801,134.487948 122.002801,134.182246 122.002801,132.592593 L122.002801,73.0417402 L92.585901,147.755438 L88.6106443,147.755438 L54.3622782,73.0417402 L54.3622782,123.115814 C54.0767278,125.221069 54.7759199,127.3406 56.2581699,128.863022 L70.0186741,145.55438 L70.0186741,147.755438 L31,147.755438 L31,145.55438 L44.7605042,128.863022 C46.2319621,127.338076 46.8903838,125.204485 46.5340803,123.115814 L46.5340803,65.2157554 Z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/new-window.svg b/themes/ananke/layouts/partials/svg/new-window.svg new file mode 100644 index 0000000..ba148ad --- /dev/null +++ b/themes/ananke/layouts/partials/svg/new-window.svg @@ -0,0 +1,3 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > +<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/rss.svg b/themes/ananke/layouts/partials/svg/rss.svg new file mode 100644 index 0000000..084cff5 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/rss.svg @@ -0,0 +1,5 @@ +<svg xmlns="http://www.w3.org/2000/svg" {{ with .size }}height="{{ . }}" width="{{ . }}"{{ end }} viewBox="0 0 24 24"> + <circle cx="6.18" cy="17.82" r="2.18"/> + <path id="scale" d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/> +</svg> + diff --git a/themes/ananke/layouts/partials/svg/slack.svg b/themes/ananke/layouts/partials/svg/slack.svg new file mode 100644 index 0000000..57974d4 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/slack.svg @@ -0,0 +1,27 @@ +<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 65 65 150 135;" version="1.1" viewBox="65 65 150 135" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> +<style type="text/css"> + .st0{fill:#BABABA;} +</style> +<g> + <g> + <path class="st0" d="M99.4,151.2c0,7.1-5.8,12.9-12.9,12.9s-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h12.9V151.2z"/> + <path class="st0" d="M105.9,151.2c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9 + s-12.9-5.8-12.9-12.9C105.9,183.5,105.9,151.2,105.9,151.2z"/> + </g> + <g> + <path class="st0" d="M118.8,99.4c-7.1,0-12.9-5.8-12.9-12.9s5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v12.9H118.8z"/> + <path class="st0" d="M118.8,105.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H86.5c-7.1,0-12.9-5.8-12.9-12.9 + s5.8-12.9,12.9-12.9C86.5,105.9,118.8,105.9,118.8,105.9z"/> + </g> + <g> + <path class="st0" d="M170.6,118.8c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9h-12.9V118.8z"/> + <path class="st0" d="M164.1,118.8c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V86.5c0-7.1,5.8-12.9,12.9-12.9 + c7.1,0,12.9,5.8,12.9,12.9V118.8z"/> + </g> + <g> + <path class="st0" d="M151.2,170.6c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9v-12.9H151.2z"/> + <path class="st0" d="M151.2,164.1c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9 + c0,7.1-5.8,12.9-12.9,12.9H151.2z"/> + </g> +</g> +</svg> diff --git a/themes/ananke/layouts/partials/svg/stackoverflow.svg b/themes/ananke/layouts/partials/svg/stackoverflow.svg new file mode 100644 index 0000000..ece303f --- /dev/null +++ b/themes/ananke/layouts/partials/svg/stackoverflow.svg @@ -0,0 +1,8 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} + style="enable-background:new 0 0 67 67;" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + width="{{ .size }}" +> + <path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm.869 5.903l3.114 4.567-.975.665-3.115-4.567.976-.665zm-2.812 2.585l4.84 2.838-.6 1.017-4.842-2.838.602-1.017zm-1.276 2.724l5.413 1.521-.291 1.077-5.428-1.458.306-1.14zm-.588 2.461l5.687.569-.103 1.12-5.691-.513.107-1.176zm-.169 2.16h5.835v1.167h-5.835v-1.167zm7.976 3.167h-10v-6h1v5h8v-5h1v6zm.195-8.602l-.945-5.446 1.162-.202.947 5.446-1.164.202z"/> +</svg> diff --git a/themes/ananke/layouts/partials/svg/twitter.svg b/themes/ananke/layouts/partials/svg/twitter.svg new file mode 100644 index 0000000..6803558 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/twitter.svg @@ -0,0 +1 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M37.167,22.283c-2.619,0.953-4.274,3.411-4.086,6.101 l0.063,1.038l-1.048-0.127c-3.813-0.487-7.145-2.139-9.974-4.915l-1.383-1.377l-0.356,1.017c-0.754,2.267-0.272,4.661,1.299,6.271 c0.838,0.89,0.649,1.017-0.796,0.487c-0.503-0.169-0.943-0.296-0.985-0.233c-0.146,0.149,0.356,2.076,0.754,2.839 c0.545,1.06,1.655,2.097,2.871,2.712l1.027,0.487l-1.215,0.021c-1.173,0-1.215,0.021-1.089,0.467 c0.419,1.377,2.074,2.839,3.918,3.475l1.299,0.444l-1.131,0.678c-1.676,0.976-3.646,1.526-5.616,1.568 C19.775,43.256,19,43.341,19,43.405c0,0.211,2.557,1.397,4.044,1.864c4.463,1.377,9.765,0.783,13.746-1.568 c2.829-1.673,5.657-5,6.978-8.221c0.713-1.716,1.425-4.851,1.425-6.354c0-0.975,0.063-1.102,1.236-2.267 c0.692-0.678,1.341-1.419,1.467-1.631c0.21-0.403,0.188-0.403-0.88-0.043c-1.781,0.636-2.033,0.551-1.152-0.402 c0.649-0.678,1.425-1.907,1.425-2.267c0-0.063-0.314,0.042-0.671,0.233c-0.377,0.212-1.215,0.53-1.844,0.72l-1.131,0.361l-1.027-0.7 c-0.566-0.381-1.361-0.805-1.781-0.932C39.766,21.902,38.131,21.944,37.167,22.283z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4 s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg> diff --git a/themes/ananke/layouts/partials/svg/youtube.svg b/themes/ananke/layouts/partials/svg/youtube.svg new file mode 100644 index 0000000..9a55379 --- /dev/null +++ b/themes/ananke/layouts/partials/svg/youtube.svg @@ -0,0 +1 @@ +<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M42.527,41.34c-0.278,0-0.478,0.078-0.6,0.244 c-0.121,0.156-0.18,0.424-0.18,0.796v0.896h1.543V42.38c0-0.372-0.062-0.64-0.185-0.796C42.989,41.418,42.792,41.34,42.527,41.34z M36.509,41.309c0.234,0,0.417,0.076,0.544,0.23c0.123,0.155,0.185,0.383,0.185,0.682v4.584c0,0.286-0.053,0.487-0.153,0.611 c-0.1,0.127-0.256,0.189-0.47,0.189c-0.148,0-0.287-0.033-0.421-0.096c-0.135-0.062-0.274-0.171-0.415-0.313v-5.531 c0.119-0.122,0.239-0.213,0.36-0.271C36.26,41.335,36.383,41.309,36.509,41.309z M41.748,44.658v1.672 c0,0.468,0.057,0.792,0.17,0.974c0.118,0.181,0.313,0.269,0.592,0.269c0.289,0,0.491-0.076,0.606-0.229 c0.114-0.153,0.175-0.489,0.175-1.013v-0.405h1.795v0.456c0,0.911-0.217,1.596-0.657,2.059c-0.435,0.459-1.089,0.687-1.958,0.687 c-0.781,0-1.398-0.242-1.847-0.731c-0.448-0.486-0.676-1.157-0.676-2.014v-3.986c0-0.768,0.249-1.398,0.742-1.882 c0.493-0.484,1.128-0.727,1.911-0.727c0.799,0,1.413,0.225,1.843,0.674c0.429,0.448,0.642,1.093,0.642,1.935v2.264H41.748z M38.623,48.495c-0.271,0.336-0.669,0.501-1.187,0.501c-0.343,0-0.646-0.062-0.912-0.192c-0.267-0.129-0.519-0.327-0.746-0.601 v0.681h-1.764V36.852h1.764v3.875c0.237-0.27,0.485-0.478,0.748-0.616c0.267-0.143,0.534-0.212,0.805-0.212 c0.554,0,0.975,0.189,1.265,0.565c0.294,0.379,0.438,0.933,0.438,1.66v4.926C39.034,47.678,38.897,48.159,38.623,48.495z M30.958,48.884v-0.976c-0.325,0.361-0.658,0.636-1.009,0.822c-0.349,0.191-0.686,0.282-1.014,0.282 c-0.405,0-0.705-0.129-0.913-0.396c-0.201-0.266-0.305-0.658-0.305-1.189v-7.422h1.744v6.809c0,0.211,0.037,0.362,0.107,0.457 c0.077,0.095,0.196,0.141,0.358,0.141c0.128,0,0.292-0.062,0.488-0.188c0.197-0.125,0.375-0.283,0.542-0.475v-6.744h1.744v8.878 H30.958z M24.916,38.6v10.284h-1.968V38.6h-2.034v-1.748h6.036V38.6H24.916z M32.994,32.978c0-0.001,12.08,0.018,13.514,1.45 c1.439,1.435,1.455,8.514,1.455,8.555c0,0-0.012,7.117-1.455,8.556C45.074,52.969,32.994,53,32.994,53s-12.079-0.031-13.516-1.462 c-1.438-1.435-1.441-8.502-1.441-8.556c0-0.041,0.004-7.12,1.441-8.555C20.916,32.996,32.994,32.977,32.994,32.978z M42.52,29.255 h-1.966v-1.08c-0.358,0.397-0.736,0.703-1.13,0.909c-0.392,0.208-0.771,0.312-1.14,0.312c-0.458,0-0.797-0.146-1.027-0.437 c-0.229-0.291-0.345-0.727-0.345-1.311v-8.172h1.962v7.497c0,0.231,0.045,0.399,0.127,0.502c0.08,0.104,0.216,0.156,0.399,0.156 c0.143,0,0.327-0.069,0.548-0.206c0.22-0.137,0.423-0.312,0.605-0.527v-7.422h1.966V29.255z M31.847,27.588 c0.139,0.147,0.339,0.219,0.6,0.219c0.266,0,0.476-0.075,0.634-0.223c0.157-0.152,0.235-0.358,0.235-0.618v-5.327 c0-0.214-0.08-0.387-0.241-0.519c-0.16-0.131-0.37-0.196-0.628-0.196c-0.241,0-0.435,0.065-0.586,0.196 c-0.148,0.132-0.225,0.305-0.225,0.519v5.327C31.636,27.233,31.708,27.439,31.847,27.588z M30.408,19.903 c0.528-0.449,1.241-0.674,2.132-0.674c0.812,0,1.48,0.237,2.001,0.711c0.517,0.473,0.777,1.083,0.777,1.828v5.051 c0,0.836-0.255,1.491-0.762,1.968c-0.513,0.476-1.212,0.714-2.106,0.714c-0.858,0-1.547-0.246-2.064-0.736 c-0.513-0.492-0.772-1.152-0.772-1.983v-5.068C29.613,20.954,29.877,20.351,30.408,19.903z M24.262,16h-2.229l2.634,8.003v5.252 h2.213v-5.5L29.454,16h-2.25l-1.366,5.298h-0.139L24.262,16z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30 S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg> diff --git a/themes/ananke/layouts/partials/tags.html b/themes/ananke/layouts/partials/tags.html new file mode 100644 index 0000000..4fce241 --- /dev/null +++ b/themes/ananke/layouts/partials/tags.html @@ -0,0 +1,9 @@ +<ul class="pa0"> + {{ range .Params.tags }} + <li class="list"> + <a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}" class="link f5 grow no-underline br-pill ba ph3 pv2 mb2 dib black sans-serif"> + {{- . -}} + </a> + </li> + {{ end }} +</ul> diff --git a/themes/ananke/layouts/post/list.html b/themes/ananke/layouts/post/list.html new file mode 100644 index 0000000..73c9b5c --- /dev/null +++ b/themes/ananke/layouts/post/list.html @@ -0,0 +1,21 @@ +{{ define "main" }} +{{/* + This template is the same as the default and is here to demonstrate that if you have a content directory called "post" you can create a layouts directory, just for that section. + */}} + <article class="pa3 pa4-ns nested-copy-line-height nested-img"> + <section class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray"> + {{ .Content }} + </section> + <aside class="flex-ns flex-wrap justify-around mt5"> + {{ range .Paginator.Pages }} + <div class="relative w-100 w-30-l mb4 bg-white"> + {{/* + Note we can use `.Render` here for items just in this section, instead of a partial to pull in items for the list page. https://gohugo.io/functions/render/ + */}} + {{ .Render "summary" }} + </div> + {{ end }} + </aside> + {{ template "_internal/pagination.html" . }} + </article> +{{ end }} diff --git a/themes/ananke/layouts/post/summary-with-image.html b/themes/ananke/layouts/post/summary-with-image.html new file mode 100644 index 0000000..3afac67 --- /dev/null +++ b/themes/ananke/layouts/post/summary-with-image.html @@ -0,0 +1,20 @@ +<article class="bb b--black-10"> + <a class="db pv4 ph3 ph0-l no-underline dark-gray dim" href="{{ .Permalink }}"> + <div class="flex flex-column flex-row-ns"> + {{ $featured_image := partial "func/GetFeaturedImage.html" . }} + {{ if $featured_image }} + <div class="pr3-ns mb4 mb0-ns w-100 w-40-ns"> + <img src="{{ $featured_image }}" class="db" alt="image from {{ .Title }}"> + </div> + {{ end }} + <div class="w-100{{ if $featured_image }} w-60-ns pl3-ns{{ end }}"> + <h1 class="f3 fw1 athelas mt0 lh-title">{{ .Title }}</h1> + <div class="f6 f5-l lh-copy nested-copy-line-height"> + {{ .Summary }} + </div> + {{/* TODO: add author + <p class="f6 lh-copy mv0">By {{ .Author }}</p> */}} + </div> + </div> + </a> +</article> diff --git a/themes/ananke/layouts/post/summary.html b/themes/ananke/layouts/post/summary.html new file mode 100644 index 0000000..29a6d35 --- /dev/null +++ b/themes/ananke/layouts/post/summary.html @@ -0,0 +1,15 @@ + <div class="mb3 pa4 mid-gray overflow-hidden"> + {{ if .Date }} + <div class="f6"> + {{ .Date.Format "January 2, 2006" }} + </div> + {{ end }} + <h1 class="f3 near-black"> + <a href="{{ .Permalink }}" class="link black dim"> + {{ .Title }} + </a> + </h1> + <div class="nested-links f5 lh-copy nested-copy-line-height"> + {{ .Summary }} + </div> + </div> diff --git a/themes/ananke/layouts/robots.txt b/themes/ananke/layouts/robots.txt new file mode 100644 index 0000000..b18c6e9 --- /dev/null +++ b/themes/ananke/layouts/robots.txt @@ -0,0 +1,7 @@ +User-agent: * +# robotstxt.org - if ENV production variable is false robots will be disallowed. +{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} + Disallow: +{{ else }} + Disallow: / +{{ end }} diff --git a/themes/ananke/layouts/shortcodes/form-contact.html b/themes/ananke/layouts/shortcodes/form-contact.html new file mode 100644 index 0000000..d06b248 --- /dev/null +++ b/themes/ananke/layouts/shortcodes/form-contact.html @@ -0,0 +1,20 @@ +{{ $.Scratch.Add "labelClasses" "f6 b db mb1 mt3 sans-serif mid-gray" }} +{{ $.Scratch.Add "inputClasses" "w-100 f5 pv3 ph3 bg-light-gray bn" }} + +<form class="black-80 sans-serif" accept-charset="UTF-8" action="{{ .Get "action" }}" method="POST" role="form"> + + <label class="{{ $.Scratch.Get "labelClasses" }}" for="name">{{ i18n "yourName" }}</label> + <input type="text" id="name" name="name" class="{{ $.Scratch.Get "inputClasses" }}" required placeholder=" " aria-labelledby="name"/> + + <label class="{{ $.Scratch.Get "labelClasses" }}" for="email">{{ i18n "emailAddress" }}</label> + <input type="email" id="email" name="email" class="{{ $.Scratch.Get "inputClasses" }}" required placeholder=" " aria-labelledby="email"/> + <div class="requirements f6 gray glow i ph3 overflow-hidden"> + {{ i18n "emailRequiredNote" }} + </div> + + <label class="{{ $.Scratch.Get "labelClasses" }}" for="message">{{ i18n "message" }}</label> + <textarea id="message" name="message" class="{{ $.Scratch.Get "inputClasses" }} h4" aria-labelledby="message"></textarea> + + <input class="db w-100 mv2 white pa3 bn hover-shadow hover-bg-black bg-animate bg-black" type="submit" value="{{ i18n "send" }}" /> + +</form> |