Compare commits

...

42 Commits

Author SHA1 Message Date
Mark Dumay
a7844486bf Merge pull request #165 from gethinode/sass
Sass
2023-03-06 15:16:59 +01:00
mark
221dc23a05 Remove deprecated rules 2023-03-06 07:38:44 +01:00
mark
92d97f7091 Bump release version 2023-03-06 07:37:00 +01:00
mark
51b31cb98a Make reading of site params more consistent 2023-03-06 07:35:06 +01:00
mark
2935b60404 Use isProduction flag 2023-03-06 07:34:24 +01:00
mark
fc74085a7f Add CSS purge 2023-03-06 07:33:54 +01:00
mark
cd6b7332ab Revert back to libsass 2023-03-06 07:30:27 +01:00
mark
ef952f73f8 Ignore hugo_stats.json 2023-03-06 06:57:28 +01:00
mark
4a3a6d5395 Bump Hugo dependency 2023-03-06 06:57:02 +01:00
mark
b4186265ef Remove superfluous trailing forward slash 2023-03-06 06:10:27 +01:00
mark
ac5ae9aeb8 Use Dart Sass syntax 2023-03-04 12:45:57 +01:00
mark
d15eced48c Make Font Awesome fonts configurable 2023-03-04 12:42:26 +01:00
mark
7a66470b67 Use Hugo template variables 2023-03-04 08:54:53 +01:00
mark
1b772f8a18 Use Hugo template variables 2023-03-04 08:53:43 +01:00
mark
29c49350a2 Improve consistency of color definition 2023-03-04 08:39:51 +01:00
mark
6f0e767610 Leverage Sass variables from Hugo templates (v0.109.0) 2023-03-04 08:37:08 +01:00
mark
013937d60f Bump Hugo dependency 2023-03-04 08:32:52 +01:00
Mark Dumay
dc99a35258 Merge pull request #164 from gethinode/dependabot/npm_and_yarn/rimraf-4.2.0
Bump rimraf from 4.1.3 to 4.2.0
2023-03-03 17:26:03 +01:00
dependabot[bot]
3b4c4cb02f Bump rimraf from 4.1.3 to 4.2.0
Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.3 to 4.2.0.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v4.1.3...v4.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-03 14:08:23 +00:00
Mark Dumay
56929c918a Merge pull request #163 from gethinode/dependabot/npm_and_yarn/rimraf-4.1.3
Bump rimraf from 4.1.2 to 4.1.3
2023-03-02 17:26:17 +01:00
dependabot[bot]
696ccbf64b Bump rimraf from 4.1.2 to 4.1.3
Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v4.1.2...v4.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 14:24:39 +00:00
Mark Dumay
2e5028a612 Merge pull request #162 from gethinode/dependabot/npm_and_yarn/eslint-8.35.0
Bump eslint from 8.34.0 to 8.35.0
2023-02-27 15:39:00 +01:00
dependabot[bot]
89ecf07f23 Bump eslint from 8.34.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.34.0 to 8.35.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.34.0...v8.35.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-02-27 14:22:05 +00:00
Mark Dumay
ea9295da62 Merge pull request #161 from gethinode/develop
Separator
2023-02-26 11:11:10 +01:00
mark
b6b5230cc3 Bump release version 2023-02-26 11:06:43 +01:00
mark
b65110fdcc Add configurable separator for lists 2023-02-26 11:05:55 +01:00
mark
6d3dc7b590 Remove article to fix height alignment 2023-02-26 10:52:50 +01:00
Mark Dumay
7bb479194b Merge pull request #160 from gethinode/develop
Cards
2023-02-26 09:40:45 +01:00
mark
73c1cf8a59 Narrow stylelint hints 2023-02-26 09:35:54 +01:00
mark
20ce3580c7 Fix linting issues 2023-02-26 08:55:57 +01:00
mark
2f733a709d Bump dependencies 2023-02-26 08:54:42 +01:00
mark
96b1eaaa04 Bump package version 2023-02-26 08:54:17 +01:00
mark
f0200f77dc Apply card-zoom animation to blog posts 2023-02-26 08:42:03 +01:00
mark
4ab462750c Ensure tag links take precedence over the card link 2023-02-26 08:41:41 +01:00
mark
597ea2fa2b Refine card-body-link style 2023-02-26 08:41:18 +01:00
mark
82b8228277 Add card-zoom animation 2023-02-26 08:40:48 +01:00
mark
6a025f80c4 Wrap the card in an article 2023-02-26 08:35:28 +01:00
mark
99d4d79537 Wrap the card in an article 2023-02-26 08:34:49 +01:00
mark
e1d1526b10 Ensure tag links take precedence over the card link 2023-02-26 08:33:43 +01:00
mark
8808c10402 Make entire card clickable 2023-02-26 08:32:58 +01:00
mark
87f1733a49 Fix spacing between tags 2023-02-24 06:08:31 +01:00
mark
0da862db93 Fix spacing between date and reading time 2023-02-24 06:05:34 +01:00
16 changed files with 351 additions and 145 deletions

