Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a50c14d2f | ||
|
|
a21d70697f | ||
|
|
c2e76d7a12 | ||
|
|
78c3b581ab | ||
|
|
478cab6da0 | ||
|
|
699df484b5 | ||
|
|
01b0b80d4a | ||
|
|
2d9a14aa7f | ||
|
|
a365e1c040 | ||
|
|
75875e6d98 | ||
|
|
b1b781b9a6 | ||
|
|
024de8035d | ||
|
|
4e0e3aa87c | ||
|
|
1daae2dbe0 | ||
|
|
b7a033503e | ||
|
|
65708bbe4f | ||
|
|
18f406820b | ||
|
|
acc2d0b21a | ||
|
|
90211d1a55 | ||
|
|
efab80ad78 | ||
|
|
4840073ad6 | ||
|
|
c9a257162c | ||
|
|
a9fbe00438 | ||
|
|
d1f89af71e | ||
|
|
be3d698d3b | ||
|
|
2496210812 | ||
|
|
020f03e683 | ||
|
|
237e860a47 | ||
|
|
860e792064 | ||
|
|
2a6078588b | ||
|
|
924953a0a2 | ||
|
|
9951816b08 | ||
|
|
ad81bcc034 | ||
|
|
22999a341b | ||
|
|
5125c2debb | ||
|
|
4ab18490cd | ||
|
|
5c72109045 | ||
|
|
63b56b9c05 | ||
|
|
2a61aadd7a | ||
|
|
b543764ef3 | ||
|
|
69ff783616 | ||
|
|
d08898ba67 | ||
|
|
953500d193 | ||
|
|
78a827991a | ||
|
|
8fb8ddbb1b | ||
|
|
3d81e00ac3 | ||
|
|
eedb814199 | ||
|
|
39c1d4069f | ||
|
|
c2db79ee4b | ||
|
|
fec955c0b6 | ||
|
|
2ee519e779 | ||
|
|
f037da3120 | ||
|
|
738f136984 | ||
|
|
155c750026 | ||
|
|
5dabf59887 | ||
|
|
17e4692174 | ||
|
|
a0b1f2d6bd | ||
|
|
fc2c99de42 | ||
|
|
118d021a69 | ||
|
|
6dd2640439 | ||
|
|
884c6d5bc9 | ||
|
|
d3cdb21cf2 | ||
|
|
08525e6829 | ||
|
|
cbf083ff9a | ||
|
|
d8f5fb6213 | ||
|
|
c842d11364 | ||
|
|
ea0a500139 | ||
|
|
76d9e284a7 | ||
|
|
6345645094 | ||
|
|
84dcb63a65 | ||
|
|
5dc59aefbd | ||
|
|
c6f1ea85f7 | ||
|
|
9353b468bd | ||
|
|
0e48700847 | ||
|
|
234fdf8f3b | ||
|
|
c881801600 | ||
|
|
a0ab030937 | ||
|
|
e6a00754eb | ||
|
|
ef37c92237 | ||
|
|
bbd36a2ef7 | ||
|
|
9e8b165eb9 | ||
|
|
317cd183b1 | ||
|
|
18f17a9c51 | ||
|
|
ec91103321 | ||
|
|
9b5339db57 | ||
|
|
4de04aec44 | ||
|
|
c6ba36a470 | ||
|
|
703cb68f80 | ||
|
|
0ca678531c | ||
|
|
f20d063d7c | ||
|
|
0b50f6ce22 | ||
|
|
8534ee5e65 | ||
|
|
d7a2d9450f | ||
|
|
81a2aa35f9 | ||
|
|
221fe896eb | ||
|
|
8e67e8e55f | ||
|
|
bc290dcc6c | ||
|
|
77fcb98e75 | ||
|
|
596bc11cc6 | ||
|
|
fbe468e21c | ||
|
|
6537023a09 | ||
|
|
a88dab3179 | ||
|
|
ba8454a790 | ||
|
|
2abd24dcb1 | ||
|
|
178a2f4849 | ||
|
|
706b694303 | ||
|
|
f506883a91 | ||
|
|
7c7c0c2114 | ||
|
|
274b566734 | ||
|
|
64cfe7b102 | ||
|
|
6f95415af4 | ||
|
|
5e33decff2 | ||
|
|
947558cbe7 | ||
|
|
b36fc3c94c | ||
|
|
3f9e2c9687 | ||
|
|
4dccd5f297 | ||
|
|
e45c0485bc | ||
|
|
18c3a6156e | ||
|
|
c87b0156f1 | ||
|
|
6cff148d61 | ||
|
|
471704ebe8 | ||
|
|
8e9e5d0f33 | ||
|
|
5018b8b680 | ||
|
|
b07ba75916 | ||
|
|
e02dc652db | ||
|
|
97bd4f9e34 | ||
|
|
de1fa4a58d | ||
|
|
5ff365bd27 | ||
|
|
f514abfc98 | ||
|
|
51e94eddad | ||
|
|
09db4ca3f6 | ||
|
|
d5db97fb2d | ||
|
|
52d6eb7bb1 | ||
|
|
a517624b70 | ||
|
|
d2143149cd | ||
|
|
afbf2f66d7 | ||
|
|
4a4c13f3a0 | ||
|
|
c0af00b628 | ||
|
|
363ba66e14 | ||
|
|
5ccea15f3f | ||
|
|
ff7539933e | ||
|
|
2be439622b | ||
|
|
9d07830623 | ||
|
|
e69e326725 | ||
|
|
fa9c3439ba | ||
|
|
9a28e25251 | ||
|
|
61c3fb2625 | ||
|
|
df7474ca19 | ||
|
|
7811e36534 | ||
|
|
3092ea4523 | ||
|
|
9bfb7adf95 | ||
|
|
2e16b49adb | ||
|
|
3b3a64c9b9 | ||
|
|
d966187073 | ||
|
|
4152e27e35 | ||
|
|
8713e4429b | ||
|
|
7ac9d0ce24 | ||
|
|
5b617bce69 | ||
|
|
d573317640 | ||
|
|
6f8c427a36 | ||
|
|
9e5d3f7758 | ||
|
|
dcde4feef3 | ||
|
|
a47a7e3bf5 | ||
|
|
d7f618a92e | ||
|
|
5f181d02db | ||
|
|
c5dd873351 | ||
|
|
1fbb47f5d5 | ||
|
|
d6873cf1b1 | ||
|
|
3ea13cfe37 | ||
|
|
213880a1a3 | ||
|
|
e7a24c2e86 | ||
|
|
a5e9ac3997 | ||
|
|
565837e0f5 | ||
|
|
be6ce389c6 | ||
|
|
042eca79b2 | ||
|
|
40422fe062 | ||
|
|
c35242e912 | ||
|
|
41615910a7 | ||
|
|
f52acf7a0f | ||
|
|
a9e19f38c8 | ||
|
|
4c92571a0b | ||
|
|
b1c138deca | ||
|
|
cd583f86a5 | ||
|
|
9cecb76c45 |
No files matched your search
@@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
commit-message: Update Hugo supported version
|
||||
title: ⚙️ Update Hugo supported version
|
||||
|
||||
@@ -14,7 +14,115 @@ body.zen-mode-enable {
|
||||
}
|
||||
}
|
||||
|
||||
/*! tailwindcss v3.4.7 | MIT License | https://tailwindcss.com */
|
||||
*, ::before, ::after {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-gradient-from-position: ;
|
||||
--tw-gradient-via-position: ;
|
||||
--tw-gradient-to-position: ;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgb(59 130 246 / 0.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style:
|
||||
}
|
||||
|
||||
::backdrop {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-gradient-from-position: ;
|
||||
--tw-gradient-via-position: ;
|
||||
--tw-gradient-to-position: ;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgb(59 130 246 / 0.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style:
|
||||
}
|
||||
|
||||
/*! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com */
|
||||
|
||||
/*
|
||||
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
||||
@@ -662,114 +770,6 @@ select {
|
||||
}
|
||||
}
|
||||
|
||||
*, ::before, ::after {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-gradient-from-position: ;
|
||||
--tw-gradient-via-position: ;
|
||||
--tw-gradient-to-position: ;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgb(59 130 246 / 0.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style:
|
||||
}
|
||||
|
||||
::backdrop {
|
||||
--tw-border-spacing-x:0;
|
||||
--tw-border-spacing-y:0;
|
||||
--tw-translate-x:0;
|
||||
--tw-translate-y:0;
|
||||
--tw-rotate:0;
|
||||
--tw-skew-x:0;
|
||||
--tw-skew-y:0;
|
||||
--tw-scale-x:1;
|
||||
--tw-scale-y:1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness:proximity;
|
||||
--tw-gradient-from-position: ;
|
||||
--tw-gradient-via-position: ;
|
||||
--tw-gradient-to-position: ;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width:0px;
|
||||
--tw-ring-offset-color:#fff;
|
||||
--tw-ring-color:rgb(59 130 246 / 0.5);
|
||||
--tw-ring-offset-shadow:0 0 #0000;
|
||||
--tw-ring-shadow:0 0 #0000;
|
||||
--tw-shadow:0 0 #0000;
|
||||
--tw-shadow-colored:0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style:
|
||||
}
|
||||
|
||||
.container {
|
||||
width:100%
|
||||
}
|
||||
@@ -1121,7 +1121,6 @@ select {
|
||||
.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
|
||||
width:100%;
|
||||
table-layout:auto;
|
||||
text-align:start;
|
||||
margin-top:2em;
|
||||
margin-bottom:2em;
|
||||
font-size:0.875em;
|
||||
@@ -1164,6 +1163,10 @@ select {
|
||||
vertical-align:top
|
||||
}
|
||||
|
||||
.prose :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
|
||||
text-align:start
|
||||
}
|
||||
|
||||
.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
|
||||
margin-top:0;
|
||||
margin-bottom:0
|
||||
@@ -3179,21 +3182,6 @@ body button {
|
||||
display:none
|
||||
}
|
||||
|
||||
/* Hamburger menu */
|
||||
|
||||
body:has(#menu-controller:checked) {
|
||||
overflow-y:hidden
|
||||
}
|
||||
|
||||
#menu-button:has(#menu-controller:checked) {
|
||||
visibility:hidden
|
||||
}
|
||||
|
||||
#menu-controller:checked~#menu-wrapper {
|
||||
visibility:visible;
|
||||
opacity:1
|
||||
}
|
||||
|
||||
/* RTL support */
|
||||
|
||||
.prose blockquote:where([dir="rtl"], [dir="rtl"] *) {
|
||||
|
||||
@@ -29,19 +29,6 @@ body button {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
/* Hamburger menu */
|
||||
body:has(#menu-controller:checked) {
|
||||
@apply overflow-y-hidden;
|
||||
}
|
||||
|
||||
#menu-button:has(#menu-controller:checked) {
|
||||
@apply invisible;
|
||||
}
|
||||
|
||||
#menu-controller:checked~#menu-wrapper {
|
||||
@apply visible opacity-100;
|
||||
}
|
||||
|
||||
/* RTL support */
|
||||
.prose blockquote {
|
||||
@apply rtl:pr-4 rtl:border-l-0 rtl:border-r-4;
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
var menuButton = document.getElementById("menu-button");
|
||||
var menuCloseButton = document.getElementById("menu-close-button");
|
||||
var menuWrapper = document.getElementById("menu-wrapper");
|
||||
|
||||
var menuOpen = false;
|
||||
|
||||
var openMenu = function (e) {
|
||||
if (!menuOpen) {
|
||||
menuOpen = true;
|
||||
document.body.style.overflowY = "hidden";
|
||||
menuButton.style.visibility = "hidden";
|
||||
menuWrapper.style.visibility = "visible";
|
||||
menuWrapper.style.opacity = "1";
|
||||
window.onbeforeunload = function (event) {
|
||||
closeMenu()
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var closeMenu = function (e) {
|
||||
if (menuOpen) {
|
||||
menuOpen = false;
|
||||
document.body.style.overflowY = "auto";
|
||||
menuButton.style.visibility = "visible";
|
||||
menuWrapper.style.visibility = "hidden";
|
||||
menuWrapper.style.opacity = "0";
|
||||
window.onbeforeunload = function (event) { }
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
menuButton.addEventListener("click", openMenu);
|
||||
menuCloseButton.addEventListener("click", closeMenu);
|
||||
@@ -73,8 +73,6 @@ document.addEventListener("keydown", function (event) {
|
||||
} else {
|
||||
document.activeElement.click();
|
||||
}
|
||||
}else{
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,6 +153,11 @@ function executeQuery(term) {
|
||||
|
||||
if (results.length > 0) {
|
||||
results.forEach(function (value, key) {
|
||||
console.log(value.item.summary);
|
||||
var html = value.item.summary;
|
||||
var div = document.createElement("div");
|
||||
div.innerHTML = html;
|
||||
value.item.summary = div.textContent || div.innerText || "";
|
||||
var title = value.item.externalUrl? value.item.title + '<span class="text-xs ml-2 align-center cursor-default text-neutral-400 dark:text-neutral-500">'+value.item.externalUrl+'</span>' : value.item.title;
|
||||
var linkconfig = value.item.externalUrl? 'target="_blank" rel="noopener" href="'+value.item.externalUrl+'"' : 'href="'+value.item.permalink+'"';
|
||||
resultsHTML =
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/*!
|
||||
* Chart.js v4.4.3
|
||||
* Chart.js v4.4.5
|
||||
* https://www.chartjs.org
|
||||
* (c) 2024 Chart.js Contributors
|
||||
* Released under the MIT License
|
||||
*/
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a<r;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?x(n,a,s):e[t]=g(a)}function x(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e<a;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e<s;++e)r(n[e],t,l,i)}return t}function b(t,e){return x(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?b(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={"":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)<i}function B(t){const e=Math.round(t);t=V(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C/180)}function Y(t){return t*(180/C)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function Z(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function J(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return J(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ot=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){Line truncated
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a<r;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?b(n,a,s):e[t]=g(a)}function b(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e<a;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e<s;++e)r(n[e],t,l,i)}return t}function x(t,e){return b(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?x(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={"":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)<i}function B(t){const e=Math.round(t);t=V(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C/180)}function Y(t){return t*(180/C)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function Z(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function J(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return J(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ot=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){Line truncated
|
||||
/*!
|
||||
* @kurkle/color v0.3.2
|
||||
* https://github.com/kurkle/color#readme
|
||||
* (c) 2023 Jukka Kurkela
|
||||
* Released under the MIT License
|
||||
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
|
||||
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
|
||||
//# sourceMappingURL=chart.umd.js.map
|
||||
@@ -46,10 +46,23 @@ class LiteYTEmbed extends HTMLElement {
|
||||
|
||||
this.addNoscriptIframe();
|
||||
|
||||
playBtnEl.removeAttribute('href');
|
||||
// for the PE pattern, change anchor's semantics to button
|
||||
if(playBtnEl.nodeName === 'A'){
|
||||
playBtnEl.removeAttribute('href');
|
||||
playBtnEl.setAttribute('tabindex', '0');
|
||||
playBtnEl.setAttribute('role', 'button');
|
||||
// fake button needs keyboard help
|
||||
playBtnEl.addEventListener('keydown', e => {
|
||||
if( e.key === 'Enter' || e.key === ' ' ){
|
||||
e.preventDefault();
|
||||
this.activate();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// On hover (or tap), warm up the TCP connections we're (likely) about to use.
|
||||
this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});
|
||||
this.addEventListener('focusin', LiteYTEmbed.warmConnections, {once: true});
|
||||
|
||||
// Once the user clicks, add the real iframe and drop our play button
|
||||
// TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
// TypeIt by Alex MacArthur - https://typeitjs.com
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TypeIt=t()}(this,(function(){"use strict";const e=e=>Array.isArray(e),t=t=>e(t)?t:[t];const s="data-typeit-id",i="ti-cursor",r={started:!1,completed:!1,frozen:!1,destroyed:!1},n={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},o=`[${s}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,a=e=>document.createElement(e),u=e=>document.createTextNode(e),l=(e,t="")=>{let s=a("style");s.id=t,s.appendChild(u(e)),document.head.appendChild(s)},h=t=>(e(t)||(t=[t/2,t/2]),t),d=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let p=e=>e/2;const c=e=>Array.from(e);let m=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(u(t),e)})),void e.remove();m(e)})),e);const f=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,m(t.body)};function y(e,t=!1,s=!1){let r,n=e.querySelector(`.${i}`),o=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(n&&s){if(e.classList?.contains(i))return NodeFilter.FILTER_ACCEPT;if(n.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),a=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),a.push(r);return t?a.reverse():a}function g(e,t=!0){return t?y(f(e)):c(e).map(u)}const b=({index:e,newIndex:t,queueItems:s,cleanUp:i})=>{for(let r=e+1;r<t+1;r++)i(s[r][0])},P=e=>Number.isInteger(e),C=({queueItems:e,selector:t,cursorPosition:s,to:i})=>{if(P(t))return-1*t;let r=new RegExp("END","i").test(i),n=t?[...e].reverse().findIndex((({char:e})=>{let s=e.parentElement,i=s.matches(t);return!(!r||!i)||i&&s.firstChild.isSameNode(e)})):-1;return n<0&&(n=r?0:e.length-1),n-s+(r?0:1)},I=(e,t)=>new Array(t).fill(e);let v=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),w=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),T=({cursor:e,frames:t,options:s})=>{let i=e.animate(t,s);return i.pause(),i.id=e.dataset.tiAnimationId,v((()=>{v((()=>{i.play()}))})),i},q=e=>e.func?.call(null),S=async({index:e,queueItems:t,wait:s,cursor:i,cursorOptions:r})=>{let n=t[e][1],o=[],a=e,u=n,l=()=>u&&!u.delay,h=n.shouldPauseCursor()&&r.autoPause;for(;l();)o.push(u),l()&&a++,u=t[a]?t[a][1]:null;if(o.length)return await v((async()=>{for(let e of o)await q(e)})),a-1;let d,p=w(i);return p&&(d={...p.effect.getComputedTiming(),delay:h?r.autoPauseDelay:0}),await s((async()=>{p&&h&&p.cancel(),await v((()=>{q(n)}))}),n.delay),await(({cursor:e,options:t,cursorOptions:s})=>{if(!e||!s)return;let i,r=w(e);r&&(t.delay=r.effect.getComputedTiming().delay,i=r.currentTime,r.cancel());let n=T({cursor:e,frames:s.animation.frames,options:t});return i&&(n.currentTime=i),n})({cursor:i,options:d,cursorOptions:r}),e};const N=e=>"value"in e;let A=e=>"function"==typeof e?e():e,E=(e,t=document,s=!1)=>t["querySelector"+(s?"All":"")](e);const L=(e,t)=>Object.assign({},e,t);let x={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};return class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1};opts;id;queue;cursor;unfreeze=()=>{};constructor(e,s={}){var i;this.opts=L(n,s),this.element="string"==typeof(i=e)?E(i):i,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=L({},r),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let s=function(e){return t(e).forEach((e=>n.set(Symbol(e.char?.innerText),i({...e})))),this},i=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),r=()=>Array.from(n.values()),n=new Map;return s(e),{add:s,set:function(e,t){let s=[...n.keys()];n.set(s[e],i(t))},wipe:function(){n=new Map,s(e)},done:(e,t=!1)=>t?n.delete(e):n.get(e).done=!0,reset:function(){n.forEach((e=>delete e.done))},destroy:e=>n.delete(e),getItems:(e=!1)=>e?r():r().filter((e=>!e.done)),getQueue:()=>n,getTypeable:()=>r().filter((e=>e.typeable))}}([{delay:this.opts.startDelay}]),this.#e(s),this.cursor=this.#t(),this.element.dataset.typeitId=this.id,l(o),this.opts.strings.length&&this.#s()}go(){return this.statuses.started?this:(this.#i(),this.opts.waitUntilVisible?(e=this.element,t=this.#r.bind(this),new IntersectionObserver(((s,i)=>{s.forEach((s=>{s.isIntersecting&&(t(),i.unobserve(e))}))}),{Line truncated
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TypeIt=t()}(this,(function(){"use strict";const e=e=>Array.isArray(e),t=t=>e(t)?t:[t];const s="data-typeit-id",i="ti-cursor",r={started:!1,completed:!1,frozen:!1,destroyed:!1},n={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},o=`[${s}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,a=e=>document.createElement(e),u=e=>document.createTextNode(e),l=(e,t="")=>{let s=a("style");s.id=t,s.appendChild(u(e)),document.head.appendChild(s)},h=t=>(e(t)||(t=[t/2,t/2]),t),d=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let p=e=>e/2;const c=e=>Array.from(e);let m=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(u(t),e)})),void e.remove();m(e)})),e);const f=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,m(t.body)};function y(e,t=!1,s=!1){let r,n=e.querySelector(`.${i}`),o=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(n&&s){if(e.classList?.contains(i))return NodeFilter.FILTER_ACCEPT;if(n.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),a=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),a.push(r);return t?a.reverse():a}function g(e,t=!0){return t?y(f(e)):c(e).map(u)}const b=({index:e,newIndex:t,queueItems:s,cleanUp:i})=>{for(let r=e+1;r<t+1;r++)i(s[r][0])},P=e=>Number.isInteger(e),C=({queueItems:e,selector:t,cursorPosition:s,to:i})=>{if(P(t))return-1*t;let r=new RegExp("END","i").test(i),n=t?[...e].reverse().findIndex((({char:e})=>{let s=e.parentElement,i=s.matches(t);return!(!r||!i)||i&&s.firstChild.isSameNode(e)})):-1;return n<0&&(n=r?0:e.length-1),n-s+(r?0:1)},I=(e,t)=>new Array(t).fill(e);let v=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),w=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),T=({cursor:e,frames:t,options:s})=>{let i=e.animate(t,s);return i.pause(),i.id=e.dataset.tiAnimationId,v((()=>{v((()=>{i.play()}))})),i},q=e=>e.func?.call(null),S=async({index:e,queueItems:t,wait:s,cursor:i,cursorOptions:r})=>{let n=t[e][1],o=[],a=e,u=n,l=()=>u&&!u.delay,h=n.shouldPauseCursor()&&r.autoPause;for(;l();)o.push(u),l()&&a++,u=t[a]?t[a][1]:null;if(o.length)return await v((async()=>{for(let e of o)await q(e)})),a-1;let d,p=w(i);return p&&(d={...p.effect.getComputedTiming(),delay:h?r.autoPauseDelay:0}),await s((async()=>{p&&h&&p.cancel(),await v((()=>{q(n)}))}),n.delay),await(({cursor:e,options:t,cursorOptions:s})=>{if(!e||!s)return;let i,r=w(e);r&&(t.delay=r.effect.getComputedTiming().delay,i=r.currentTime,r.cancel());let n=T({cursor:e,frames:s.animation.frames,options:t});return i&&(n.currentTime=i),n})({cursor:i,options:d,cursorOptions:r}),e};const N=e=>"value"in e;let A=e=>"function"==typeof e?e():e,E=(e,t=document,s=!1)=>t["querySelector"+(s?"All":"")](e);const L=(e,t)=>Object.assign({},e,t);let x={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};return class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1};opts;id;queue;cursor;unfreeze=()=>{};constructor(e,s={}){var i;this.opts=L(n,s),this.element="string"==typeof(i=e)?E(i):i,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=L({},r),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let s=function(e){return t(e).forEach((e=>n.set(Symbol(e.char?.innerText),i({...e})))),this},i=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),r=()=>Array.from(n.values()),n=new Map;return s(e),{add:s,set:function(e,t){let s=[...n.keys()];n.set(s[e],i(t))},wipe:function(){n=new Map,s(e)},done:(e,t=!1)=>t?n.delete(e):n.get(e).done=!0,reset:function(){n.forEach((e=>delete e.done))},destroy:e=>n.delete(e),getItems:(e=!1)=>e?r():r().filter((e=>!e.done)),getQueue:()=>n,getTypeable:()=>r().filter((e=>e.typeable))}}([{delay:this.opts.startDelay}]),this.#e(s),this.cursor=this.#t(),this.element.dataset.typeitId=this.id,l(o),this.opts.strings.length&&this.#s()}go(){return this.statuses.started?this:(this.#i(),this.opts.waitUntilVisible?(e=this.element,t=this.#r.bind(this),new IntersectionObserver(((s,i)=>{s.forEach((s=>{s.isIntersecting&&(t(),i.unobserve(e))}))}),{Line truncated
|
||||
@@ -2,4 +2,4 @@
|
||||
[module.hugoVersion]
|
||||
extended = true
|
||||
min = "0.87.0"
|
||||
max = "0.131.0"
|
||||
max = "0.138.0"
|
||||
@@ -9,7 +9,6 @@ defaultContentLanguage = "en"
|
||||
# pluralizeListTitles = "true" # hugo function useful for non-english languages, find out more in https://gohugo.io/getting-started/configuration/#pluralizelisttitles
|
||||
|
||||
enableRobotsTXT = true
|
||||
paginate = 10
|
||||
summaryLength = 0
|
||||
|
||||
buildDrafts = false
|
||||
@@ -19,6 +18,9 @@ enableEmoji = true
|
||||
|
||||
# googleAnalytics = "G-XXXXXXXXX"
|
||||
|
||||
[pagination]
|
||||
pagerSize = 100
|
||||
|
||||
[imaging]
|
||||
anchor = 'Center'
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
disabled = false
|
||||
languageCode = "en"
|
||||
languageName = "English"
|
||||
weight = 1
|
||||
@@ -13,7 +14,7 @@ title = "Blowfish"
|
||||
# description = "My awesome website"
|
||||
# copyright = "Copy, _right?_ :thinking_face:"
|
||||
|
||||
# [author]
|
||||
# [params.author]
|
||||
# name = "Your name here"
|
||||
# email = "youremail@example.com"
|
||||
# image = "img/blowfish_logo.png"
|
||||
|
||||
@@ -47,7 +47,7 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
|
||||
showRecent = false
|
||||
showRecentItems = 5
|
||||
showMoreLink = false
|
||||
showMoreLinkDest = "/posts"
|
||||
showMoreLinkDest = "/posts/"
|
||||
cardView = false
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = false # only used when layout equals background
|
||||
@@ -80,7 +80,7 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
|
||||
showTaxonomies = false
|
||||
showAuthorsBadges = false
|
||||
showWordCount = true
|
||||
# sharingLinks = [ "linkedin", "twitter", "bluesky", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"]
|
||||
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"]
|
||||
showZenMode = false
|
||||
|
||||
[list]
|
||||
@@ -141,6 +141,7 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
|
||||
# websiteid = "ABC12345"
|
||||
# domain = "llama.yoursite.com"
|
||||
# dataDomains = "yoursite.com,yoursite2.com"
|
||||
# scriptName = ""
|
||||
# enableTrackEvent = true
|
||||
|
||||
[selineAnalytics]
|
||||
@@ -159,3 +160,4 @@ forgejoDefaultServer = "https://v8.next.forgejo.org"
|
||||
# bing = ""
|
||||
# pinterest = ""
|
||||
# yandex = ""
|
||||
# fediverse = ""
|
||||
@@ -43,5 +43,10 @@
|
||||
"icon": "bluesky",
|
||||
"title": "sharing.bluesky",
|
||||
"url": "https://bsky.app/intent/compose?text=%[2]s+%[1]s"
|
||||
}
|
||||
}
|
||||
},
|
||||
"mastodon": {
|
||||
"icon": "mastodon",
|
||||
"title": "sharing.mastodon",
|
||||
"url": "https://s2f.kytta.dev/?text=%[2]s %[1]s"
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,6 @@ disableLanguages = [] #to allow translation work requiring shipping to productio
|
||||
# pluralizeListTitles = "true" # hugo function useful for non-english languages, find out more in https://gohugo.io/getting-started/configuration/#pluralizelisttitles
|
||||
|
||||
enableRobotsTXT = true
|
||||
paginate = 100
|
||||
summaryLength = 30
|
||||
hasCJKLanguage = true
|
||||
|
||||
@@ -21,6 +20,9 @@ enableEmoji = true
|
||||
|
||||
googleAnalytics = "G-PEDMYR1V0K"
|
||||
|
||||
[pagination]
|
||||
pagerSize = 100
|
||||
|
||||
[imaging]
|
||||
anchor = 'Center'
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ title = "Blowfish"
|
||||
logo = "img/blowfish_logo_transparent.png"
|
||||
description = "A powerful, lightweight theme for Hugo."
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Blowfish"
|
||||
email = "nuno@n9o.xyz"
|
||||
image = "img/blowfish_logo.png"
|
||||
|
||||
@@ -11,7 +11,7 @@ title = "Blowfish"
|
||||
logo = "img/blowfish_logo_transparent.png"
|
||||
description = "Un potente, leggero tema per Hugo."
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Blowfish"
|
||||
image = "img/blowfish_logo.png"
|
||||
headline = "Un potente, leggero tema per Hugo."
|
||||
|
||||
@@ -11,7 +11,7 @@ title = "Blowfish"
|
||||
logo = "img/blowfish_logo_transparent.png"
|
||||
description = "強力で、軽量な Hugo のテーマです。"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Blowfish"
|
||||
image = "img/blowfish_logo.png"
|
||||
headline = "強力で、軽量な Hugo のテーマです。"
|
||||
|
||||
@@ -11,7 +11,7 @@ title = "Blowfish"
|
||||
logo = "img/blowfish_logo_transparent.png"
|
||||
description = "一个强大、轻量级的 Hugo 主题。"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "Blowfish"
|
||||
image = "img/blowfish_logo.png"
|
||||
headline = "一个强大、轻量级的 Hugo 主题。"
|
||||
|
||||
@@ -137,6 +137,7 @@ smartTOCHideUnfocusedChildren = false
|
||||
# websiteid = "ABC12345"
|
||||
# domain = "llama.yoursite.com"
|
||||
# dataDomains = "yoursite.com,yoursite2.com"
|
||||
# scriptName = ""
|
||||
# enableTrackEvent = false
|
||||
|
||||
[selineAnalytics]
|
||||
|
||||
@@ -1,66 +1,69 @@
|
||||
---
|
||||
title: "Configuration"
|
||||
date: 2020-08-14
|
||||
title: "Configurazione"
|
||||
weight: 4
|
||||
draft: false
|
||||
description: "All the configuration variables available in Blowfish."
|
||||
slug: "configuration"
|
||||
description: "Tutte le configurazioni disponibili in Blowfish."
|
||||
slug: "configurazioni"
|
||||
tags: ["config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series: ["Documentazione"]
|
||||
series_order: 4
|
||||
---
|
||||
|
||||
Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.
|
||||
Blowfish è un tema altamente personalizzabile e utilizza alcune delle più recenti funzionalità di Hugo per semplificarne la configurazione.
|
||||
|
||||
The theme ships with a default configuration that gets you up and running with a basic blog or static website.
|
||||
Il tema viene fornito con una configurazione predefinita che ti consente di essere operativo con un blog di base o un sito Web statico.
|
||||
|
||||
{{< alert "fire" >}}
|
||||
We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:
|
||||
|
||||
```bash
|
||||
npx blowfish-tools
|
||||
```
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
> Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.
|
||||
> I file di configurazione forniti con il tema sono forniti in formato TOML dato che questa è la sintassi predefinita di Hugo. Sentiti libero di convertire la tua configurazione in YAML o JSON se lo desideri.
|
||||
|
||||
The default theme configuration is documented in each file so you can freely adjust the settings to meet your needs.
|
||||
La configurazione predefinita del tema è documentata in ogni file in modo da poter regolare liberamente le impostazioni per soddisfare le proprie esigenze.
|
||||
|
||||
{{< alert >}}
|
||||
As outlined in the [installation instructions]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), you should adjust your theme configuration by modifying the files in the `config/_default/` folder of your Hugo project and delete the `config.toml` file in your project root.
|
||||
{{< /alert >}}
|
||||
|
||||
## Site configuration
|
||||
## Configurazioni del sito
|
||||
|
||||
Standard Hugo configuration variables are respected throughout the theme, however there are some specific things that should be configured for the best experience.
|
||||
|
||||
The site configuration is managed through the `config/_default/config.toml` file. The table below outlines all the settings that the Blowfish takes advantage of.
|
||||
La configurazione del sito viene gestita tramite il file `config/_default/config.toml`. La tabella seguente descrive tutte le impostazioni di cui si avvale Blowfish.
|
||||
|
||||
Note that the variable names provided in this table use dot notation to simplify the TOML data structure (ie. `outputs.home` refers to `[outputs] home`).
|
||||
Tieni presente che i nomi delle variabili forniti in questa tabella utilizzano il punto per semplificare la struttura dei dati TOML (ad esempio, "outputs.home" si riferisce a "[outputs] home").
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
| Name | Default | Description |
|
||||
| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `theme` | `"blowfish"` | When using Hugo Modules this config value should be removed. For all other installation types, this must be set to `blowfish` for the theme to function. |
|
||||
| `theme` | `"blowfish"` | Quando si utilizzano i moduli Hugo, questo valore di configurazione deve essere rimosso. Per tutti gli altri tipi di installazione, questo deve essere impostato su "blowfish" affinché il tema funzioni. |
|
||||
| `baseURL` | _Not set_ | The URL to the root of the website. |
|
||||
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
||||
| `enableRobotsTXT` | `true` | When enabled, a `robots.txt` file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made `robots.txt`, set to `false` and place your file in the `static` directory. For complete control, you may provide a [custom layout]({{< ref "content-examples#custom-layouts" >}}) to generate this file. |
|
||||
| `paginate` | `10` | The number of articles listed on each page of the article listing. |
|
||||
| `summaryLength` | `0` | The number of words that are used to generate the article summary when one is not provided in the [front matter]({{< ref "front-matter" >}}). A value of `0` will use the first sentence. This value has no effect when summaries are hidden. |
|
||||
| `outputs.home` | `["HTML", "RSS", "JSON"]` | The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly. |
|
||||
| `permalinks` | _Not set_ | Refer to the [Hugo docs](https://gohugo.io/content-management/urls/#permalinks) for permalink configuration. |
|
||||
| `taxonomies` | _Not set_ | Refer to the [Organising content]({{< ref "getting-started#organising-content" >}}) section for taxonomy configuration. |
|
||||
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
||||
| `enableRobotsTXT` | `true` | Se abilitato, verrà creato un file "robots.txt" nella radice del sito che consentirà ai motori di ricerca di eseguire la scansione dell'intero sito. Se preferisci fornire il tuo file `robots.txt` predefinito, impostalo su `false` e posiziona il file nella directory `static`. Per un controllo completo, puoi fornire un [layout personalizzato]({{< ref "content-examples#custom-layouts" >}}) per generare questo file. |
|
||||
| `pagination.pagerSize` | `10` | Il numero di articoli elencati in ciascuna pagina dell'elenco degli articoli. |
|
||||
| `summaryLength` | `0` | Il numero di parole utilizzate per generare il riepilogo dell'articolo quando non ne viene fornita una nella [front matter]({{< ref "front-matter" >}}). Un valore pari a "0" utilizzerà la prima frase. Questo valore non ha effetto quando i riepiloghi sono nascosti. |
|
||||
| `outputs.home` | `["HTML", "RSS", "JSON"]` | I formati di output generati per il sito. Blowfish richiede HTML, RSS e JSON affinché tutti i componenti del tema funzionino correttamente. |
|
||||
| `permalinks` | _Not set_ | Fare riferimento alla [documentazione di Hugo](https://gohugo.io/content-management/urls/#permalinks) per la configurazione del permalink. |
|
||||
| `taxonomies` | _Not set_ | Fare riferimento alla sezione [Organizzazione dei contenuti]({{< ref "getting-started#organising-content" >}}) per la configurazione della tassonomia. |
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
## Thumbnails
|
||||
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
Blowfish è stato creato in modo che sia facile aggiungere supporto visivo ai tuoi articoli. Se hai familiarità con la struttura degli articoli di Hugo, devi solo inserire un file immagine (quasi tutti i formati sono supportati ma consigliamo `.png` o `.jpg`) che inizi con `feature*` all'interno della cartella dell'articolo. E questo è tutto, Blowfish sarà quindi in grado di utilizzare l'immagine sia come miniatura all'interno del tuo sito web sia per le schede <a target="_blank" href="https://oembed.com/">oEmbed</a> su piattaforme sociali.
|
||||
|
||||
[Here]({{< ref "thumbnails" >}}) is also a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see how you can do it.
|
||||
[Qui]({{< ref "thumbnails" >}}) c'è anche una guida con maggiori informazioni e un [esempio]({{< ref "thumbnail_sample" >}}) se vuoi vedere come puoi farlo.
|
||||
|
||||
## Language and i18n
|
||||
## Lingua e i18n
|
||||
|
||||
Blowfish is optimised for full multilingual websites and theme assets are translated into several languages out of the box. The language configuration allows you to generate multiple versions of your content to provide a customised experience to your visitors in their native language.
|
||||
Blowfish è ottimizzato per siti Web multilingue completi e le risorse tematiche sono tradotte in diverse lingue immediatamente. La configurazione della lingua ti consente di generare più versioni dei tuoi contenuti per fornire un'esperienza personalizzata ai tuoi visitatori nella loro lingua madre.
|
||||
|
||||
The theme currently supports the following languages by default:
|
||||
Il tema attualmente supporta le seguenti lingue per impostazione predefinita:
|
||||
|
||||
| Language | Code |
|
||||
| ---------------------------- | ------- |
|
||||
@@ -71,6 +74,7 @@ The theme currently supports the following languages by default:
|
||||
| Czech | `cs` |
|
||||
| German | `de` |
|
||||
| English | `en` |
|
||||
| Esperanto | `eo` |
|
||||
| Spanish (Spain) | `es` |
|
||||
| Finnish | `fi` |
|
||||
| French | `fr` |
|
||||
@@ -81,6 +85,7 @@ The theme currently supports the following languages by default:
|
||||
| Italian | `it` |
|
||||
| Japanese | `ja` |
|
||||
| Korean | `ko` |
|
||||
| Dutch | `nl` |
|
||||
| Polish | `pl` |
|
||||
| Portuguese (Brazil) | `pt-br` |
|
||||
| Portuguese (Portugal) | `pt-pt` |
|
||||
@@ -92,50 +97,47 @@ The theme currently supports the following languages by default:
|
||||
| Simplified Chinese (China) | `zh-cn` |
|
||||
| Traditional Chinese (Taiwan) | `zh-tw` |
|
||||
|
||||
Le traduzioni predefinite possono essere sovrascritte creando un file personalizzato in "i18n/[code].yaml" che contiene le stringhe di traduzione. Puoi anche utilizzare questo metodo per aggiungere nuove lingue. Se desideri condividere una nuova traduzione con la community, [apri una richiesta pull](https://github.com/nunocoracao/blowfish/pulls).
|
||||
|
||||
### Configurazione
|
||||
|
||||
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
|
||||
Per essere il più flessibili possibile, è necessario creare un file di configurazione lingua per ciascuna lingua sul sito web. Per impostazione predefinita Blowfish include una configurazione della lingua inglese in `config/_default/linguals.en.toml`.
|
||||
|
||||
### Configuration
|
||||
|
||||
In order to be as flexible as possible, a language configuration file needs to be created for each language on the website. By default Blowfish includes an English language configuration at `config/_default/languages.en.toml`.
|
||||
|
||||
The default file can be used as a template to create additional languages, or renamed if you wish to author your website in a language other than English. Simply name the file using the format `languages.[language-code].toml`.
|
||||
Il file predefinito può essere utilizzato come modello per creare lingue aggiuntive o rinominato se desideri creare il tuo sito web in una lingua diversa dall'inglese. Basta nominare il file utilizzando il formato "lingue.[language-code].toml".
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** Ensure the `defaultContentLanguage` parameter in the [site configuration](#site-configuration) matches the language code in your language config filename.
|
||||
**Nota:** assicurati che il parametro `defaultContentLanguage` nella [configurazione del sito](#site-configuration) corrisponda al codice della lingua nel nome del file di configurazione della lingua.
|
||||
{{< /alert >}}
|
||||
|
||||
|
||||
#### Global
|
||||
#### Globale
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
| Name | Default | Description |
|
||||
| -------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `languageCode` | `"en"` | The Hugo language code for this file. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-au`) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the `isoCode` parameter which is case-sensitive. |
|
||||
| `languageName` | `"English"` | The name of the language. |
|
||||
| `weight` | `1` | The weight determines the order of languages when building multilingual sites. |
|
||||
| `title` | `"Blowfish"` | The title of the website. This will be displayed in the site header and footer. |
|
||||
| `languageCode` | `"en"` | Il codice della lingua Hugo per questo file. Può essere una lingua di livello superiore (ad esempio "en") o una variante secondaria (ad esempio "en-au") e deve corrispondere al codice della lingua nel nome del file. Hugo si aspetta che questo valore sia sempre in minuscolo. Per una corretta conformità HTML, imposta il parametro "isoCode" che fa distinzione tra maiuscole e minuscole. |
|
||||
| `languageName` | `"English"` | Il nome della lingua. |
|
||||
| `weight` | `1` | Il peso determina l'ordine delle lingue durante la creazione di siti multilingue. |
|
||||
| `title` | `"Blowfish"` | Il titolo del sito web. Questo verrà visualizzato nell'intestazione e nel piè di pagina del sito. |
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
#### Params
|
||||
#### Parametri
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
| Name | Default | Description |
|
||||
| ---------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `params.displayName` | `"EN"` | The name used when the language appears on the website. |
|
||||
| `params.isoCode` | `"en"` | The ISO language code for HTML metadata purposes. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-AU`). |
|
||||
| `params.rtl` | `false` | Whether or not this is a RTL language. Set to `true` to reflow content from right-to-left. Blowfish fully supports using RTL and LTR languages at the same time and will dynamically adjust to both. |
|
||||
| `params.dateFormat` | `"2 January 2006"` | How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats. |
|
||||
| `params.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. |
|
||||
| `params.displayName` | `"EN"` | Il nome utilizzato quando la lingua appare sul sito web. |
|
||||
| `params.isoCode` | `"en"` | Il codice della lingua ISO per scopi di metadati HTML. Può essere una lingua di livello superiore (es. `en`) o una sottovariante (es. `en-AU`). |
|
||||
| `params.rtl` | `false` | Se si tratta o meno di un linguaggio RTL. Imposta su "true" per ridisporre il contenuto da destra a sinistra. Blowfish supporta pienamente l'uso simultaneo dei linguaggi RTL e LTR e si adatterà dinamicamente ad entrambi. |
|
||||
| `params.dateFormat` | `"2 January 2006"` | Come vengono formattate le date in questa lingua. Fare riferimento alla [documentazione di Hugo](https://gohugo.io/functions/format/#gos-layout-string) per i formati accettabili. |
|
||||
| `params.logo` | _Not set_ | Il percorso relativo al file del logo del sito all'interno della cartella "assets/". Il file del logo deve essere fornito con una risoluzione 2x e supporta qualsiasi dimensione dell'immagine. |
|
||||
| `params.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. |
|
||||
| `params.description` | _Not set_ | The website description. This will be used in the site metadata. |
|
||||
| `params.copyright` | _Not set_ | A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site `title`. |
|
||||
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
#### Author
|
||||
|
||||
| Name | Default | Description |
|
||||
| ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
|
||||
@@ -188,6 +190,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| Name | Default | Description |
|
||||
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic`, `fixed`, `fixed-fill`, and `fixed-fill-blur`. |
|
||||
|
||||
### Footer
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -197,6 +200,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
|
||||
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
|
||||
| `footer.showScrollToTop` | `true` | When set to `true` the scroll to top arrow is displayed. |
|
||||
|
||||
### Homepage
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -210,6 +214,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
|
||||
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
|
||||
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
|
||||
|
||||
### Article
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -236,8 +241,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `article.invertPagination` | `false` | Whether or not to flip the direction of the next/previous article links. |
|
||||
| `article.showReadingTime` | `true` | Whether or not article reading times are displayed. |
|
||||
| `article.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant *related* entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if ` showRelatedContent` is turned on. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
|
||||
| `article.showTaxonomies` | `false` | Whether or not the taxonomies related to this article are displayed. |
|
||||
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
|
||||
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
|
||||
@@ -284,6 +289,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
|
||||
| `taxonomy.showTableOfContents` | `false` | Whether or not the table of contents is displayed on taxonomies. |
|
||||
| `taxonomy.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
|
||||
### Term
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -297,6 +303,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `term.groupByYear` | `false` | Whether or not articles are grouped by year on term pages. |
|
||||
| `term.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
| `term.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
|
||||
|
||||
### Firebase
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -323,6 +330,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
|
||||
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
|
||||
| `umamiAnalytics.scriptName` | script.js | The name of the `script.js` used for anti-ad-blocking is configured by the environment variable `TRACKER_SCRIPT_NAME` |
|
||||
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
|
||||
### Seline Analytics
|
||||
@@ -341,6 +349,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
|
||||
| `buymeacoffee.globalWidgetColor` | _Not set_ | Widget color in hex format. |
|
||||
| `buymeacoffee.globalWidgetPosition` | _Not set_ | Position of the widget, i.e. "Left" or "Right" |
|
||||
|
||||
### Verifications
|
||||
|
||||
| Name | Default | Description |
|
||||
|
||||
@@ -15,9 +15,11 @@ The theme ships with a default configuration that gets you up and running with a
|
||||
|
||||
{{< alert "fire" >}}
|
||||
We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:
|
||||
|
||||
```bash
|
||||
npx blowfish-tools
|
||||
```
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
> Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.
|
||||
@@ -43,7 +45,7 @@ Note that the variable names provided in this table use dot notation to simplify
|
||||
| `baseURL` | _Not set_ | The URL to the root of the website. |
|
||||
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
||||
| `enableRobotsTXT` | `true` | When enabled, a `robots.txt` file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made `robots.txt`, set to `false` and place your file in the `static` directory. For complete control, you may provide a [custom layout]({{< ref "content-examples#custom-layouts" >}}) to generate this file. |
|
||||
| `paginate` | `10` | The number of articles listed on each page of the article listing. |
|
||||
| `pagination.pagerSize` | `10` | The number of articles listed on each page of the article listing. |
|
||||
| `summaryLength` | `0` | The number of words that are used to generate the article summary when one is not provided in the [front matter]({{< ref "front-matter" >}}). A value of `0` will use the first sentence. This value has no effect when summaries are hidden. |
|
||||
| `outputs.home` | `["HTML", "RSS", "JSON"]` | The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly. |
|
||||
| `permalinks` | _Not set_ | Refer to the [Hugo docs](https://gohugo.io/content-management/urls/#permalinks) for permalink configuration. |
|
||||
@@ -52,7 +54,7 @@ Note that the variable names provided in this table use dot notation to simplify
|
||||
|
||||
## Thumbnails
|
||||
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
|
||||
[Here]({{< ref "thumbnails" >}}) is also a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see how you can do it.
|
||||
|
||||
@@ -71,6 +73,7 @@ The theme currently supports the following languages by default:
|
||||
| Czech | `cs` |
|
||||
| German | `de` |
|
||||
| English | `en` |
|
||||
| Esperanto | `eo` |
|
||||
| Spanish (Spain) | `es` |
|
||||
| Finnish | `fi` |
|
||||
| French | `fr` |
|
||||
@@ -81,6 +84,7 @@ The theme currently supports the following languages by default:
|
||||
| Italian | `it` |
|
||||
| Japanese | `ja` |
|
||||
| Korean | `ko` |
|
||||
| Dutch | `nl` |
|
||||
| Polish | `pl` |
|
||||
| Portuguese (Brazil) | `pt-br` |
|
||||
| Portuguese (Portugal) | `pt-pt` |
|
||||
@@ -91,8 +95,6 @@ The theme currently supports the following languages by default:
|
||||
| Simplified Chinese (China) | `zh-cn` |
|
||||
| Traditional Chinese (Taiwan) | `zh-tw` |
|
||||
|
||||
|
||||
|
||||
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
|
||||
|
||||
### Configuration
|
||||
@@ -105,7 +107,6 @@ The default file can be used as a template to create additional languages, or re
|
||||
**Note:** Ensure the `defaultContentLanguage` parameter in the [site configuration](#site-configuration) matches the language code in your language config filename.
|
||||
{{< /alert >}}
|
||||
|
||||
|
||||
#### Global
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
@@ -131,10 +132,10 @@ The default file can be used as a template to create additional languages, or re
|
||||
| `params.description` | _Not set_ | The website description. This will be used in the site metadata. |
|
||||
| `params.copyright` | _Not set_ | A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site `title`. |
|
||||
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
#### Author
|
||||
|
||||
| Name | Default | Description |
|
||||
| ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
|
||||
@@ -187,6 +188,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| Name | Default | Description |
|
||||
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic`, `fixed`, `fixed-fill`, and `fixed-fill-blur`. |
|
||||
|
||||
### Footer
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -196,6 +198,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
|
||||
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
|
||||
| `footer.showScrollToTop` | `true` | When set to `true` the scroll to top arrow is displayed. |
|
||||
|
||||
### Homepage
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -209,6 +212,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
|
||||
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
|
||||
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
|
||||
|
||||
### Article
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -235,8 +239,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `article.invertPagination` | `false` | Whether or not to flip the direction of the next/previous article links. |
|
||||
| `article.showReadingTime` | `true` | Whether or not article reading times are displayed. |
|
||||
| `article.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant *related* entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if ` showRelatedContent` is turned on. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
|
||||
| `article.showTaxonomies` | `false` | Whether or not the taxonomies related to this article are displayed. |
|
||||
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
|
||||
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
|
||||
@@ -283,6 +287,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
|
||||
| `taxonomy.showTableOfContents` | `false` | Whether or not the table of contents is displayed on taxonomies. |
|
||||
| `taxonomy.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
|
||||
### Term
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -296,6 +301,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `term.groupByYear` | `false` | Whether or not articles are grouped by year on term pages. |
|
||||
| `term.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
| `term.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
|
||||
|
||||
### Firebase
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -322,6 +328,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
|
||||
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
|
||||
| `umamiAnalytics.scriptName` | script.js | The name of the `script.js` used for anti-ad-blocking is configured by the environment variable `TRACKER_SCRIPT_NAME` |
|
||||
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
|
||||
### Seline Analytics
|
||||
@@ -340,6 +347,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
|
||||
| `buymeacoffee.globalWidgetColor` | _Not set_ | Widget color in hex format. |
|
||||
| `buymeacoffee.globalWidgetPosition` | _Not set_ | Position of the widget, i.e. "Left" or "Right" |
|
||||
|
||||
### Verifications
|
||||
|
||||
| Name | Default | Description |
|
||||
|
||||
@@ -15,9 +15,11 @@ The theme ships with a default configuration that gets you up and running with a
|
||||
|
||||
{{< alert "fire" >}}
|
||||
We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:
|
||||
|
||||
```bash
|
||||
npx blowfish-tools
|
||||
```
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
> Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.
|
||||
@@ -43,7 +45,7 @@ Note that the variable names provided in this table use dot notation to simplify
|
||||
| `baseURL` | _Not set_ | The URL to the root of the website. |
|
||||
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
||||
| `enableRobotsTXT` | `true` | When enabled, a `robots.txt` file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made `robots.txt`, set to `false` and place your file in the `static` directory. For complete control, you may provide a [custom layout]({{< ref "content-examples#custom-layouts" >}}) to generate this file. |
|
||||
| `paginate` | `10` | The number of articles listed on each page of the article listing. |
|
||||
| `pagination.pagerSize` | `10` | The number of articles listed on each page of the article listing. |
|
||||
| `summaryLength` | `0` | The number of words that are used to generate the article summary when one is not provided in the [front matter]({{< ref "front-matter" >}}). A value of `0` will use the first sentence. This value has no effect when summaries are hidden. |
|
||||
| `outputs.home` | `["HTML", "RSS", "JSON"]` | The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly. |
|
||||
| `permalinks` | _Not set_ | Refer to the [Hugo docs](https://gohugo.io/content-management/urls/#permalinks) for permalink configuration. |
|
||||
@@ -52,7 +54,7 @@ Note that the variable names provided in this table use dot notation to simplify
|
||||
|
||||
## Thumbnails
|
||||
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
|
||||
[Here]({{< ref "thumbnails" >}}) is also a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see how you can do it.
|
||||
|
||||
@@ -71,6 +73,7 @@ The theme currently supports the following languages by default:
|
||||
| Czech | `cs` |
|
||||
| German | `de` |
|
||||
| English | `en` |
|
||||
| Esperanto | `eo` |
|
||||
| Spanish (Spain) | `es` |
|
||||
| Finnish | `fi` |
|
||||
| French | `fr` |
|
||||
@@ -82,6 +85,7 @@ The theme currently supports the following languages by default:
|
||||
| Italian | `it` |
|
||||
| Japanese | `ja` |
|
||||
| Korean | `ko` |
|
||||
| Dutch | `nl` |
|
||||
| Persian | `fa` |
|
||||
| Polish | `pl` |
|
||||
| Portuguese (Brazil) | `pt-br` |
|
||||
@@ -93,8 +97,6 @@ The theme currently supports the following languages by default:
|
||||
| Simplified Chinese (China) | `zh-cn` |
|
||||
| Traditional Chinese (Taiwan) | `zh-tw` |
|
||||
|
||||
|
||||
|
||||
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
|
||||
|
||||
### Configuration
|
||||
@@ -107,7 +109,6 @@ The default file can be used as a template to create additional languages, or re
|
||||
**Note:** Ensure the `defaultContentLanguage` parameter in the [site configuration](#site-configuration) matches the language code in your language config filename.
|
||||
{{< /alert >}}
|
||||
|
||||
|
||||
#### Global
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
@@ -133,19 +134,19 @@ The default file can be used as a template to create additional languages, or re
|
||||
| `params.description` | _Not set_ | The website description. This will be used in the site metadata. |
|
||||
| `params.copyright` | _Not set_ | A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site `title`. |
|
||||
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
#### Author
|
||||
| Name | Default | Description |
|
||||
| --------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
|
||||
| `author.email` | _Not set_ | The author's email. This will be used if the reply-via-email functionality is enabled. |
|
||||
| `author.image` | _Not set_ | Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site's `assets/` folder or can be external url. |
|
||||
| `author.imageQuality` | `96` | The author's image file will be treated as a "high quality" image to minimize artifacts on the front page. Value range 1-100. |
|
||||
| `author.headline` | _Not set_ | A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name. |
|
||||
| `author.bio` | _Not set_ | A Markdown string containing the author's bio. It will be displayed in article footers. |
|
||||
| `author.links` | _Not set_ | The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`. |
|
||||
##### Author
|
||||
|
||||
| Name | Default | Description |
|
||||
| ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `params.author.name` | _Not set_ | The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used. |
|
||||
| `params.author.email` | _Not set_ | The author's email. This will be used if the reply-via-email functionality is enabled. |
|
||||
| `params.author.image` | _Not set_ | Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site's `assets/` folder or can be external url. |
|
||||
| `params.author.imageQuality` | `96` | The author's image file will be treated as a "high quality" image to minimize artifacts on the front page. Value range 1-100. |
|
||||
| `params.author.headline` | _Not set_ | A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name. |
|
||||
| `params.author.bio` | _Not set_ | A Markdown string containing the author's bio. It will be displayed in article footers. |
|
||||
| `params.author.links` | _Not set_ | The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`. |
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
### Menus
|
||||
@@ -195,6 +196,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| Name | Default | Description |
|
||||
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic`, `fixed`, `fixed-fill`, and `fixed-fill-blur`. |
|
||||
|
||||
### Footer
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -204,6 +206,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
|
||||
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
|
||||
| `footer.showScrollToTop` | `true` | When set to `true` the scroll to top arrow is displayed. |
|
||||
|
||||
### Homepage
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -217,6 +220,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
|
||||
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
|
||||
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
|
||||
|
||||
### Article
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -243,8 +247,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `article.invertPagination` | `false` | Whether or not to flip the direction of the next/previous article links. |
|
||||
| `article.showReadingTime` | `true` | Whether or not article reading times are displayed. |
|
||||
| `article.showTableOfContents` | `false` | Whether or not the table of contents is displayed on articles. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant *related* entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if ` showRelatedContent` is turned on. |
|
||||
| `article.showRelatedContent` | `false` | Display related content for each post. Might required additional configuration to your `config.toml`. Please check the theme `config.toml` if you want to enable this feature and copy all the relevant _related_ entries. Also check [Hugo's docs](https://gohugo.io/content-management/related/) on related content. |
|
||||
| `article.relatedContentLimit` | `3` | Limit of related articles to display if `showRelatedContent` is turned on. |
|
||||
| `article.showTaxonomies` | `false` | Whether or not the taxonomies related to this article are displayed. |
|
||||
| `article.showAuthorsBadges` | `false` | Whether the `authors` taxonomies are are displayed in the article or list header. This requires the setup of `multiple authors` and the `authors` taxonomy. Check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
|
||||
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
|
||||
@@ -291,6 +295,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
|
||||
| `taxonomy.showTableOfContents` | `false` | Whether or not the table of contents is displayed on taxonomies. |
|
||||
| `taxonomy.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
|
||||
### Term
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -304,6 +309,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `term.groupByYear` | `false` | Whether or not articles are grouped by year on term pages. |
|
||||
| `term.cardView` | `false` | Display lists as a gallery of cards. |
|
||||
| `term.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
|
||||
|
||||
### Firebase
|
||||
|
||||
| Name | Default | Description |
|
||||
@@ -325,19 +331,20 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
|
||||
### Umami Analytics
|
||||
|
||||
| Name | Default | Description |
|
||||
| -------------------------- |-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
|
||||
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
|
||||
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
| Name | Default | Description |
|
||||
| --------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `umamiAnalytics.websiteid` | _Not set_ | The site code generated by Umami Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `umamiAnalytics.domain` | _Not set_ | If using a custom domain with Umami Analytics, provide it here to serve `script.js` from the custom domain. |
|
||||
| `umamiAnalytics.dataDomains` | _Not set_ | If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as "yoursite.com,yoursite2.com". |
|
||||
| `umamiAnalytics.scriptName` | script.js | The name of the `script.js` used for anti-ad-blocking is configured by the environment variable `TRACKER_SCRIPT_NAME` |
|
||||
| `umamiAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
|
||||
### Seline Analytics
|
||||
|
||||
| Name | Default | Description |
|
||||
|-----------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `selineAnalytics.token` | _Not set_ | The token generated by Seline Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `selineAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
| Name | Default | Description |
|
||||
| ---------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `selineAnalytics.token` | _Not set_ | The token generated by Seline Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
|
||||
| `selineAnalytics.enableTrackEvent` | true | When set to `true` track event will add automatically. If you do not want to add track event, set it to `false`. |
|
||||
|
||||
### BuyMeACoffee
|
||||
|
||||
@@ -348,14 +355,16 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
|
||||
| `buymeacoffee.globalWidgetColor` | _Not set_ | Widget color in hex format. |
|
||||
| `buymeacoffee.globalWidgetPosition` | _Not set_ | Position of the widget, i.e. "Left" or "Right" |
|
||||
|
||||
### Verifications
|
||||
|
||||
| Name | Default | Description |
|
||||
| ------------------------ | --------- | --------------------------------------------------------------------------------------- |
|
||||
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
|
||||
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
|
||||
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |
|
||||
| `verification.yandex` | _Not set_ | The site verification string provided by Yandex to be included in the site metadata. |
|
||||
| Name | Default | Description |
|
||||
| ------------------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
|
||||
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
|
||||
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |
|
||||
| `verification.yandex` | _Not set_ | The site verification string provided by Yandex to be included in the site metadata. |
|
||||
| `verification.fediverse` | _Not set_ | The fediverse handle to include in the site metadata. Include the server domain in the username, e.g. `@you@instanceaddress.tld`. |
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
## Other configuration files
|
||||
|
||||
@@ -19,6 +19,7 @@ Blowfish 适宜个高度定制化的主题,使用到了一些 Hugo 中最新
|
||||
```bash
|
||||
npx blowfish-tools
|
||||
```
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
> 配置文件是基于 TOML 格式的,这也是 Hugo 默认支持的语法。当然如果你愿意,也可以将配置转换成 YAML 或 JSON 格式。
|
||||
@@ -44,7 +45,7 @@ Blowfish 主题支持了 Hugo 框架中定义的所有标准配置变量。但
|
||||
| `baseURL` | 无 | 网站 URL 根地址。 |
|
||||
| `defaultContentLanguage` | `"en"` | 这个值决定了主题中组件和内容所使用的默认语言。 参考 [语言和 i18n](#language-and-i18n) 部分来了解 blowfish 支持的所有语言代码。 |
|
||||
| `enableRobotsTXT` | `true` | 当开启这个值,`robots.txt` 文件将会被创建在站点根目录, 这将允许搜索引擎抓取整个网站。如果你想要自己提供 `robots.txt`,那么设置这个值为 `false` 并把你的文件放置到 `static` 目录下。 为了实现完全控制,你可以需要提供一个 [自定义布局]({{< ref "content-examples#custom-layouts" >}}) 来生成此文件。 |
|
||||
| `paginate` | `10` | 定义文章列表中,每页展示的文章数量。 |
|
||||
| `pagination.pagerSize` | `10` | 定义文章列表中,每页展示的文章数量。 |
|
||||
| `summaryLength` | `0` | 当[扉页参数]({{< ref "front-matter" >}}) 中没有提供文章摘要时,此参数定义了自动生成文章摘要的单词数量。如果值为`0`,则默认使用第一句话作为摘要。当摘要被隐藏,这个值没有任何效果。 |
|
||||
| `outputs.home` | `["HTML", "RSS", "JSON"]` | 为站点自动生成输出格式。Blowfish 要求 HTML、RSS 和 JSON 都需要有,以保证主题组件可以正常运作。 |
|
||||
| `permalinks` | 无 | 参考 [Hugo 文档](https://gohugo.io/content-management/urls/#permalinks) 中的自定义文章的固定链接配置。 |
|
||||
@@ -72,6 +73,7 @@ Blowfish 主题目前默认支持了以下语言:
|
||||
| Czech | `cs` |
|
||||
| German | `de` |
|
||||
| English | `en` |
|
||||
| Esperanto | `eo` |
|
||||
| Spanish (Spain) | `es` |
|
||||
| Finnish | `fi` |
|
||||
| French | `fr` |
|
||||
@@ -82,6 +84,7 @@ Blowfish 主题目前默认支持了以下语言:
|
||||
| Italian | `it` |
|
||||
| Japanese | `ja` |
|
||||
| Korean | `ko` |
|
||||
| Dutch | `nl` |
|
||||
| Polish | `pl` |
|
||||
| Portuguese (Brazil) | `pt-br` |
|
||||
| Portuguese (Portugal) | `pt-pt` |
|
||||
@@ -92,7 +95,6 @@ Blowfish 主题目前默认支持了以下语言:
|
||||
| Simplified Chinese (China) | `zh-cn` |
|
||||
| Traditional Chinese (Taiwan) | `zh-tw` |
|
||||
|
||||
|
||||
组件和静态资源的默认翻译在 `i18n/[code].yaml` 文件中,当然如果你想自定义,覆盖对应的文件即可。你也可以使用这种方法添加新的语言。如果你想与社区分享心得翻译,请[提交PR](https://github.com/nunocoracao/blowfish/pulls)。
|
||||
|
||||
### 配置
|
||||
@@ -105,7 +107,6 @@ Blowfish 主题目前默认支持了以下语言:
|
||||
**注意:** 保证 [网站设置](#site-configuration) 中的 `defaultContentLanguage`参数和你提供的语言配置文件相匹配。
|
||||
{{< /alert >}}
|
||||
|
||||
|
||||
#### 全局
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
@@ -131,10 +132,10 @@ Blowfish 主题目前默认支持了以下语言:
|
||||
| `params.description` | 无 | 网站表述。此参数将会被用作站点元数据。 |
|
||||
| `params.copyright` | 无 | 此参数是一个 Markdown,用于网站页脚的版权声明。此参数可以包含占位符 { year } ,以此动态插入当前年份。 如果没有提供,Blowfish 将会使用网站 `title` 自动生成版权信息。 |
|
||||
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
#### 作者
|
||||
|
||||
| 名称 | 默认值 | 描述 |
|
||||
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `author.name` | 无 | 作者名。此参数将展示在文章页脚。并且如果主页使用了个人资料布局,也会展示此值。 |
|
||||
@@ -260,7 +261,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
|
||||
| `list.showSummary` | `false` | 是否在列表页显示文章摘要。如果在[扉页参数]({{< ref "front-matter" >}})中没有提供摘要,那么将会使用[站点配置](#site-configuration) 中的 `summaryLength` 参数自动生成一个。 |
|
||||
| `list.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
|
||||
| `list.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
|
||||
| `list.showCards` | `false` | 是否将每个文章显示未卡片或简单的内联文本。 |
|
||||
| `list.showCards` | `false` | 是否将每个文章显示为卡片或简单的内联文本。 |
|
||||
| `list.groupByYear` | `true` | 是否根据年做聚合。 |
|
||||
| `list.cardView` | `false` | 将列表展示为卡片容器。 |
|
||||
| `list.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 |
|
||||
@@ -272,7 +273,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
|
||||
| ----------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | 从生成的 `/sitemap.xml` 文件中排除的内容。 具体的配置请参考[Hugo 文档](https://gohugo.io/templates/section-templates/#page-kinds)。 |
|
||||
|
||||
### 分类法
|
||||
### 分类法
|
||||
|
||||
| 名称 | 默认值 | 描述 |
|
||||
| ------------------------------ | ------- | ----------------------------------------------------------------------------------------- |
|
||||
@@ -325,6 +326,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
|
||||
| `umamiAnalytics.websiteid` | 无 | 支持 Umami 站点分析平台。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 |
|
||||
| `umamiAnalytics.domain` | 无 | 如果使用自定义域名的 Umami Analytics,请在此提供,以便从自定义域名获取 `script.js`。 |
|
||||
| `umamiAnalytics.dataDomains` | 无 | 如果你只想在特别的数个域名中使用 tracker 功能,那么你需要设置它。这个参数的值是逗号分隔的域名列表,如:yoursite.com,yoursite2.com。 |
|
||||
| `umamiAnalytics.scriptName` | script.js | 用于反广告屏蔽的 script.js 名称,由环境变量 `TRACKER_SCRIPT_NAME` 配置。 |
|
||||
| `umamiAnalytics.enableTrackEvent` | true | 默认会自动添加 Umami Track Event。如果你不想添加 Event,那学需要设置为 `false`。 |
|
||||
|
||||
### Seline Analytics
|
||||
@@ -334,7 +336,6 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
|
||||
| `selineAnalytics.token` | 无 | Seline 站点分析平台的 token。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 |
|
||||
| `selineAnalytics.enableTrackEvent` | true | 默认会自动添加 Umami Track Event。如果你不想添加 Event,那学需要设置为 `false`。 |
|
||||
|
||||
|
||||
### BuyMeACoffee(赞助平台)
|
||||
|
||||
| 名称 | 默认值 | 描述 |
|
||||
@@ -344,6 +345,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
|
||||
| `buymeacoffee.globalWidgetMessage` | 无 | 新用户首次访问网站时显示的消息。 |
|
||||
| `buymeacoffee.globalWidgetColor` | 无 | 组件颜色,使用 HEX 格式。 |
|
||||
| `buymeacoffee.globalWidgetPosition` | 无 | 组件位置,例如 "Left" 或 "Right"。 |
|
||||
|
||||
### 验证
|
||||
|
||||
| 名称 | 默认值 | 描述 |
|
||||
|
||||
@@ -2,20 +2,58 @@
|
||||
title: "Front Matter"
|
||||
weight: 7
|
||||
draft: false
|
||||
description: "All the front matter variables available in Blowfish."
|
||||
description: "Tutte le variabili in primo piano disponibili in Blowfish."
|
||||
slug: "front-matter"
|
||||
tags: ["front matter", "config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series: ["Documentazione"]
|
||||
series_order: 7
|
||||
---
|
||||
|
||||
In addition to the [default Hugo front matter parameters](https://gohugo.io/content-management/front-matter/#front-matter-variables), Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.
|
||||
Oltre ai [parametri predefiniti della parte frontale di Hugo](https://gohugo.io/content-management/front-matter/#front-matter-variables), Blowfish aggiunge una serie di opzioni aggiuntive per personalizzare la presentazione dei singoli articoli . Tutti i parametri disponibili per la parte frontale del tema sono elencati di seguito.
|
||||
|
||||
Front matter parameter default values are inherited from the theme's [base configuration]({{< ref "configuration" >}}), so you only need to specify these parameters in your front matter when you want to override the default.
|
||||
I valori predefiniti dei parametri del front metter vengono ereditati dalla [configurazione di base]({{< ref "configuration" >}}) del tema, quindi devi specificare questi parametri nella parte iniziale solo quando desideri sovrascrivere quelli predefiniti.
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
| Name | Default | Description |
|
||||
| ----------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `title` | _Not set_ | Il nome dell'articolo. |
|
||||
| `description` | _Not set_ | La descrizione testuale dell'articolo. Viene utilizzato nei metadati HTML. |
|
||||
| `externalUrl` | _Not set_ | Se questo articolo è pubblicato su un sito Web di terze parti, l'URL di questo articolo. Fornire un URL impedirà la generazione di una pagina di contenuto e qualsiasi riferimento a questo articolo si collegherà direttamente al sito Web di terze parti. |
|
||||
| `editURL` | `article.editURL` | Quando "showEdit" è attivo, l'URL per il collegamento di modifica. |
|
||||
| `editAppendPath` | `article.editAppendPath` | Quando "showEdit" è attivo, indica se il percorso dell'articolo corrente deve essere aggiunto o meno all'URL impostato in "editURL". |
|
||||
| `groupByYear` | `list.groupByYear` | Se gli articoli sono raggruppati o meno per anno nelle pagine di elenco. |
|
||||
| `menu` | _Not set_ | Quando viene fornito un valore, nei menu denominati verrà visualizzato un collegamento a questo articolo. I valori validi sono "main" o "footer". |
|
||||
| `robots` | _Not set_ | Stringa che indica come i robots dovrebbero gestire questo articolo. Se impostato, verrà visualizzato nell'intestazione della pagina. Fare riferimento ai [documenti di Google](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) per i valori validi. |
|
||||
| `sharingLinks` | `article.sharingLinks` | Quali link di condivisione visualizzare alla fine di questo articolo. Se non fornito o impostato su "false", non verrà visualizzato alcun collegamento. |
|
||||
| `showAuthor` | `article.showAuthor` | Se la casella dell'autore predefinito viene visualizzata o meno nel piè di pagina dell'articolo. |
|
||||
| `authors` | _Not set_ | Matrice di valori per gli autori, se impostata sovrascrive le impostazioni di "showAuthor" per la pagina o il sito. Utilizzato nella funzionalità per più autori, controlla [questa pagina]({{< ref "multi-author" >}}) per maggiori dettagli su come configurare tale funzionalità. |
|
||||
| `showAuthorsBadges` | `article.showAuthorsBadges` | Se le tassonomie degli "autori" vengono visualizzate nell'articolo o nell'intestazione dell'elenco. Ciò richiede l'impostazione di "autori multipli" e la tassonomia degli "autori". Controlla [questa pagina]({{< ref "multi-author" >}}) per maggiori dettagli su come configurare questa funzione. |
|
||||
| `featureimage` | _Not set_ | URL esterno per l'immagine in primo piano
|
||||
| `featureimagecaption` | _Not set_ | Didascalia per l'immagine in primo piano. Visualizzato solo in heroStyle "big".
|
||||
| `showHero` | `article.showHero` | Se l'immagine in miniatura verrà mostrata come immagine hero all'interno della pagina dell'articolo. |
|
||||
| `heroStyle` | `article.heroStyle` | Stile per visualizzare l'immagine hero, le opzioni valide sono: `basic`, `big`, ` background`, `thumbAndBackground`. |
|
||||
| `showBreadcrumbs` | `article.showBreadcrumbs` or `list.showBreadcrumbs` | Se i breadcrumb vengono visualizzati nell'articolo o nell'intestazione dell'elenco. |
|
||||
| `showDate` | `article.showDate` | Se viene visualizzata o meno la data dell'articolo. La data viene impostata utilizzando il parametro "data". |
|
||||
| `showDateUpdated` | `article.showDateUpdated` | Se viene visualizzata o meno la data di aggiornamento dell'articolo. La data viene impostata utilizzando il parametro "lastmod". |
|
||||
| `showEdit` | `article.showEdit` |Se deve essere visualizzato o meno il collegamento per modificare il contenuto dell'articolo. |
|
||||
| `showHeadingAnchors` | `article.showHeadingAnchors` | Se i collegamenti di ancoraggio dei titoli vengono visualizzati o meno insieme ai titoli all'interno di questo articolo. |
|
||||
| `showPagination` | `article.showPagination` | Se i collegamenti all'articolo successivo/precedente vengono visualizzati o meno nel piè di pagina dell'articolo. |
|
||||
| `invertPagination` | `article.invertPagination` | Se invertire o meno la direzione dei collegamenti all'articolo successivo/precedente. |
|
||||
| `showReadingTime` | `article.showReadingTime` | Se viene visualizzato o meno il tempo di lettura dell'articolo. |
|
||||
| `showTaxonomies` | `article.showTaxonomies` | Se vengono visualizzate o meno le tassonomie correlate a questo articolo. |
|
||||
| `showTableOfContents` | `article.showTableOfContents` | Se il sommario viene visualizzato o meno in questo articolo. |
|
||||
| `showWordCount` | `article.showWordCount` | Se viene visualizzato o meno il conteggio delle parole dell'articolo. |
|
||||
| `showComments` | `article.showComments` | Se il [commenti parziali]({{< ref "partials#comments" >}}) è incluso o meno dopo il piè di pagina dell'articolo. |
|
||||
| `showSummary` | `list.showSummary` | Se il riepilogo dell'articolo deve essere visualizzato o meno nelle pagine di elenco. |
|
||||
| `showViews` | `article.showViews` | Se le visualizzazioni degli articoli devono essere visualizzate o meno negli elenchi e nella visualizzazione dettagliata. Ciò richiede un'integrazione Firebase. Controlla [questa pagina]({{< ref "firebase-views" >}}) per una guida su come integrare Firebase in Blowfish |
|
||||
| `showLikes` | `article.showLikes` | Se l'articolo piace o meno deve essere visualizzato negli elenchi e nella vista dettagliata. Ciò richiede un'integrazione Firebase. Controlla [questa pagina]({{< ref "firebase-views" >}}) per una guida su come integrare Firebase in Blowfish |
|
||||
| `seriesOpened` | `article.seriesOpened` | Se il modulo della serie verrà visualizzato aperto per impostazione predefinita o meno. |
|
||||
| `series` | _Not set_ | Matrice di serie a cui appartiene l'articolo, si consiglia di utilizzare una sola serie per articolo. |
|
||||
| `series_order` | _Not set_ | Numero dell'articolo all'interno della serie. |
|
||||
| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | Quando "showSummary" è abilitato, questa è la stringa Markdown da utilizzare come riepilogo per questo articolo. |
|
||||
| `xml` | `true` unless excluded by `sitemap.excludedKinds` | Se questo articolo è incluso o meno nel file `/sitemap.xml` generato. |
|
||||
| `layoutBackgroundBlur` | `true` | Rende l'immagine di sfondo sullo sfondo heroStyle sfocata con lo scorrimento. |
|
||||
| `layoutBackgroundHeaderSpace` | `true` | Aggiungi spazio tra l'intestazione e il body. |
|
||||
| `title` | _Not set_ | The name of the article. |
|
||||
| `description` | _Not set_ | The text description for the article. It is used in the HTML metadata. |
|
||||
| `externalUrl` | _Not set_ | If this article is published on a third-party website, the URL to this article. Providing a URL will prevent a content page being generated and any references to this article will link directly to the third-party website. |
|
||||
@@ -55,4 +93,5 @@ Front matter parameter default values are inherited from the theme's [base confi
|
||||
| `xml` | `true` unless excluded by `sitemap.excludedKinds` | Whether or not this article is included in the generated `/sitemap.xml` file. |
|
||||
| `layoutBackgroundBlur` | `true` | Makes the background image in the background heroStyle blur with the scroll |
|
||||
| `layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
@@ -10,7 +10,7 @@ series_order: 3
|
||||
---
|
||||
|
||||
{{< alert >}}
|
||||
Questa sezione presuppone che si sia già [installato il tema Blowfish]({{< ref "docs/installation" >}}).
|
||||
Questa sezione presuppone che tu abbia già [installato il tema Blowfish]({{< ref "docs/installation" >}}).
|
||||
{{< /alert >}}
|
||||
|
||||
</br>
|
||||
@@ -22,11 +22,12 @@ npx blowfish-tools
|
||||
{{< /alert >}}
|
||||
|
||||
|
||||
The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.
|
||||
I file di configurazione forniti con Blowfish contengono tutte le possibili impostazioni riconosciute dal tema. Per impostazione predefinita, molti di questi sono commentati ma puoi semplicemente decommentarli per attivare o modificare una funzionalità specifica.
|
||||
|
||||
## Basic configuration
|
||||
## Configurazione di base
|
||||
|
||||
Before creating any content, there are a few things you should set for a new installation. Starting in the `hugo.toml` file, set the `baseURL` and `languageCode` parameters. The `languageCode` should be set to the main language that you will be using to author your content.
|
||||
Prima di creare qualsiasi contenuto, è necessario impostare alcune cose per una nuova installazione. Iniziando dal file `config.toml`, imposta i parametri `baseURL` e `lingualCode`. Il `lingualCode` dovrebbe essere impostato sulla lingua principale che utilizzerai per creare i tuoi contenuti.
|
||||
=======
|
||||
|
||||
```toml
|
||||
# config/_default/hugo.toml
|
||||
@@ -35,12 +36,14 @@ baseURL = "https://your_domain.com/"
|
||||
languageCode = "en"
|
||||
```
|
||||
|
||||
The next step is to configure the language settings. Although Blowfish supports multilingual setups, for now, just configure the main language.
|
||||
Il passo successivo è configurare le impostazioni della lingua. Sebbene Blowfish supporti le configurazioni multilingue, per ora basta configurare la lingua principale.
|
||||
|
||||
Locate the `languages.en.toml` file in the config folder. If your main language is English you can use this file as is. Otherwise, rename it so that it includes the correct language code in the filename. For example, for French, rename the file to `languages.fr.toml`.
|
||||
Individua il file "languages.en.toml" nella cartella di configurazione. Se la tua lingua principale è l'inglese puoi utilizzare questo file così com'è. Altrimenti, rinominalo in modo che includa il codice della lingua corretto nel nome del file. Ad esempio, per il francese, rinominare il file in "languages.fr.toml".
|
||||
|
||||
{{< alert >}}
|
||||
Note that the language code in the language config filename should match the `languageCode` setting in `hugo.toml`.
|
||||
|
||||
Tieni presente che il codice della lingua nel nome del file di configurazione della lingua deve corrispondere all'impostazione "languageCode" in "config.toml".
|
||||
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -48,7 +51,7 @@ Note that the language code in the language config filename should match the `la
|
||||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
@@ -57,22 +60,20 @@ links = [
|
||||
{ twitter = "https://twitter.com/username" }
|
||||
]
|
||||
```
|
||||
La configurazione `[params.author]` determina il modo in cui le informazioni sull'autore vengono visualizzate sul sito web. L'immagine deve essere posizionata nella cartella `assets/`. I link verranno visualizzati nell'ordine in cui sono elencati.
|
||||
|
||||
The `[author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
Se hai bisogno di ulteriori dettagli, ulteriori informazioni su ciascuna di queste opzioni di configurazione sono trattate nella sezione [Configurazione]({{< ref "configuration" >}}).
|
||||
|
||||
If you need extra detail, further information about each of these configuration options, is covered in the [Configuration]({{< ref "configuration" >}}) section.
|
||||
## Schemi di colori
|
||||
|
||||
## Colour schemes
|
||||
|
||||
Blowfish ships with a number of colour schemes out of the box. To change the scheme, simply set the `colorScheme` theme parameter. Valid options are `blowfish` (default), `avocado`, `fire`, `ocean`, `forest`, `princess`, `neon`, `bloody`, `terminal`, `marvel`, `noir`, `autumn`, `congo`, and`slate`.
|
||||
Blowfish viene fornito con una serie di schemi di colori già pronti. Per cambiare lo schema, è sufficiente impostare il parametro del tema `colorScheme`. Le opzioni valide sono `blowfish` (default), `avocado`, `fire`, `ocean`, `forest`, `princess`, `neon`, `bloody`, `terminal`, `marvel`, `noir`, `autumn`, `congo`, and`slate`.
|
||||
|
||||
```toml
|
||||
# config/_default/params.toml
|
||||
|
||||
colorScheme = "blowfish"
|
||||
```
|
||||
|
||||
Blowfish defines a three-colour palette that is used throughout the theme. Each main colour contains ten shades which are based upon the colours that are included in [Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference). The three main colours are used for the header, footer, and accent colours. Here are the colors for each scheme:
|
||||
Blowfish definisce una palette di tre colori che viene utilizzata in tutto il tema. Ogni colore principale contiene dieci sfumature basate sui colori inclusi in [Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference). I tre colori principali sono utilizzati per l'intestazione, il piè di pagina e i colori d'accento. Ecco i colori per ogni schema:
|
||||
|
||||
#### Blowfish (default)
|
||||
{{< swatches "#64748b" "#3b82f6" "#06b6d4" >}}
|
||||
@@ -117,13 +118,13 @@ Blowfish defines a three-colour palette that is used throughout the theme. Each
|
||||
{{< swatches "#6B7280" "#64748b" "#6B7280" >}}
|
||||
|
||||
|
||||
Although these are the default schemes, you can also create your own. Refer to the [Advanced Customisation]({{< ref "advanced-customisation#colour-schemes" >}}) section for details.
|
||||
Sebbene questi siano gli schemi predefiniti, è possibile crearne di propri. Per maggiori informazioni, consultare la sezione [Personalizzazione avanzata]({{< ref "advanced-customisation#colour-schemes" >}}).
|
||||
|
||||
## Organising content
|
||||
## Organizzazione dei contenuti
|
||||
|
||||
By default, Blowfish doesn't force you to use a particular content type. In doing so you are free to define your content as you wish. You might prefer _pages_ for a static site, _posts_ for a blog, or _projects_ for a portfolio.
|
||||
Per impostazione predefinita, Blowfish non obbliga a utilizzare un particolare tipo di contenuto. In questo modo si è liberi di definire il contenuto come si desidera. Potreste preferire _pages_ per un sito statico, _posts_ per un blog o _projects_ per un portfolio.
|
||||
|
||||
Here's a quick overview of a basic Blowfish project. All content is placed within the `content` folder:
|
||||
Ecco una rapida panoramica di un progetto base di Blowfish. Tutti i contenuti sono inseriti nella cartella `content`:
|
||||
|
||||
```shell
|
||||
.
|
||||
@@ -144,12 +145,12 @@ Here's a quick overview of a basic Blowfish project. All content is placed withi
|
||||
└── themes
|
||||
└── blowfish
|
||||
```
|
||||
È importante avere una conoscenza approfondita di come Hugo si aspetta che il contenuto sia organizzato, poiché il tema è progettato per sfruttare appieno i pacchetti di pagine di Hugo. Si consiglia di leggere i [documentazione ufficiale di Hugo](https://gohugo.io/content-management/organization/) per maggiori informazioni.
|
||||
|
||||
It's important to have a firm grasp of how Hugo expects content to be organised as the theme is designed to take full advantage of Hugo page bundles. Be sure to read the [official Hugo docs](https://gohugo.io/content-management/organization/) for more information.
|
||||
|
||||
Blowfish is also flexible when it comes to taxonomies. Some people prefer to use _tags_ and _categories_ to group their content, others prefer to use _topics_.
|
||||
Blowfish è flessibile anche per quanto riguarda le tassonomie. Alcuni preferiscono usare _tags_ e _categories_ per raggruppare i loro contenuti, altri preferiscono usare _topics_.
|
||||
|
||||
Hugo defaults to using posts, tags and categories out of the box and this will work fine if that's what you want. If you wish to customise this, however, you can do so by creating a `taxonomies.toml` configuration file:
|
||||
Hugo usa di default post, tag e categorie e questo funziona bene se è quello che vuoi. Tuttavia, se desideri personalizzare questo aspetto, è possibile farlo creando un file di configurazione `taxonomies.toml`:
|
||||
|
||||
```toml
|
||||
# config/_default/taxonomies.toml
|
||||
@@ -157,15 +158,16 @@ Hugo defaults to using posts, tags and categories out of the box and this will w
|
||||
topic = "topics"
|
||||
```
|
||||
|
||||
This will replace the default _tags_ and _categories_ with _topics_. Refer to the [Hugo Taxonomy docs](https://gohugo.io/content-management/taxonomies/) for more information on naming taxonomies.
|
||||
Sostituirà i predefiniti _tags_ e _categorie_ con _topics_. Fare riferimento a [Hugo Taxonomy docs](https://gohugo.io/content-management/taxonomies/) per ulteriori informazioni sulla denominazione delle tassonomie.
|
||||
|
||||
When you create a new taxonomy, you will need to adjust the navigation links on the website to point to the correct sections, which is covered below.
|
||||
Quando crei una nuova tassonomia, è necessario sistemare i collegamenti di navigazione sul sito web per puntare alle sezioni corrette, come spiegato di seguito.
|
||||
|
||||
## Menus
|
||||
## Menu
|
||||
|
||||
Blowfish has two menus that can be customised to suit the content and layout of your site. The `main` menu appears in the site header and the `footer` menu appears at the bottom of the page just above the copyright notice.
|
||||
Blowfish dispone di due menu che possono essere personalizzati per adattarsi al contenuto e al layout del sito. Il menu `main` appare nell'intestazione del sito e il menu `footer` appare in fondo alla pagina, appena sopra la nota di copyright.
|
||||
|
||||
Entrambi i menu sono configurati nel file `menus.en.toml`. Simile al file di configurazione delle lingue, se desideri utilizzare un'altra lingua, rinomina questo file e sostituisci `en` con il codice della lingua che si vuole utilizzare.
|
||||
|
||||
Both menus are configured in the `menus.en.toml` file. Similarly to the languages config file, if you wish to use another language, rename this file and replace `en` with the language code you wish to use.
|
||||
|
||||
```toml
|
||||
# config/_default/menus.toml
|
||||
@@ -197,19 +199,20 @@ Both menus are configured in the `menus.en.toml` file. Similarly to the language
|
||||
url = "https://external-link"
|
||||
```
|
||||
|
||||
The `name` parameter specifies the text that is used in the menu link. You can also optionally provide a `title` which fills the HTML title attribute for the link.
|
||||
Il parametro `name` specifica il testo utilizzato nel collegamento al menu. Si può anche fornire facoltativamente un `title` che riempie l'attributo HTML title per il collegamento.
|
||||
|
||||
The `pageRef` parameter allows you to easily reference Hugo content pages and taxonomies. It is the quickest way to configure the menu as you can simply refer to any Hugo content item and it will automatically build the correct link. To link to external URLs, the `url` parameter can be used.
|
||||
Il parametro `pageRef` consente di fare facilmente riferimento alle pagine di contenuto e alle tassonomie di Hugo. È il modo più rapido per configurare il menu, in quanto è sufficiente fare riferimento a qualsiasi elemento di contenuto di Hugo per creare automaticamente il collegamento corretto. Per collegarsi a URL esterni, si può usare il parametro `url`.
|
||||
|
||||
The `pre` parameter allows you to place an icon from [Blowfish's icon set]({{< ref "samples/icons" >}}) on the menu entry. This parameter can be used with `name` parameter or by itself. If you want to use multiple menu entries with just icons please set the `identifier`parameter otherwise Hugo will default to the naming tag as the id and probably not display all the menu entries.
|
||||
Il parametro `pre` consente di inserire un'icona dal [Set di icone di Blowfish] ({{< ref "samples/icons" >}}) nella voce di menu. Questo parametro può essere usato con il parametro `name` o da solo. Se si vogliono usare più voci di menu con le sole icone, imposta il parametro `identifier`, altrimenti Hugo sceglierà come id il tag di denominazione e probabilmente non visualizzerà tutte le voci di menu.
|
||||
|
||||
Menu links will be sorted from lowest to highest `weight`, and then alphabetically by `name`.
|
||||
I collegamenti al menu saranno ordinati dal più basso al più alto `peso`, e poi in ordine alfabetico per `name`.
|
||||
|
||||
Both menus are completely optional and can be commented out if not required. Use the template provided in the file as a guide.
|
||||
Entrambi i menu sono completamente opzionali e possono essere commentati se non sono necessari. Utilizzare il modello fornito nel file come guida.
|
||||
|
||||
### Nested menus
|
||||
### Nested Menu
|
||||
|
||||
Il tema supporta anche i menu nidificati. Per usarli devi solo definire una voce genitore in `menu.toml` e i suoi sottomenu utilizzando il parametro `parent` per fare riferimento al genitore. Tutte le proprietà possono essere utilizzate per i sottomenu. `pageRef` e `url` possono essere utilizzati anche nella voce principale. I menu nidificati sono disponibili solo nel menu principale e non nel 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
|
||||
# config/_default/menus.toml
|
||||
@@ -238,10 +241,10 @@ The theme also supports nested menus. In order to use them you just need to defi
|
||||
weight = 20
|
||||
```
|
||||
|
||||
### Sub-Navigation menu
|
||||
### Menu di navigazione secondario
|
||||
|
||||
Additionally, you can also configure a sub-navigation menu. Just define new menu entries as `subnavigation` in `menus.toml`.
|
||||
This will render a second line with sub-categories below the main header menu.
|
||||
Inoltre, è possibile configurare un menu di sotto-navigazione. Basta definire nuove voci di menu come `subnavigation` in `menus.toml`.
|
||||
Questo renderà una seconda riga con le sottocategorie sotto il menu principale dell'intestazione.
|
||||
|
||||
```toml
|
||||
# config/_default/menus.toml
|
||||
@@ -257,16 +260,17 @@ This will render a second line with sub-categories below the main header menu.
|
||||
weight = 20
|
||||
```
|
||||
|
||||
The default `name` is the `pageRef` title cased.
|
||||
Il `name` predefinito è il titolo di `pageRef`, con le caselle.
|
||||
|
||||
## Thumbnails & Backgrounds
|
||||
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then be able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
Blowfish è stato creato in modo che sia facile aggiungere supporto visivo ai tuoi articoli. Se hai familiarità con la struttura degli articoli di Hugo, devi solo inserire un file immagine (quasi tutti i formati sono supportati ma consigliamo `.png` o `.jpg`) che inizi con `feature*` all'interno della cartella dell'articolo. E questo è tutto, Blowfish sarà quindi in grado di utilizzare l'immagine sia come miniatura all'interno del tuo sito web sia per le schede <a target="_blank" href="https://oembed.com/">oEmbed</a> attraverso le piattaforme social.
|
||||
|
||||
[Here]({{< ref "thumbnails" >}}) is also a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see how you can do it.
|
||||
[Qui]({{< ref "thumbnails" >}}) è anche una guida con maggiori informazioni e un [esempio]({{< ref "thumbnail_sample" >}}) se vuoi vedere come puoi farlo.
|
||||
|
||||
Additionally, Blowfish also supports background hero images in articles and lists. In order to use a different image than the featured one, add an image file in which the name starts with `background*`.
|
||||
Inoltre, Blowfish supporta anche una background hero image in articoli ed elenchi. Per utilizzare un'immagine diversa da quella in primo piano, aggiungi un file immagine il cui nome inizia con `background*`.
|
||||
|
||||
## Detailed configuration
|
||||
## Dettagli di configurazione
|
||||
|
||||
The steps above are the bare minimum configuration. If you now run `hugo server` you will be presented with a blank Blowfish website. Detailed configuration is covered in the [Configuration]({{< ref "configuration" >}}) section.
|
||||
I passaggi precedenti rappresentano la configurazione minima. Se ora esegui `hugo server` ti verrà presentato un sito web Blowfish vuoto. La configurazione dettagliata è trattata nella sezione [Configurazione]({{< ref "configuration" >}}).
|
||||
@@ -48,7 +48,7 @@ Note that the language code in the language config filename should match the `la
|
||||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
@@ -58,7 +58,7 @@ links = [
|
||||
]
|
||||
```
|
||||
|
||||
The `[author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
The `[params.author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
|
||||
If you need extra detail, further information about each of these configuration options, is covered in the [Configuration]({{< ref "configuration" >}}) section.
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ Note that the language code in the language config filename should match the `la
|
||||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
@@ -58,7 +58,7 @@ links = [
|
||||
]
|
||||
```
|
||||
|
||||
The `[author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
The `[params.author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed.
|
||||
|
||||
If you need extra detail, further information about each of these configuration options, is covered in the [Configuration]({{< ref "configuration" >}}) section.
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ languageCode = "en"
|
||||
|
||||
title = "My awesome website"
|
||||
|
||||
[author]
|
||||
[params.author]
|
||||
name = "My name"
|
||||
image = "img/author.jpg"
|
||||
headline = "A generally awesome human"
|
||||
@@ -58,7 +58,7 @@ links = [
|
||||
]
|
||||
```
|
||||
|
||||
`[author]` 属性决定了作者信息的展示方式。 作者的图片信息应该放在 `assets/` 文件夹中。作者相关的链接将会按照排列顺序依次展示。
|
||||
`[params.author]` 属性决定了作者信息的展示方式。 作者的图片信息应该放在 `assets/` 文件夹中。作者相关的链接将会按照排列顺序依次展示。
|
||||
|
||||
如果你还需要额外属性,在配置部分会有详细说明。
|
||||
|
||||
|
||||
@@ -2,88 +2,87 @@
|
||||
title: "Homepage Layout"
|
||||
weight: 5
|
||||
draft: false
|
||||
description: "Configuring the homepage layout in the Blowfish theme."
|
||||
description: "Configurazione del layout della home page nel tema Blowfish."
|
||||
slug: "homepage-layout"
|
||||
tags: ["homepage", "layouts", "docs"]
|
||||
series: ["Documentation"]
|
||||
series: ["Documentazione"]
|
||||
series_order: 5
|
||||
---
|
||||
|
||||
Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.
|
||||
Blowfish fornisce un layout della home page completamente flessibile. Sono disponibili due modelli principali tra cui scegliere con impostazioni aggiuntive per adattare il design. In alternativa, puoi anche fornire il tuo modello e avere il controllo completo sul contenuto della home page.
|
||||
|
||||
The layout of the homepage is controlled by the `homepage.layout` setting in the `params.toml` configuration file. Additionally, all layouts have the option to include a listing of [recent articles](#recent-articles).
|
||||
Il layout della home page è controllato dall'impostazione `homepage.layout` nel file di configurazione `params.toml`. Inoltre, tutti i layout hanno la possibilità di includere un elenco di [articoli recenti](#recent-articles).
|
||||
|
||||
## Profile layout
|
||||
|
||||
The default layout is the profile layout, which is great for personal websites and blogs. It puts the author's details front and centre by providing an image and links to social profiles.
|
||||
Il layout predefinito è quello del profilo, ideale per i siti web e i blog personali. Mette i dettagli dell'autore in primo piano, fornendo un'immagine e i link ai profili sociali.
|
||||
|
||||
<img class="thumbnailshadow" src="img/home-profile.png"/>
|
||||
|
||||
The author information is provided in the languages configuration file. Refer to the [Getting Started]({{< ref "getting-started" >}}) and [Language Configuration]({{< ref "configuration##language-and-i18n" >}}) sections for parameter details.
|
||||
Le informazioni sull'autore sono fornite nel file di configurazione delle lingue. Fare riferimento alle sezioni [Guida introduttiva]({{< ref "getting-started" >}}) e [Configurazione della lingua]({{< ref "configuration##language-and-i18n" >}}) per i dettagli sui parametri.
|
||||
|
||||
Additionally, any Markdown content that is provided in the homepage content will be placed below the author profile. This allows extra flexibility for displaying a bio or other custom content using shortcodes.
|
||||
Inoltre, qualsiasi contenuto Markdown fornito nel contenuto della homepage sarà collocato sotto il profilo dell'autore. Ciò consente una maggiore flessibilità per la visualizzazione di una biografia o di altri contenuti personalizzati utilizzando gli shortcode.
|
||||
|
||||
To enable the Profile layout, set `homepage.layout = "profile"` in the `params.toml` configuration file.
|
||||
Per abilitare il layout del profilo, impostare `homepage.layout = “profile”` nel file di configurazione `params.toml`.
|
||||
|
||||
## Page layout
|
||||
|
||||
The page layout is simply a normal content page that displays your Markdown content. It's great for static websites and provides a lot of flexibility.
|
||||
|
||||
Il layout di pagina è semplicemente una normale pagina di contenuto che visualizza il contenuto Markdown. È ottimo per i siti web statici e offre una grande flessibilità.
|
||||
<img class="thumbnailshadow" src="img/home-page.png"/>
|
||||
|
||||
To enable the Page layout, set `homepage.layout = "page"` in the `params.toml` configuration file.
|
||||
Per abilitare il layout di pagina, impostare `homepage.layout = “page”` nel file di configurazione `params.toml`.
|
||||
|
||||
## Hero layout
|
||||
|
||||
The hero layout brings together ideas from the profile and card layouts. This one not only displays information on the author of the site but it also loads your markdown beneath it.
|
||||
Il layout hero riunisce le idee dei layout profilo e scheda. Questo non solo mostra le informazioni sull'autore del sito, ma carica anche il markdown sotto di esso.
|
||||
|
||||
<img class="thumbnailshadow" src="img/home-hero.png"/>
|
||||
|
||||
To enable the Hero layout, set `homepage.layout = "hero"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||
Per abilitare il layout Hero, impostare `homepage.layout = “hero”` e `homepage.homepageImage` nel file di configurazione `params.toml`.
|
||||
|
||||
## Background layout
|
||||
|
||||
The background layout is a more smooth version of the hero layout. As in the Hero layout, this one also displays both information on the author of the site and loads your markdown beneath it.
|
||||
Il layout di sfondo è una versione più fluida del layout Hero. Come nel layout Hero, anche in questo caso vengono visualizzate le informazioni sull'autore del sito e viene caricato il markdown sotto di esso.
|
||||
|
||||
<img class="thumbnailshadow" src="img/home-background.png"/>
|
||||
|
||||
To enable the Background layout, set `homepage.layout = "background"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||
Per abilitare il layout di sfondo, impostare `homepage.layout = “background”` e `homepage.homepageImage` nel file di configurazione `params.toml`.
|
||||
|
||||
## Card layout
|
||||
|
||||
The card layout is an extension of the page layout. It provides the same level of flexibility by also displaying your markdown content and adds a card image to display visual content.
|
||||
Il layout delle schede è un'estensione del layout di pagina. Offre lo stesso livello di flessibilità, visualizzando anche i contenuti markdown e aggiungendo un'immagine per visualizzare i contenuti visivi.
|
||||
|
||||
<img class="thumbnailshadow" src="img/home-card.png"/>
|
||||
|
||||
To enable the Card layout, set `homepage.layout = "card"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||
Per abilitare il layout a scheda, impostare `homepage.layout = “card”` e `homepage.homepageImage` nel file di configurazione `params.toml`.
|
||||
|
||||
|
||||
## Custom layout
|
||||
|
||||
If the built-in homepage layouts aren't sufficient for your needs, you have the option to provide your own custom layout. This allows you to have total control over the page content and essentially gives you a blank slate to work with.
|
||||
Se i layout integrati della homepage non sono sufficienti per le vostre esigenze, avete la possibilità di creare un layout personalizzato. Questo permette di avere un controllo totale sul contenuto della pagina e fornisce essenzialmente una lavagna vuota con cui lavorare.
|
||||
|
||||
To enable the Custom layout, set `homepage.layout = "custom"` in the `params.toml` configuration file.
|
||||
Per abilitare il layout personalizzato, impostare `homepage.layout = “custom”` nel file di configurazione `params.toml`.
|
||||
|
||||
With the configuration value set, create a new `custom.html` file and place it in `layouts/partials/home/custom.html`. Now whatever is in the `custom.html` file will be placed in the content area of the site homepage. You may use whatever HTML, Tailwind, or Hugo templating functions you wish to define your layout.
|
||||
Con il valore di configurazione impostato, creare un nuovo file `custom.html` e collocarlo in `layouts/partials/home/custom.html`. Ora tutto ciò che è contenuto nel file `custom.html` sarà collocato nell'area dei contenuti della homepage del sito. È possibile utilizzare qualsiasi funzione HTML, Tailwind o Hugo per definire il layout.
|
||||
|
||||
To include [recent articles](#recent-articles) on the custom layout, use the `recent-articles/main.html` partial.
|
||||
Per includere [articoli recenti](#recent-articles) nel layout personalizzato, utilizzare il partial `recent-articles/main.html`.
|
||||
|
||||
As an example, the [homepage]({{< ref "/" >}}) on this site uses the custom layout to allow toggling between the profile and page layouts. Visit the [GitHub repo](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/layouts/partials/home/custom.html) to see how it works.
|
||||
Ad esempio, la [homepage]({{< ref "/" >}}) di questo sito utilizza il layout personalizzato per consentire di passare dal layout del profilo a quello della pagina. Visitare il [repo GitHub](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/layouts/partials/home/custom.html) per vedere come funziona.
|
||||
|
||||
## Recent articles
|
||||
## Articoli recenti
|
||||
|
||||
All homepage layouts have the option of displaying recent articles below the main page content. To enable this, simply set the `homepage.showRecent` setting to `true` in the `params.toml` configuration file.
|
||||
Tutti i layout delle homepage hanno la possibilità di visualizzare gli articoli recenti sotto il contenuto della pagina principale. Per attivarla, è sufficiente impostare l'opzione `homepage.showRecent` a `true` nel file di configurazione `params.toml`.
|
||||
|
||||
<img class="thumbnailshadow" src="img/home-list.png"/>
|
||||
|
||||
The articles listed in this section are derived from the `mainSections` setting which allows for whatever content types you are using on your website. For instance, if you had content sections for _posts_ and _projects_ you could set this setting to `["posts", "projects"]` and all the articles in these two sections would be used to populate the recent list. The theme expects this setting to be an array so if you only use one section for all your content, you should set this accordingly: `["blog"]`.
|
||||
Gli articoli elencati in questa sezione sono derivati dall'impostazione `mainSections`, che consente di utilizzare i tipi di contenuto del sito web. Per esempio, se si hanno sezioni di contenuto per _post_ e _progetti_, si può impostare questa impostazione su `[“post”, “progetti”]` e tutti gli articoli di queste due sezioni saranno utilizzati per popolare l'elenco dei recenti. Il tema si aspetta che questa impostazione sia un array, quindi se si utilizza una sola sezione per tutti i contenuti, è necessario impostarla di conseguenza: `[“blog”]`.
|
||||
|
||||
## Thumbnails
|
||||
|
||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article structure, you just need to place an image file (almost all formats are supported bue we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||
Blowfish è stato creato in modo che sia facile aggiungere supporto visivo ai tuoi articoli. Se hai familiarità con la struttura dell'articolo di Hugo, devi solo inserire un file immagine (quasi tutti i formati sono supportati ma consigliamo `.png` o `.jpg`) che inizi con `feature*` all'interno della cartella dell'articolo. E questo è tutto, Blowfish sarà quindi in grado di utilizzare l'immagine sia come miniatura all'interno del tuo sito web sia per le schede <a target="_blank" href="https://oembed.com/">oEmbed</a> su piattaforme sociali.
|
||||
|
||||
[Here]({{< ref "thumbnails" >}}) is a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see an example.
|
||||
[Qui]({{< ref "thumbnails" >}}) si trova una guida con maggiori informazioni e un [sample]({{< ref "thumbnail_sample" >}}) se si vuole vedere un esempio.
|
||||
|
||||
## Card Gallery
|
||||
|
||||
Blowfish also supports displaying the standard lists of articles as card galleries. You can config this both for the recent section in the homepage and for lists of articles across your website. For homepage you can use `homepage.cardView` and `homepage.cardViewScreenWidth`; and for lists use `list.cardView` and `list.cardViewScreenWidth`. Check the [Configuration docs]({{< ref "configuration" >}}) for more details, and the homepage for a live demo.
|
||||
Blowfish supporta anche la visualizzazione degli elenchi standard di articoli come gallerie di schede. È possibile configurare questo sia per la sezione recente nella homepage che per gli elenchi di articoli nel sito web. Per la homepage si può usare `homepage.cardView` e `homepage.cardViewScreenWidth`; per gli elenchi si può usare `list.cardView` e `list.cardViewScreenWidth`. Per maggiori dettagli, consultare i [docs di configurazione] ({{< ref "configuration" >}}) e la homepage per una dimostrazione dal vivo.
|
||||
@@ -110,6 +110,7 @@ Per questo metodo utilizzerai Hugo per gestire i tuoi temi. Hugo utilizza **Go**
|
||||
|
||||
```toml
|
||||
[[imports]]
|
||||
disable = false
|
||||
path = "github.com/nunocoracao/blowfish/v2"
|
||||
```
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ For this method you'll use Hugo to manage your themes. Hugo uses **Go** to initi
|
||||
|
||||
```toml
|
||||
[[imports]]
|
||||
disable = false
|
||||
path = "github.com/nunocoracao/blowfish/v2"
|
||||
```
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ For this method you'll use Hugo to manage your themes. Hugo uses **Go** to initi
|
||||
|
||||
```toml
|
||||
[[imports]]
|
||||
disable = false
|
||||
path = "github.com/nunocoracao/blowfish/v2"
|
||||
```
|
||||
|
||||
|
||||
@@ -110,6 +110,7 @@ git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blo
|
||||
|
||||
```toml
|
||||
[[imports]]
|
||||
disable = false
|
||||
path = "github.com/nunocoracao/blowfish/v2"
|
||||
```
|
||||
|
||||
|
||||
@@ -44,10 +44,10 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
|
||||
To enable Umami Analytics support, simply provide your [Umami tracking code](https://umami.is/docs/collect-data) in the `config/_default/params.toml` file.
|
||||
If you also use the custom domain feature of Umami and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Umami DNS (analytics.umami.is).
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and` websiteid` match.
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and`websiteid` match. If the environment variable `TRACKER_SCRIPT_NAME` is configured, you can specify a custom script name `scriptName`. If it is not configured, either comment it out or use the default `script.js`.
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -57,6 +57,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
websiteid = "ABC12345"
|
||||
domain = "llama.yoursite.com"
|
||||
dataDomains = "yoursite.com,yoursite2.com"
|
||||
scriptName = "TRACKER_SCRIPT_NAME"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
@@ -65,7 +66,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
To enable Seline Analytics support, simply provide your [Seline token](https://seline.so/docs/install-seline) in the `config/_default/params.toml` file.
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -75,6 +76,7 @@ To enable Seline Analytics support, simply provide your [Seline token](https://s
|
||||
token = "XXXXXX"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
### Custom analytics providers
|
||||
|
||||
If you wish to use a different analytics provider on your website you can also override the analytics partial and provide your own script. Simply create the file `layouts/partials/extend-head.html` in your project and it will automatically include it in the `<head>` of the website.
|
||||
|
||||
@@ -44,10 +44,10 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
|
||||
To enable Umami Analytics support, simply provide your [Umami tracking code](https://umami.is/docs/collect-data) in the `config/_default/params.toml` file.
|
||||
If you also use the custom domain feature of Umami and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Umami DNS (analytics.umami.is).
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and` websiteid` match.
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and`websiteid` match. If the environment variable `TRACKER_SCRIPT_NAME` is configured, you can specify a custom script name `scriptName`. If it is not configured, either comment it out or use the default `script.js`.
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -57,6 +57,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
websiteid = "ABC12345"
|
||||
domain = "llama.yoursite.com"
|
||||
dataDomains = "yoursite.com,yoursite2.com"
|
||||
scriptName = "TRACKER_SCRIPT_NAME"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
@@ -64,7 +65,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
|
||||
To enable Seline Analytics support, simply provide your [Seline token](https://seline.so/docs/install-seline) in the `config/_default/params.toml` file.
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
|
||||
@@ -44,10 +44,10 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
|
||||
To enable Umami Analytics support, simply provide your [Umami tracking code](https://umami.is/docs/collect-data) in the `config/_default/params.toml` file.
|
||||
If you also use the custom domain feature of Umami and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Umami DNS (analytics.umami.is).
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and` websiteid` match.
|
||||
If you want the tracker to only run on specific domains, you can provide the `dataDomains` configuration value. If you don't provide a `dataDomains` value, the script will run on any website where the `domain` and`websiteid` match. If the environment variable `TRACKER_SCRIPT_NAME` is configured, you can specify a custom script name `scriptName`. If it is not configured, either comment it out or use the default `script.js`.
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Umami Analytics, Blowfish will support [Umami Track Event](https://umami.is/docs/track-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -57,6 +57,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
websiteid = "ABC12345"
|
||||
domain = "llama.yoursite.com"
|
||||
dataDomains = "yoursite.com,yoursite2.com"
|
||||
scriptName = "TRACKER_SCRIPT_NAME"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
@@ -65,7 +66,7 @@ If you want the tracker to only run on specific domains, you can provide the `da
|
||||
To enable Seline Analytics support, simply provide your [Seline token](https://seline.so/docs/install-seline) in the `config/_default/params.toml` file.
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
**Note:** If you enable Seline Analytics, Blowfish will support [Seline Track Event](https://seline.so/docs/custom-events) automatically. If you do not want to support Track Event, the param `enableTrackEvent` must set to `false`.
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
|
||||
@@ -13,7 +13,6 @@ series_order: 9
|
||||
|
||||
Blowfish 支持了 Fathom、Google 和 Umami。Fathom 和 Umami 都是开源、简单、且注重隐私的站点分析服务,他们可以很好地替代 Google 分析。Fathom 和 Umami 都有公有云的付费版本,当然你也可以自己手动部署开源版。
|
||||
|
||||
|
||||
### Fathom
|
||||
|
||||
要启用 Fathom Analytics 支持,只需在 `config/_default/params.toml` 文件中提供您的 Fathom 站点代码。如果您还使用 Fathom 的自定义域功能,并希望从您的域中提供脚本,还可以额外提供 `domain` 配置值。如果不提供 `domain` 值,脚本将直接从 Fath只需要在 `config/_default/params.toml` 文件提供你的 Fathom 站点代码,就可以快速支持 Fathom 站点分析。
|
||||
@@ -33,7 +32,6 @@ Hugo partial 本身已经支持了 Google 站点分析。只需要在 `config/_d
|
||||
|
||||
版本3 (analytics.js) 和版本4 (gtag.js) 都是支持的,参考如下示例:
|
||||
|
||||
|
||||
```toml
|
||||
# config/_default/config.toml
|
||||
|
||||
@@ -43,12 +41,11 @@ googleAnalytics = "UA-PROPERTY_ID"
|
||||
googleAnalytics = "G-MEASUREMENT_ID"
|
||||
```
|
||||
|
||||
|
||||
### Umami
|
||||
|
||||
只需要在 `config/_default/params.toml` 文件提供你的 [Umami 跟踪代码](https://umami.is/docs/collect-data),就可以快速支持 Umami 站点分析。
|
||||
如果你想使用自定义域名来获取跟踪脚本, 那么需要提供 `domain` 参数,否则会从 Umami 云服务版的地址 (analytics.umami.is) 获取脚本。
|
||||
如果你只想在特别的数个域名中使用 tracker 功能,那么需要提供 `dataDomains` 参数。否则任何一个匹配了 `websiteid` 和 `domain` 参数值的网站,Umami 脚本都会执行。
|
||||
如果你只想在特别的数个域名中使用 tracker 功能,那么需要提供 `dataDomains` 参数。否则任何一个匹配了 `websiteid` 和 `domain` 参数值的网站,Umami 脚本都会执行。如果环境变量配置了 `TRACKER_SCRIPT_NAME` 可以填写自定义的脚本名称 `scriptName`,如果没有配置就注释掉或者填写默认的 `script.js` 。
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** 开启 Umami 网站分析后, Blowfish 会自动支持 [Umami 事件追踪](https://umami.is/docs/track-events)。如果你不想支持此功能,需要把参数 `enableTrackEvent` 设置为 `false`。
|
||||
@@ -62,6 +59,8 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
websiteid = "ABC12345"
|
||||
domain = "llama.yoursite.com"
|
||||
dataDomains = "yoursite.com,yoursite2.com"
|
||||
scriptName = "TRACKER_SCRIPT_NAME"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
### Seline
|
||||
@@ -69,7 +68,7 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
只需要在 `config/_default/params.toml` 文件提供你的 [Seline token](https://seline.so/docs/install-seline),就可以快速支持 Seline 站点分析。
|
||||
|
||||
{{< alert >}}
|
||||
**Note:** 开启 Seline 网站分析后, Blowfish 会自动支持 [Seline 事件追踪](https://seline.so/docs/custom-events)。如果你不想支持此功能,需要把参数 `enableTrackEvent` 设置为 `false`。
|
||||
**Note:** 开启 Seline 网站分析后, Blowfish 会自动支持 [Seline 事件追踪](https://seline.so/docs/custom-events)。如果你不想支持此功能,需要把参数 `enableTrackEvent` 设置为 `false`。
|
||||
{{< /alert >}}
|
||||
|
||||
```toml
|
||||
@@ -80,7 +79,6 @@ googleAnalytics = "G-MEASUREMENT_ID"
|
||||
enableTrackEvent = true
|
||||
```
|
||||
|
||||
|
||||
### 提供自定义站点分析
|
||||
|
||||
如果你想在你的网站提供其他站点分析,你可以自己提供脚本,并覆盖 Blowfish 主题中内置的 partial。
|
||||
@@ -92,7 +90,7 @@ Blowfish 支持了在每篇文章底部添加一个评论功能。只需要提
|
||||
|
||||
你可以使用 Hugo 中内置的 Disqus 模板,也可以提供自定义代码。更多内容和细节可以参考 [Hugo 文档](https://gohugo.io/content-management/comments/).
|
||||
|
||||
一旦提供了评论的 partial,你就可以使用 `showComments` 更细致地控制评论的显隐。此参数可以在 `params.toml` [配置文件]({{< ref "configuration#theme-parameters" >}}) 中全局设置,也可以在每篇文章的 [扉页参数]({{< ref "front-matter" >}}) 中单独针对特定文章设置。该参数默认为 `false`,因此需要在上面两个位置设置为 `true` 才能显示评论。
|
||||
一旦提供了评论的 partial,你就可以使用 `showComments` 更细致地控制评论的显隐。此参数可以在 `params.toml` [配置文件]({{< ref "configuration#theme-parameters" >}}) 中全局设置,也可以在每篇文章的 [扉页参数]({{< ref "front-matter" >}}) 中单独针对特定文章设置。该参数默认为 `false`,因此需要在上面两个位置设置为 `true` 才能显示评论。
|
||||
|
||||
## 网站图标(Favicons)
|
||||
|
||||
@@ -100,7 +98,6 @@ Blowfish 提供了一套空白网站图标以便快速上手,但你可以提
|
||||
|
||||
网站图标资源的位置在 `static/` 文件夹中,并务必按照如下的名称命名。如果你使用了[favicon.io](https://favicon.io),那么下载下来的文件名和下面的示例完全一致;当然你也可以通过别的方式提供,记得重命名就行。
|
||||
|
||||
|
||||
```shell
|
||||
static/
|
||||
├─ android-chrome-192x192.png
|
||||
@@ -112,21 +109,18 @@ static/
|
||||
└─ site.webmanifest
|
||||
```
|
||||
|
||||
|
||||
或者,您也可以完全覆盖默认的 favicon 行为,提供自己的 favicon HTML 标签和资源。只需在项目中提供一个 `layouts/partials/favicons.html` 文件,该文件就会被加入网站的 `<head>` 中,取代默认资源。
|
||||
|
||||
## Icon 图标
|
||||
|
||||
与 [图标简码]({{< ref "shortcodes#icon" >}})类似,您也可以通过使用 Blowfish 的 `icon.html` partial,在自己的模板和 partial 中加入图标。该部分包含一个参数,即要包含的图标名称。
|
||||
|
||||
|
||||
**示例:**
|
||||
|
||||
```go
|
||||
{{ partial "icon.html" "github" }}
|
||||
```
|
||||
|
||||
|
||||
图标使用 Hugo 管道填充,因此非常灵活。Blowfish 内置了大量用于社交、链接和其他用途的图标。请查看[图标示例]({{< ref "samples/icons" >}})页面,查看支持图标的完整列表。
|
||||
|
||||
可以通过在项目的 `assets/icons/` 目录中提供自己的图标资源来添加自定义图标。然后,可以通过使用 SVG 文件名(不含`.svg`扩展名)在局部中引用图标。
|
||||
|
||||
@@ -104,7 +104,7 @@ New article!
|
||||
|
||||
## Button
|
||||
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has two optional variables `href` and `target` which can be used to specify the URL and target of the link.
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has three optional variables `href`, `target` and `rel` which can be used to specify the URL, target and relation of the link.
|
||||
|
||||
**Example:**
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ New article!
|
||||
|
||||
## Button
|
||||
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has two optional variables `href` and `target` which can be used to specify the URL and target of the link.
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has three optional variables `href`, `target` and `rel` which can be used to specify the URL, target and relation of the link.
|
||||
|
||||
**Example:**
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ New article!
|
||||
|
||||
## Button
|
||||
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has two optional variables `href` and `target` which can be used to specify the URL and target of the link.
|
||||
`button` outputs a styled button component which can be used to highlight a primary action. It has three optional variables `href`, `target` and `rel` which can be used to specify the URL, target and relation of the link.
|
||||
|
||||
**Example:**
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ New article!
|
||||
|
||||
## Button
|
||||
|
||||
`button` 输出一个样式化的按钮组件,可用于突出显示主要操作。它有两个可选参数 `href` 和 `target` ,可用于指定链接的 URL 或目标文档。
|
||||
`button` 输出一个样式化的按钮组件,可用于突出显示主要操作。它有三个可选变量 `href`、`target` 和 `rel`,可用于指定链接的 URL、目标和关系。
|
||||
|
||||
**例如:**
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ Blowfish è ora multilingue! Una funzionalità molto richiesta. Se pubblichi i t
|
||||
|
||||
<div class="text-2xl text-center" style="font-size: 2.8rem">:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:</div>
|
||||
|
||||
Grazie ai contributi della community, Blowfish è già stato tradotto in [ventisei lingue](https://github.com/nunocoracao/blowfish/tree/main/i18n) e altre verranno aggiunte nel tempo. A proposito, le [richieste pull](https://github.com/nunocoracao/blowfish/pulls) per nuove lingue sono sempre benvenute!
|
||||
Grazie ai contributi della community, Blowfish è già stato tradotto in [trenta lingue](https://github.com/nunocoracao/blowfish/tree/main/i18n) e altre verranno aggiunte nel tempo. A proposito, le [richieste pull](https://github.com/nunocoracao/blowfish/pulls) per nuove lingue sono sempre benvenute!
|
||||
|
||||
## Supporto per la lingua RTL
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ A highly requested feature, Blowfish is now multilingual! If you publish your co
|
||||
|
||||
<div class="text-2xl text-center" style="font-size: 2.8rem">:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:</div>
|
||||
|
||||
Thanks to submissions from the community, Blowfish has already been translated into [twenty-six languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
|
||||
Thanks to submissions from the community, Blowfish has already been translated into [thirty languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
|
||||
|
||||
## RTL language support
|
||||
|
||||
|
||||
@@ -24,9 +24,9 @@ Tailwind CSS is at the heart of Blowfish and this release contains the very late
|
||||
|
||||
A highly requested feature, Blowfish is now multilingual! If you publish your content in multiple languages, the site will be built with all the translations available.
|
||||
|
||||
<div class="text-2xl text-center" style="font-size: 2.8rem">:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:</div>
|
||||
<div class="text-2xl text-center" style="font-size: 2.8rem">🇬🇧 🇩🇪 🇫🇷 🇪🇸 🇨🇳 🇧🇷 🇹🇷 🇧🇩</div>
|
||||
|
||||
Thanks to submissions from the community, Blowfish has already been translated into [twenty-nine languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
|
||||
Thanks to submissions from the community, Blowfish has already been translated into [thirty languages](https://github.com/nunocoracao/blowfish/tree/main/i18n) with more to be added over time. By the way, [pull requests](https://github.com/nunocoracao/blowfish/pulls) for new languages are always welcome!
|
||||
|
||||
## RTL language support
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ Tailwind CSS 带来了性能优化,并提供了一些出色的新的 CSS 特
|
||||
|
||||
<div class="text-2xl text-center" style="font-size: 2.8rem">:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:</div>
|
||||
|
||||
感谢社区的贡献,目前 Blowfish 已经翻译成二十六种语言,并且随着时间的推移还会支持更多。 顺便一提,欢迎你为支持新语言提交 [PR](https://github.com/nunocoracao/blowfish/pulls)。
|
||||
感谢社区的贡献,目前 Blowfish 已经翻译成三十种语言,并且随着时间的推移还会支持更多。 顺便一提,欢迎你为支持新语言提交 [PR](https://github.com/nunocoracao/blowfish/pulls)。
|
||||
|
||||
## 支持 RTL 语言
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ Next, let's configure our homepage. We’re going with the _background_ layout,
|
||||
showRecent = true
|
||||
showRecentItems = 6
|
||||
showMoreLink = true
|
||||
showMoreLinkDest = "/posts"
|
||||
showMoreLinkDest = "/posts/"
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = true # only used when layout equals background
|
||||
|
||||
@@ -207,7 +207,7 @@ Next, let's configure our homepage. We’re going with the _background_ layout,
|
||||
showRecent = true
|
||||
showRecentItems = 6
|
||||
showMoreLink = true
|
||||
showMoreLinkDest = "/posts"
|
||||
showMoreLinkDest = "/posts/"
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = true # only used when layout equals background
|
||||
|
||||
@@ -207,7 +207,7 @@ Next, let's configure our homepage. We’re going with the _background_ layout,
|
||||
showRecent = true
|
||||
showRecentItems = 6
|
||||
showMoreLink = true
|
||||
showMoreLinkDest = "/posts"
|
||||
showMoreLinkDest = "/posts/"
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = true # only used when layout equals background
|
||||
|
||||
@@ -208,7 +208,7 @@ defaultBackgroundImage = "image.jpg" # used as default for background images
|
||||
showRecent = true
|
||||
showRecentItems = 6
|
||||
showMoreLink = true
|
||||
showMoreLinkDest = "/posts"
|
||||
showMoreLinkDest = "/posts/"
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = true # only used when layout equals background
|
||||
|
||||
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "Adam Madej - Gameplay Animator"
|
||||
tags: [Sito portfolio, Blog, Sito personale]
|
||||
externalUrl: "http://www.adammadej.com/"
|
||||
weight: 741
|
||||
weight: 721
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Adam Madej - Gameplay Animator"
|
||||
tags: [ポートフォリオサイト, ブログ, 個人サイト]
|
||||
externalUrl: "http://www.adammadej.com/"
|
||||
weight: 741
|
||||
weight: 721
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Adam Madej - Gameplay Animator"
|
||||
tags: [Portfolio Site,Blog,Personal Site]
|
||||
externalUrl: "http://www.adammadej.com/"
|
||||
weight: 741
|
||||
weight: 721
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Adam Madej - Gameplay Animator"
|
||||
tags: [作品集网站, 博客, 个人网站]
|
||||
externalUrl: "http://www.adammadej.com/"
|
||||
weight: 741
|
||||
weight: 721
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "Beauty Formulation"
|
||||
tags: [Sito aziendale]
|
||||
externalUrl: "https://www.beautyformulation.com/"
|
||||
weight: 811
|
||||
weight: 791
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Beauty Formulation"
|
||||
tags: [企業サイト]
|
||||
externalUrl: "https://www.beautyformulation.com/"
|
||||
weight: 811
|
||||
weight: 791
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Beauty Formulation"
|
||||
tags: [Company site]
|
||||
externalUrl: "https://www.beautyformulation.com/"
|
||||
weight: 811
|
||||
weight: 791
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Beauty Formulation"
|
||||
tags: [公司网站]
|
||||
externalUrl: "https://www.beautyformulation.com/"
|
||||
weight: 811
|
||||
weight: 791
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "BoringTech.net"
|
||||
tags: [Sito personale, Blog]
|
||||
externalUrl: "https://boringtech.net/"
|
||||
weight: 611
|
||||
weight: 591
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "BoringTech.net"
|
||||
tags: [個人サイト, ブログ]
|
||||
externalUrl: "https://boringtech.net/"
|
||||
weight: 611
|
||||
weight: 591
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "BoringTech.net"
|
||||
tags: [Personal Site,Blog]
|
||||
externalUrl: "https://boringtech.net/"
|
||||
weight: 611
|
||||
weight: 591
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "BoringTech.net"
|
||||
tags: [个人网站, 博客]
|
||||
externalUrl: "https://boringtech.net/"
|
||||
weight: 611
|
||||
weight: 591
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 147 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "DXPetti.com"
|
||||
tags: [Sito personale, Blog]
|
||||
externalUrl: "https://www.dxpetti.com/"
|
||||
weight: 651
|
||||
weight: 631
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "DXPetti.com"
|
||||
tags: [個人サイト, ブログ]
|
||||
externalUrl: "https://www.dxpetti.com/"
|
||||
weight: 651
|
||||
weight: 631
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "DXPetti.com"
|
||||
tags: [Personal site,Blog]
|
||||
externalUrl: "https://www.dxpetti.com/"
|
||||
weight: 651
|
||||
weight: 631
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "DXPetti.com"
|
||||
tags: [个人网站, 博客]
|
||||
externalUrl: "https://www.dxpetti.com/"
|
||||
weight: 651
|
||||
weight: 631
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Everybody Wants Some"
|
||||
tags: [Blog, Tecnologia, Sviluppo del gioco]
|
||||
externalUrl: "https://ews.ink/"
|
||||
weight: 941
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Everybody Wants Some"
|
||||
tags: [ブログ, テクノロジー, ゲーム開発]
|
||||
externalUrl: "https://ews.ink/"
|
||||
weight: 941
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: "Everybody Wants Some"
|
||||
tags: [Blog,Technology,Game Development]
|
||||
externalUrl: "https://ews.ink/"
|
||||
weight: 941
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Everybody Wants Some"
|
||||
tags: [博客, 技术, 游戏开发]
|
||||
externalUrl: "https://ews.ink/"
|
||||
weight: 941
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
|
||||
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Handbook on Teaching Empirical Software Engineering: Online Materials"
|
||||
tags: [Libro, Accademia]
|
||||
externalUrl: "https://www.emse.education"
|
||||
weight: 921
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: "Jinbo Pan - Blog"
|
||||
tags: [個人サイト, ブログ, テクノロジーブログ]
|
||||
externalUrl: "https://www.panjinbo.com/"
|
||||
weight: 851
|
||||
title: "Handbook on Teaching Empirical Software Engineering: Online Materials"
|
||||
tags: [本, 学術界]
|
||||
externalUrl: "https://www.emse.education"
|
||||
weight: 921
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: "Handbook on Teaching Empirical Software Engineering: Online Materials"
|
||||
tags: [Book,Academia]
|
||||
externalUrl: "https://www.emse.education"
|
||||
weight: 921
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Handbook on Teaching Empirical Software Engineering: Online Materials"
|
||||
tags: [书, 学术界]
|
||||
externalUrl: "https://www.emse.education"
|
||||
weight: 921
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
showEdit: false
|
||||
showLikes: false
|
||||
showViews: false
|
||||
layoutBackgroundHeaderSpace: false
|
||||
---
|
||||
|
||||
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "Ignacio Conde"
|
||||
tags: [Sito personale, Sito portfolio, Sviluppatore di software, Sviluppatore di videogiochi]
|
||||
externalUrl: "http://www.ignaciomconde.com/"
|
||||
weight: 781
|
||||
weight: 761
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Ignacio Conde"
|
||||
tags: [個人サイト, ポートフォリオサイト, ソフトウェア開発者, ビデオゲーム開発者]
|
||||
externalUrl: "http://www.ignaciomconde.com/"
|
||||
weight: 781
|
||||
weight: 761
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Ignacio Conde"
|
||||
tags: [Personal Site,Portfolio Site,Software Developer,Videogame Developer]
|
||||
externalUrl: "http://www.ignaciomconde.com/"
|
||||
weight: 781
|
||||
weight: 761
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Ignacio Conde"
|
||||
tags: [个人网站, 作品集网站, 软件开发人员, 视频游戏开发商]
|
||||
externalUrl: "http://www.ignaciomconde.com/"
|
||||
weight: 781
|
||||
weight: 761
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 111 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "Joshua Blais"
|
||||
tags: [Sito personale, Autore, Giardino digitale]
|
||||
externalUrl: "https://joshblais.com/"
|
||||
weight: 801
|
||||
weight: 781
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Joshua Blais"
|
||||
tags: [個人サイト, 著者, デジタルガーデン]
|
||||
externalUrl: "https://joshblais.com/"
|
||||
weight: 801
|
||||
weight: 781
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Joshua Blais"
|
||||
tags: [Personal Site,Author,Digital Garden]
|
||||
externalUrl: "https://joshblais.com/"
|
||||
weight: 801
|
||||
weight: 781
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Joshua Blais"
|
||||
tags: [个人网站, 作者, 数字花园]
|
||||
externalUrl: "https://joshblais.com/"
|
||||
weight: 801
|
||||
weight: 781
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 81 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "MEM v ENNBEE"
|
||||
tags: [Blog sulla tecnologia, Sito personale]
|
||||
externalUrl: "https://memv.ennbee.uk/"
|
||||
weight: 791
|
||||
weight: 771
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "MEM v ENNBEE"
|
||||
tags: [テクノロジーブログ, 個人サイト]
|
||||
externalUrl: "https://memv.ennbee.uk/"
|
||||
weight: 791
|
||||
weight: 771
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "MEM v ENNBEE"
|
||||
tags: [Technology Blog,Personal site]
|
||||
externalUrl: "https://memv.ennbee.uk/"
|
||||
weight: 791
|
||||
weight: 771
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "MEM v ENNBEE"
|
||||
tags: [技术博客, 个人网站]
|
||||
externalUrl: "https://memv.ennbee.uk/"
|
||||
weight: 791
|
||||
weight: 771
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||
|
Before Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
@@ -2,7 +2,7 @@
|
||||
title: "Middle of Nowhere"
|
||||
tags: [Sito personale, Blog]
|
||||
externalUrl: "https://blog.wtcx.dev/"
|
||||
weight: 821
|
||||
weight: 801
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
showReadingTime: false
|
||||
|
||||