mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-08 10:34:26 +00:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4f58f20b94 | ||
![]() |
cd047ea6fe | ||
![]() |
7d6526f291 | ||
![]() |
ede17bdae8 | ||
![]() |
876315613e | ||
![]() |
b2c5efb4bd | ||
![]() |
74047866e5 | ||
![]() |
6fb25c2111 | ||
![]() |
db3fc0014e | ||
![]() |
7105f8e719 | ||
![]() |
96ab7df306 | ||
![]() |
1a964adabb | ||
![]() |
9f4adc0777 |
@@ -14,3 +14,8 @@
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.mirrorred {
|
||||
-webkit-transform: scaleX(-1);
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
|
@@ -32,6 +32,8 @@ github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2
|
||||
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
|
||||
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
|
||||
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
|
@@ -256,6 +256,7 @@
|
||||
"me-auto",
|
||||
"middle-bar",
|
||||
"min-vh-100",
|
||||
"mirrorred",
|
||||
"ms-1",
|
||||
"ms-3",
|
||||
"ms-auto",
|
||||
|
2
go.mod
2
go.mod
@@ -6,7 +6,7 @@ require (
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||
github.com/gethinode/mod-bootstrap v1.2.2 // indirect
|
||||
github.com/gethinode/mod-flexsearch v1.6.0 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.5.0 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.5.1 // indirect
|
||||
github.com/gethinode/mod-katex v1.0.4 // indirect
|
||||
github.com/gethinode/mod-leaflet v0.3.5 // indirect
|
||||
github.com/gethinode/mod-lottie v1.3.0 // indirect
|
||||
|
2
go.sum
2
go.sum
@@ -62,6 +62,8 @@ github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2
|
||||
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
|
||||
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
|
||||
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
||||
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
||||
|
@@ -210,7 +210,12 @@
|
||||
{{- $fallbackURL = $url -}}
|
||||
{{- $isVector = true -}}
|
||||
{{- else -}}
|
||||
{{- $img := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
||||
{{- $res := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
||||
{{- $img := "" -}}
|
||||
{{ with $res }}
|
||||
{{ $img = $res.resource }}
|
||||
{{ if $res.mirror }}{{ $innerClass = printf "%s mirrorred" $innerClass }}{{ end }}
|
||||
{{ end }}
|
||||
{{- if $img -}}
|
||||
{{- $fallback := partial "partials/image-default.html" (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
|
||||
{{- if $absoluteURL -}}
|
||||
|
@@ -12,8 +12,10 @@
|
||||
|
||||
{{- $thumbnail := (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) -}}
|
||||
{{ with $thumbnail -}}
|
||||
{{ $img := partial "utilities/GetImage.html" (dict "url" .) -}}
|
||||
{{ with $img -}}
|
||||
{{- $res := partial "utilities/GetImage.html" (dict "url" .) -}}
|
||||
{{- $img := "" -}}
|
||||
{{ with $res }}{{ $img = $res.resource }}{{ end }}
|
||||
{{ with $img -}}
|
||||
{{ $dim := "1280x640" -}}
|
||||
{{ $scaled := (.Fill (printf "%s jpg" $dim)) -}}
|
||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink ".jpg" (printf "-%s.jpg" $dim)) -}}
|
||||
|
@@ -10,6 +10,7 @@
|
||||
|
||||
{{ $url := .url -}}
|
||||
{{ $page := .page -}}
|
||||
{{ $mirror := false }}
|
||||
|
||||
{{ $supportedMediaTypes := slice "image/png" "image/jpeg" "image/gif" "image/tiff" "image/bmp" "image/webp" -}}
|
||||
{{ $img := "" }}
|
||||
@@ -38,6 +39,34 @@
|
||||
{{ end -}}
|
||||
{{ $img = $img.Content | resources.FromString (printf "/img/%s" $filename) -}}
|
||||
{{ end -}}
|
||||
|
||||
<!--
|
||||
Rotate the image if needed based on EXIF orientation. EXIF defines the following values:
|
||||
(source: https://sirv.com/help/articles/rotate-photos-to-be-upright/#EXIF_orientation_values)
|
||||
1 = 0 degrees: the correct orientation, no adjustment is required.
|
||||
2 = 0 degrees, mirrored: image has been flipped back-to-front.
|
||||
3 = 180 degrees: image is upside down.
|
||||
4 = 180 degrees, mirrored: image has been flipped back-to-front and is upside down.
|
||||
5 = 90 degrees: image has been flipped back-to-front and is on its side.
|
||||
6 = 90 degrees, mirrored: image is on its side.
|
||||
7 = 270 degrees: image has been flipped back-to-front and is on its far side.
|
||||
8 = 270 degrees, mirrored: image is on its far side.
|
||||
-->
|
||||
{{ with $img.Exif }}
|
||||
{{ $filter := "" }}
|
||||
{{ $orientation := .Tags.Orientation }}
|
||||
{{ if or (eq $orientation 3) (eq $orientation 4) }}
|
||||
{{ $filter = images.Process "r180" }}
|
||||
{{ else if or (eq $orientation 5) (eq $orientation 6) }}
|
||||
{{ $filter = images.Process "r270" }}
|
||||
{{ else if or (eq $orientation 7) (eq $orientation 8) }}
|
||||
{{ $filter = images.Process "r90" }}
|
||||
{{ end }}
|
||||
{{ with $filter }}{{ $img = $img.Filter . }}{{ end }}
|
||||
|
||||
{{- $isMirrored := slice 2 4 5 7 -}}
|
||||
{{- if (in $isMirrored $orientation) }}{{ $mirror = true }}{{ end -}}
|
||||
{{ end }}
|
||||
{{ else -}}
|
||||
{{ warnf "Image type '%s' is not supported: %s" $img.MediaType $url -}}
|
||||
{{ $img = "" -}}
|
||||
@@ -46,4 +75,4 @@
|
||||
{{ warnf "Cannot find image resource: %q" $url -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ return $img -}}
|
||||
{{ return (dict "resource" $img "mirror" $mirror) -}}
|
@@ -19,11 +19,22 @@
|
||||
"mode": Optional flag indicating if the image should support color modes.
|
||||
-->
|
||||
|
||||
{{- if isset .Params "src" -}}
|
||||
{{ $error := false -}}
|
||||
{{ $url := .Get "src" | default "" -}}
|
||||
{{- $url := "" -}}
|
||||
{{- $ratio := "" -}}
|
||||
{{- $wrapper := "" -}}
|
||||
{{- $class := "" -}}
|
||||
{{- $title := "" -}}
|
||||
{{- $caption := "" -}}
|
||||
{{- $mode := false -}}
|
||||
{{- $portrait := false -}}
|
||||
{{- $loading := "" -}}
|
||||
{{- $error := false -}}
|
||||
|
||||
{{- if .IsNamedParams -}}
|
||||
{{ $url = .Get "src" | default "" -}}
|
||||
|
||||
{{- $validRatios := slice "1x1" "3x2" "4x3" "16x9" "21x9" -}}
|
||||
{{ $ratio := .Get "ratio" | default "" -}}
|
||||
{{ $ratio = .Get "ratio" | default "" -}}
|
||||
{{ if $ratio -}}
|
||||
{{ if not (in $validRatios $ratio) -}}
|
||||
{{ errorf "Invalid value for param 'ratio': %s" .Position -}}
|
||||
@@ -31,10 +42,10 @@
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- $class := .Get "class" | default "" -}}
|
||||
{{- $wrapper := .Get "wrapper" | default "" -}}
|
||||
{{- $class = .Get "class" | default "" -}}
|
||||
{{- $wrapper = .Get "wrapper" | default "" -}}
|
||||
|
||||
{{- $loading := .Get "loading" | default "" -}}
|
||||
{{- $loading = .Get "loading" | default "" -}}
|
||||
{{- $validSettings := slice "lazy" "eager" -}}
|
||||
{{- if $loading -}}
|
||||
{{ if not (in $validSettings $loading) -}}
|
||||
@@ -42,14 +53,12 @@
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
{{- end -}}
|
||||
{{- $lazy := eq $loading "lazy" -}}
|
||||
|
||||
{{ $title := .Get "title" | default "" -}}
|
||||
{{ $caption := .Get "caption" | default "" -}}
|
||||
{{ $title = .Get "title" | default "" -}}
|
||||
{{ $caption = .Get "caption" | default "" -}}
|
||||
|
||||
{{ $supportedFlags := slice "true" "false" -}}
|
||||
{{ $modeParam := "false" -}}
|
||||
{{ $mode := false -}}
|
||||
{{ with .Get "mode" }}{{ $modeParam = . }}{{ end -}}
|
||||
{{ if in $supportedFlags $modeParam -}}
|
||||
{{ if eq $modeParam "true" }}{{ $mode = true }}{{ else }}{{ $mode = false }}{{ end -}}
|
||||
@@ -59,7 +68,6 @@
|
||||
{{ end -}}
|
||||
|
||||
{{ $portraitParam := "false" -}}
|
||||
{{ $portrait := false -}}
|
||||
{{ with .Get "portrait" }}{{ $portraitParam = . }}{{ end -}}
|
||||
{{ if in $supportedFlags $portraitParam -}}
|
||||
{{ if eq $portraitParam "true" }}{{ $portrait = true }}{{ else }}{{ $portrait = false }}{{ end -}}
|
||||
@@ -67,21 +75,26 @@
|
||||
{{ errorf "Invalid value for param 'portrait': %s" $portraitParam -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- if not $error -}}
|
||||
{{- partial "assets/image.html" (dict
|
||||
"url" $url
|
||||
"ratio" $ratio
|
||||
"outerClass" $wrapper
|
||||
"innerClass" $class
|
||||
"title" $title
|
||||
"caption" $caption
|
||||
"mode" $mode
|
||||
"portrait" $portrait
|
||||
"loading" $loading
|
||||
"page" .Page)
|
||||
-}}
|
||||
{{- end -}}
|
||||
{{ else -}}
|
||||
{{ $url = .Get 0 }}
|
||||
{{ end -}}
|
||||
|
||||
{{ if not $url }}
|
||||
{{ errorf "Missing value for param 'src': %s" .Position -}}
|
||||
{{ end -}}
|
||||
{{- $error = true -}}
|
||||
{{ end }}
|
||||
|
||||
{{- if not $error -}}
|
||||
{{- partial "assets/image.html" (dict
|
||||
"url" $url
|
||||
"ratio" $ratio
|
||||
"outerClass" $wrapper
|
||||
"innerClass" $class
|
||||
"title" $title
|
||||
"caption" $caption
|
||||
"mode" $mode
|
||||
"portrait" $portrait
|
||||
"loading" $loading
|
||||
"page" .Page)
|
||||
-}}
|
||||
{{- end -}}
|
||||
|
@@ -12,17 +12,17 @@
|
||||
{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
<p class="display-4 mt-5">{{ .Name | humanize }}</p>
|
||||
<p class="display-4 mt-5">{{ .Page.Title }}</p>
|
||||
|
||||
{{ if eq .Kind "taxonomy" }}
|
||||
<div class="row mt-5"></div>
|
||||
{{ range $.Site.Taxonomies.tags.ByCount }}
|
||||
<div class="row mt-2">
|
||||
<div class="d-none d-sm-block col-sm-3 mt-auto text-right">
|
||||
<div class="col-3 mt-auto text-right">
|
||||
{{ .Count }} {{ if gt .Count 1 }} {{ T "articles" }} {{ else }} {{ T "article" }} {{ end }}
|
||||
</div>
|
||||
<div class="col">
|
||||
<a href="{{ (path.Join .Page.RelPermalink) | relLangURL }}">{{ .Name | .Page.RenderString }}</a>
|
||||
<div class="col-9">
|
||||
<a href="{{ (path.Join .Page.RelPermalink) | relLangURL }}">{{ .Page.Title | .Page.RenderString }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
28
package-lock.json
generated
28
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.0",
|
||||
"version": "0.21.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.0",
|
||||
"version": "0.21.1",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||
@@ -15,7 +15,7 @@
|
||||
"autoprefixer": "^10.4.16",
|
||||
"cssnano": "^6.0.1",
|
||||
"cssnano-preset-advanced": "^6.0.1",
|
||||
"eslint": "^8.52.0",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-n": "^16.2.0",
|
||||
@@ -334,9 +334,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
|
||||
"integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
|
||||
"integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ajv": "^6.12.4",
|
||||
@@ -380,9 +380,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
|
||||
"integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
|
||||
"version": "8.53.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
|
||||
"integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@@ -2716,15 +2716,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.52.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
|
||||
"integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
|
||||
"version": "8.53.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
|
||||
"integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
"@eslint/eslintrc": "^2.1.2",
|
||||
"@eslint/js": "8.52.0",
|
||||
"@eslint/eslintrc": "^2.1.3",
|
||||
"@eslint/js": "8.53.0",
|
||||
"@humanwhocodes/config-array": "^0.11.13",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.21.0",
|
||||
"version": "0.21.1",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -73,7 +73,7 @@
|
||||
"autoprefixer": "^10.4.16",
|
||||
"cssnano": "^6.0.1",
|
||||
"cssnano-preset-advanced": "^6.0.1",
|
||||
"eslint": "^8.52.0",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-n": "^16.2.0",
|
||||
|
Reference in New Issue
Block a user