Compare commits

...

71 Commits

Author SHA1 Message Date
Mark Dumay
3274c7453e Merge pull request #320 from gethinode/develop
Fix breadcrumb hidden by fixed navbar
2023-07-01 06:09:45 +02:00
Mark Dumay
ff622c8080 Merge branch 'main' into develop 2023-07-01 06:03:18 +02:00
mark
455e77b3e9 Bump package release 2023-07-01 06:02:22 +02:00
mark
22c85f7997 Fix [BUG] Breadcrumbs are not visible #317 2023-07-01 05:56:50 +02:00
mark
d8799fabb5 Enable breadcrumb by default 2023-07-01 05:55:22 +02:00
github-actions[bot]
8ae01a2ce1 Merge pull request #319 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.111.0
Bump hugo-bin from 0.110.1 to 0.111.0
2023-06-30 13:38:24 +00:00
dependabot[bot]
d9d3054f22 Bump hugo-bin from 0.110.1 to 0.111.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.110.1 to 0.111.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.110.1...v0.111.0)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 13:32:50 +00:00
github-actions[bot]
0bf25f7acd Merge pull request #318 from gethinode/dependabot/npm_and_yarn/stylelint-config-standard-scss-10.0.0
Bump stylelint-config-standard-scss from 9.0.0 to 10.0.0
2023-06-30 13:32:05 +00:00
dependabot[bot]
d5c228d43c Bump stylelint-config-standard-scss from 9.0.0 to 10.0.0
Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 9.0.0 to 10.0.0.
- [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v9.0.0...v10.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-standard-scss
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 13:28:31 +00:00
mark
96886e20d7 Refine img statement 2023-06-28 09:19:41 +02:00
Mark Dumay
171259fb29 Merge pull request #316 from gethinode/develop
Refine config
2023-06-28 09:13:30 +02:00
Mark Dumay
a706936849 Merge branch 'main' into develop 2023-06-28 07:42:06 +02:00
mark
f538f3b772 Bump bootstrap dependency 2023-06-28 07:40:15 +02:00
mark
a848fccec8 Bump package release 2023-06-28 07:37:27 +02:00
mark
69352dd60a Bump build dependencies 2023-06-28 07:31:23 +02:00
mark
e1c8641d41 Rename config.toml to hugo.toml 2023-06-28 07:20:57 +02:00
mark
deb8dfb3cb Adjust min Hugo version 2023-06-28 07:17:23 +02:00
mark
0dcd3f02c9 Add versioning feature 2023-06-28 07:17:03 +02:00
mark
d3105436a3 Add keyword 2023-06-28 07:16:43 +02:00
mark
38c982f7f4 Remove unused config 2023-06-28 07:08:44 +02:00
mark
9c19327e19 Shorten PR label 2023-06-28 06:40:35 +02:00
Mark Dumay
a9f2d56dd6 Merge pull request #315 from gethinode/develop
Fix post-processing of social URLs
2023-06-28 06:35:05 +02:00
mark
434e02e7f5 Add npm badge 2023-06-28 06:30:11 +02:00
Mark Dumay
7e44d71ecb Merge branch 'main' into develop 2023-06-28 06:11:28 +02:00
mark
be8c6d539b Fix post-processing of social URLs 2023-06-28 06:10:45 +02:00
Mark Dumay
3db2b1f734 Merge pull request #313 from gethinode/develop
Finalize versioned docs support
2023-06-26 17:34:24 +02:00
mark
6802524aac Fix typo 2023-06-26 17:24:44 +02:00
mark
71cdad17d3 Add versioned-documentation feature 2023-06-26 17:16:38 +02:00
mark
626b82a619 Disable version check by default 2023-06-26 17:07:24 +02:00
Mark Dumay
fbb60a0622 Merge branch 'main' into develop 2023-06-26 16:54:47 +02:00
mark
a0684a8a49 Bump package release 2023-06-26 16:53:20 +02:00
mark
55516602e5 Enable versioning for single docs sites 2023-06-26 16:47:21 +02:00
github-actions[bot]
fcab852216 Merge pull request #312 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.0.1
Bump eslint-plugin-n from 16.0.0 to 16.0.1
2023-06-26 14:11:18 +00:00
dependabot[bot]
cb714201bc Bump eslint-plugin-n from 16.0.0 to 16.0.1
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.0.0 to 16.0.1.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.0.0...16.0.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 14:08:20 +00:00
github-actions[bot]
c8de62f46b Merge pull request #310 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.110.1
Bump hugo-bin from 0.110.0 to 0.110.1
2023-06-23 14:09:09 +00:00
dependabot[bot]
53ab00357e Bump hugo-bin from 0.110.0 to 0.110.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.110.0 to 0.110.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.110.0...v0.110.1)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-23 14:02:52 +00:00
github-actions[bot]
0cc246a79a Merge pull request #309 from gethinode/dependabot/npm_and_yarn/stylelint-15.9.0
Bump stylelint from 15.8.0 to 15.9.0
2023-06-23 13:15:04 +00:00
dependabot[bot]
21541b9f80 Bump stylelint from 15.8.0 to 15.9.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.8.0 to 15.9.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.8.0...15.9.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-23 13:11:28 +00:00
github-actions[bot]
e3d4339730 Merge pull request #308 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.110.0
Bump hugo-bin from 0.109.0 to 0.110.0
2023-06-22 14:08:55 +00:00
dependabot[bot]
710efd0caa Bump hugo-bin from 0.109.0 to 0.110.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.109.0 to 0.110.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.109.0...v0.110.0)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 14:03:55 +00:00
github-actions[bot]
493ff64be0 Merge pull request #307 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.109.0
Bump hugo-bin from 0.108.0 to 0.109.0
2023-06-21 14:14:36 +00:00
dependabot[bot]
f2e35074c2 Bump hugo-bin from 0.108.0 to 0.109.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.108.0 to 0.109.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.108.0...v0.109.0)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-21 14:11:13 +00:00
mark
7597710980 Add netlify.app to CSP config 2023-06-21 06:07:45 +02:00
Mark Dumay
c44340ef9e Merge pull request #306 from gethinode/develop
Bump release version
2023-06-20 09:51:06 +02:00
Mark Dumay
8dfe0cb9d4 Merge branch 'main' into develop 2023-06-20 09:20:08 +02:00
mark
fdb8287951 Bump release version 2023-06-20 09:19:32 +02:00
Mark Dumay
f4f9b7c754 Merge pull request #305 from gethinode/develop
Exclude 'latest' label from version check
2023-06-20 09:18:26 +02:00
Mark Dumay
4bb5ba728a Merge branch 'main' into develop 2023-06-20 09:08:34 +02:00
mark
bdb8c43fb9 Remove unused code 2023-06-20 09:07:26 +02:00
mark
63e51006ed Exclude 'latest' label from version check 2023-06-20 09:07:02 +02:00
Mark Dumay
37b623e48c Merge pull request #304 from gethinode/develop
Add optional alert when version is outdated
2023-06-20 08:33:55 +02:00
Mark Dumay
27019594ca Merge branch 'main' into develop 2023-06-20 08:17:18 +02:00
mark
d4ee11b7a5 Bump release version 2023-06-20 08:16:48 +02:00
mark
009314943b Add optional alert when version is outdated 2023-06-20 08:16:18 +02:00
github-actions[bot]
826b5f58d8 Merge pull request #303 from gethinode/dependabot/npm_and_yarn/eslint-8.43.0
Bump eslint from 8.42.0 to 8.43.0
2023-06-19 14:16:51 +00:00
dependabot[bot]
f6fb80d690 Bump eslint from 8.42.0 to 8.43.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.42.0 to 8.43.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.42.0...v8.43.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 14:12:40 +00:00
github-actions[bot]
8ed98bc5b4 Merge pull request #302 from gethinode/dependabot/npm_and_yarn/stylelint-15.8.0
Bump stylelint from 15.7.0 to 15.8.0
2023-06-19 14:12:10 +00:00
dependabot[bot]
0cc3775370 Bump stylelint from 15.7.0 to 15.8.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.7.0 to 15.8.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.7.0...15.8.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 14:09:11 +00:00
Mark Dumay
7be81f4393 Merge pull request #301 from gethinode/develop
Fix redirects
2023-06-19 10:42:20 +02:00
mark
869f696a67 Fix local image processing and renaming 2023-06-19 10:28:52 +02:00
Mark Dumay
c6d942b350 Merge branch 'main' into develop 2023-06-19 10:09:18 +02:00
mark
18275acc80 Bump package release 2023-06-19 10:08:08 +02:00
mark
a85540f8de Make script references absolute to support rewrites 2023-06-19 10:07:39 +02:00
mark
3c93828d4f Make image references absolute to support rewrites 2023-06-19 10:07:27 +02:00
mark
8ca629978f Make alias redirects relative 2023-06-19 10:03:17 +02:00
mark
d99d416838 Fix redirect newline 2023-06-19 10:03:01 +02:00
mark
b58a69b2ad Include aliases in redirect template 2023-06-19 09:08:11 +02:00
Mark Dumay
49d7736e1a Merge pull request #300 from gethinode/develop
Enable netlify redirects
2023-06-17 13:58:03 +02:00
mark
04531b6158 Bump package release 2023-06-17 13:50:29 +02:00
mark
b7fb9fb05b Enable netlify redirects 2023-06-17 13:49:23 +02:00
Mark Dumay
4a78bd9e6b Merge pull request #299 from gethinode/main
Sync branch
2023-06-17 12:41:54 +02:00
27 changed files with 516 additions and 465 deletions

