mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3ae1671b46 | ||
![]() |
4b9f137d41 | ||
![]() |
651f733622 | ||
![]() |
a2b0c2c05f | ||
![]() |
21476927ef | ||
![]() |
8c86081271 | ||
![]() |
fe5e94d277 | ||
![]() |
585db8094e | ||
![]() |
4bcc536d42 | ||
![]() |
b22c2e5ca5 | ||
![]() |
715b714781 | ||
![]() |
1d4b95a827 | ||
![]() |
0530a01445 | ||
![]() |
2a29eba66e | ||
![]() |
e93b66f4b8 | ||
![]() |
44bb9d7f12 |
@@ -256,7 +256,6 @@
|
||||
"me-auto",
|
||||
"middle-bar",
|
||||
"min-vh-100",
|
||||
"mirrorred",
|
||||
"ms-1",
|
||||
"ms-3",
|
||||
"ms-auto",
|
||||
|
@@ -27,6 +27,8 @@
|
||||
translation: "More {{ . }}"
|
||||
- id: emptyList
|
||||
translation: "No articles found"
|
||||
- id: emptyTags
|
||||
translation: "No tags found"
|
||||
|
||||
# Sharing
|
||||
- id: shareLink
|
||||
|
@@ -25,6 +25,8 @@
|
||||
translation: "Meer {{ . }}"
|
||||
- id: emptyList
|
||||
translation: "Geen artikelen gevonden"
|
||||
- id: emptyTags
|
||||
translation: "Geen tags gevonden"
|
||||
|
||||
# Sharing
|
||||
- id: shareLink
|
||||
|
@@ -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">
|
||||
|
@@ -1,2 +1,3 @@
|
||||
{{- partial "single/thumbnail.html" (dict "page" . "class" "mb-5") -}}
|
||||
|
||||
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
||||
|
@@ -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 -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }} •
|
||||
{{ .ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" }} •
|
||||
{{ .WordCount | lang.FormatNumber 0 }} {{ 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 -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }}
|
||||
{{ end }}
|
||||
•
|
||||
{{ .ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" }} •
|
||||
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
||||
</small>
|
||||
{{ end }}
|
||||
|
||||
{{- if gt (len (.GetTerms "tags")) 0 -}}
|
||||
<div class="mt-3">
|
||||
|
33
layouts/_default/single/panel-toc.html
Normal file
33
layouts/_default/single/panel-toc.html
Normal 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>
|
@@ -1 +1 @@
|
||||
{{/* Intentionally left blank to suppress thumbnail */}}
|
||||
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
||||
|
@@ -1 +1 @@
|
||||
{{/* Intentionally left blank to suppress thumbnail */}}
|
||||
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
||||
|
@@ -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 }}
|
||||
|
@@ -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" }}
|
||||
|
@@ -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 -}}
|
@@ -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 -}}
|
@@ -1,5 +1,6 @@
|
||||
{{- $page := .page -}}
|
||||
{{- $class := printf "img-wrap %s" .class -}}
|
||||
{{- $ratio := .ratio | default "21x9" -}}
|
||||
{{- $thumbnail := "" -}}
|
||||
{{- $credits := "" -}}
|
||||
|
||||
@@ -33,5 +34,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 -}}
|
@@ -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" ""}}
|
||||
|
@@ -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"
|
||||
|
12
package-lock.json
generated
12
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.1",
|
||||
"version": "0.21.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.1",
|
||||
"version": "0.21.2",
|
||||
"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",
|
||||
@@ -2935,9 +2935,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",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.1",
|
||||
"version": "0.21.2",
|
||||
"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",
|
||||
|
Reference in New Issue
Block a user