Compare commits

...

25 Commits

Author SHA1 Message Date
Mark Dumay
e97d3e6fe9 Merge pull request #621 from gethinode/develop
Fix incorrect class init of thumbnails
2023-11-07 16:28:01 +01:00
Mark Dumay
5cb189d545 Merge branch 'main' into develop 2023-11-07 16:14:38 +01:00
mark
7897fe5f00 Bump package release 2023-11-07 16:13:45 +01:00
mark
6c4e0e8992 Fix incorrect class init 2023-11-07 16:13:10 +01:00
Mark Dumay
3c6a533236 Merge pull request #620 from gethinode/develop
Fix empty class attributes
2023-11-07 15:53:21 +01:00
Mark Dumay
69a9108655 Merge branch 'main' into develop 2023-11-07 15:42:02 +01:00
mark
4fdc7bb7d3 Bump release version and adjust optional dependencies 2023-11-07 15:41:05 +01:00
mark
170bd7034a Update build stats 2023-11-07 15:40:42 +01:00
mark
2bc99753d6 Fix empty class attributes 2023-11-07 15:31:54 +01:00
Mark Dumay
3ae1671b46 Merge pull request #619 from gethinode/develop
Improve configurability of single pages
2023-11-07 14:54:33 +01:00
Mark Dumay
4b9f137d41 Merge branch 'main' into develop 2023-11-07 14:44:37 +01:00
mark
651f733622 Update build environment 2023-11-07 14:43:09 +01:00
github-actions[bot]
a2b0c2c05f Merge pull request #618 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.3.0
Bump eslint-plugin-n from 16.2.0 to 16.3.0
2023-11-07 13:38:06 +00:00
mark
21476927ef Update build stats 2023-11-07 14:27:25 +01:00
mark
8c86081271 Support configurable thumbnail ratio 2023-11-07 14:27:17 +01:00
mark
fe5e94d277 Add download option to sharing buttons 2023-11-07 14:26:57 +01:00
mark
585db8094e Support related content 2023-11-07 14:26:22 +01:00
mark
4bcc536d42 Suppress empty more button 2023-11-07 14:26:00 +01:00
mark
b22c2e5ca5 Make metadata of single page header configurable 2023-11-07 14:25:43 +01:00
mark
715b714781 Make rendering of single page content configurable 2023-11-07 14:24:13 +01:00
mark
1d4b95a827 Refactor TOC for single pages 2023-11-07 14:22:38 +01:00
dependabot[bot]
0530a01445 Bump eslint-plugin-n from 16.2.0 to 16.3.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.2.0 to 16.3.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.2.0...16.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-07 13:22:19 +00:00
mark
2a29eba66e Bump package release 2023-11-07 14:10:10 +01:00
mark
e93b66f4b8 Update build stats 2023-11-07 06:29:33 +01:00
mark
44bb9d7f12 Add message when no tags are found 2023-11-07 06:29:27 +01:00
19 changed files with 133 additions and 53 deletions

View File

@@ -256,7 +256,6 @@
"me-auto",
"middle-bar",
"min-vh-100",
"mirrorred",
"ms-1",
"ms-3",
"ms-auto",

View File

@@ -15,6 +15,7 @@
"link",
"meta",
"nav",
"ol",
"p",
"path",
"script",
@@ -29,11 +30,14 @@
"active",
"align-items-center",
"align-self-center",
"align-self-end",
"bg-body",
"bg-opacity-10",
"bg-primary",
"bottom-0",
"bottom-bar",
"breadcrumb",
"breadcrumb-item",
"btn",
"btn-close",
"btn-primary",
@@ -85,7 +89,6 @@
"form-control",
"fs-3",
"fs-5",
"fw-30",
"fw-bold",
"hstack",
"img-fluid",

View File

@@ -27,6 +27,8 @@
translation: "More {{ . }}"
- id: emptyList
translation: "No articles found"
- id: emptyTags
translation: "No tags found"
# Sharing
- id: shareLink

View File

@@ -25,6 +25,8 @@
translation: "Meer {{ . }}"
- id: emptyList
translation: "Geen artikelen gevonden"
- id: emptyTags
translation: "Geen tags gevonden"
# Sharing
- id: shareLink

View File