View File

@@ -9,25 +9,28 @@
<!-- Badges -->
<p align="center">
<a href="https://gohugo.io" alt="Hugo website">
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" />
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
</a>
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
</a>
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" />
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
</a>
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" />
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
</a>
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" />
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
</a>
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" />
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
</a>
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" />
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
</a>
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/gethinode/hinode" />
<img src="https://img.shields.io/github/license/gethinode/hinode">
</a>
</p>

14
assets/js/alert.js Normal file
View 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')
})
}

View File

@@ -62,7 +62,9 @@
// scss-docs-end awesome
// Import Hinode theme styles
@import "components/alert.scss";
@import "components/blockquote.scss";
@import "components/breadcrumb.scss";
@import "components/buttons.scss";
@import "components/card.scss";
@import "components/carousel.scss";

View File

@@ -0,0 +1,3 @@
.alert-no-decoration {
--bs-alert-border-radius: none;
}

View File

@@ -0,0 +1,6 @@
// scss-docs-start breadcrumb
.breadcrumb {
padding-top: 0.3 * $navbar-offset;
}
// scss-docs-end breadcrumb

View File

@@ -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
@@ -71,7 +85,7 @@ defaultContentLanguageInSubdir = true
[module]
[module.hugoVersion]
extended = true
min = "0.81.0"
min = "0.110.0"
max = ""
[[module.mounts]]
source = "assets"