3
.gitignore vendored
View File

@@ -3,4 +3,5 @@ resources/
node_modules/ node_modules/
.DS_store .DS_store
.hugo_build.lock .hugo_build.lock
hugo_stats.json

View File

@@ -2,10 +2,7 @@
"extends": "stylelint-config-standard-scss", "extends": "stylelint-config-standard-scss",
"rules": { "rules": {
"no-empty-source": null, "no-empty-source": null,
"indentation": 4,
"string-quotes": "double",
"scss/comment-no-empty": null, "scss/comment-no-empty": null,
"max-line-length": null,
"scss/at-extend-no-missing-placeholder": null, "scss/at-extend-no-missing-placeholder": null,
"scss/dollar-variable-colon-space-after": null, "scss/dollar-variable-colon-space-after": null,
"scss/dollar-variable-empty-line-before": null, "scss/dollar-variable-empty-line-before": null,

View File

@@ -1,18 +1,5 @@
// Define template variables // Define template variables
// TODO: optimize, see https://discourse.gohugo.io/t/initialize-sass-variables-from-hugo-templates/42053 @import "hugo:vars";
// requires installation of dart-sass, no cross-platform installation available yet
$themeFont: {{ site.Params.style.themeFont | default "Inter" }};
$primary: {{ site.Params.style.primary | default "#007bff" }};
$secondary: {{ site.Params.style.secondary | default "#6c757d" }};
$success: {{ site.Params.style.success | default "#198754" }};
$info: {{ site.Params.style.info | default "#0dcaf0" }};
$warning: {{ site.Params.style.warning | default "#ffc107" }};
$danger: {{ site.Params.style.danger | default "#dc3545" }};
$light: {{ site.Params.style.light | default "#f8f9fa" }};
$dark: {{ site.Params.style.dark | default "#212529" }};
$navbar-offset: {{ if site.Params.navigation.fixed }}{{ site.Params.navigation.offset | default "4em" }}{{ else }}0em{{ end }};
$enable-dark-mode: {{ site.Params.main.enableDarkMode | default true }} !default;
$enable-important-utilities: true !default;
// Include default variable overrides // Include default variable overrides
@import "common/variables.scss"; @import "common/variables.scss";
@@ -100,6 +87,11 @@ $enable-important-utilities: true !default;
@import "helpers/colored-links.scss"; @import "helpers/colored-links.scss";
@import "helpers/display.scss"; @import "helpers/display.scss";
// TODO: include fonts with following statement in Dart Sass
// @if $import-fonts {
// @include meta.load-css(fonts);
// }
{{- if not (hasPrefix (lower site.Params.style.themeFontPath) "http") -}} {{- if not (hasPrefix (lower site.Params.style.themeFontPath) "http") -}}
@import "fonts.scss"; @import "fonts.scss";
{{- end -}} {{- end -}}

View File

@@ -1,5 +1,6 @@
// Bootstrap variables overrides for theme // Bootstrap variables overrides for theme
$enable-negative-margins: true; $enable-negative-margins: true;
$enable-important-utilities: true !default;
// Font awesome variables overrides for theme // Font awesome variables overrides for theme
$fa-font-path: "../fonts"; $fa-font-path: "../fonts";
@@ -8,7 +9,7 @@ $fa-font-path: "../fonts";
$navbar-toggler-focus-width: 0 !default; $navbar-toggler-focus-width: 0 !default;
// scss-docs-start font // scss-docs-start font
$font-family-sans-serif: $themeFont, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; $font-family-sans-serif: $theme-font, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$headings-font-weight: 600 !default; $headings-font-weight: 600 !default;
$font-weight-lighter: lighter !default; $font-weight-lighter: lighter !default;
$font-weight-light: 200 !default; $font-weight-light: 200 !default;

View File

@@ -1,5 +1,3 @@
// stylelint-disable annotation-no-unknown
// add zoom animation with opacity change on card img hover // add zoom animation with opacity change on card img hover
// source: https://stackoverflow.com/a/43816376 // source: https://stackoverflow.com/a/43816376
@@ -8,7 +6,16 @@
position: relative; position: relative;
} }
.card-img-wrap::after { .card-zoom {
cursor: pointer;
}
.card-img-wrap img {
transition: transform 0.25s ease;
width: 100%;
}
.card-zoom::after .card-img-wrap img {
content: ""; content: "";
position: absolute; position: absolute;
top: 0; top: 0;
@@ -20,16 +27,12 @@
transition: opacity 0.25s; transition: opacity 0.25s;
} }
.card-img-wrap img { .card-zoom:hover .card-img-wrap img {
transition: transform 0.25s ease;
width: 100%;
}
.card-img-wrap:hover img {
transform: scale(1.1); transform: scale(1.1);
opacity: 0.5;
} }
.card-img-wrap:hover::after { .card-zoom:hover::after .card-img-wrap img {
opacity: 1; opacity: 1;
} }
@@ -43,29 +46,31 @@
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
} }
// stylelint-disable annotation-no-unknown
.card-body-link { .card-body-link {
color: $body-color if($enable-important-utilities, !important, null); color: $body-color if($enable-important-utilities, !important, null);
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: tint-color($body-color, $link-shade-percentage) if($enable-important-utilities, !important, null);
}
}
} }
@if $enable-dark-mode { @if $enable-dark-mode {
@include color-mode(dark) { @include color-mode(dark) {
.card-body-link { .card-body-link {
color: $gray-500 if($enable-important-utilities, !important, null); color: $gray-500 if($enable-important-utilities, !important, null);
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: shade-color($gray-500, $link-shade-percentage) if($enable-important-utilities, !important, null);
}
}
} }
} }
} }
.card-zoom card-body-link,
.card-body-link {
&:hover,
&:focus {
color: shade-color($primary, $link-shade-percentage) if($enable-important-utilities, !important, null);
}
}
// stylelint-enable annotation-no-unknown // stylelint-enable annotation-no-unknown
// make tag-link clickable on top of the stretched-link.
.card .tag-link {
z-index: 2;
position: relative;
}