@@ -7,7 +7,6 @@
<div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
{{- end -}}
{{ .Render "single/body" }}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
{{ .Render "single/footer" }}
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
@@ -17,11 +16,6 @@
{{ end -}}
{{ define "main" -}}
{{- $download := .Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
{{- end -}}
{{- $menu := .Scratch.Get "sidebar" -}}
{{- $version := .Scratch.Get "version" -}}
@@ -29,9 +23,7 @@
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
{{ if and $menu $hasSidebar }}{{ $sidebar = partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}{{ end }}
{{ $toc := "" }}
{{- $hasTOC := and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ if $hasTOC }}{{ $toc = partial "assets/toc.html" (dict "page" . "download" $download) }}{{ end -}}
{{ $toc := .Render "single/panel-toc" }}
{{ with $sidebar -}}
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">

View File

@@ -1,2 +1,3 @@
{{- partial "single/thumbnail.html" (dict "page" . "class" "mb-5") -}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -1,12 +1,31 @@
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
{{- $metadata := "full" -}}
{{ if isset .Params "metadata" }}
{{ $metadata = .Params.metadata }}
{{ else }}
{{- with (index site.Params.pages .Type ) -}}
{{ if isset . "metadata" }}{{ $metadata = (index . "metadata") }}{{ end }}
{{- end -}}
{{ end }}
{{- $supportedStates := slice "full" "original" "none" -}}
{{- if not (in $supportedStates $metadata) -}}
{{- errorf "layout [_default/single/header.html] - Invalid value for param 'metadata': %s" $metadata -}}
{{- end -}}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }} &bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{ if ne $metadata "none" }}
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if eq $metadata "full" }}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }}
{{ end }}
&bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{ end }}
{{- if gt (len (.GetTerms "tags")) 0 -}}
<div class="mt-3">

View File

@@ -0,0 +1,33 @@
{{- $download := .Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
{{- end -}}
{{- $toc := .Site.Params.navigation.toc -}}
{{ if $toc }}
{{ if isset .Params "includeToc" }}
{{ $toc = .Params.includeToc }}
{{ else }}
{{- with (index site.Params.pages .Type) -}}
{{ if isset . "includetoc" }}
{{ $toc = index . "includetoc" }}
{{ if ne (printf "%T" $toc) "bool" }}
{{ errorf "Expected bool value in site parameters: pages.%s.includeToc" $.Type }}
{{ end }}
{{ end }}
{{- end -}}
{{ end }}
{{ end }}
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
{{ with $download }}
<div class="mb-5 text-center">
{{ $attr := dict "download" (path.Base .) }}
{{ partial "assets/button.html" (dict "href" . "title" (T "download" ) "color" "primary" "outline" "true" "icon" "fas download" "size" "sm" "attributes" $attr) }}
</div>
{{ end }}
{{ if $toc }}
{{ partial "assets/toc.html" (dict "page" . "download" $download) }}
{{ end -}}
</div>

View File

@@ -1 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -1 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -186,7 +186,7 @@
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $page "format" "terse") }}</div>
{{- end -}}
{{ else }}
{{ if gt $count $max }}
{{ if and (gt $count $max) $moreTitle }}
<a class="btn btn-outline-primary" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
{{ end }}
{{ end }}

View File

@@ -1,7 +1,7 @@
{{- $page := .page }}
{{- $section := .section }}
{{- if not $section }}{{ errorf "partial [assets/section-list.html] - Missing value for param 'section'" }}{{ end -}}
{{- $home := .home }}
{{- $home := .home | default false }}
{{ if ne (printf "%T" $home) "bool" }}
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'home'"}}
{{ end }}
@@ -37,6 +37,7 @@
{{- $ratio := "" -}}
{{- $wrap := false -}}
{{- $loading := .loading -}}
{{- $wrapper := .wrapper | default "p-4 px-xxl-0 pb-5" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
@@ -77,6 +78,12 @@
{{ else }}
{{ $list = where site.Pages (printf ".Params.%s" $section) "!=" nil }}
{{ end }}
{{ else if eq $kind "related" }}
{{ if $page.Keywords}}
{{ $keywords := keyVals "tags" $page.Keywords }}
{{ $opts := dict "namedSlices" (slice $keywords) }}
{{ $list = site.RegularPages.Related $opts }}
{{ end }}
{{ else if $nested }}
{{ $list = where site.RegularPages "Type" "in" $section }}
{{ else if $home }}
@@ -100,7 +107,7 @@
{{- end -}}
{{ if gt $max 0 }}
{{- if $home -}}
{{- if or $home (eq $kind "related") -}}
{{- $paginate = false -}}
{{- $max = int (math.Min $homepage $max) -}}
{{ end -}}
@@ -128,7 +135,7 @@
{{- $partial := "" -}}
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }} p-0">
<div class="container-xxl p-4 px-xxl-0 pb-5">
<div class="container-xxl {{ $wrapper }}">
{{- partial "assets/section-header.html" $params -}}
{{ if eq $layout "card" }}

View File