View File

@@ -8,10 +8,9 @@
# toml-docs-start docs
[docs]
version = "0.8"
basePath = ""
github = "https://github.com/gethinode/hinode"
release = "https://github.com/gethinode/hinode/releases/tag/"
checkVersion = false
# toml-docs-end docs
# toml-docs-start home
@@ -31,7 +30,7 @@
fixed = true
offset = "3.8em"
search = true
breadcrumb = false
breadcrumb = true
toc = true
sidebar = true
# toml-docs-end navigation

View File

@@ -1 +0,0 @@
canonifyURLs = false

View File

@@ -2,7 +2,7 @@
title: About
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
date: 2022-04-11
updated: 2023-02-11
updated: 2023-06-26
showComments: false
---
@@ -35,8 +35,8 @@ Additional features include:
* Switching between light mode and dark mode
* Support for multiple languages
* Reusable Bootstrap components through configurable shortcodes and partials
* Versioned documentation, including sidebar navigation and version switcher
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
* Integrated sidebar navigation for content-heavy sections, such as documentation pages
* Reponsive image handling for multiple screen sizes and resolutions
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})

View File

@@ -3,6 +3,7 @@ slug: over-mij
title: Over mij
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
date: 2023-02-17
updated: 2023-06-26
showComments: false
---
@@ -36,8 +37,8 @@ Overige functies:
* Omschakelen tussen donkere en lichte modus
* Ondersteuning voor meerdere talen
* Herbruikbare Bootstrap componenten via shortcodes en partials
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
* Secundaire navigatie voor bijvoorbeeld documentatie
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})

View File

@@ -93,6 +93,8 @@
translation: "latest"
- id: allVersions
translation: "All versions"
- id: newerVersionAlert
translation: "There is a newer version of {{ . }}!"
# 404 page
- id: pageNotFound

View File

@@ -83,6 +83,8 @@
translation: "meest recente"
- id: allVersions
translation: "Alle versies"
- id: newerVersionAlert
translation: "Er is een nieuwere versie van {{ . }}!"
# 404 page
- id: pageNotFound

View File

@@ -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
View 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 -}}

View File

@@ -1,6 +0,0 @@
{{- $list := site.Params.docs.releases -}}
{{- range $index, $item := $list -}}
{{- if $item.redirect -}}
{{ urls.JoinPath $item.url "/*" }} {{ urls.JoinPath $item.redirect ":splat" }} 200
{{- end -}}
{{- end -}}

View File

@@ -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 -}}

View File

@@ -181,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>
</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>
<div class="navbar-collapse collapse" id="{{ $id }}">
<!-- Insert search input -->
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
<!-- 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>
<!-- 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 -}}
<div class="navbar-collapse collapse" id="{{ $id }}">
<!-- Insert search input -->
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ 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 -}}
<!-- 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) -}}
<!-- 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 -}}
</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 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 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 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>
<!-- 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>
{{- 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>

View 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 -}}

View File

@@ -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 -}}

View File

