Merge pull request #721 from nunocoracao/dev

🔖 release v2.33.2
This commit is contained in:
Nuno Coração 2023-05-12 14:33:16 +01:00 committed by GitHub
commit a387038958
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 61 additions and 33 deletions

View file

@ -26,16 +26,19 @@ window.addEventListener("DOMContentLoaded", (event) => {
const switcher = document.getElementById("appearance-switcher"); const switcher = document.getElementById("appearance-switcher");
const switcherMobile = document.getElementById("appearance-switcher-mobile"); const switcherMobile = document.getElementById("appearance-switcher-mobile");
updateMeta() updateMeta();
this.updateLogo?.(getTargetAppearance());
if (switcher) { if (switcher) {
switcher.addEventListener("click", () => { switcher.addEventListener("click", () => {
document.documentElement.classList.toggle("dark"); document.documentElement.classList.toggle("dark");
var targetAppearance = getTargetAppearance();
localStorage.setItem( localStorage.setItem(
"appearance", "appearance",
document.documentElement.classList.contains("dark") ? "dark" : "light" targetAppearance
); );
updateMeta() updateMeta();
this.updateLogo?.(targetAppearance);
}); });
switcher.addEventListener("contextmenu", (event) => { switcher.addEventListener("contextmenu", (event) => {
event.preventDefault(); event.preventDefault();
@ -45,11 +48,13 @@ window.addEventListener("DOMContentLoaded", (event) => {
if (switcherMobile) { if (switcherMobile) {
switcherMobile.addEventListener("click", () => { switcherMobile.addEventListener("click", () => {
document.documentElement.classList.toggle("dark"); document.documentElement.classList.toggle("dark");
var targetAppearance = getTargetAppearance();
localStorage.setItem( localStorage.setItem(
"appearance", "appearance",
document.documentElement.classList.contains("dark") ? "dark" : "light" targetAppearance
); );
updateMeta() updateMeta();
this.updateLogo?.(targetAppearance);
}); });
switcherMobile.addEventListener("contextmenu", (event) => { switcherMobile.addEventListener("contextmenu", (event) => {
event.preventDefault(); event.preventDefault();
@ -66,10 +71,31 @@ var updateMeta = () => {
document.querySelector('meta[name="theme-color"]').setAttribute('content', style.backgroundColor); document.querySelector('meta[name="theme-color"]').setAttribute('content', style.backgroundColor);
} }
{{ if and (.Site.Params.Logo) (.Site.Params.SecondaryLogo) }}
{{ $primaryLogo := resources.Get .Site.Params.Logo }}
{{ $secondaryLogo := resources.Get .Site.Params.SecondaryLogo }}
{{ if and ($primaryLogo) ($secondaryLogo) }}
var updateLogo = (targetAppearance) => {
var elems;
elems = document.querySelectorAll("img.logo")
targetLogoPath =
targetAppearance == "{{ .Site.Params.DefaultAppearance }}" ?
"{{ $primaryLogo.RelPermalink }}" : "{{ $secondaryLogo.RelPermalink }}"
for (const elem of elems) {
elem.setAttribute("src", targetLogoPath)
}
}
{{ end }}
{{- end }}
var getTargetAppearance = () => {
return document.documentElement.classList.contains("dark") ? "dark" : "light"
}
window.addEventListener("DOMContentLoaded", (event) => { window.addEventListener("DOMContentLoaded", (event) => {
const scroller = document.getElementById("top-scroller"); const scroller = document.getElementById("top-scroller");
const footer = document.getElementById("site-footer"); const footer = document.getElementById("site-footer");
if(scroller.getBoundingClientRect().top > footer.getBoundingClientRect().top) { if(scroller.getBoundingClientRect().top > footer.getBoundingClientRect().top) {
scroller.hidden = true; scroller.hidden = true;
} }
}); });

View file

@ -7,6 +7,7 @@ rtl = false
title = "Blowfish" title = "Blowfish"
# logo = "img/logo.png" # logo = "img/logo.png"
# secondaryLogo = "img/secondary-logo.png"
# description = "My awesome website" # description = "My awesome website"
# copyright = "Copy, _right?_ :thinking_face:" # copyright = "Copy, _right?_ :thinking_face:"

View file

@ -7,6 +7,7 @@ rtl = false
title = "Blowfish" title = "Blowfish"
logo = "img/blowfish_logo_transparent.png" logo = "img/blowfish_logo_transparent.png"
#secondaryLogo = "PATH"
description = "A powerful, lightweight theme for Hugo built with Tailwind CSS." description = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
# copyright = "Copy, _right?_ :thinking_face:" # copyright = "Copy, _right?_ :thinking_face:"

View file

@ -19,8 +19,6 @@
# name = "Examples" # name = "Examples"
# weight = 20 # weight = 20
[[main]] [[main]]
name = "Samples" name = "Samples"
pageRef = "samples" pageRef = "samples"

View file

@ -141,6 +141,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. | | `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. | | `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. | | `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. |
| `secondaryLogo` | _Not set_ | The relative path to the secondary site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. This should have an inverted/contrasting colour scheme to `logo`. If set, this logo will be shown when users toggle from the `defaultAppearance` mode. |
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. | | `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. | | `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. | | `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |

View file

@ -197,7 +197,7 @@ Both menus are completely optional and can be commented out if not required. Use
### Nested menus ### Nested menus
The theme also supports nested menus. In order to use them you just need to define a parent entry in `menu.toml` and its sub-menus using the `parent` parameter to reference the parent. All properties can be used for sub-menus. Note that `pageRef` and `url` will be ignored for the parent entry. Nested menus is only available in the main menu not for the footer. The theme also supports nested menus. In order to use them you just need to define a parent entry in `menu.toml` and its sub-menus using the `parent` parameter to reference the parent. All properties can be used for sub-menus. `pageRef` and `url` can also be used in the parent entry. Nested menus are only available in the main menu not for the footer.
```toml ```toml
# config/_default/menus.toml # config/_default/menus.toml

View file

@ -14,7 +14,7 @@
<meta name="title" content="{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}" /> <meta name="title" content="{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}" />
{{- end }} {{- end }}
{{/* Metadata */}} {{/* Metadata */}}
{{ with .Params.Summary | default .Site.Params.description -}} {{ with (.Params.Summary | default .Params.Description) | default .Site.Params.description -}}
<meta name="description" content="{{ . }}" /> <meta name="description" content="{{ . }}" />
{{- end }} {{- end }}
{{ with .Params.Tags | default .Site.Params.keywords -}} {{ with .Params.Tags | default .Site.Params.keywords -}}
@ -50,7 +50,7 @@
<link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}" <link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}"
integrity="{{ $bundleCSS.Data.Integrity }}" /> integrity="{{ $bundleCSS.Data.Integrity }}" />
{{ $jsAppearance := resources.Get "js/appearance.js" }} {{ $jsAppearance := resources.Get "js/appearance.js" }}
{{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate $jsAppearance.RelPermalink . | resources.Minify | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}" <script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}"
integrity="{{ $jsAppearance.Data.Integrity }}"></script> integrity="{{ $jsAppearance.Data.Integrity }}"></script>
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}

View file

@ -8,7 +8,7 @@
<span class="sr-only">{{ .Site.Title | markdownify | emojify }}</span> <span class="sr-only">{{ .Site.Title | markdownify | emojify }}</span>
<img src="{{ $logo.RelPermalink }}" width="{{ div $logo.Width 2 }}" height="{{ div $logo.Height 2 }}" <img src="{{ $logo.RelPermalink }}" width="{{ div $logo.Width 2 }}" height="{{ div $logo.Height 2 }}"
class="max-h-[5rem] max-w-[5rem] object-scale-down object-left nozoom" alt="{{ .Site.Title }}" /> class="logo max-h-[5rem] max-w-[5rem] object-scale-down object-left nozoom" alt="{{ .Site.Title }}" />
</a> </a>
</div> </div>

View file

@ -5,7 +5,8 @@
{{ partial "icon.html" .Pre }} {{ partial "icon.html" .Pre }}
</span> </span>
{{ end }} {{ end }}
<a class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}"> <a {{ if .URL }} href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:" ) }}
target="_blank" {{ end }} {{ end }} class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }} {{ .Name | markdownify | emojify }}
</a> </a>
<span> <span>
@ -31,4 +32,4 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>

32
package-lock.json generated
View file

@ -1,17 +1,17 @@
{ {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.33.0", "version": "2.33.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.33.0", "version": "2.33.1",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@headlessui/react": "^1.7.14", "@headlessui/react": "^1.7.14",
"@heroicons/react": "^2.0.17", "@heroicons/react": "^2.0.18",
"@tailwindcss/forms": "^0.5.3", "@tailwindcss/forms": "^0.5.3",
"commander": "^10.0.1" "commander": "^10.0.1"
}, },
@ -19,7 +19,7 @@
"@tailwindcss/typography": "^0.5.9", "@tailwindcss/typography": "^0.5.9",
"chart.js": "^4.3.0", "chart.js": "^4.3.0",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"jquery": "^3.6.4", "jquery": "^3.7.0",
"katex": "^0.16.7", "katex": "^0.16.7",
"packery": "^2.1.2", "packery": "^2.1.2",
"prettier": "^2.8.8", "prettier": "^2.8.8",
@ -59,9 +59,9 @@
} }
}, },
"node_modules/@heroicons/react": { "node_modules/@heroicons/react": {
"version": "2.0.17", "version": "2.0.18",
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.17.tgz", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.18.tgz",
"integrity": "sha512-90GMZktkA53YbNzHp6asVEDevUQCMtxWH+2UK2S8OpnLEu7qckTJPhNxNQG52xIR1WFTwFqtH6bt7a60ZNcLLA==", "integrity": "sha512-7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==",
"peerDependencies": { "peerDependencies": {
"react": ">= 16" "react": ">= 16"
} }
@ -594,9 +594,9 @@
} }
}, },
"node_modules/jquery": { "node_modules/jquery": {
"version": "3.6.4", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==", "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==",
"dev": true "dev": true
}, },
"node_modules/js-tokens": { "node_modules/js-tokens": {
@ -1650,9 +1650,9 @@
} }
}, },
"@heroicons/react": { "@heroicons/react": {
"version": "2.0.17", "version": "2.0.18",
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.17.tgz", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.18.tgz",
"integrity": "sha512-90GMZktkA53YbNzHp6asVEDevUQCMtxWH+2UK2S8OpnLEu7qckTJPhNxNQG52xIR1WFTwFqtH6bt7a60ZNcLLA==", "integrity": "sha512-7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==",
"requires": {} "requires": {}
}, },
"@jridgewell/gen-mapping": { "@jridgewell/gen-mapping": {
@ -2069,9 +2069,9 @@
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg=="
}, },
"jquery": { "jquery": {
"version": "3.6.4", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==", "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==",
"dev": true "dev": true
}, },
"js-tokens": { "js-tokens": {

View file

@ -1,6 +1,6 @@
{ {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.33.1", "version": "2.33.2",
"description": "Blowfish theme for Hugo", "description": "Blowfish theme for Hugo",
"scripts": { "scripts": {
"fullinstall": "npm run preinstall && npm install && npm run postinstall", "fullinstall": "npm run preinstall && npm install && npm run postinstall",
@ -37,7 +37,7 @@
"@tailwindcss/typography": "^0.5.9", "@tailwindcss/typography": "^0.5.9",
"chart.js": "^4.3.0", "chart.js": "^4.3.0",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"jquery": "^3.6.4", "jquery": "^3.7.0",
"katex": "^0.16.7", "katex": "^0.16.7",
"packery": "^2.1.2", "packery": "^2.1.2",
"prettier": "^2.8.8", "prettier": "^2.8.8",
@ -94,7 +94,7 @@
], ],
"dependencies": { "dependencies": {
"@headlessui/react": "^1.7.14", "@headlessui/react": "^1.7.14",
"@heroicons/react": "^2.0.17", "@heroicons/react": "^2.0.18",
"@tailwindcss/forms": "^0.5.3", "@tailwindcss/forms": "^0.5.3",
"commander": "^10.0.1" "commander": "^10.0.1"
} }