@@ -1,11 +1,28 @@
{{- if .Site.Params.sharing.enabled -}}
{{- if or .Params.sharing (not (isset .Params "sharing")) -}}
{{- $sharing := true -}}
{{ if isset .Params "sharing" }}
{{ $sharing = .Params.sharing }}
{{ else }}
{{- with (index site.Params.pages .Type ) -}}
{{ if isset . "sharing" }}
{{ $sharing = (index . "sharing") }}
{{ end }}
{{- end -}}
{{ end }}
{{- if $sharing -}}
{{- $page := . -}}
{{- $order := "asc" -}}
{{- $list := .Site.Params.sharing.providers -}}
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
{{- $list = sort $list $sort $order -}}
{{- $download := .Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
{{- end -}}
<div class="py-3 text-body-secondary hstack gap-1">
{{ T "shareLink" "" }}
{{- range $index, $item := $list -}}
@@ -27,6 +44,10 @@
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem")) "spacing" false) }}
{{- end -}}
{{ with $download }}
{{ $attr := dict "download" (path.Base .) }}
{{ partial "assets/button.html" (dict "href" . "icon" "fas download fa-fw" "class" "btn-social p-0" "attributes" $attr "spacing" false) }}
{{- end -}}
</div>
{{- end -}}
{{- end -}}

View File

@@ -1,17 +1,7 @@
{{- $page := .page -}}
{{- $download := .download -}}
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
{{ if or $download (gt $items 1) -}}
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
{{ with $download }}
<div class="mb-5">
{{ $attr := dict "download" (path.Base .) }}
{{ partial "assets/button.html" (dict "href" . "title" (T "download" ) "color" "primary" "outline" "true" "icon" "fas download" "attributes" $attr) }}
</div>
{{ end }}
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
{{ $page.TableOfContents }}
</div>
{{ if gt $items 1 -}}
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
{{ $page.TableOfContents }}
{{ end -}}

View File

@@ -1,5 +1,7 @@
{{- $page := .page -}}
{{- $class := printf "img-wrap %s" .class -}}
{{- $class := printf "img-wrap" -}}
{{- with .class }}{{ $class = printf "img-wrap %s" . }}{{ end -}}
{{- $ratio := .ratio | default "21x9" -}}
{{- $thumbnail := "" -}}
{{- $credits := "" -}}
@@ -33,5 +35,5 @@
{{- end -}}
{{ if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "21x9" "outerClass" $class "innerClass" "rounded" "title" $page.Params.title "caption" $credits) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" $ratio "outerClass" $class "innerClass" "rounded" "title" $page.Params.title "caption" $credits) -}}
{{ end -}}

View File

@@ -26,6 +26,9 @@
</div>
</div>
{{ end }}
{{ if eq $.Site.Taxonomies.tags 0 }}
<p class="pt-4">{{- T "emptyTags" }}.</p>
{{ end }}
{{ else }}
{{ $dateFormat := default "Jan 2" (index .Site.Params "date_format") }}
{{ $.Scratch.Set "lastYear" ""}}

View File

@@ -4,8 +4,8 @@
command = "npm run build:example"
[build.environment]
DART_SASS_VERSION = "1.69.0"
HUGO_VERSION = "0.119.0"
DART_SASS_VERSION = "1.69.5"
HUGO_VERSION = "0.120.3"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "18.18.2"

17
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@gethinode/hinode",
"version": "0.21.1",
"version": "0.21.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "0.21.1",
"version": "0.21.4",
"license": "MIT",
"devDependencies": {
"@fullhuman/postcss-purgecss": "^5.0.0",
@@ -18,7 +18,7 @@
"eslint": "^8.53.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-n": "^16.2.0",
"eslint-plugin-n": "^16.3.0",
"eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.116.3",
"markdownlint-cli2": "^0.10.0",
@@ -33,7 +33,10 @@
"stylelint-config-standard-scss": "^11.1.0"
},
"optionalDependencies": {
"fsevents": "*"
"@gethinode/netlify-plugin-dartsass": "^0.2.0",
"@netlify/plugin-lighthouse": "*",
"fsevents": "*",
"netlify-plugin-hugo-cache-resources": "^0.2.1"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -2935,9 +2938,9 @@
"dev": true
},
"node_modules/eslint-plugin-n": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.2.0.tgz",
"integrity": "sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==",
"version": "16.3.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.0.tgz",
"integrity": "sha512-/XZLH5CUXGK3laz3xYFNza8ZxLCq8ZNW6MsVw5z3d5hc2AwZzi0fPiySFZHQTdVDOHGs2cGv91aqzWmgBdq2gQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.21.1",
"version": "0.21.4",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -76,7 +76,7 @@
"eslint": "^8.53.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-n": "^16.2.0",
"eslint-plugin-n": "^16.3.0",
"eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.116.3",
"markdownlint-cli2": "^0.10.0",
@@ -91,7 +91,10 @@
"stylelint-config-standard-scss": "^11.1.0"
},
"optionalDependencies": {
"fsevents": "*"
"@gethinode/netlify-plugin-dartsass": "^0.2.0",
"@netlify/plugin-lighthouse": "*",
"fsevents": "*",
"netlify-plugin-hugo-cache-resources": "^0.2.1"
},
"hugo-bin": {
"buildTags": "extended"