diff --git a/assets/javascripts/head.js b/assets/javascripts/head.js index 37af090afcd070438dd19ff820f5671b905b6571..c5875a6a04a36bfde1c24f138ba0dc24fec8448c 100644 --- a/assets/javascripts/head.js +++ b/assets/javascripts/head.js @@ -1,13 +1,3 @@ -(function (i, s, o, g, r, a, m) { - i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { - (i[r].q = i[r].q || []).push(arguments) - }, i[r].l = 1 * new Date(); a = s.createElement(o), - m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) -})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); - -ga('create', 'UA-114468-20', 'auto'); -ga('send', 'pageview'); - if ('serviceWorker' in navigator) { // Killing off all known SW for this site. caches.keys().then((cacheKeys) => Promise.all(cacheKeys.map((key) => caches.delete(key)))); diff --git a/config.toml b/config/_default/hugo.toml similarity index 80% rename from config.toml rename to config/_default/hugo.toml index 54cd8ba94d61ec71fc1f803ec9cf78ebab38c595..8f824e3166e93ddcd9c2d50bc10138669490d189 100644 --- a/config.toml +++ b/config/_default/hugo.toml @@ -1,8 +1,5 @@ -baseurl = "https://flear.org/" -languageCode = "en-us" -title = "Free and Libre Engineers for Amateur Radio" - Copyright = "FLEAR 2023" + paginate = 20 pygmentsCodeFences = true pygmentsCodeFencesGuessSyntax = true @@ -16,15 +13,6 @@ limit = 50 [permalinks] post = "/:title/" -[author] -name = "Jeffrey Phillips Freeman" -email = "the@jeffreyfreeman.me" - -[params] -author = "Jeffrey Phillips Freeman" -description = "FLEAR - Free and Libre Engineers for Amateur Radio" -analyticsid = "UA-114468-20" - [taxonimies] tag = "tags" @@ -71,3 +59,9 @@ typographer = false [markup.goldmark.renderer] unsafe = true + +[security.funcs] +getenv = ['^HUGO_', '^CI$', '^ACTIPAGE_'] + +[params] +siteAuthor="Jeffrey Phillips Freeman" diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000000000000000000000000000000000000..bd64187dc3e2d8312b91cc0bfb84b7b404983c0d --- /dev/null +++ b/hugo.toml @@ -0,0 +1,26 @@ +baseurl = "https://flear.org/" +languageCode = "en-us" +title = "Free and Libre Engineers for Amateur Radio" + +paginate = 20 +pygmentsCodeFences = true +pygmentsCodeFencesGuessSyntax = true +pygmentsStyle = "monokai" +DefaultContentLanguage = "en" +defaultContentLanguageInSubdir = false + +# Author displayed on posts, the current template doesnt actually render this +[author] +name = "FLEAR" +email = "flear@flear.org" + +# Custom site variables used when rendering the template +[params] +siteName="FLEAR" +siteTagLine="Free & Libre Engineers for Amateur Radio" +# Do not include the @ +twitterUser="FLEAR_radio" +siteDescription="FLEAR is an open-source and open-standards incubator for Ham Radio" +# this is the user name of the ActivityPub account. It will be the first part of your handle as @apUSer@domain +apUser="FLEAR" +repoUrl="https://git.qoto.org/flear" diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 709e865da9be36cc0ba7f2c60c22945e7d996586..2049a2b4ce702f6ded3ee304d68b3ce10a8db64f 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -6,22 +6,23 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="preconnect" href="https://www.google-analytics.com" crossorigin> {{ range $.Page.AllTranslations }} <link rel="alternate" hreflang="{{.Lang}}" href="{{.Permalink}}" />{{if eq .Lang "en"}} <link rel="alternate" hreflang="x-default" href="{{.Permalink}}" />{{end}} {{ end }} - <title>{{if .IsPage }}{{ if .Title }}{{ .Title }}{{ end }}{{else}}{{.Site.Title}}{{end}}</title> <link rel="canonical" href="{{ .Page.Permalink }}" /> - <meta name="author" content="{{ .Site.Params.author }}"> - <link rel="webmention" href="https://webmention.io/flear.org/webmention" /> - <link rel="pingback" href="https://webmention.io/flear.org/xmlrpc" /> + <meta name="author" content="{{ .Site.Params.siteAuthor }}"> + <link rel="webmention" href="https://webmention.io/{{ (urls.Parse site.BaseURL).Hostname }}/webmention" /> + <link rel="pingback" href="https://webmention.io/{{ (urls.Parse site.BaseURL).Hostname }}/xmlrpc" /> <meta name="supported-color-schemes" content="light dark"> <meta name="theme-color" content="{{ if .Params.themecolor }}#{{ .Params.themecolor}}{{ else }}#000000{{ end }}"> - <meta property="og:site_name" content="FLEAR"> - <meta property="twitter:site" content="@FLEAR_radio"> - <meta property="twitter:creator" content="@FLEAR_radio"> + <meta property="og:site_name" content="{{ site.Params.siteName }}"> + + <!-- Indicates the twitter account that is the source for this webpage --> + <meta property="twitter:site" content="@{{ site.Params.twitterUser }}"> + <meta property="twitter:creator" content="@{{ site.Params.twitterUser }}"> + <meta property="og:type" content="website" /> <meta property="twitter:card" content="summary_large_image"> @@ -29,36 +30,36 @@ <meta property="twitter:image" content="{{.Params.image_header}}"> <meta property="og:image" content="{{.Params.image_header}}"> {{ else if .IsHome }} - <meta property="twitter:image" content="/images/logo-header-light.png"> - <meta property="og:image" content="/images/logo-header-light.png"> + <meta property="twitter:image" content="/images/logo.png"> + <meta property="og:image" content="/images/logo.png"> {{else}} {{ $tags := .Params.tags}} {{ if .Params.social_image_url }} - {{ $socialURL := printf "https://flear.org/api/card?%s" (querify "title" .Title "imgUrl" .Params.social_image_url ) }} + {{ $socialURL := printf "%sapi/card?%s" site.BaseURL (querify "title" .Title "imgUrl" .Params.social_image_url ) }} <meta property="twitter:image" {{ printf "content=%q" $socialURL | safeHTMLAttr}}> <meta property="og:image" {{ printf "content=%q" $socialURL | safeHTMLAttr}}> {{else if .Title}} - {{ $socialURL := printf "https://flear.org/api/card?%s" (querify "title" .Title) }} + {{ $socialURL := printf "%sapi/card?%s" site.BaseURL (querify "title" .Title) }} <meta property="twitter:image" {{ printf "content=%q" $socialURL | safeHTMLAttr}}> <meta property="og:image" {{ printf "content=%q" $socialURL | safeHTMLAttr}}> {{ else }} - <meta property="twitter:image" content="https://flear.org/images/logo.png"> - <meta property="og:image" content="https://flear.org/images/logo.png"> + <meta property="twitter:image" content="{{ site.BaseURL }}images/logo.png"> + <meta property="og:image" content="{{ site.BaseURL }}images/logo.png"> {{end}} {{end}} {{ if .Title }} - <title>FLEAR: {{ .Title }}</title> + <title>{{ site.Params.siteName }}: {{ .Title }}</title> <meta property="og:title" content="{{ .Title }}"> <meta property="twitter:title" content="{{ .Title }}"> - {{ else if .Site.Title }} - <title>FLEAR: {{ .Site.Title }}</title> - <meta property="og:title" content="{{.Site.Title}}"> - <meta property="twitter:title" content="{{.Site.Title}}"> + {{ else if site.Title }} + <title>{{ site.Params.siteName }}: {{ site.Title }}</title> + <meta property="og:title" content="{{ site.Title }}"> + <meta property="twitter:title" content="{{ site.Title }}"> {{ else }} - <title>FLEAR - Free and Libre Engineers for Amateur Radio</title> - <meta property="og:title" content="FLEAR - Free and Libre Engineers for Amateur Radio"> - <meta property="twitter:title" content="FLEAR - Free and Libre Engineers for Amateur Radio"> + <title>{{ site.Params.siteName }}</title> + <meta property="og:title" content="{{ site.Params.siteName }}"> + <meta property="twitter:title" content="{{ site.Params.siteName }}"> {{end}} {{ if .Permalink }} @@ -66,18 +67,15 @@ <meta property="twitter:url" content="{{ .Permalink }}"> {{end}} + <!-- If there is an article with a description front matter then use that, otherwise fallback to the site wide description --> {{if .Description}} <meta property="og:description" content="{{ .Description }}"> <meta property="description" content="{{ .Description }}"> <meta property="twitter:description" content="{{ .Description }}"> - {{else if .Site.Params.Description}} - <meta property="og:description" content="{{ .Site.Params.Description }}"> - <meta property="description" content="{{ .Site.Params.Description }}"> - <meta property="twitter:description" content="{{ .Site.Params.Description }}"> {{else}} - <meta property="og:description" content="FLEAR is an open-source and open-standards incubator for Ham Radio"> - <meta property="description" content="FLEAR is an open-source and open-standards incubator for Ham Radio"> - <meta property="twitter:description" content="FLEAR is an open-source and open-standards incubator for Ham Radio"> + <meta property="og:description" content="{{ site.Params.siteDescription }}"> + <meta property="description" content="{{ site.Params.siteDescription }}"> + <meta property="twitter:description" content="{{ site.Params.siteDescription }}"> {{end}} <script defer src="/_vercel/insights/script.js"></script> @@ -85,11 +83,11 @@ { "@context": "http://schema.org", "@type": "Person", - "name": "FLEAR", - "url": "https://flear.org/", + "name": "{{ site.Params.apUser }}", + "url": {{ site.BaseURL }}, "sameAs": [ - "https://twitter.com/FLEAR_radio", - "https://git.qoto.org/flear", + "https://twitter.com/{{ site.Params.twitterUser }}", + {{ site.Params.repoUrl }}, ] } </script> @@ -98,51 +96,40 @@ { "@context": "http://schema.org", "@type": "NewsArticle", - "headline": {{.Title }}, + "headline": {{ if .Title }}{{.Title }}{{ else if site.Title }}{{ site.Title }}{{ else }}{{ site.Params.siteName}}{{ end }}, "datePublished": "{{ .Date.Format "2006-01-02T15:04:05" }}", "author": { "@type": "Person", - "name": "FLEAR", - "url": "https://flear.org/" + "name": {{ site.Params.apUser }}, + "url": {{ site.BaseURL }} }, - "description": "{{if .Description}}{{ .Description }}{{else}}{{.Summary}}{{end}}" + "description": "{{if .Description}}{{ .Description }}{{else if .Summary}}{{.Summary}}{{else}}{{ site.Params.siteDescription }}{{end}}" } </script> {{ end }} -<link href="https://flear.org/flear" rel="alternate" type="application/activity+json"> - <link rel="polymath" href="/polymath"> - <link href="/images/logo.png" rel="icon"> - <link href="/manifest.json" rel="manifest"> - <link rel="home" href="{{.Site.BaseURL}}"> - <style> - {{ $main := resources.Get "css/main.css" }} - {{ $goblin := resources.Get "css/goblin.css" }} - {{ $fa := resources.Get "css/fontawesome.css" }} - {{ $primer := resources.Get "css/primer.css" }} - {{ $ghost := resources.Get "css/ghost.css" }} - {{ $glyph := resources.Get "css/glyphicons.css" }} +<link href="{{ site.BaseURL }}{{ site.Params.apUser | lower }}" rel="alternate" type="application/activity+json"> +<link href="/images/logo.png" rel="icon"> +<link href="/manifest.json" rel="manifest"> +<link rel="home" href="{{.Site.BaseURL}}"> +<style> + {{ $main := resources.Get "css/main.css" }} + {{ $goblin := resources.Get "css/goblin.css" }} + {{ $fa := resources.Get "css/fontawesome.css" }} + {{ $primer := resources.Get "css/primer.css" }} + {{ $ghost := resources.Get "css/ghost.css" }} + {{ $glyph := resources.Get "css/glyphicons.css" }} - {{ $css := slice $main $goblin $fa $primer $ghost $glyph | resources.Concat "css/bundle.css" }} - {{ $minifiedCSS := $css | minify}} - {{ $minifiedCSS.Content | safeCSS }} - - header.with-background { - {{ if .Params.image_header }}background-image: url('{{ .Params.image_header}}');{{ end }} - } - </style> - {{ range .AlternativeOutputFormats -}} - <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> - {{ end -}} + {{ $css := slice $main $goblin $fa $primer $ghost $glyph | resources.Concat "css/bundle.css" }} + {{ $minifiedCSS := $css | minify}} + {{ $minifiedCSS.Content | safeCSS }} - <!-- Google tag (gtag.js) --> -<script async src="https://www.googletagmanager.com/gtag/js?id=G-V4DZ9TE0NV"></script> -<script> - window.dataLayer = window.dataLayer || []; - function gtag(){dataLayer.push(arguments);} - gtag('js', new Date()); - - gtag('config', 'G-V4DZ9TE0NV'); -</script> + header.with-background { + {{ if .Params.image_header }}background-image: url('{{ .Params.image_header}}');{{ end }} + } +</style> +{{ range .AlternativeOutputFormats -}} +<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> +{{ end -}} <script> {{ $jqueryJS := resources.Get "javascripts/jquery.js" | minify }}