View File

@@ -26,6 +26,11 @@ defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true defaultContentLanguageInSubdir = true
# toml-docs-end language # toml-docs-end language
# toml-docs-start build
[build]
writeStats = true
# toml-docs-end build
[taxonomies] [taxonomies]
tag = 'tags' tag = 'tags'

View File

@@ -43,8 +43,9 @@
header = "full" header = "full"
footer = "none" footer = "none"
orientation = "stacked" orientation = "stacked"
style = "border-0" style = "border-0 card-zoom"
homepage = 3 homepage = 3
separator = true
[projects] [projects]
title = "Projects" title = "Projects"
sort = "title" sort = "title"
@@ -57,6 +58,7 @@
orientation = "none" orientation = "none"
style = "border-1 card-emphasize" style = "border-1 card-emphasize"
homepage = 3 homepage = 3
separator = false
# toml-docs-end list # toml-docs-end list
[favicon] [favicon]
@@ -65,7 +67,7 @@
# toml-docs-start theme-colors # toml-docs-start theme-colors
[style] [style]
primary = "#D43900" primary = "#d43900"
secondary = "#6c757d" secondary = "#6c757d"
success = "#198754" success = "#198754"
info = "#0dcaf0" info = "#0dcaf0"
@@ -80,6 +82,9 @@
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path # themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
themeFontPath = "/fonts" # local path themeFontPath = "/fonts" # local path
# toml-docs-end font # toml-docs-end font
# toml-docs-start build
purge = true
# toml-docs-end build
[schema] [schema]
type = "Organization" type = "Organization"

View File

