1
0

baseof.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <!DOCTYPE html>
  2. <html lang="{{ .Site.Language.Lang }}">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="Content-Language" content="{{ .Site.Language.Lang }}">
  7. <meta name="color-scheme" content="light dark">
  8. {{ if .Site.Params.csp }}
  9. {{ partial "csp.html" . }}
  10. {{ end }}
  11. {{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
  12. <meta name="description" content="{{ .Description | default (.Summary | default .Site.Params.description ) }}">
  13. <meta name="keywords" content="{{ (delimit .Keywords ",") | default .Site.Params.keywords }}">
  14. {{ template "_internal/twitter_cards.html" . }}
  15. {{ template "_internal/opengraph.html" . }}
  16. <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
  17. {{ if .Permalink }}
  18. <link rel="canonical" href="{{ .Permalink }}">
  19. {{ end }}
  20. <link rel="preload" href="/fonts/forkawesome-webfont.woff2?v=1.2.0" as="font" type="font/woff2" crossorigin>
  21. {{ if .Site.IsServer }}
  22. {{ $cssOpts := (dict "targetPath" "css/coder.css" "enableSourceMap" true ) }}
  23. {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts }}
  24. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
  25. {{ else }}
  26. {{ $cssOpts := (dict "targetPath" "css/coder.css" ) }}
  27. {{ $styles := resources.Get "scss/coder.scss" | resources.ExecuteAsTemplate "style.coder.css" . | toCSS $cssOpts | minify | fingerprint }}
  28. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
  29. {{ end }}
  30. {{ if .Site.Params.rtl }}
  31. {{ if .Site.IsServer }}
  32. {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" "enableSourceMap" true ) }}
  33. {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts }}
  34. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
  35. {{ else }}
  36. {{ $cssOpts := (dict "targetPath" "css/coder-rtl.css" ) }}
  37. {{ $styles := resources.Get "scss/coder-rtl.scss" | resources.ExecuteAsTemplate "style.coder-rtl.css" . | toCSS $cssOpts | minify | fingerprint }}
  38. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
  39. {{ end }}
  40. {{ end }}
  41. {{ if or (eq .Site.Params.colorScheme "auto") (eq .Site.Params.colorScheme "dark") }}
  42. {{ if .Site.IsServer }}
  43. {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" "enableSourceMap" true ) }}
  44. {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts }}
  45. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
  46. {{ else }}
  47. {{ $cssOpts := (dict "targetPath" "css/coder-dark.css" ) }}
  48. {{ $styles := resources.Get "scss/coder-dark.scss" | resources.ExecuteAsTemplate "style.coder-dark.css" . | toCSS $cssOpts | minify | fingerprint }}
  49. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
  50. {{ end }}
  51. {{ end }}
  52. {{ range .Site.Params.customCSS }}
  53. {{ if $.Site.IsServer }}
  54. {{ $styles := resources.Get . }}
  55. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
  56. {{ else }}
  57. {{ $styles := resources.Get . | minify | fingerprint }}
  58. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
  59. {{ end }}
  60. {{ end }}
  61. {{ range .Site.Params.customSCSS }}
  62. {{/* We don't change the targetPath to because it's transparent to users */}}
  63. {{ if $.Site.IsServer }}
  64. {{ $cssOpts := (dict "enableSourceMap" true ) }}
  65. {{ $styles := resources.Get . | toCSS $cssOpts }}
  66. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
  67. {{ else }}
  68. {{ $styles := resources.Get . | toCSS | minify | fingerprint }}
  69. <link rel="stylesheet" href="{{ $styles.RelPermalink }}" integrity="{{ $styles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
  70. {{ end }}
  71. {{ end }}
  72. <link rel="icon" type="image/png" href="{{ .Site.Params.favicon_32 | default "/images/favicon-32x32.png" | relURL }}" sizes="32x32">
  73. <link rel="icon" type="image/png" href="{{ .Site.Params.favicon_16 | default "/images/favicon-16x16.png" | relURL }}" sizes="16x16">
  74. <link rel="apple-touch-icon" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
  75. <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.touchicon | default "/images/apple-touch-icon.png" | relURL }}">
  76. {{ range .AlternativeOutputFormats -}}
  77. {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
  78. {{ end -}}
  79. {{ if .Site.Params.enableTwemoji }}
  80. <script defer src="https://twemoji.maxcdn.com/v/13.0.2/twemoji.min.js"
  81. integrity="sha384-wyB/MspSJ/r2bT2kCj44qtsYRYlpzO2oAPhRj5myrWD63dt6qWv4x8AZe7Fl3K3b" crossorigin="anonymous"></script>
  82. {{ end }}
  83. {{ hugo.Generator }}
  84. </head>
  85. {{ $csClass := "colorscheme-light" }}
  86. {{ if eq .Site.Params.colorScheme "dark" }}
  87. {{ $csClass = "colorscheme-dark" }}
  88. {{ else if eq .Site.Params.colorScheme "auto" }}
  89. {{ $csClass = "colorscheme-auto" }}
  90. {{ end }}
  91. <body class="preload-transitions {{ $csClass }}{{ if .Site.Params.rtl }} rtl{{ end }}"
  92. onload="{{ if .Site.Params.enableTwemoji }} twemoji.parse(document.body); {{ end }}"
  93. >
  94. {{ partial "float" . }}
  95. <main class="wrapper">
  96. {{ partial "header.html" . }}
  97. <div class="content">
  98. {{ block "content" . }}{{ end }}
  99. </div>
  100. {{ partial "footer.html" . }}
  101. </main>
  102. {{ if .Site.IsServer }}
  103. {{ $script := resources.Get "js/coder.js" }}
  104. <script src="{{ $script.RelPermalink }}"></script>
  105. {{ else }}
  106. {{ $script := resources.Get "js/coder.js" | minify | fingerprint }}
  107. <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
  108. {{ end }}
  109. {{ range .Site.Params.customJS }}
  110. {{ if $.Site.IsServer }}
  111. {{ $script := resources.Get . }}
  112. <script src="{{ $script.RelPermalink }}"></script>
  113. {{ else }}
  114. {{ $script := resources.Get . | minify | fingerprint }}
  115. <script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity }}"></script>
  116. {{ end }}
  117. {{ end }}
  118. {{ template "_internal/google_analytics.html" . }}
  119. {{ if and .Site.Params.fathomAnalytics .Site.Params.fathomAnalytics.siteID }}
  120. {{- partial "analytics/fathom" . -}}
  121. {{ end }}
  122. {{ if and .Site.Params.plausibleAnalytics .Site.Params.plausibleAnalytics.domain }}
  123. {{- partial "analytics/plausible" . -}}
  124. {{ end }}
  125. {{ if and .Site.Params.goatCounter .Site.Params.goatCounter.code }}
  126. {{- partial "analytics/goatcounter" . -}}
  127. {{ end }}
  128. {{ if and .Site.Params.cloudflare .Site.Params.cloudflare.token }}
  129. {{- partial "analytics/cloudflare" . -}}
  130. {{ end }}
  131. {{ if and .Site.Params.matomo .Site.Params.matomo.serverURL }}
  132. {{- partial "analytics/matomo" . -}}
  133. {{ end }}
  134. {{ if and .Site.Params.googleTagManager .Site.Params.googleTagManager.id }}
  135. {{- partial "analytics/googletagmanager" . -}}
  136. {{ end }}
  137. </body>
  138. </html>