Merge pull request #2700 from nunocoracao/dev

🔖 v2.97.0
This commit is contained in:
Nuno C.
2026-01-12 18:07:25 +00:00
committed by GitHub
2269 changed files with 16805 additions and 13482 deletions

9
.gitignore vendored
View File

@@ -23,6 +23,15 @@ exampleSite/resources/
node_modules
.hugo_build.lock
# Firebase scripts
scripts/serviceAccountKey.json
scripts/node_modules/
scripts/*.csv
# Google Analytics export (temporary)
ga-pageviews.csv
*.csv
# OS generated files
.DS_Store
.DS_Store?

View File

@@ -178,6 +178,53 @@
],
"description": "Output a set of up to three different colors. Blowfish swatches Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#swatches ",
},
"Tabs - Basic": {
"prefix": "tabs",
"body": [
"{{< tabs >}}",
"",
" {{< tab label=\"${1:Tab 1}\" >}}",
" $2",
" {{< /tab >}}",
"",
" {{< tab label=\"${3:Tab 2}\" >}}",
" $4",
" {{< /tab >}}",
"",
"{{< /tabs >}}"
],
"description": "Insert Hugo tabs shortcode"
},
"Tabs - Full Options": {
"prefix": "tabsfull",
"body": [
"{{< tabs group=\"${1:group-name}\" default=\"${2:Default Tab}\" >}}",
"",
" {{< tab label=\"${3:Tab 1}\" icon=\"${4:code}\" >}}",
" $5",
" {{< /tab >}}",
"",
" {{< tab label=\"${2:Default Tab}\" icon=\"${6:sun}\" >}}",
" $7",
" {{< /tab >}}",
"",
" {{< tab label=\"${8:Tab 3}\" icon=\"${9:moon}\" >}}",
" $0",
" {{< /tab >}}",
"",
"{{< /tabs >}}"
],
"description": "Insert Hugo tabs with group, default, and icons"
},
"Tab": {
"prefix": "tab",
"body": [
"{{< tab label=\"${1:Tab Label}\" >}}",
"$2",
"{{< /tab >}}"
],
"description": "Insert Hugo tab item"
},
"timeline": {
"prefix": ["BFS-timeline", "HSC-timeline", "timeline"],
"body": [

View File

@@ -10,7 +10,6 @@
"Courier New", monospace;
--spacing: 0.25rem;
--container-2xs: 18rem;
--container-xs: 20rem;
--container-md: 28rem;
--container-xl: 36rem;
--container-3xl: 48rem;
@@ -923,6 +922,9 @@
.mt-12 {
margin-top: calc(var(--spacing) * 12);
}
.mt-16 {
margin-top: calc(var(--spacing) * 16);
}
.mt-20 {
margin-top: calc(var(--spacing) * 20);
}
@@ -968,6 +970,9 @@
.mb-3 {
margin-bottom: calc(var(--spacing) * 3);
}
.mb-4 {
margin-bottom: calc(var(--spacing) * 4);
}
.mb-5 {
margin-bottom: calc(var(--spacing) * 5);
}
@@ -983,6 +988,9 @@
.mb-12 {
margin-bottom: calc(var(--spacing) * 12);
}
.mb-16 {
margin-bottom: calc(var(--spacing) * 16);
}
.mb-20 {
margin-bottom: calc(var(--spacing) * 20);
}
@@ -1030,6 +1038,12 @@
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.line-clamp-5 {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 5;
}
.\!block {
display: block !important;
}
@@ -1112,6 +1126,9 @@
.h-14 {
height: calc(var(--spacing) * 14);
}
.h-16 {
height: calc(var(--spacing) * 16);
}
.h-24 {
height: calc(var(--spacing) * 24);
}
@@ -1196,6 +1213,9 @@
.w-12 {
width: calc(var(--spacing) * 12);
}
.w-16 {
width: calc(var(--spacing) * 16);
}
.w-24 {
width: calc(var(--spacing) * 24);
}
@@ -1728,10 +1748,10 @@
.bg-primary-200 {
background-color: rgba(var(--color-primary-200), 1);
}
.bg-primary-200\/50 {
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-200), 1), 1) 50%, transparent);
.bg-primary-200\/80 {
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-200), 1), 1) 80%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-primary-200), 1) 50%, transparent);
background-color: color-mix(in oklab, rgba(var(--color-primary-200), 1) 80%, transparent);
}
}
.bg-primary-500 {
@@ -1746,10 +1766,10 @@
.bg-white {
background-color: #fff;
}
.bg-linear-65 {
--tw-gradient-position: 65deg;
.bg-linear-60 {
--tw-gradient-position: 60deg;
@supports (background-image: linear-gradient(in lab, red, red)) {
--tw-gradient-position: 65deg in oklab;
--tw-gradient-position: 60deg in oklab;
}
background-image: linear-gradient(var(--tw-gradient-stops));
}
@@ -2105,6 +2125,9 @@
.text-neutral-500 {
color: rgba(var(--color-neutral-500), 1);
}
.text-neutral-600 {
color: rgba(var(--color-neutral-600), 1);
}
.text-neutral-700 {
color: rgba(var(--color-neutral-700), 1);
}
@@ -2237,6 +2260,13 @@
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.ring-2 {
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.ring-primary-500 {
--tw-ring-color: rgba(var(--color-primary-500), 1);
}
.outline {
outline-style: var(--tw-outline-style);
outline-width: 1px;
@@ -2324,6 +2354,11 @@
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-colors {
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-opacity {
transition-property: opacity;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -2390,6 +2425,23 @@
rotate: 0deg;
}
}
.group-hover\:scale-110 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
--tw-scale-x: 110%;
--tw-scale-y: 110%;
--tw-scale-z: 110%;
scale: var(--tw-scale-x) var(--tw-scale-y);
}
}
}
.group-hover\:text-primary-500 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
color: rgba(var(--color-primary-500), 1);
}
}
}
.group-hover\:opacity-100 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
@@ -2397,6 +2449,21 @@
}
}
}
.group-hover\:ring-2 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
}
}
.group-hover\:ring-primary-500 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
--tw-ring-color: rgba(var(--color-primary-500), 1);
}
}
}
.group-data-\[twe-input-focused\]\:border-x-0 {
&:is(:where(.group)[data-twe-input-focused] *) {
border-inline-style: var(--tw-border-style);
@@ -2947,16 +3014,16 @@
margin-inline: auto;
}
}
.lg\:ms-auto {
@media (width >= 1024px) {
margin-inline-start: auto;
}
}
.lg\:mt-0 {
@media (width >= 1024px) {
margin-top: calc(var(--spacing) * 0);
}
}
.lg\:ml-auto {
@media (width >= 1024px) {
margin-left: auto;
}
}
.lg\:block {
@media (width >= 1024px) {
display: block;
@@ -3007,11 +3074,6 @@
max-width: none;
}
}
.lg\:max-w-xs {
@media (width >= 1024px) {
max-width: var(--container-xs);
}
}
.lg\:grid-flow-col-dense {
@media (width >= 1024px) {
grid-auto-flow: column dense;
@@ -3289,6 +3351,14 @@
background-color: rgba(var(--color-primary-800), 1);
}
}
.dark\:bg-primary-800\/30 {
&:is(.dark *) {
background-color: color-mix(in srgb, rgba(rgba(var(--color-primary-800), 1), 1) 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, rgba(var(--color-primary-800), 1) 30%, transparent);
}
}
}
.dark\:bg-primary-900 {
&:is(.dark *) {
background-color: rgba(var(--color-primary-900), 1);
@@ -3300,46 +3370,18 @@
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
}
.dark\:from-neutral-900\/88 {
&:is(.dark *) {
--tw-gradient-from: color-mix(in srgb, rgba(rgba(var(--color-neutral-900), 1), 1) 88%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-gradient-from: color-mix(in oklab, rgba(var(--color-neutral-900), 1) 88%, transparent);
}
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
}
.dark\:from-primary-600 {
&:is(.dark *) {
--tw-gradient-from: rgba(var(--color-primary-600), 1);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
}
.dark\:via-neutral-800\/72 {
&:is(.dark *) {
--tw-gradient-via: color-mix(in srgb, rgba(rgba(var(--color-neutral-800), 1), 1) 72%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-gradient-via: color-mix(in oklab, rgba(var(--color-neutral-800), 1) 72%, transparent);
}
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
}
.dark\:to-neutral-800 {
&:is(.dark *) {
--tw-gradient-to: rgba(var(--color-neutral-800), 1);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
}
.dark\:to-neutral-900\/55 {
&:is(.dark *) {
--tw-gradient-to: color-mix(in srgb, rgba(rgba(var(--color-neutral-900), 1), 1) 55%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-gradient-to: color-mix(in oklab, rgba(var(--color-neutral-900), 1) 55%, transparent);
}
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
}
.dark\:to-secondary-800 {
&:is(.dark *) {
--tw-gradient-to: rgba(var(--color-secondary-800), 1);
@@ -4228,35 +4270,35 @@ body.zen-mode-enable {
--adm-todo-text: oklch(44.3% 0.11 240.79);
}
html.dark {
--adm-note-bg: color-mix(in srgb, color-mix(in oklab, oklch(39.1% 0.09 240.876) 40%, transparent), black 15%);
--adm-note-bg: color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);
--adm-note-text: oklch(95.1% 0.026 236.824);
--adm-tip-bg: color-mix(in srgb, color-mix(in oklab, oklch(37.8% 0.077 168.94) 40%, transparent), black 15%);
--adm-tip-bg: color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);
--adm-tip-text: oklch(95% 0.052 163.051);
--adm-important-bg: color-mix(in srgb, color-mix(in oklab, oklch(38.1% 0.176 304.987) 40%, transparent), black 15%);
--adm-important-bg: color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);
--adm-important-text: oklch(94.6% 0.033 307.174);
--adm-warning-bg: color-mix(in srgb, color-mix(in oklab, oklch(40.8% 0.123 38.172) 40%, transparent), black 15%);
--adm-warning-bg: color-mix(in srgb, oklch(47% 0.157 37.304), #0f0f0f 45%);
--adm-warning-text: oklch(95.4% 0.038 75.164);
--adm-caution-bg: color-mix(in srgb, color-mix(in oklab, oklch(39.6% 0.141 25.723) 40%, transparent), black 15%);
--adm-caution-bg: color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);
--adm-caution-text: oklch(93.6% 0.032 17.717);
--adm-abstract-bg: color-mix(in srgb, color-mix(in oklab, oklch(39.8% 0.07 227.392) 40%, transparent), black 15%);
--adm-abstract-bg: color-mix(in srgb, oklch(45% 0.085 224.283), #0f0f0f 50%);
--adm-abstract-text: oklch(95.6% 0.045 203.388);
--adm-bug-bg: color-mix(in srgb, color-mix(in oklab, oklch(41% 0.159 10.272) 40%, transparent), black 15%);
--adm-bug-bg: color-mix(in srgb, oklch(45.5% 0.188 13.697), #0f0f0f 50%);
--adm-bug-text: oklch(94.1% 0.03 12.58);
--adm-danger-bg: color-mix(in srgb, color-mix(in oklab, oklch(39.6% 0.141 25.723) 40%, transparent), black 15%);
--adm-danger-bg: color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);
--adm-danger-text: oklch(93.6% 0.032 17.717);
--adm-example-bg: color-mix(in srgb, color-mix(in oklab, oklch(38.1% 0.176 304.987) 40%, transparent), black 15%);
--adm-example-bg: color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);
--adm-example-text: oklch(94.6% 0.033 307.174);
--adm-failure-bg: color-mix(in srgb, color-mix(in oklab, oklch(40.8% 0.153 2.432) 40%, transparent), black 15%);
--adm-failure-bg: color-mix(in srgb, oklch(45.9% 0.187 3.815), #0f0f0f 50%);
--adm-failure-text: oklch(94.8% 0.028 342.258);
--adm-info-bg: color-mix(in srgb, color-mix(in oklab, oklch(37.9% 0.146 265.522) 40%, transparent), black 15%);
--adm-info-bg: color-mix(in srgb, oklch(42.4% 0.199 265.638), #0f0f0f 50%);
--adm-info-text: oklch(93.2% 0.032 255.585);
--adm-question-bg: color-mix(in srgb, color-mix(in oklab, oklch(41.4% 0.112 45.904) 40%, transparent), black 15%);
--adm-question-bg: color-mix(in srgb, oklch(47.3% 0.137 46.201), #0f0f0f 50%);
--adm-question-text: oklch(96.2% 0.059 95.617);
--adm-quote-bg: color-mix(in srgb, color-mix(in oklab, oklch(21% 0.034 264.665) 40%, transparent), black 15%);
--adm-quote-bg: color-mix(in srgb, oklch(27.8% 0.033 256.848), #0f0f0f 50%);
--adm-quote-text: oklch(96.7% 0.003 264.542);
--adm-success-bg: color-mix(in srgb, color-mix(in oklab, oklch(37.8% 0.077 168.94) 40%, transparent), black 15%);
--adm-success-bg: color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);
--adm-success-text: oklch(95% 0.052 163.051);
--adm-todo-bg: color-mix(in srgb, color-mix(in oklab, oklch(44.3% 0.11 240.79) 40%, transparent), black 15%);
--adm-todo-bg: color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);
--adm-todo-text: oklch(95.1% 0.026 236.824);
}
.admonition-content > :first-child {

View File

@@ -68,50 +68,50 @@
html.dark {
/* GitHub Core Types (5) */
--adm-note-bg: color-mix(in srgb, theme("colors.sky.900 / 0.4"), black 15%);
--adm-note-bg: color-mix(in srgb, theme("colors.sky.800"), #0f0f0f 50%);
--adm-note-text: theme("colors.sky.100");
--adm-tip-bg: color-mix(in srgb, theme("colors.emerald.900 / 0.4"), black 15%);
--adm-tip-bg: color-mix(in srgb, theme("colors.emerald.800"), #0f0f0f 50%);
--adm-tip-text: theme("colors.emerald.100");
--adm-important-bg: color-mix(in srgb, theme("colors.purple.900 / 0.4"), black 15%);
--adm-important-bg: color-mix(in srgb, theme("colors.purple.800"), #0f0f0f 50%);
--adm-important-text: theme("colors.purple.100");
--adm-warning-bg: color-mix(in srgb, theme("colors.orange.900 / 0.4"), black 15%);
--adm-warning-bg: color-mix(in srgb, theme("colors.orange.800"), #0f0f0f 45%);
--adm-warning-text: theme("colors.orange.100");
--adm-caution-bg: color-mix(in srgb, theme("colors.red.900 / 0.4"), black 15%);
--adm-caution-bg: color-mix(in srgb, theme("colors.red.800"), #0f0f0f 45%);
--adm-caution-text: theme("colors.red.100");
/* Extended Types (10) */
--adm-abstract-bg: color-mix(in srgb, theme("colors.cyan.900 / 0.4"), black 15%);
--adm-abstract-bg: color-mix(in srgb, theme("colors.cyan.800"), #0f0f0f 50%);
--adm-abstract-text: theme("colors.cyan.100");
--adm-bug-bg: color-mix(in srgb, theme("colors.rose.900 / 0.4"), black 15%);
--adm-bug-bg: color-mix(in srgb, theme("colors.rose.800"), #0f0f0f 50%);
--adm-bug-text: theme("colors.rose.100");
--adm-danger-bg: color-mix(in srgb, theme("colors.red.900 / 0.4"), black 15%);
--adm-danger-bg: color-mix(in srgb, theme("colors.red.800"), #0f0f0f 45%);
--adm-danger-text: theme("colors.red.100");
--adm-example-bg: color-mix(in srgb, theme("colors.purple.900 / 0.4"), black 15%);
--adm-example-bg: color-mix(in srgb, theme("colors.purple.800"), #0f0f0f 50%);
--adm-example-text: theme("colors.purple.100");
--adm-failure-bg: color-mix(in srgb, theme("colors.pink.900 / 0.4"), black 15%);
--adm-failure-bg: color-mix(in srgb, theme("colors.pink.800"), #0f0f0f 50%);
--adm-failure-text: theme("colors.pink.100");
--adm-info-bg: color-mix(in srgb, theme("colors.blue.900 / 0.4"), black 15%);
--adm-info-bg: color-mix(in srgb, theme("colors.blue.800"), #0f0f0f 50%);
--adm-info-text: theme("colors.blue.100");
--adm-question-bg: color-mix(in srgb, theme("colors.amber.900 / 0.4"), black 15%);
--adm-question-bg: color-mix(in srgb, theme("colors.amber.800"), #0f0f0f 50%);
--adm-question-text: theme("colors.amber.100");
--adm-quote-bg: color-mix(in srgb, theme("colors.gray.900 / 0.4"), black 15%);
--adm-quote-bg: color-mix(in srgb, theme("colors.gray.800"), #0f0f0f 50%);
--adm-quote-text: theme("colors.gray.100");
--adm-success-bg: color-mix(in srgb, theme("colors.emerald.900 / 0.4"), black 15%);
--adm-success-bg: color-mix(in srgb, theme("colors.emerald.800"), #0f0f0f 50%);
--adm-success-text: theme("colors.emerald.100");
--adm-todo-bg: color-mix(in srgb, theme("colors.sky.800 / 0.4"), black 15%);
--adm-todo-bg: color-mix(in srgb, theme("colors.sky.800"), #0f0f0f 50%);
--adm-todo-text: theme("colors.sky.100");
}

View File

@@ -5,7 +5,25 @@ function initTabs() {
const container = button.closest(".tab__container");
const tabIndex = parseInt(button.dataset.tabIndex);
activateTab(container, tabIndex);
const tabLabel = button.dataset.tabLabel;
const group = container.dataset.tabGroup;
if (group) {
const allGroupContainers = document.querySelectorAll(`.tab__container[data-tab-group="${group}"]`);
allGroupContainers.forEach((groupContainer) => {
const targetButton = Array.from(groupContainer.querySelectorAll(".tab__button")).find(
(btn) => btn.dataset.tabLabel === tabLabel,
);
if (targetButton) {
const targetIndex = parseInt(targetButton.dataset.tabIndex);
activateTab(groupContainer, targetIndex);
}
});
} else {
activateTab(container, tabIndex);
}
};
document.addEventListener("click", tabClickHandler);

View File

@@ -2,4 +2,4 @@
[module.hugoVersion]
extended = true
min = "0.141.0"
max = "0.154.1"
max = "0.154.5"

View File

@@ -93,6 +93,7 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
showWordCount = true
# sharingLinks = [ "linkedin", "twitter", "bluesky", "mastodon", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram", "line"]
showZenMode = false
# externalLinkForceNewTab = false # disable to allow external links in the same tab (defaults to true)
[list]
showHero = false

View File

@@ -63,7 +63,7 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
[article]
showDate = false
showViews = false
showViews = true
showLikes = false
showDateOnlyInArticle = false
showDateUpdated = false
@@ -134,13 +134,13 @@ fingerprintAlgorithm = "sha512" # Valid values are "sha512" (default), "sha384",
cardViewScreenWidth = false
[firebase]
#apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY"
#authDomain = "blowfish-21fff.firebaseapp.com"
#projectId = "blowfish-21fff"
#storageBucket = "blowfish-21fff.appspot.com"
#messagingSenderId = "60108104191"
#appId = "1:60108104191:web:039842ebe1370698b487ca"
#measurementId = "G-PEDMYR1V0K"
apiKey = "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY"
authDomain = "blowfish-21fff.firebaseapp.com"
projectId = "blowfish-21fff"
storageBucket = "blowfish-21fff.appspot.com"
messagingSenderId = "60108104191"
appId = "1:60108104191:web:039842ebe1370698b487ca"
measurementId = "G-PEDMYR1V0K"
[fathomAnalytics]
# site = "ABC12345"

View File

@@ -258,6 +258,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. Available values are: "bluesky", "email", "facebook", "line", "linkedin", "mastodon", "pinterest", "reddit", "telegram", "twitter", and "whatsapp" |
| `article.showZenMode` | `false` | Flag to activate Zen Mode reading feature for articles. |
| `article.externalLinkForceNewTab` | `true` | Flag per aprire i link esterni nel markdown in una nuova scheda. |
### List

View File

@@ -258,6 +258,7 @@ Blowfish は、テーマの機能を制御する多数の設定パラメータ
| `article.showComments` | `false` | 記事のフッターの後に [コメントパーシャル]({{< ref "partials#コメント" >}}) を含めるかどうかです。 |
| `article.sharingLinks` | _未設定_ | 各記事の最後に表示する共有リンクです。指定されていないか、`false` に設定されている場合、リンクは表示されません。使用可能な値は、"bluesky"、"email"、"facebook"、"line"、"linkedin"、"mastodon"、"pinterest"、"reddit"、"telegram"、"twitter"、"whatsapp"です。 |
| `article.showZenMode` | `false` | 記事のZenモードリーダー機能を有効にするフラグです。 |
| `article.externalLinkForceNewTab` | `true` | マークダウン内の外部リンクを新しいタブで開くかどうかです。 |
### リスト(List)

View File

@@ -266,6 +266,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. Available values are: "bluesky", "email", "facebook", "line", "linkedin", "mastodon", "pinterest", "reddit", "telegram", "twitter", and "whatsapp" |
| `article.showZenMode` | `false` | Flag to activate Zen Mode reading feature for articles. |
| `article.externalLinkForceNewTab` | `true` | Should external links in markdown open in a new tab. |
### List

View File

@@ -262,6 +262,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
| `article.showComments` | `false` | 是否在文章末尾添加 [评论部分]({{< ref "partials#comments" >}})。 |
| `article.sharingLinks` | _无_ | 在文章末尾显示的分享链接。如果没有提供或设置为 `false`,则不会显示任何分享链接。可用的值包括:"bluesky"、"email"、"facebook"、"line"、"linkedin"、"mastodon"、"pinterest"、"reddit"、"telegram"、"twitter"和"whatsapp" |
| `article.showZenMode` | `false` | 指定是否激活文章阅读的禅模式,即隐藏常规的界面元素。 |
| `article.externalLinkForceNewTab` | `true` | 是否强制 Markdown 中的外部链接在新标签页中打开。 |
### 列表页

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Firestore einrichten - Wählen Sie Build und öffnen Sie Firestore. Erstellen Sie eine neue Datenbank und wählen Sie den Start im Produktionsmodus. Wählen Sie den Serverstandort und warten Sie. Sobald dies gestartet ist, müssen Sie die Regeln konfigurieren. Kopieren Sie einfach die Datei unten und drücken Sie Veröffentlichen.
5. Firestore einrichten - Wählen Sie Build und öffnen Sie Firestore. Erstellen Sie eine neue Datenbank und wählen Sie den Start im Produktionsmodus. Wählen Sie den Serverstandort und warten Sie. Sobald dies gestartet ist, müssen Sie die Regeln konfigurieren. Kopieren Sie einfach die Datei unten und drücken Sie Veröffentlichen. Diese Regeln stellen sicher, dass Aufrufe nur um 1 erhöht werden können und Likes nur um +1 oder -1 geändert werden können (und nie unter 0 fallen).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Configurar Firestore - Selecciona Build y abre Firestore. Crea una nueva base de datos y elige iniciar en modo producción. Selecciona la ubicación del servidor y espera. Una vez iniciado, necesitas configurar las reglas. Simplemente copia y pega el archivo de abajo y presiona publicar.
5. Configurar Firestore - Selecciona Build y abre Firestore. Crea una nueva base de datos y elige iniciar en modo producción. Selecciona la ubicación del servidor y espera. Una vez iniciado, necesitas configurar las reglas. Simplemente copia y pega el archivo de abajo y presiona publicar. Estas reglas aseguran que las vistas solo pueden incrementarse en 1, y los likes solo pueden cambiarse en +1 o -1 (y nunca bajar de 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Configurer Firestore - Sélectionnez Build et ouvrez Firestore. Créez une nouvelle base de données et choisissez de démarrer en mode production. Sélectionnez l'emplacement du serveur et attendez. Une fois démarré, vous devez configurer les règles. Copiez et collez simplement le fichier ci-dessous et appuyez sur publier.
5. Configurer Firestore - Sélectionnez Build et ouvrez Firestore. Créez une nouvelle base de données et choisissez de démarrer en mode production. Sélectionnez l'emplacement du serveur et attendez. Une fois démarré, vous devez configurer les règles. Copiez et collez simplement le fichier ci-dessous et appuyez sur publier. Ces règles garantissent que les vues ne peuvent être incrémentées que de 1, et les likes ne peuvent être modifiés que de +1 ou -1 (et ne jamais descendre en dessous de 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Setup Firestore - Select Build and open Firestore. Create a new database and choose to start in production mode. Select server location and wait. Once that is started you need to configure the rules. Just copy and paste the file below and press publish.
5. Setup Firestore - Select Build and open Firestore. Create a new database and choose to start in production mode. Select server location and wait. Once that is started you need to configure the rules. Just copy and paste the file below and press publish. These rules ensure that views can only be incremented by 1, and likes can only be changed by +1 or -1 (and never go below 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Firestore を設定する - 「ビルド」を選択して Firestore を開きます。新しいデータベースを作成し、本番モードで開始することを選択します。サーバーの場所を選択して待ちます。開始したら、ルールを設定する必要があります。以下のファイルをコピーして貼り付け、「公開」をクリックします。
5. Firestore を設定する - 「ビルド」を選択して Firestore を開きます。新しいデータベースを作成し、本番モードで開始することを選択します。サーバーの場所を選択して待ちます。開始したら、ルールを設定する必要があります。以下のファイルをコピーして貼り付け、「公開」をクリックします。これらのルールは、閲覧数は1ずつのみ増加でき、いいねは+1または-1のみ変更可能0未満にはならないであることを保証します。
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Setup Firestore - Select Build and open Firestore. Create a new database and choose to start in production mode. Select server location and wait. Once that is started you need to configure the rules. Just copy and paste the file below and press publish.
5. Setup Firestore - Select Build and open Firestore. Create a new database and choose to start in production mode. Select server location and wait. Once that is started you need to configure the rules. Just copy and paste the file below and press publish. These rules ensure that views can only be incremented by 1, and likes can only be changed by +1 or -1 (and never go below 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Configurar Firestore - Selecione Build e abra Firestore. Crie um novo banco de dados e escolha iniciar no modo produção. Selecione a localização do servidor e aguarde. Uma vez iniciado, você precisa configurar as regras. Basta copiar e colar o arquivo abaixo e pressionar publicar.
5. Configurar Firestore - Selecione Build e abra Firestore. Crie um novo banco de dados e escolha iniciar no modo produção. Selecione a localização do servidor e aguarde. Uma vez iniciado, você precisa configurar as regras. Basta copiar e colar o arquivo abaixo e pressionar publicar. Essas regras garantem que as visualizações só podem ser incrementadas em 1, e as curtidas só podem ser alteradas em +1 ou -1 (e nunca abaixo de 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. Configurar Firestore - Selecione Build e abra Firestore. Crie uma nova base de dados e escolha iniciar no modo produção. Selecione a localização do servidor e aguarde. Assim que estiver iniciado, precisa de configurar as regras. Basta copiar e colar o ficheiro abaixo e premir publicar.
5. Configurar Firestore - Selecione Build e abra Firestore. Crie uma nova base de dados e escolha iniciar no modo produção. Selecione a localização do servidor e aguarde. Assim que estiver iniciado, precisa de configurar as regras. Basta copiar e colar o ficheiro abaixo e premir publicar. Estas regras garantem que as visualizações só podem ser incrementadas em 1, e os gostos só podem ser alterados em +1 ou -1 (e nunca abaixo de 0).
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
```
5. 设置 Firestore - 选择 Build 并打开 Firestore. 创建一个数据库,并在生产环境中启动。选择服务器位置然后等待其部署完成。启动之后你需要配置规则。只需要复制并粘贴下面的内容,然后点击发布即可。
5. 设置 Firestore - 选择 Build 并打开 Firestore. 创建一个数据库,并在生产环境中启动。选择服务器位置然后等待其部署完成。启动之后你需要配置规则。只需要复制并粘贴下面的内容,然后点击发布即可。这些规则确保阅读量只能增加1点赞量只能增加或减少1且不会低于0
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Views - read anyone, only increment by 1
match /views/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['views'])
&& request.resource.data.views == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
&& request.resource.data.views == resource.data.views + 1;
}
// Likes - read anyone, only +1 or -1
match /likes/{document} {
allow read: if request.auth != null;
allow create: if request.auth != null
&& request.resource.data.keys().hasOnly(['likes'])
&& request.resource.data.likes == 1;
allow update: if request.auth != null
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
&& (request.resource.data.likes == resource.data.likes + 1
|| request.resource.data.likes == resource.data.likes - 1)
&& request.resource.data.likes >= 0;
}
// Deny everything else
match /{document=**} {
allow read, write: if request.auth != null;
allow read, write: if false;
}
}
}

View File

@@ -57,4 +57,5 @@ Die Standardwerte der Front-Matter-Parameter werden von der [Basiskonfiguration]
| `excludeFromSearch` | `false` | Ob dieser Artikel von der Sitemap und dem Suchindex ausgeschlossen werden soll. Wenn `true`, erscheint die Seite nicht in `sitemap.xml` oder `index.json`. |
| `layoutBackgroundBlur` | `true` | Lässt das Hintergrundbild im background heroStyle beim Scrollen verschwimmen |
| `layoutBackgroundHeaderSpace` | `true` | Fügt Abstand zwischen Header und Body hinzu. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Sollen externe Links im Markdown in einem neuen Tab geöffnet werden? |
<!-- prettier-ignore-end -->

View File

@@ -57,4 +57,5 @@ Los valores predeterminados de los parámetros de front matter se heredan de la
| `excludeFromSearch` | `false` | Si este artículo debe excluirse del sitemap y el índice de búsqueda. Cuando es `true`, la página no aparecerá en `sitemap.xml` ni `index.json`. |
| `layoutBackgroundBlur` | `true` | Hace que la imagen de fondo en el heroStyle background se difumine con el desplazamiento |
| `layoutBackgroundHeaderSpace` | `true` | Añade espacio entre el encabezado y el cuerpo. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | ¿Deben los enlaces externos en markdown abrirse en una nueva pestaña? |
<!-- prettier-ignore-end -->

View File

@@ -57,4 +57,5 @@ Les valeurs par défaut des paramètres front matter sont héritées de la [conf
| `excludeFromSearch` | `false` | Si cet article doit être exclu du sitemap et de l'index de recherche. Lorsque `true`, la page n'apparaîtra pas dans `sitemap.xml` ou `index.json`. |
| `layoutBackgroundBlur` | `true` | Fait flouter l'image d'arrière-plan dans le heroStyle background avec le défilement |
| `layoutBackgroundHeaderSpace` | `true` | Ajoute de l'espace entre l'en-tête et le corps. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Les liens externes dans le markdown doivent-ils s'ouvrir dans un nouvel onglet? |
<!-- prettier-ignore-end -->

View File

@@ -55,4 +55,5 @@ I valori predefiniti dei parametri del front metter vengono ereditati dalla [con
| `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. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Flag per aprire i link esterni nel markdown in una nuova scheda. |
<!-- prettier-ignore-end -->

View File

@@ -56,4 +56,5 @@ series_order: 7
| `xml` | `sitemap.excludedKinds` によって除外されない限り `true` | この記事が生成された `/sitemap.xml` ファイルに含まれるかどうか。 |
| `layoutBackgroundBlur` | `true` | background heroStyle の背景画像をスクロールでぼかします |
| `layoutBackgroundHeaderSpace` | `true` | ヘッダーと本文の間にスペースを追加します |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | マークダウン内の外部リンクを新しいタブで開くかどうかです。 |
<!-- prettier-ignore-end -->

View File

@@ -57,4 +57,5 @@ Front matter parameter default values are inherited from the theme's [base confi
| `excludeFromSearch` | `false` | Whether or not this article should be excluded from the sitemap and search index. When `true`, the page will not appear in `sitemap.xml` or `index.json`. |
| `layoutBackgroundBlur` | `true` | Makes the background image in the background heroStyle blur with the scroll |
| `layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Should external links in markdown open in a new tab. |
<!-- prettier-ignore-end -->

View File

@@ -57,4 +57,5 @@ Os valores padrão dos parâmetros de front matter são herdados da [configuraç
| `excludeFromSearch` | `false` | Se este artigo deve ser excluído do sitemap e índice de pesquisa. Quando `true`, a página não aparecerá em `sitemap.xml` ou `index.json`. |
| `layoutBackgroundBlur` | `true` | Faz a imagem de fundo no heroStyle background desfocar com a rolagem |
| `layoutBackgroundHeaderSpace` | `true` | Adiciona espaço entre o cabeçalho e o corpo. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Links externos no markdown devem abrir em uma nova aba? |
<!-- prettier-ignore-end -->

View File

@@ -57,4 +57,5 @@ Os valores predefinidos dos parâmetros de front matter são herdados da [config
| `excludeFromSearch` | `false` | Se este artigo deve ser excluído do sitemap e índice de pesquisa. Quando `true`, a página não aparecerá em `sitemap.xml` ou `index.json`. |
| `layoutBackgroundBlur` | `true` | Faz a imagem de fundo no heroStyle background desfocar com a rolagem |
| `layoutBackgroundHeaderSpace` | `true` | Adiciona espaço entre o cabeçalho e o corpo. |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | Links externos no markdown devem abrir em uma nova aba? |
<!-- prettier-ignore-end -->

View File

@@ -56,4 +56,5 @@ front matter 参数中的默认值是从[基础配置]({{< ref "configuration" >
| `xml` | `true` unless excluded by `sitemap.excludedKinds` | 是否将这篇文章包含在生成的 `/sitemap.xml` 文件中。 |
| `layoutBackgroundBlur` | `true` | 向下滚动主页时,是否模糊背景图。 |
| `layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 |
| `externalLinkForceNewTab` | `article.externalLinkForceNewTab` | 是否强制 Markdown 中的外部链接在新标签页中打开。 |
<!-- prettier-ignore-end -->

View File

@@ -753,7 +753,14 @@ You can see some additional Mermaid examples on the [diagrams and flowcharts sam
The `tabs` shortcode is commonly used to present different variants of a particular step. For example, it can be used to show how to install VS Code on different platforms.
**Example**
| Parameter | Description |
| --------- | -------------------------------------------------------- |
| `group` | **Optional.** Group name for synchronized tab switching. All tabs with the same group name will switch together. |
| `default` | **Optional.** Label of the tab to be active by default. If not set, the first tab will be active. |
| `label` | **Required.** The text label displayed on the tab button. |
| `icon` | **Optional.** Icon name to display before the label. |
**Example 1: Basic Usage**
`````md
{{</* tabs */>}}
@@ -815,6 +822,94 @@ The `tabs` shortcode is commonly used to present different variants of a particu
{{< /tabs >}}
**Example 2: With Group, Default, and Icon**
`````md
{{</* tabs group="lang" default="Python" */>}}
{{</* tab label="JavaScript" icon="code" */>}}
```javascript
console.log("Hello");
```
{{</* /tab */>}}
{{</* tab label="Python" icon="sun" */>}}
```python
print("Hello")
```
{{</* /tab */>}}
{{</* tab label="Go" icon="moon" */>}}
```go
fmt.Println("Hello")
```
{{</* /tab */>}}
{{</* /tabs */>}}
{{</* tabs group="lang" default="Python" */>}}
{{</* tab label="JavaScript" icon="code" */>}}
```javascript
const add = (a, b) => a + b;
```
{{</* /tab */>}}
{{</* tab label="Python" icon="sun" */>}}
```python
def add(a, b): return a + b
```
{{</* /tab */>}}
{{</* tab label="Go" icon="moon" */>}}
```go
func add(a, b int) int { return a + b }
```
{{</* /tab */>}}
{{</* /tabs */>}}
`````
**Output**
{{< tabs group="lang" default="Python" >}}
{{< tab label="JavaScript" icon="code" >}}
```javascript
console.log("Hello");
```
{{< /tab >}}
{{< tab label="Python" icon="sun" >}}
```python
print("Hello")
```
{{< /tab >}}
{{< tab label="Go" icon="moon" >}}
```go
fmt.Println("Hello")
```
{{< /tab >}}
{{< /tabs >}}
{{< tabs group="lang" default="Python" >}}
{{< tab label="JavaScript" icon="code" >}}
```javascript
const add = (a, b) => a + b;
```
{{< /tab >}}
{{< tab label="Python" icon="sun" >}}
```python
def add(a, b): return a + b
```
{{< /tab >}}
{{< tab label="Go" icon="moon" >}}
```go
func add(a, b int) int { return a + b }
```
{{< /tab >}}
{{< /tabs >}}
In this example, both tab groups share the same `group="lang"` parameter, so clicking any tab will synchronize both groups. The `default="Python"` parameter makes Python the initially active tab, and `icon="code"` adds an icon before each label.
<br/><br/><br/>
## Timeline

View File

@@ -763,7 +763,14 @@ B-->C[Profit]
`tabs` 简码常用于呈现某个步骤的不同变体。例如,可用于展示在不同平台上安装 VS Code 的方式。
**示例**
| 参数 | 描述 |
| --------- | --------------------------------------- |
| `group` | **可选。** 用于同步切换标签页的组名。具有相同组名的所有标签页将一起切换。 |
| `default` | **可选。** 默认激活的标签页的标签。如果未设置,默认激活第一个标签页。 |
| `label` | **必填。** 显示在标签按钮上的文本标签。 |
| `icon` | **可选。** 在标签前显示的图标名称。 |
**示例 1基本用法**
````md
{{</* tabs */>}}
@@ -825,6 +832,94 @@ B-->C[Profit]
{{< /tabs >}}
**示例 2使用 Group、Default 和 Icon**
`````md
{{</* tabs group="lang" default="Python" */>}}
{{</* tab label="JavaScript" icon="code" */>}}
```javascript
console.log("Hello");
```
{{</* /tab */>}}
{{</* tab label="Python" icon="sun" */>}}
```python
print("Hello")
```
{{</* /tab */>}}
{{</* tab label="Go" icon="moon" */>}}
```go
fmt.Println("Hello")
```
{{</* /tab */>}}
{{</* /tabs */>}}
{{</* tabs group="lang" default="Python" */>}}
{{</* tab label="JavaScript" icon="code" */>}}
```javascript
const add = (a, b) => a + b;
```
{{</* /tab */>}}
{{</* tab label="Python" icon="sun" */>}}
```python
def add(a, b): return a + b
```
{{</* /tab */>}}
{{</* tab label="Go" icon="moon" */>}}
```go
func add(a, b int) int { return a + b }
```
{{</* /tab */>}}
{{</* /tabs */>}}
`````
**Output**
{{< tabs group="lang" default="Python" >}}
{{< tab label="JavaScript" icon="code" >}}
```javascript
console.log("Hello");
```
{{< /tab >}}
{{< tab label="Python" icon="sun" >}}
```python
print("Hello")
```
{{< /tab >}}
{{< tab label="Go" icon="moon" >}}
```go
fmt.Println("Hello")
```
{{< /tab >}}
{{< /tabs >}}
{{< tabs group="lang" default="Python" >}}
{{< tab label="JavaScript" icon="code" >}}
```javascript
const add = (a, b) => a + b;
```
{{< /tab >}}
{{< tab label="Python" icon="sun" >}}
```python
def add(a, b): return a + b
```
{{< /tab >}}
{{< tab label="Go" icon="moon" >}}
```go
func add(a, b int) int { return a + b }
```
{{< /tab >}}
{{< /tabs >}}
在这个示例中,两个标签组都使用了相同的 `group="lang"` 参数,因此点击任意一个标签时,两个标签组都会同步切换。`default="Python"` 参数用于指定 Python 为初始激活的标签,而 `icon="code"` 会在每个标签标题前添加一个图标。
<br/><br/><br/>
## 时间线

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [Persönliche Seite, Themenautor]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [sitio personal, Autor del tema]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [Site personnel, Auteur du thème]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [Sito personale, Autore del tema]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [個人サイト, テーマ作者]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [Site pessoal, Autor do tema]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [Site pessoal, Autor do tema]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -0,0 +1,14 @@
---
title: "n9o.xyz"
tags: [个人网站, 主题作者]
externalUrl: "https://n9o.xyz"
weight: 1
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Persönliche Seite]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Sitio Personal]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Site Personnel]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "nveshaan"
tags: [Sito personale]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "nveshaan"
tags: [個人サイト]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Personal Site]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Site Pessoal]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "nveshaan"
tags: [Site Pessoal]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "nveshaan"
tags: [个人网站]
externalUrl: "https://nveshaan.github.io/"
weight: 70
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Persönliche Seite,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Sitio Personal,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Site Personnel,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "DXPetti.com"
tags: [Sito personale, Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "DXPetti.com"
tags: [個人サイト, ブログ]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Personal site,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Site Pessoal,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "DXPetti.com"
tags: [Site Pessoal,Blog]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "DXPetti.com"
tags: [个人网站, 博客]
externalUrl: "https://www.dxpetti.com/"
weight: 55
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Persönliche Seite,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Sitio Personal,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Site Personnel,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Sito personale, Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [個人サイト, ブログ]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Personal site,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Site Pessoal,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [Site Pessoal,Blog]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "lazarusoverlook.com"
tags: [个人网站, 博客]
externalUrl: "https://lazarusoverlook.com"
weight: 75
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Persönliche Seite]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Sitio Personal]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Site Personnel]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "dizzytech.de"
tags: [Sito personale]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "dizzytech.de"
tags: [個人サイト]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Personal site]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Site Pessoal]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "dizzytech.de"
tags: [Site Pessoal]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "dizzytech.de"
tags: [个人网站]
externalUrl: "https://dizzytech.de"
weight: 17
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Unternehmensseite]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Sitio Empresarial]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Site d'Entreprise]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "Beauty Formulation"
tags: [Sito aziendale]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "Beauty Formulation"
tags: [企業サイト]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Company site]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Site Empresarial]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "Beauty Formulation"
tags: [Site Empresarial]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "Beauty Formulation"
tags: [公司网站]
externalUrl: "https://www.beautyformulation.com/"
weight: 67
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,13 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Persönliche Seite]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Sitio Personal]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Site Personnel]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Sito personale]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,14 +0,0 @@
---
title: "vkmki001.github.io"
tags: [個人サイト]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

View File

@@ -1,13 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Personal site]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false

View File

@@ -1,13 +0,0 @@
---
title: "vkmki001.github.io"
tags: [Site Pessoal]
externalUrl: "https://vkmki001.github.io/"
weight: 38
showDate: false
showAuthor: false
showReadingTime: false
showEdit: false
showLikes: false
showViews: false
layoutBackgroundHeaderSpace: false
---

Some files were not shown because too many files have changed in this diff Show More