[*] Add support for basic meta and links to help with SEO
This commit is contained in:
		
							
								
								
									
										12
									
								
								config.toml
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								config.toml
									
									
									
									
									
								
							| @@ -1,12 +1,19 @@ | |||||||
| baseURL = "https://doublefourteen.io/" | baseURL = "https://doublefourteen.io/" | ||||||
| languageCode = "en-us" | languageCode = "en-us" | ||||||
| title = "The DoubleFourteen Code Forge" |  | ||||||
| theme = "doublefourteen" | theme = "doublefourteen" | ||||||
| disableKinds = ["taxonomy", "term"] | disableKinds = ["taxonomy", "term"] | ||||||
| timeout = 1000000 | timeout = 1000000 | ||||||
|  |  | ||||||
| [params] | [params] | ||||||
| description = "The DoubleFourteen Code Forge is a non-profit community promoting high quality software and scientific research." | title = "The DoubleFourteen Code Forge" | ||||||
|  | images = ["/logo.png"] | ||||||
|  | description = "The DoubleFourteen Code Forge is a non-profit community to promote high quality software and independent scientific research." | ||||||
|  | author = "The DoubleFourteen Community" | ||||||
|  |  | ||||||
|  | [taxonomies] | ||||||
|  |   category = "categories" | ||||||
|  |   series = "series" | ||||||
|  |   tag = "tags" | ||||||
|  |  | ||||||
| [markup.goldmark.renderer] | [markup.goldmark.renderer] | ||||||
| unsafe = true | unsafe = true | ||||||
| @@ -14,4 +21,5 @@ unsafe = true | |||||||
| DefaultContentLanguage = "en" | DefaultContentLanguage = "en" | ||||||
| [languages] | [languages] | ||||||
|   [languages.en] |   [languages.en] | ||||||
|  |     languageName = "English" | ||||||
|     weight = 1 |     weight = 1 | ||||||
|   | |||||||
| @@ -1,6 +1,15 @@ | |||||||
| --- | --- | ||||||
| title: Home | title: Home | ||||||
| mobile_menu_title: "Home" | tags: | ||||||
|  |   - development | ||||||
|  |   - coding | ||||||
|  |   - hacking | ||||||
|  |   - free software | ||||||
|  |   - open source | ||||||
|  |   - high performance | ||||||
|  |   - research | ||||||
|  |   - computer science | ||||||
|  |   - non profit | ||||||
| --- | --- | ||||||
|  |  | ||||||
| {{< flexrow style="justify-content:center;align-items:center" >}} | {{< flexrow style="justify-content:center;align-items:center" >}} | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| --- | --- | ||||||
| title: Blog | title: Blog | ||||||
| menu_title: Blog | menu_title: Blog | ||||||
| mobile_menu_title: Blog |  | ||||||
| layout: rss-list | layout: rss-list | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -1,18 +1,14 @@ | |||||||
| --- | --- | ||||||
| title: "The Micro BGP Suite has been released!" | title: "The Micro BGP Suite has been released!" | ||||||
| mobile_menu_title: "µbgpsuite now released!" | mobile_menu_title: "µbgpsuite now released!" | ||||||
| description: "We are happy to announce that ubgpsuite - The Micro BGP Suite - has been released: bgpgrep and lonetix are now available for use!" | date: 2021-06-15 | ||||||
| date: 2021-06-15T00:00:00+00:00 | description: "The DoubleFourteen Code Forge is happy to announce that ubgpsuite - The Micro BGP Suite - has been released: bgpgrep and lonetix are now available!" | ||||||
| tags: | series: [ "ubgpsuite - The Micro BGP Suite" ] | ||||||
|     - ubgpsuite | categories: [ "news", "development" ] | ||||||
|     - C Language | tags: [ "ubgpsuite", "bgpgrep", "lonetix", "bgpscanner", "C Language", "Networking", "BGP" ] | ||||||
|     - Networking | news_keywords: [ "ubgpsuite", "bgpgrep", "lonetix", "bgpscanner" ] | ||||||
|     - BGP |  | ||||||
|     - News |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| **We are happy to announce that the first version of the micro BGP suite has now been released!** |  | ||||||
|  |  | ||||||
| ## The Micro BGP Suite is now available | ## The Micro BGP Suite is now available | ||||||
|  |  | ||||||
| I am thrilled to announce that the very first version of the | I am thrilled to announce that the very first version of the | ||||||
|   | |||||||
| @@ -2,43 +2,58 @@ | |||||||
| {{ if isset .Params "lang" }} | {{ if isset .Params "lang" }} | ||||||
|   {{ $lang = .Params.lang }} |   {{ $lang = .Params.lang }} | ||||||
| {{end}} | {{end}} | ||||||
|  |  | ||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html lang="{{$lang}}"> | <html prefix="og: http://ogp.me/ns#" lang="{{$lang}}"> | ||||||
|   <head> |   <head itemscope itemtype="https://schema.org/WebPage"> | ||||||
|     <meta charset="utf-8"> |     <meta charset="UTF-8"> | ||||||
|     <title> |  | ||||||
|       {{ block "title" . }} ⏎ {{ end }} {{ .Site.Title }} |     <title>{{ block "title" . }}{{ .Title }}{{ end }} ⏎ {{ .Site.Params.title }}</title> | ||||||
|     </title> |  | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||||
|     <meta name="color-scheme" content="light dark"> |     <meta name="color-scheme" content="light dark"> | ||||||
|     {{ if .Params.noindex }} |  | ||||||
|       <meta name="robots" content="noindex"> |     {{ with default ( slice "index" "follow" ) .Params.robots }} | ||||||
|     {{ else if .Params.noarchive }} |       <meta name="robots" content="{{ delimit . "," }}"> | ||||||
|       <meta name="robots" content="noarchive"> |  | ||||||
|     {{ end }} |     {{ end }} | ||||||
|     {{ if .IsHome }} |     <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}"> | ||||||
|       {{ with $.Site.Params.description }} |     <meta name="keywords" content="{{ if .IsPage}}{{ range $index, $tag := .Params.tags }}{{ $tag }},{{ end }}{{ else }}{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ printf "%s," $term }}{{ end }}{{ end }}{{ end }}"> | ||||||
|         <meta name="description" content="{{.}}"> |  | ||||||
|  |     <base href="{{ .Permalink }}"> | ||||||
|  |     <meta name="url" content="{{ .Permalink }}"> | ||||||
|  |  | ||||||
|  |     {{ with .Language.LanguageName }} | ||||||
|  |       <meta name="language" content="{{ . }}"> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|     {{ else }} |     {{ range .AllTranslations }} | ||||||
|       {{ with .Params.description }} |       {{ if .Language.LanguageName }} | ||||||
|         <meta name="description" content="{{.}}"> |         <link rel="alternate" hreflang="{{ .Language.Lang }}" href="{{ .Permalink }}" title="{{ .Language.LanguageName }}"> | ||||||
|       {{ end }} |       {{ end }} | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
|     {{ block "meta" . }} |     {{ template "_internal/schema.html" . }} | ||||||
|  |     {{ template "_internal/opengraph.html" . }} | ||||||
|  |     {{ template "_internal/twitter_cards.html" . }} | ||||||
|  |  | ||||||
|  |     {{ block "meta" . }} {{ end }} | ||||||
|  |  | ||||||
|  |     <link rel="canonical" href="{{ .Permalink }}" itemprop="url"> | ||||||
|  |     <link rel="sitemap" type="application/xml" title="Sitemap" href="{{ "sitemap.xml" | absURL }}"> | ||||||
|  |  | ||||||
|  |     {{ with .OutputFormats.Get "RSS" }} | ||||||
|  |       <link href="{{ .Permalink }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}"> | ||||||
|  |       <link href="{{ .Permalink }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}"> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|  |  | ||||||
|  |     {{- partial "favicon.html" . -}} | ||||||
|  |  | ||||||
|     {{ $sassOptions := ( dict "outputStyle" "compressed" ) }} |     {{ $sassOptions := ( dict "outputStyle" "compressed" ) }} | ||||||
|     {{ $styleCss := resources.Get "sass/style.sass" | toCSS $sassOptions | fingerprint }} |     {{ $styleCss := resources.Get "sass/style.sass" | toCSS $sassOptions | fingerprint }} | ||||||
|     <link type="text/css" rel="stylesheet" href="{{ $styleCss.Permalink }}"> |     <link type="text/css" rel="stylesheet" href="{{ $styleCss.Permalink }}"> | ||||||
|     {{ $navigationCss := resources.Get "sass/navigation.sass" | toCSS $sassOptions | fingerprint }} |     {{ $navigationCss := resources.Get "sass/navigation.sass" | toCSS $sassOptions | fingerprint }} | ||||||
|     <link type="text/css" rel="stylesheet" href="{{ $navigationCss.Permalink }}"> |     <link type="text/css" rel="stylesheet" href="{{ $navigationCss.Permalink }}"> | ||||||
|  |  | ||||||
|     <link rel="canonical" href="{{ .Permalink }}"> |     {{ block "links" . }} {{ end }} | ||||||
|  |  | ||||||
|     {{ block "links" . }} |  | ||||||
|     {{ end }} |  | ||||||
|   </head> |   </head> | ||||||
|   <body> |   <body> | ||||||
|     <div class="container header"> |     <div class="container header"> | ||||||
|   | |||||||
| @@ -1,6 +1,3 @@ | |||||||
| {{ define "title" }} |  | ||||||
|   {{ .Title }} ⏎ |  | ||||||
| {{ end }} |  | ||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
|   {{- partial "parent-link" . -}} |   {{- partial "parent-link" . -}} | ||||||
|   <div class="container"> |   <div class="container"> | ||||||
|   | |||||||
| @@ -1,6 +1,3 @@ | |||||||
| {{ define "title" }} |  | ||||||
|   {{ .Title }} ⏎ |  | ||||||
| {{ end }} |  | ||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
|   {{ $enSite := index .Sites 0 }} |   {{ $enSite := index .Sites 0 }} | ||||||
|   {{ $posts := where $enSite.RegularPages "Section" .Section }} |   {{ $posts := where $enSite.RegularPages "Section" .Section }} | ||||||
|   | |||||||
| @@ -1,6 +1,3 @@ | |||||||
| {{ define "title" }} |  | ||||||
|   {{ .Title }} ⏎ |  | ||||||
| {{ end }} |  | ||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
|   {{- partial "parent-link" . -}} |   {{- partial "parent-link" . -}} | ||||||
|   <div class="container"> |   <div class="container"> | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}"> | <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}"> | ||||||
|  | <link rel="alternate icon" sizes="192x192" type="image/png" href="{{ "/favicon-192.png" | relURL }}"> | ||||||
|  | <link rel="alternate icon" sizes="32x32" type="image/png" href="{{ "/favicon-32.png" | relURL }}"> | ||||||
| <link rel="alternate icon" sizes="16x16 32x32 48x48 57x57 64x64 72x72 110x110 114x114 120x120 128x128 144x144 152x152" type="image/x-icon" href="{{ "/favicon.ico" | relURL }}"> | <link rel="alternate icon" sizes="16x16 32x32 48x48 57x57 64x64 72x72 110x110 114x114 120x120 128x128 144x144 152x152" type="image/x-icon" href="{{ "/favicon.ico" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="152x152" href="{{ "/favicon-152-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="152x152" type="image/png" href="{{ "/favicon-152-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="144x144" href="{{ "/favicon-144-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="144x144" type="image/png" href="{{ "/favicon-144-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="120x120" href="{{ "/favicon-120-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="120x120" type="image/png" href="{{ "/favicon-120-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="114x114" href="{{ "/favicon-114-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="114x114" type="image/png" href="{{ "/favicon-114-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="180x180" href="{{ "/favicon-180-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="180x180" type="image/png" href="{{ "/favicon-180-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" sizes="72x72" href="{{ "/favicon-72-precomposed.png" | relURL }}"> | <link rel="apple-touch-icon" sizes="72x72" type="image/png" href="{{ "/favicon-72-precomposed.png" | relURL }}"> | ||||||
| <link rel="apple-touch-icon" href="{{ "/favicon-57.png" | relURL }}"> | <link rel="apple-touch-icon" type="image/png" href="{{ "/favicon-57.png" | relURL }}"> | ||||||
| <link rel="icon" sizes="32x32" href="{{ "/favicon-32.png" | relURL }}"> |  | ||||||
| <link rel="icon" sizes="192x192" href="{{ "/favicon-192.png" | relURL }}"> |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| <nav id="mobile-navbar" class="nav container"> | <nav id="mobile-navbar" class="nav container"> | ||||||
|   <span style="overflow:hidden; max-width: 80%; display: inline-block; vertical-align:bottom;"> |   <span style="overflow:hidden; max-width: 80%; display: inline-block; vertical-align:bottom;"> | ||||||
|     {{ .Params.mobile_menu_title }} |     {{ default .Params.menu_title .Params.mobile_menu_title }} | ||||||
|   </span> |   </span> | ||||||
|   <label for="mobile-toggle" id="hamburger"> |   <label for="mobile-toggle" id="hamburger"> | ||||||
|     <svg style="width:2em;height:2em;" viewBox="0 0 24 24"> |     <svg style="width:2em;height:2em;" viewBox="0 0 24 24"> | ||||||
| @@ -12,15 +12,15 @@ | |||||||
|   <input type="checkbox" name="mobile-toggle" id="mobile-toggle"> |   <input type="checkbox" name="mobile-toggle" id="mobile-toggle"> | ||||||
|   <div class="" id="menu"> |   <div class="" id="menu"> | ||||||
|     {{ with .Site.GetPage "articles" }} |     {{ with .Site.GetPage "articles" }} | ||||||
|       <a href="{{ "articles/" | relLangURL }}" class="navbar-item">{{ .Params.mobile_menu_title }}</a> |       <a href="{{ "articles/" | relLangURL }}" class="navbar-item">{{ default .Params.menu_title .Params.mobile_menu_title  }}</a> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|     {{ with .Site.GetPage "blog" }} |     {{ with .Site.GetPage "blog" }} | ||||||
|       <a href="{{ "blog/" | relLangURL }}" class="navbar-item">{{ .Params.mobile_menu_title }}</a> |       <a href="{{ "blog/" | relLangURL }}" class="navbar-item">{{ default .Params.menu_title .Params.mobile_menu_title }}</a> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|     <a href="https://git.doublefourteen.io/explore/repos" class="navbar-item external-link external-link-light">{{ i18n "menu-source" }}</a> |     <a href="https://git.doublefourteen.io/explore/repos" class="navbar-item external-link external-link-light">{{ i18n "menu-source" }}</a> | ||||||
|     {{ with .Site.GetPage "doublefourteen"}} |     {{ with .Site.GetPage "doublefourteen"}} | ||||||
|       <a href="{{ "doublefourteen/" | relLangURL }}" class="navbar-item df-community-link"> |       <a href="{{ "doublefourteen/" | relLangURL }}" class="navbar-item df-community-link"> | ||||||
|         {{ .Params.mobile_menu_title }} |         {{ default .Params.menu_title .Params.mobile_menu_title }} | ||||||
|       </a> |       </a> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user