@@ -1,18 +1,36 @@
const autoprefixer = require('autoprefixer') const autoprefixer = require('autoprefixer')({})
const cssnano = require('cssnano') const cssnano = require('cssnano')({
// const purgecss = require('@fullhuman/postcss-purgecss') preset: 'advanced'
})
const whitelister = require('purgecss-whitelister')
const purgecss = require('@fullhuman/postcss-purgecss')({
content: ['./hugo_stats.json'],
defaultExtractor: (content) => {
const els = JSON.parse(content).htmlElements
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
},
safelist: [
...whitelister([
'./assets/scss/components/_clipboard.scss',
'./assets/scss/components/_command.scss',
'./assets/scss/components/_search.scss',
'./assets/scss/components/_syntax.scss',
'./assets/scss/components/_syntax-dark.scss',
'./assets/scss/components/_syntax-light.scss',
'./node_modules/bootstrap/scss/_carousel.scss',
'./node_modules/bootstrap/scss/_dropdown.scss',
'./node_modules/bootstrap/scss/_reboot.scss',
'./node_modules/bootstrap/scss/_tooltip.scss',
'./node_modules/bootstrap/scss/_transitions.scss',
'./node_modules/bootstrap/scss/_utilities.scss'
])
]
})
module.exports = { module.exports = {
plugins: [ plugins: [
autoprefixer(), autoprefixer,
cssnano({ cssnano,
preset: 'advanced' purgecss
})
// purgecss({
// content: [
// './layouts/**/*.html',
// './content/**/*.md'
// ]
// })
] ]
} }

View File

@@ -15,6 +15,7 @@
"href" Optional address for the button or hyperlink. If set, a button is added if the list exceeds the "href" Optional address for the button or hyperlink. If set, a button is added if the list exceeds the
maximum number of cards to display. maximum number of cards to display.
"hrefTitle" Optional title of the button or hyperlink as companion to href. "hrefTitle" Optional title of the button or hyperlink as companion to href.
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
In addition, the following arguments are passed to the individual cards. In addition, the following arguments are passed to the individual cards.
"class" Optional class attribute of the card element, e.g. “w-50”. "class" Optional class attribute of the card element, e.g. “w-50”.
@@ -57,20 +58,28 @@
{{- $title := .title -}} {{- $title := .title -}}
{{ $paginate := false }} {{- $paginate := false -}}
{{ with .paginate }} {{- with .paginate -}}
{{ if ne (printf "%T" .) "bool" }} {{- if ne (printf "%T" .) "bool" -}}
{{ errorf "Invalid value for param 'paginate'"}} {{- errorf "Invalid value for param 'paginate'" -}}
{{ end }} {{- end -}}
{{ $paginate = . }} {{- $paginate = . -}}
{{ end }} {{- end -}}
{{ if not $paginate }} {{- if not $paginate -}}
{{ $list = first $max $list }} {{- $list = first $max $list -}}
{{ end }} {{- end -}}
{{- $moreURL := .href -}} {{- $moreURL := .href -}}
{{- $moreTitle := .hrefTitle -}} {{- $moreTitle := .hrefTitle -}}
{{- $separator := false -}}
{{- with .separator -}}
{{- if ne (printf "%T" .) "bool" -}}
{{- errorf "Invalid value for param 'separator'" -}}
{{- end -}}
{{- $separator = . -}}
{{- end -}}
{{- $class := .class -}} {{- $class := .class -}}
{{- $color := .color -}} {{- $color := .color -}}
{{- $padding := .padding -}} {{- $padding := .padding -}}
@@ -96,7 +105,7 @@
) )
-}} -}}
</div> </div>
{{- if (lt $index (sub $max 1)) -}} {{- if and (lt $index (sub $max 1)) $separator -}}
<div class="col d-block d-sm-none"> <div class="col d-block d-sm-none">
<hr> <hr>
</div> </div>
@@ -121,7 +130,7 @@
) )
-}} -}}
</div> </div>
{{- if (lt $index (sub $max 1)) -}} {{- if and (lt $index (sub $max 1)) $separator -}}
<div class="col d-block d-sm-none"> <div class="col d-block d-sm-none">
<hr> <hr>
</div> </div>

View File

