mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
39 Commits
v0.15.0-al
...
v0.15.0-be
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c44340ef9e | ||
![]() |
8dfe0cb9d4 | ||
![]() |
fdb8287951 | ||
![]() |
f4f9b7c754 | ||
![]() |
4bb5ba728a | ||
![]() |
bdb8c43fb9 | ||
![]() |
63e51006ed | ||
![]() |
37b623e48c | ||
![]() |
27019594ca | ||
![]() |
d4ee11b7a5 | ||
![]() |
009314943b | ||
![]() |
826b5f58d8 | ||
![]() |
f6fb80d690 | ||
![]() |
8ed98bc5b4 | ||
![]() |
0cc3775370 | ||
![]() |
7be81f4393 | ||
![]() |
869f696a67 | ||
![]() |
c6d942b350 | ||
![]() |
18275acc80 | ||
![]() |
a85540f8de | ||
![]() |
3c93828d4f | ||
![]() |
8ca629978f | ||
![]() |
d99d416838 | ||
![]() |
b58a69b2ad | ||
![]() |
49d7736e1a | ||
![]() |
04531b6158 | ||
![]() |
b7fb9fb05b | ||
![]() |
4a78bd9e6b | ||
![]() |
4d0007a26b | ||
![]() |
ac7e564857 | ||
![]() |
f804ab747c | ||
![]() |
cfd292ddff | ||
![]() |
d4b0c379e2 | ||
![]() |
60ebd5fd41 | ||
![]() |
19a4398c90 | ||
![]() |
841c2e397f | ||
![]() |
3f42d781ec | ||
![]() |
dd9fcc6cbd | ||
![]() |
70aed1ed63 |
14
assets/js/alert.js
Normal file
14
assets/js/alert.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const alert = document.getElementById('page-alert')
|
||||
const closeBtn = document.getElementById('page-alert-btn-close')
|
||||
if (alert !== null && closeBtn !== null) {
|
||||
const version = alert.getAttribute('data-page-alert-version') || 'unknown'
|
||||
const hideAlert = sessionStorage.getItem(`page-alert-${version}`) !== null
|
||||
if (hideAlert) {
|
||||
alert.classList.add('d-none')
|
||||
}
|
||||
|
||||
closeBtn.addEventListener('click', () => {
|
||||
sessionStorage.setItem(`page-alert-${version}`, 'seen')
|
||||
alert.classList.add('d-none')
|
||||
})
|
||||
}
|
@@ -62,6 +62,7 @@
|
||||
// scss-docs-end awesome
|
||||
|
||||
// Import Hinode theme styles
|
||||
@import "components/alert.scss";
|
||||
@import "components/blockquote.scss";
|
||||
@import "components/buttons.scss";
|
||||
@import "components/card.scss";
|
||||
|
3
assets/scss/components/_alert.scss
Normal file
3
assets/scss/components/_alert.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
.alert-no-decoration {
|
||||
--bs-alert-border-radius: none;
|
||||
}
|
@@ -27,6 +27,20 @@ defaultContentLanguage = "en"
|
||||
defaultContentLanguageInSubdir = true
|
||||
# toml-docs-end language
|
||||
|
||||
# toml-docs-start redirect
|
||||
[outputFormats.REDIR]
|
||||
mediaType = "text/netlify"
|
||||
baseName = "_redirects"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
[mediaTypes."text/netlify"]
|
||||
delimiter = ""
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "REDIR"]
|
||||
# toml-docs-end redirect
|
||||
|
||||
# toml-docs-start build
|
||||
[build]
|
||||
writeStats = true
|
||||
|
@@ -8,10 +8,13 @@
|
||||
|
||||
# toml-docs-start docs
|
||||
[docs]
|
||||
latest = "1.0"
|
||||
version = "0.8"
|
||||
basePath = ""
|
||||
github = "https://github.com/gethinode/hinode"
|
||||
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||
checkVersion = true
|
||||
latestURL = "https://demo.gethinode.com/"
|
||||
# toml-docs-end docs
|
||||
|
||||
# toml-docs-start home
|
||||
|
@@ -91,6 +91,10 @@
|
||||
translation: "Code"
|
||||
- id: latest
|
||||
translation: "latest"
|
||||
- id: allVersions
|
||||
translation: "All versions"
|
||||
- id: newerVersionAlert
|
||||
translation: "There is a newer version of {{ . }}!"
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
|
@@ -81,6 +81,10 @@
|
||||
translation: "Code"
|
||||
- id: latest
|
||||
translation: "meest recente"
|
||||
- id: allVersions
|
||||
translation: "Alle versies"
|
||||
- id: newerVersionAlert
|
||||
translation: "Er is een nieuwere versie van {{ . }}!"
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
|
@@ -3,6 +3,15 @@
|
||||
{{- $.Scratch.Set "version" $version -}}
|
||||
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
||||
|
||||
{{- if and site.Params.docs.checkVersion $version -}}
|
||||
{{- if ne $version "latest" -}}
|
||||
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
||||
{{- $.Scratch.Set "pageAlertMsg" (T "newerVersionAlert" site.Title) -}}
|
||||
{{- $.Scratch.Set "pageAlertURL" (or site.Params.docs.latestURL site.baseURL) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||
<head>
|
||||
|
10
layouts/index.redir
Normal file
10
layouts/index.redir
Normal file
@@ -0,0 +1,10 @@
|
||||
{{- range .Site.Params.docs.releases -}}
|
||||
{{- if .redirect -}}
|
||||
{{ urls.JoinPath .url "/*" }} {{ urls.JoinPath .redirect ":splat" }} 200
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{ range $p := .Site.AllPages }}
|
||||
{{- range .Aliases -}}
|
||||
{{ if hasPrefix . "." }}{{ urls.JoinPath $p.RelPermalink . }}{{ else }}{{ . }}{{ end }} {{ $p.RelPermalink }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
@@ -98,7 +98,7 @@
|
||||
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
||||
{{- end -}}
|
||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.RelPermalink (index $widths $index) -}}
|
||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
||||
{{- end -}}
|
||||
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
||||
{{- end -}}
|
||||
@@ -145,7 +145,7 @@
|
||||
srcset="{{ . }}"
|
||||
sizes="100vw"
|
||||
{{- end }}
|
||||
src="{{ $fallbackURL }}"
|
||||
src="{{ absURL $fallbackURL }}"
|
||||
alt="{{ $title }}">
|
||||
</div>
|
||||
{{- if $caption -}}
|
||||
|
@@ -58,14 +58,19 @@
|
||||
|
||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}">
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="navbar-version-switch">
|
||||
<span class="d-md-none"></span>{{ $version }}
|
||||
{{ if $collapsed }}{{ site.Title }} {{ end }}{{ $version }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-version-switch">
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $active := eq $item.label $version -}}
|
||||
{{- $disabled := false -}}
|
||||
{{- if site.IsServer }}
|
||||
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
||||
{{- end -}}
|
||||
{{ if $item.url }}
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}" href="{{ $item.url }}">{{ $item.label }}
|
||||
{{- $url := (path.Join $item.url) | relLangURL -}}
|
||||
<a class="pe-5 dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}{{ if $disabled }} disabled{{ end }}" href="{{ $url }}">{{ $item.label }}
|
||||
{{ if $item.latest }} ({{ T "latest" }}){{ end }}
|
||||
{{ if $active }}
|
||||
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check") }}</span>
|
||||
@@ -77,6 +82,13 @@
|
||||
<li><span class="dropdown-header fs-6">{{ $item.label }}</span></li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- if site.Params.docs.overview -}}
|
||||
{{ if gt (len $list) 0 }}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||
<li>
|
||||
{{- $url := (path.Join site.Params.docs.overview) | relLangURL -}}
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" href="{{ $url }}">{{ T "allVersions" }}</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
@@ -169,110 +181,113 @@
|
||||
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
|
||||
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
|
||||
|
||||
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
<div class="container-xxl p-0">
|
||||
<!-- Insert sidebar toggler when applicable -->
|
||||
<div class="d-flex">
|
||||
{{- if $page.Scratch.Get "sidebar" -}}
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
<div class="container-xxl p-0">
|
||||
<!-- Insert sidebar toggler when applicable -->
|
||||
<div class="d-flex">
|
||||
{{- if $page.Scratch.Get "sidebar" -}}
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
</button>
|
||||
{{- else -}}
|
||||
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
</button>
|
||||
{{- end -}}
|
||||
</div>
|
||||
|
||||
<!-- Insert the brand logo or name -->
|
||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
||||
{{- if $logo -}}
|
||||
<img src="{{ $logo }}" alt="{{ $title }} logo" height="30">
|
||||
{{- else -}}
|
||||
<span class="fw-bold">{{ $title }}</span>
|
||||
{{- end -}}
|
||||
</a>
|
||||
|
||||
<!-- Insert main navigation toggler -->
|
||||
<div class="d-flex fw-30">
|
||||
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
|
||||
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||
<span class="toggler-icon top-bar emphasis"></span>
|
||||
<span class="toggler-icon middle-bar emphasis"></span>
|
||||
<span class="toggler-icon bottom-bar emphasis"></span>
|
||||
</button>
|
||||
{{- else -}}
|
||||
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
</button>
|
||||
{{- end -}}
|
||||
</div>
|
||||
|
||||
<!-- Insert the brand logo or name -->
|
||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
||||
{{- if $logo -}}
|
||||
<img src="{{ $logo }}" alt="{{ $title }} logo" height="30">
|
||||
{{- else -}}
|
||||
<span class="fw-bold">{{ $title }}</span>
|
||||
{{- end -}}
|
||||
</a>
|
||||
|
||||
<!-- Insert main navigation toggler -->
|
||||
<div class="d-flex fw-30">
|
||||
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
|
||||
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||
<span class="toggler-icon top-bar emphasis"></span>
|
||||
<span class="toggler-icon middle-bar emphasis"></span>
|
||||
<span class="toggler-icon bottom-bar emphasis"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="navbar-collapse collapse" id="{{ $id }}">
|
||||
<!-- Insert search input -->
|
||||
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
||||
|
||||
<!-- Render top-menu items (maximum depth of 2) -->
|
||||
<ul class="navbar-nav ms-auto">
|
||||
{{- range $menu := $menus -}}
|
||||
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
||||
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||
{{- if .HasChildren -}}
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
{{- range .Children -}}
|
||||
{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
|
||||
</div>
|
||||
|
||||
<div class="navbar-collapse collapse" id="{{ $id }}">
|
||||
<!-- Insert search input -->
|
||||
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
||||
|
||||
<!-- Render top-menu items (maximum depth of 2) -->
|
||||
<ul class="navbar-nav ms-auto">
|
||||
{{- range $menu := $menus -}}
|
||||
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
||||
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||
{{- if .HasChildren -}}
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
{{- range .Children -}}
|
||||
{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
{{- end -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert divider if applicable -->
|
||||
{{- if or $enableLanguage $enableVersions -}}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert language switcher if applicable -->
|
||||
{{- if $enableLanguage -}}
|
||||
{{- $currentLang := $page.Language.Lang -}}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
||||
</a>
|
||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end ">
|
||||
{{- if $page.IsTranslated -}}
|
||||
{{- range $page.AllTranslations -}}
|
||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- range site.Languages -}}
|
||||
<li><a class="dropdown-item" href="/{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
{{- end -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert divider if applicable -->
|
||||
{{- if or $enableLanguage $enableVersions -}}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert language switcher if applicable -->
|
||||
{{- if $enableLanguage -}}
|
||||
{{- $currentLang := $page.Language.Lang -}}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
||||
</a>
|
||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end ">
|
||||
{{- if $page.IsTranslated -}}
|
||||
{{- range $page.AllTranslations -}}
|
||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- range site.Languages -}}
|
||||
<li><a class="dropdown-item" href="/{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert version switcher -->
|
||||
{{- if $enableVersions -}}
|
||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true ) -}}
|
||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false) -}}
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert color mode switcher -->
|
||||
{{- if $enableDarkMode -}}
|
||||
<!-- Insert divider -->
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
|
||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
|
||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert version switcher -->
|
||||
{{- if $enableVersions -}}
|
||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true ) -}}
|
||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false) -}}
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert color mode switcher -->
|
||||
{{- if $enableDarkMode -}}
|
||||
<!-- Insert divider -->
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
|
||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
|
||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</nav>
|
||||
</div>
|
||||
|
15
layouts/partials/assets/page-alert.html
Normal file
15
layouts/partials/assets/page-alert.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{{- $page := .page -}}
|
||||
{{- if not $page -}}
|
||||
{{- errorf "partial [assets/page-alert.html] - Missing value for param 'page'" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $pageAlertMsg := $page.Scratch.Get "pageAlertMsg" -}}
|
||||
{{- $pageAlertURL := $page.Scratch.Get "pageAlertURL" -}}
|
||||
{{- $version := $page.Scratch.Get "version" -}}
|
||||
|
||||
{{- if $pageAlertMsg -}}
|
||||
<div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}">
|
||||
<a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a>
|
||||
<button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||
</div>
|
||||
{{- end -}}
|
@@ -20,9 +20,9 @@
|
||||
{{- end -}}
|
||||
|
||||
{{- if not hugo.IsProduction -}}
|
||||
<script src="{{ $js.RelPermalink }}"></script>
|
||||
<script src="{{ $js.Permalink }}"></script>
|
||||
{{ else -}}
|
||||
{{ $js = $js | minify | fingerprint -}}
|
||||
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ end -}}
|
||||
{{ end -}}
|
32
layouts/partials/utilities/IsOlder.html
Normal file
32
layouts/partials/utilities/IsOlder.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!--
|
||||
Returns true if the current version is older than the latest version defined in the docs section of the site
|
||||
parameters. The verification supports semver patterns MAJOR.MINOR.PATCH with an optional suffix.
|
||||
|
||||
Original code by solus on https://discourse.gohugo.io/t/sorting-semantic-version-numbers/40838/6.
|
||||
-->
|
||||
|
||||
{{ $current := .current }}
|
||||
{{ $latest := site.Params.docs.latest }}
|
||||
|
||||
{{- define "partials/padZeroPrefix.html" -}}
|
||||
{{- $padSize := 6 }}
|
||||
{{- $paddedString := replaceRE "(\\d+)" (print (strings.Repeat (sub $padSize 1) "0") "$1") . }}
|
||||
{{- $trimmedString := replaceRE (print "0+(\\d{" $padSize "})") "$1" $paddedString }}
|
||||
{{- return $trimmedString }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "partials/trimZeroPrefix.html" -}}
|
||||
{{- return replaceRE "0+(\\d+)" "$1" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- $isOlder := false -}}
|
||||
|
||||
{{- if and $current $latest }}
|
||||
{{- $versions := slice $current $latest }}
|
||||
{{- $paddedVersions := apply $versions "partial" "padZeroPrefix" "." }}
|
||||
{{- $sortedVersions := (sort $paddedVersions "value" "desc") }}
|
||||
{{- $sortedVersions = apply $sortedVersions "partial" "trimZeroPrefix" "." }}
|
||||
{{ $isOlder = ne (index $sortedVersions 0) $current }}
|
||||
{{- end -}}
|
||||
|
||||
{{- return $isOlder -}}
|
58
package-lock.json
generated
58
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.15.0-alpha2",
|
||||
"version": "0.15.0-beta5",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.15.0-alpha2",
|
||||
"version": "0.15.0-beta5",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||
@@ -259,9 +259,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.42.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
|
||||
"integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
|
||||
"version": "8.43.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
|
||||
"integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@@ -1897,15 +1897,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.42.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
|
||||
"integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
|
||||
"version": "8.43.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
|
||||
"integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@eslint/eslintrc": "^2.0.3",
|
||||
"@eslint/js": "8.42.0",
|
||||
"@eslint/js": "8.43.0",
|
||||
"@humanwhocodes/config-array": "^0.11.10",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@@ -6300,9 +6300,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"version": "15.7.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.7.0.tgz",
|
||||
"integrity": "sha512-fQRwHwWuZsDn4ENyE9AsKkOkV9WlD2CmYiVDbdZPdS3iZh0ceypOn1EuwTNuZ8xTrHF+jVeIEzLtFFSlD/nJHg==",
|
||||
"version": "15.8.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.8.0.tgz",
|
||||
"integrity": "sha512-x9qBk84F3MEjMEUNCE7MtWmfj9G9y5XzJ0cpQeJdy2l/IoqjC8Ih0N0ytmOTnXE4Yv0J7I1cmVRQUVNSPCxTsA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@csstools/css-parser-algorithms": "^2.2.0",
|
||||
@@ -6345,7 +6345,6 @@
|
||||
"supports-hyperlinks": "^3.0.0",
|
||||
"svg-tags": "^1.0.0",
|
||||
"table": "^6.8.1",
|
||||
"v8-compile-cache": "^2.3.0",
|
||||
"write-file-atomic": "^5.0.1"
|
||||
},
|
||||
"bin": {
|
||||
@@ -6806,12 +6805,6 @@
|
||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/v8-compile-cache": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
|
||||
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/validate-npm-package-license": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
|
||||
@@ -7162,9 +7155,9 @@
|
||||
}
|
||||
},
|
||||
"@eslint/js": {
|
||||
"version": "8.42.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
|
||||
"integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
|
||||
"version": "8.43.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
|
||||
"integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
|
||||
"dev": true
|
||||
},
|
||||
"@fortawesome/fontawesome-free": {
|
||||
@@ -8311,15 +8304,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.42.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
|
||||
"integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
|
||||
"version": "8.43.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
|
||||
"integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@eslint/eslintrc": "^2.0.3",
|
||||
"@eslint/js": "8.42.0",
|
||||
"@eslint/js": "8.43.0",
|
||||
"@humanwhocodes/config-array": "^0.11.10",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@@ -11367,9 +11360,9 @@
|
||||
}
|
||||
},
|
||||
"stylelint": {
|
||||
"version": "15.7.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.7.0.tgz",
|
||||
"integrity": "sha512-fQRwHwWuZsDn4ENyE9AsKkOkV9WlD2CmYiVDbdZPdS3iZh0ceypOn1EuwTNuZ8xTrHF+jVeIEzLtFFSlD/nJHg==",
|
||||
"version": "15.8.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.8.0.tgz",
|
||||
"integrity": "sha512-x9qBk84F3MEjMEUNCE7MtWmfj9G9y5XzJ0cpQeJdy2l/IoqjC8Ih0N0ytmOTnXE4Yv0J7I1cmVRQUVNSPCxTsA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@csstools/css-parser-algorithms": "^2.2.0",
|
||||
@@ -11412,7 +11405,6 @@
|
||||
"supports-hyperlinks": "^3.0.0",
|
||||
"svg-tags": "^1.0.0",
|
||||
"table": "^6.8.1",
|
||||
"v8-compile-cache": "^2.3.0",
|
||||
"write-file-atomic": "^5.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -11745,12 +11737,6 @@
|
||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
||||
"dev": true
|
||||
},
|
||||
"v8-compile-cache": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
|
||||
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
|
||||
"dev": true
|
||||
},
|
||||
"validate-npm-package-license": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.15.0-alpha2",
|
||||
"version": "0.15.0-beta5",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
|
Reference in New Issue
Block a user