set up base template

- set up top nav
  - auto generate menu from `main`
  - configurable brand (can be hidden or custom, defaults to site title)
  - top nav can be configured to be sticky
- css in top, js at the end of body
- default google analitycs template added to base
- added highlight.js
This commit is contained in:
Gardient
2018-02-18 12:39:17 +02:00
parent c21f7b9012
commit 83de4ef633
10 changed files with 27 additions and 44 deletions

View File

@@ -1,11 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
{{ partialCached "head.html" . }} {{ partial "head" . }}
{{ partial "title" . }}
</head> </head>
<body> <body{{ if and (isset $.Site.Params "fixednav") $.Site.Params.fixednav }} class="navbar-fixed-top"{{ end }}>
{{ block "header" . }} {{ block "header" . }}
{{ partialCached "header.html" . }} {{ partial "nav" . }}
{{ end }} {{ end }}
<main role="main" class="container"> <main role="main" class="container">
{{ block "main" . }} {{ block "main" . }}
@@ -13,12 +14,11 @@
</main> </main>
<footer class="container"> <footer class="container">
{{ block "footer" . }} {{ block "footer" . }}
{{ partialCached "footer.html" . }} {{ partial "footer" . }}
{{ end }} {{ end }}
</footer> </footer>
{{ partialCached "javascript.html" . }} {{ partial "javascript" . }}
{{ partialCached "google_analytics.html" . }} {{ template "_internal/google_analytics_async.html" . }}
{{ partialCached "piwik_analytics.html" . }}
</body> </body>
</html> </html>

View File

@@ -1,12 +0,0 @@
{{ with .Site.Params.googleAnalytics }}
<script>
(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','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ . }}', 'auto');
ga('send', 'pageview');
</script>
{{ end }}

View File

@@ -5,8 +5,6 @@
<meta name="description" content="{{ if .IsNode }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ else }}{{ with .Description }}{{ . }}{{ end }}{{ end }}"> <meta name="description" content="{{ if .IsNode }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ else }}{{ with .Description }}{{ . }}{{ end }}{{ end }}">
{{ .Hugo.Generator }} {{ .Hugo.Generator }}
<title>{{ if .IsHome }}{{ .Title }}{{ else }}{{ .Title }} - {{ .Site.Title }}{{ end }}</title>
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.0.0-beta.3/slate/bootstrap.min.css" integrity="sha256-XuLfpTfBrr1SFUTEBsuCZAyEL9FaMqJHX6v2Clowmu8=" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.0.0-beta.3/slate/bootstrap.min.css" integrity="sha256-XuLfpTfBrr1SFUTEBsuCZAyEL9FaMqJHX6v2Clowmu8=" crossorigin="anonymous" />

View File

@@ -1 +0,0 @@
{{ partial "menu.html" . }}

View File

@@ -9,7 +9,7 @@
<!-- Bootstrap and dependencies --> <!-- Bootstrap and dependencies -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha256-PCsx7lOyGhyGmzsO5MGXhzwV6UpNTlNf1p6V6w2CppQ=" crossorigin="anonymous" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.3/js/bootstrap.min.js" integrity="sha256-JNyuT3QsYBdyeKxKBwnGJAJiACWcow2TjhNruIFFPMQ=" crossorigin="anonymous"></script>
<script src="{{ .Site.BaseURL }}js/hugo-bootswatch-slate.js"></script> <script src="{{ .Site.BaseURL }}js/hugo-bootswatch-slate.js"></script>

View File

@@ -1,7 +1,11 @@
<nav class="navbar navbar-expand-lg navbar-dark bg-primary"> <nav class="navbar navbar-expand-lg navbar-dark bg-primary{{ if and (isset $.Site.Params "fixednav") $.Site.Params.fixednav }} fixed-top{{ end }}">
<div class="container"> <div class="container">
<a class="navbar-brand" href="/">{{ $.Site.Params.brand | safeHTML}}</a> {{ if or ( not ( isset $.Site.Params "showbrand" ) ) $.Site.Params.showbrand}}
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" <a class="navbar-brand" href="/">
{{ default $.Site.Title $.Site.Params.brand}}
</a>
{{ end }}
<button class="navbar-toggler my-1" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar"
aria-expanded="false" aria-label="Toggle navigation"> aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
@@ -12,7 +16,11 @@
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
{{ if .HasChildren }} {{ if .HasChildren }}
<li class="nav-item dropdown{{ if $currentPage.HasMenuCurrent "main" . }} active{{ end }}"> <li class="nav-item dropdown{{ if $currentPage.HasMenuCurrent "main" . }} active{{ end }}">
<a href="#" class="navlink dropdown-toggle" role="menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ .Name }}</a> {{ if .URL }}
<a href="{{ .URL }}" class="nav-link dropdown-toggle" role="menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ .Name }}</a>
{{ else }}
<a href="#" class="nav-link dropdown-toggle" role="menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ .Name }}</a>
{{ end }}
<div class="dropdown-menu"> <div class="dropdown-menu">
{{ range .Children}} {{ range .Children}}
<a href="{{ .URL }}" class="dropdown-item{{ if $currentPage.IsMenuCurrent "main" . }} active{{ end }}">{{ .Name }}</a> <a href="{{ .URL }}" class="dropdown-item{{ if $currentPage.IsMenuCurrent "main" . }} active{{ end }}">{{ .Name }}</a>

View File

@@ -1,16 +0,0 @@
{{ with .Site.Params.piwikAnalytics }}
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="{{ .piwikRoot }}";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', {{ .siteID }}]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="{{ .piwikRoot}}piwik.php?idsite={{ .siteID }}" style="border:0;" alt="" /></p></noscript>
{{ end }}

View File

@@ -0,0 +1 @@
<title>{{ if .IsHome }}{{ .Title }}{{ else }}{{ .Title }} - {{ .Site.Title }}{{ end }}</title>

View File

@@ -0,0 +1,3 @@
body.navbar-fixed-top {
padding-top: 4.5rem
}

View File

@@ -1,2 +1,4 @@
/* globals hljs */ /* globals hljs */
if (hljs !== null) hljs.initHighlightingOnLoad() ;(function () {
if (typeof hljs !== 'undefined' && hljs != null) hljs.initHighlightingOnLoad()
})()