@@ -27,7 +27,7 @@
{{- $color := .color -}} {{- $color := .color -}}
{{- $description := .description -}} {{- $description := .description -}}
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}"> <a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
<p class="card-title fs-5 fw-bold">{{ $title }}</p> <p class="card-title fs-5 fw-bold">{{ $title }}</p>
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}} {{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
</a> </a>
@@ -47,7 +47,7 @@
<p class="card-text"><small class="{{ if $color }}text-bg-{{ $color }}{{ else }}text-body-secondary{{ end }} text-uppercase"> <p class="card-text"><small class="{{ if $color }}text-bg-{{ $color }}{{ else }}text-body-secondary{{ end }} text-uppercase">
{{- if in (slice "full" "publication") $keywords -}} {{- if in (slice "full" "publication") $keywords -}}
{{- partial "utilities/date.html" (dict "date" $page.Date "format" "long") -}}&nbsp;&bull; {{- partial "utilities/date.html" (dict "date" $page.Date "format" "long") -}}&nbsp;&bull;
{{- $page.ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" -}} {{ $page.ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" -}}
{{- end -}} {{- end -}}
{{- if eq $keywords "full" -}} {{- if eq $keywords "full" -}}
@@ -58,8 +58,8 @@
{{- if $color }}{{ $link = printf "link-bg-%s" $color }}{{ end -}} {{- if $color }}{{ $link = printf "link-bg-%s" $color }}{{ end -}}
{{- range $index, $tag := first $maxTags ($page.GetTerms "tags") -}} {{- range $index, $tag := first $maxTags ($page.GetTerms "tags") -}}
{{- if gt $index 0 }}&bull;&nbsp;{{ end -}} {{- if gt $index 0 }}&nbsp;&bull;&nbsp;{{ end -}}
<a href="{{ (path.Join $tag.Page.RelPermalink) | relURL }}" class="{{ $link }}" aria-label="tag: {{ $tag.LinkTitle }}">{{ $tag.LinkTitle }}</a> <a href="{{ (path.Join $tag.Page.RelPermalink) | relURL }}" class="{{ $link }} tag-link" aria-label="tag: {{ $tag.LinkTitle }}">{{ $tag.LinkTitle }}</a>
{{- end -}} {{- end -}}
</small></p> </small></p>
{{- end -}} {{- end -}}
@@ -134,14 +134,10 @@
<div class="row g-0"> <div class="row g-0">
<div class="col-4"> <div class="col-4">
{{- if $thumbnail -}} {{- if $thumbnail -}}
<a href="{{ $href }}"> {{- partial "image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
{{- partial "image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
</a>
{{- else if $icon -}} {{- else if $icon -}}
<div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}"> <div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}">
<a href="{{ $href }}"> {{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
</a>
</div> </div>
{{- end -}} {{- end -}}
</div> </div>
@@ -159,14 +155,10 @@
{{- else -}} {{- else -}}
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}"> <div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
{{- if $thumbnail -}} {{- if $thumbnail -}}
<a href="{{ $href }}"> {{- partial "image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" $title) -}}
{{- partial "image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" $title) -}}
</a>
{{- else if $icon -}} {{- else if $icon -}}
<div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}"> <div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}">
<a href="{{ $href }}"> {{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
</a>
</div> </div>
{{- end -}} {{- end -}}
<div class="card-body d-flex flex-column p-{{ $padding }}"> <div class="card-body d-flex flex-column p-{{ $padding }}">

View File

@@ -12,6 +12,7 @@
{{- $paginate := true -}} {{- $paginate := true -}}
{{- $sort := "date" -}} {{- $sort := "date" -}}
{{- $reverse := true -}} {{- $reverse := true -}}
{{- $separator := false -}}
{{- $orientation := "stacked" -}} {{- $orientation := "stacked" -}}
{{- $cols := 3 -}} {{- $cols := 3 -}}
{{- $color := "" -}} {{- $color := "" -}}
@@ -26,6 +27,7 @@
{{- with index . "title" }}{{ $title = . }}{{ end -}} {{- with index . "title" }}{{ $title = . }}{{ end -}}
{{- with index . "sort" }}{{ $sort = . }}{{ end -}} {{- with index . "sort" }}{{ $sort = . }}{{ end -}}
{{- if (index . "reverse") }}{{ $reverse = true }}{{ else }}{{ $reverse = false }}{{ end -}} {{- if (index . "reverse") }}{{ $reverse = true }}{{ else }}{{ $reverse = false }}{{ end -}}
{{- if (index . "separator") }}{{ $separator = true }}{{ else }}{{ $separator = false }}{{ end -}}
{{- with index . "orientation" }}{{ $orientation = . }}{{ end -}} {{- with index . "orientation" }}{{ $orientation = . }}{{ end -}}
{{- with index . "cols" }}{{ $cols = . }}{{ end -}} {{- with index . "cols" }}{{ $cols = . }}{{ end -}}
{{- with index . "color" }}{{ $color = . }}{{ end -}} {{- with index . "color" }}{{ $color = . }}{{ end -}}
@@ -74,6 +76,7 @@
"title" $title "title" $title
"href" $sectionURL "href" $sectionURL
"hrefTitle" $moreTitle "hrefTitle" $moreTitle
"separator" $separator
"paginate" $paginate "paginate" $paginate
"class" $style "class" $style
"orientation" $orientation "orientation" $orientation

View File

@@ -3,10 +3,10 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
{{ hugo.Generator}} {{ hugo.Generator}}
{{ partial "head/stylesheet.html" -}} {{ partial "head/stylesheet.html" . -}}
{{ partial "head/seo.html" . }} {{ partial "head/seo.html" . }}
{{ partialCached "head/favicon.html" . -}} {{ partialCached "head/favicon.html" . -}}
{{ if gt (len .Site.Languages) 1}} {{ if gt (len .Site.Languages) 1}}
<meta name="lang" content="{{ .Site.Language }}" /> <meta name="lang" content="{{ .Site.Language }}">
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -1,19 +1,42 @@
{{- $options := (dict "targetPath" "main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules")) -}} {{- $navbarOffset := "0em" -}}
{{- if hugo.IsProduction }}{{ $options = merge $options (dict "outputStyle" "compressed") }}{{ end -}} {{- if .Site.Params.navigation.fixed }}{{ $navbarOffset = site.Params.navigation.offset | default "4em" }}{{ end }}
{{- $post_options := dict "config" "config" -}} {{- $vars := dict
{{- $css := resources.Get "scss/app.scss" | resources.ExecuteAsTemplate "style.app.scss" . | toCSS $options | resources.PostCSS $post_options -}} "theme-font" (default "Inter" .Site.Params.style.themeFont)
"primary" (default "#007bff" .Site.Params.style.primary)
"secondary" (default "#6c757d" .Site.Params.style.secondary)
"success" (default "#198754" .Site.Params.style.success)
"info" (default "#0dcaf0" .Site.Params.style.info)
"warning" (default "#ffc107" .Site.Params.style.warning)
"danger" (default "#dc3545" .Site.Params.style.danger)
"light" (default "#f8f9fa" .Site.Params.style.light)
"dark" (default "#212529" .Site.Params.style.dark)
"navbar-offset" $navbarOffset
"enable-dark-mode" (printf "%t" ((default true .Site.Params.main.enableDarkMode)))
"import-fonts" (printf "%t" (not (hasPrefix (lower .Site.Params.style.themeFontPath) "http")))
-}}
{{- $options := (dict "transpiler" "libsass" "targetPath" "main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -}}
{{/*- $options := (dict "transpiler" "dartsass" "targetPath" "main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -*/}}
{{- if hugo.IsProduction -}}
{{- $options = merge $options (dict "outputStyle" "compressed") -}}
{{- else -}}
{{- $options = merge $options (dict "outputStyle" "expanded") -}}
{{- end -}}
{{- $css := resources.Get "scss/app.scss" | resources.ExecuteAsTemplate "style.app.scss" . | toCSS $options -}}
{{- partial "head/icons.html" (dict "css" $css) -}} {{- partial "head/icons.html" (dict "css" $css) -}}
{{- if .Site.Params.style.purge -}}
{{- $post_options := dict "config" "config" -}}
{{- $css = $css | resources.PostCSS $post_options -}}
{{- end -}}
<!-- TODO: add proper postCSS purge --> {{- if not hugo.IsProduction -}}
{{- if eq (hugo.Environment) "development" -}}
<link rel="stylesheet" href="{{ $css.Permalink | relURL }}"> <link rel="stylesheet" href="{{ $css.Permalink | relURL }}">
{{- else -}} {{- else -}}
{{- $css = $css | fingerprint -}} {{- $css = $css | fingerprint -}}
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous"> <link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
{{- end -}} {{- end -}}
{{- if hasPrefix (lower site.Params.style.themeFontPath) "http" -}} {{- if hasPrefix (lower .Site.Params.style.themeFontPath) "http" -}}
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="{{ site.Params.style.themeFontPath | default "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" }}"> <link rel="stylesheet" href="{{ .Site.Params.style.themeFontPath | default "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" }}">
{{- end -}} {{- end -}}

243
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.9.4", "version": "0.10.0-alpha",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.9.4", "version": "0.10.0-alpha",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
@@ -29,7 +29,7 @@
"purgecss-whitelister": "^2.4.0", "purgecss-whitelister": "^2.4.0",
"rimraf": "^4.1.2", "rimraf": "^4.1.2",
"shx": "^0.3.4", "shx": "^0.3.4",
"stylelint": "^15.1.0", "stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1" "stylelint-config-standard-scss": "^7.0.1"
} }
}, },
@@ -203,9 +203,9 @@
} }
}, },
"node_modules/@eslint/eslintrc": { "node_modules/@eslint/eslintrc": {
"version": "1.4.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz",
"integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"ajv": "^6.12.4", "ajv": "^6.12.4",
@@ -225,6 +225,15 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/@eslint/js": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz",
"integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@fortawesome/fontawesome-free": { "node_modules/@fortawesome/fontawesome-free": {
"version": "6.3.0", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz",
@@ -420,9 +429,9 @@
} }
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.8.1", "version": "8.8.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true, "dev": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
@@ -1782,12 +1791,13 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.34.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz",
"integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint/eslintrc": "^1.4.1", "@eslint/eslintrc": "^2.0.0",
"@eslint/js": "8.35.0",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -1801,7 +1811,7 @@
"eslint-utils": "^3.0.0", "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0", "eslint-visitor-keys": "^3.3.0",
"espree": "^9.4.0", "espree": "^9.4.0",
"esquery": "^1.4.0", "esquery": "^1.4.2",
"esutils": "^2.0.2", "esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^6.0.1",
@@ -2115,9 +2125,9 @@
} }
}, },
"node_modules/esquery": { "node_modules/esquery": {
"version": "1.4.0", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz",
"integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"estraverse": "^5.1.0" "estraverse": "^5.1.0"
@@ -2748,9 +2758,9 @@
} }
}, },
"node_modules/globals": { "node_modules/globals": {
"version": "13.19.0", "version": "13.20.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"type-fest": "^0.20.2" "type-fest": "^0.20.2"
@@ -3873,6 +3883,15 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/minipass": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
"integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/ms": { "node_modules/ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -4183,6 +4202,31 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true "dev": true
}, },
"node_modules/path-scurry": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
"integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
"dev": true,
"dependencies": {
"lru-cache": "^7.14.1",
"minipass": "^4.0.2"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "7.18.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz",
"integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/path-type": { "node_modules/path-type": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -5309,10 +5353,13 @@
} }
}, },
"node_modules/rimraf": { "node_modules/rimraf": {
"version": "4.1.2", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.2.0.tgz",
"integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", "integrity": "sha512-tPt+gLORNVqRCk0NwuJ5SlMEcOGvt4CCU8sUPqgCFtCbnoNCTd9Q6vq7JlBbxQlACiH14OR28y7piA2Bak9Sxw==",
"dev": true, "dev": true,
"dependencies": {
"glob": "^9.2.0"
},
"bin": { "bin": {
"rimraf": "dist/cjs/src/bin.js" "rimraf": "dist/cjs/src/bin.js"
}, },
@@ -5323,6 +5370,48 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/rimraf/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/rimraf/node_modules/glob": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz",
"integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"minimatch": "^7.4.1",
"minipass": "^4.2.4",
"path-scurry": "^1.6.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rimraf/node_modules/minimatch": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
"integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/run-parallel": { "node_modules/run-parallel": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -6607,9 +6696,9 @@
"requires": {} "requires": {}
}, },
"@eslint/eslintrc": { "@eslint/eslintrc": {
"version": "1.4.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz",
"integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "^6.12.4", "ajv": "^6.12.4",
@@ -6623,6 +6712,12 @@
"strip-json-comments": "^3.1.1" "strip-json-comments": "^3.1.1"
} }
}, },
"@eslint/js": {
"version": "8.35.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz",
"integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==",
"dev": true
},
"@fortawesome/fontawesome-free": { "@fortawesome/fontawesome-free": {
"version": "6.3.0", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz",
@@ -6776,9 +6871,9 @@
} }
}, },
"acorn": { "acorn": {
"version": "8.8.1", "version": "8.8.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true "dev": true
}, },
"acorn-jsx": { "acorn-jsx": {
@@ -7739,12 +7834,13 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
"version": "8.34.0", "version": "8.35.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz",
"integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint/eslintrc": "^1.4.1", "@eslint/eslintrc": "^2.0.0",
"@eslint/js": "8.35.0",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -7758,7 +7854,7 @@
"eslint-utils": "^3.0.0", "eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0", "eslint-visitor-keys": "^3.3.0",
"espree": "^9.4.0", "espree": "^9.4.0",
"esquery": "^1.4.0", "esquery": "^1.4.2",
"esutils": "^2.0.2", "esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^6.0.1",
@@ -7978,9 +8074,9 @@
} }
}, },
"esquery": { "esquery": {
"version": "1.4.0", "version": "1.4.2",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz",
"integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==",
"dev": true, "dev": true,
"requires": { "requires": {
"estraverse": "^5.1.0" "estraverse": "^5.1.0"
@@ -8463,9 +8559,9 @@
} }
}, },
"globals": { "globals": {
"version": "13.19.0", "version": "13.20.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"type-fest": "^0.20.2" "type-fest": "^0.20.2"
@@ -9277,6 +9373,12 @@
"kind-of": "^6.0.3" "kind-of": "^6.0.3"
} }
}, },
"minipass": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
"integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
"dev": true
},
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -9494,6 +9596,24 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true "dev": true
}, },
"path-scurry": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
"integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
"dev": true,
"requires": {
"lru-cache": "^7.14.1",
"minipass": "^4.0.2"
},
"dependencies": {
"lru-cache": {
"version": "7.18.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz",
"integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==",
"dev": true
}
}
},
"path-type": { "path-type": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -10237,10 +10357,45 @@
"dev": true "dev": true
}, },
"rimraf": { "rimraf": {
"version": "4.1.2", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.2.0.tgz",
"integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", "integrity": "sha512-tPt+gLORNVqRCk0NwuJ5SlMEcOGvt4CCU8sUPqgCFtCbnoNCTd9Q6vq7JlBbxQlACiH14OR28y7piA2Bak9Sxw==",
"dev": true "dev": true,
"requires": {
"glob": "^9.2.0"
},
"dependencies": {
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
}
},
"glob": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz",
"integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"minimatch": "^7.4.1",
"minipass": "^4.2.4",
"path-scurry": "^1.6.1"
}
},
"minimatch": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
"integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
}, },
"run-parallel": { "run-parallel": {
"version": "1.2.0", "version": "1.2.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.9.4", "version": "0.10.0-alpha",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator", "description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [ "keywords": [
"hugo", "hugo",
@@ -71,10 +71,10 @@
"purgecss-whitelister": "^2.4.0", "purgecss-whitelister": "^2.4.0",
"rimraf": "^4.1.2", "rimraf": "^4.1.2",
"shx": "^0.3.4", "shx": "^0.3.4",
"stylelint": "^15.1.0", "stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1" "stylelint-config-standard-scss": "^7.0.1"
}, },
"otherDependencies": { "otherDependencies": {
"hugo": "0.110.0" "hugo": "0.111.2"
} }
} }

View File

@@ -6,7 +6,7 @@ homepage = "https://gethinode.com"
demosite = "https://demo.gethinode.com" demosite = "https://demo.gethinode.com"
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"] 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"] features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts"]
min_version = "0.81.0" min_version = "0.109.0"
[author] [author]
name = "Mark Dumay" name = "Mark Dumay"