@@ -7,7 +7,7 @@
</div>
<div class="col text-sm-start text-center col-sm-6 col-md-4">
{{ range .Site.Menus.social -}}
<a href="{{ .URL | relLangURL }}" target="_blank" rel="noopener noreferrer" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
<a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
{{ .Pre | safeHTML }}
</a>
{{ end -}}

View File

@@ -7,28 +7,32 @@
{{- $base := .base -}}
{{- $version := "" -}}
{{- $docsPath := strings.TrimPrefix "/" site.Params.docs.contentPath -}}
{{- if and $page.File (strings.HasPrefix $page.File.Dir $docsPath) -}}
{{- $currentPath := strings.TrimPrefix $docsPath $page.File.Dir -}}
{{- $currentVersion := index (split $currentPath "/") 0 -}}
{{- $versionPath := path.Join site.Params.docs.contentPath $currentVersion -}}
{{- if and site.Params.docs.releases site.Params.docs.contentPath -}}
{{- $docsPath := strings.TrimPrefix "/" site.Params.docs.contentPath -}}
{{- if and $page.File (strings.HasPrefix $page.File.Dir $docsPath) -}}
{{- $currentPath := strings.TrimPrefix $docsPath $page.File.Dir -}}
{{- $currentVersion := index (split $currentPath "/") 0 -}}
{{- $versionPath := path.Join site.Params.docs.contentPath $currentVersion -}}
{{- $list := site.Params.docs.releases -}}
{{- range $index, $item := $list -}}
{{- $url := strings.TrimSuffix "/" $item.url -}}
{{- if eq $url $versionPath -}}
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
{{- $list := site.Params.docs.releases -}}
{{- range $index, $item := $list -}}
{{- $url := strings.TrimSuffix "/" $item.url -}}
{{- if eq $url $versionPath -}}
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if not $version -}}
{{- $list := site.Params.docs.releases -}}
{{- range $item := $list -}}
{{- if $item.latest -}}
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
{{- if not $version -}}
{{- $list := site.Params.docs.releases -}}
{{- range $item := $list -}}
{{- if $item.latest -}}
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- $version = site.Params.docs.version -}}
{{- end -}}
{{- return $version -}}

View 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 -}}

View File

@@ -4,8 +4,8 @@
functions = "functions"
[build.environment]
NODE_VERSION = "18.13.0"
NPM_VERSION = "8.19.3"
NODE_VERSION = "18.16.1"
NPM_VERSION = "9.5.1"
[context.production]
command = "npm run build"
@@ -26,18 +26,18 @@
default-src 'self'; \
child-src 'self' app.netlify.com; \
script-src 'self' \
app.netlify.com netlify-cdp-loader.netlify.app \
https://*.netlify.app app.netlify.com netlify-cdp-loader.netlify.app \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' \
netlify.app https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
https://*.netlify.app https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
base-uri 'self'; \
connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \
font-src 'self' https://*.netlify.app https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com \
app.netlify.com; \
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com; \
img-src 'self' https://*.netlify.app https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com; \
manifest-src 'self'; \
media-src 'self' \
"""

550
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.15.0-beta",
"version": "0.15.2",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -8,7 +8,8 @@
"bootstrap",
"responsive",
"front-end",
"blog"
"blog",
"documentation"
],
"main": "index.js",
"publishConfig": {
@@ -53,7 +54,7 @@
"@fortawesome/fontawesome-free": "^6.4.0",
"@fullhuman/postcss-purgecss": "^5.0.0",
"autoprefixer": "^10.4.14",
"bootstrap": "^5.3.0-alpha3",
"bootstrap": "^5.3.0",
"cssnano": "^6.0.0",
"cssnano-preset-advanced": "^6.0.0",
"eslint": "^8.39.0",
@@ -62,14 +63,14 @@
"eslint-plugin-n": "^16.0.0",
"eslint-plugin-promise": "^6.1.1",
"flexsearch": "^0.7.31",
"hugo-bin": "^0.108.0",
"hugo-bin": "^0.111.0",
"markdownlint-cli2": "^0.8.1",
"postcss-cli": "^10.1.0",
"purgecss-whitelister": "^2.4.0",
"rimraf": "^5.0.0",
"shx": "^0.3.4",
"stylelint": "^15.6.0",
"stylelint-config-standard-scss": "^9.0.0"
"stylelint-config-standard-scss": "^10.0.0"
},
"hugo-bin": {
"buildTags": "extended"

View File

@@ -5,8 +5,8 @@ description = "A clean documentation and blog theme for your Hugo site based on
homepage = "https://gethinode.com"
demosite = "https://demo.gethinode.com"
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts"]
min_version = "0.109.0"
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
min_version = "0.110.0"
[author]
name = "Mark Dumay"