Merge pull request #2627 from nunocoracao/dev

🔖  v2.94.0
This commit is contained in:
Nuno C.
2025-12-22 23:05:44 +00:00
committed by GitHub
1342 changed files with 34479 additions and 5699 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ jobs:
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
ref: "${{ github.head_ref }}"
- name: Install dependencies and Build Theme
+2 -2
View File
@@ -8,9 +8,9 @@ jobs:
zip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- run: zip -r config-default.zip config/_default
- uses: actions/upload-artifact@v5
- uses: actions/upload-artifact@v6
with:
name: config-default
path: config-default.zip
+2 -2
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
ref: dev
submodules: true # Fetch Hugo themes (true OR recursive)
@@ -38,7 +38,7 @@ jobs:
- name: Create Pull Request
if: steps.git-check.outputs.modified == 'true'
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@v8
with:
commit-message: Update Hugo supported version
title: ⚙️ Update Hugo supported version
+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup Pages
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
+1 -1
View File
@@ -25,7 +25,7 @@ static
#
# This create an unclose node
layouts/_default/_markup/render-heading.html
layouts/_default/_markup
layouts/_default/index.json
layouts/shortcodes/screenshot.html
layouts/shortcodes/figure.html
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | Deutsch | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish ist ein leistungsstarkes, schlankes Theme für [Hugo](https://gohugo.io). Es wurde mit Tailwind CSS entwickelt und bietet ein klares, minimalistisches Design, das Ihre Inhalte in den Vordergrund stellt.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Demo-Website](https://blowfish.page/)
📑 [Theme-Dokumentation](https://blowfish.page/docs/)
💎 [Merchandise-Shop](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Fehlerberichte & Issues](https://github.com/nunocoracao/blowfish/issues)
💡 [Fragen & Feature-Anfragen](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Funktionen
- Vollständig responsives Layout mit Tailwind CSS 3.0
- Mehrere Farbschemata (oder vollständig anpassbar)
- Dark Mode (erzwungen ein/aus oder automatisch mit Benutzerumschaltung)
- Hochgradig anpassbare Konfiguration
- Firebase-Integration zur Unterstützung dynamischer Daten
- Ansichtszähler & Like-Mechanismus
- Verwandte Artikel
- Mehrere Homepage-Layouts
- Mehrere Autoren
- Artikelserien
- Datums- und gewichtsbasierte Artikelsortierung
- Zen-Modus zum Lesen von Artikeln
- Flexibel mit beliebigen Inhaltstypen, Taxonomien und Menüs
- Kopf- und Fußzeilenmenüs
- Verschachtelte Menüs & Unternavigationsmenüs
- Scrollbares Inhaltsverzeichnis
- Mehrsprachige Inhaltsunterstützung einschließlich RTL-Sprachen
- Möglichkeit, auf Beiträge auf Websites von Drittanbietern zu verlinken
- Unterstützung für mehrere Shortcodes wie Gallery, Timeline, GitHub-Karten und Carousels
- GitHub Alerts-Syntax, 15 Typen, zusammenklappbar
- Buymeacoffee-Integration
- Clientseitige Website-Suche mit Fuse.js
- Diagramme und Visualisierungen mit Mermaid
- Charts mit Chart.js
- TypeIt-Integration
- Youtube-Einbettungen mit Leistungsverbesserungen
- Mathematische Notation mit KaTeX
- SVG-Icons von FontAwesome 6
- Automatische Bildgrößenanpassung mit Hugo Pipes
- Überschriften-Anker, Inhaltsverzeichnisse, Code-Kopieren, Buttons, Badges und mehr
- HTML- und Emoji-Unterstützung in Artikeln 🎉
- SEO-freundlich mit Links zum Teilen in sozialen Medien
- Unterstützung für Fathom Analytics und Google Analytics
- RSS-Feeds, Favicons und Kommentare
- Erweiterte Anpassung mit einfachen Tailwind-Farbdefinitionen und -Stilen
- Optimiert für Leistung und Barrierefreiheit mit perfekten Lighthouse-Scores
- Vollständig dokumentiert mit regelmäßigen Updates
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Dokumentation
Blowfish verfügt über eine [umfangreiche Dokumentation](https://blowfish.page/docs/), die alle Aspekte des Themes abdeckt. Lesen Sie unbedingt die [Dokumentation](https://blowfish.page/docs/), um mehr über die Verwendung des Themes und seiner Funktionen zu erfahren.
---
## Installation
Blowfish unterstützt mehrere Installationsmethoden - als git submodule, als Hugo Module oder als vollständig manuelle Installation.
Detaillierte Anweisungen für jede Methode finden Sie in der [Installations-Dokumentation](https://blowfish.page/docs/installation). Für die einfachste Einrichtung sollten Sie die Dokumentation konsultieren. Im Folgenden finden Sie eine Schnellstartanleitung mit Submodulen, wenn Sie git verwenden, oder Hugo Modules, wenn Sie bereits Erfahrung mit der Installation von Hugo-Themes haben.
### Schnellstart mit Blowfish Tools
> **Hinweis:** Stellen Sie sicher, dass Sie **Node.js**, **Git** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
Wir haben gerade ein neues CLI-Tool gestartet, das Ihnen beim Einstieg in Blowfish hilft. Es erstellt ein neues Hugo-Projekt, installiert das Theme und richtet die Theme-Konfigurationsdateien für Sie ein. Es befindet sich noch in der Beta-Phase, also [melden Sie bitte alle Probleme, die Sie finden](https://github.com/nunocoracao/blowfish-tools).
Installieren Sie das CLI-Tool global mit npm (oder einem anderen Paketmanager):
```shell
npm i -g blowfish-tools
```
Führen Sie dann den Befehl `blowfish-tools` aus, um eine interaktive Sitzung zu starten, die Sie durch Erstellungs- und Konfigurationsanwendungsfälle führt.
```shell
blowfish-tools
```
Sie können auch den Befehl `blowfish-tools new` ausführen, um ein neues Hugo-Projekt zu erstellen und das Theme in einem Schritt zu installieren. Weitere Informationen finden Sie in der CLI-Hilfe.
```shell
blowfish-tools new mynewsite
```
### Schnellstart mit git submodules
> **Hinweis:** Stellen Sie sicher, dass Sie **Git** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
1. Initialisieren Sie git aus Ihrem Projektverzeichnis:
```shell
git init
```
2. Konfigurieren Sie Blowfish als git submodule:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Löschen Sie im Stammordner Ihrer Website die von Hugo generierte Datei `hugo.toml`. Kopieren Sie die `*.toml` Konfigurationsdateien aus dem Theme in Ihren `config/_default/` Ordner.
Sie finden diese Theme-Konfigurationsdateien im Hugo-Cache-Verzeichnis oder [laden Sie eine Kopie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) von GitHub herunter.
4. Folgen Sie den Anweisungen unter [Erste Schritte](https://blowfish.page/docs/getting-started/), um Ihre Website zu konfigurieren.
### Schnellstart mit Hugo
> **Hinweis:** Stellen Sie sicher, dass Sie **Go** und **Hugo** installiert haben und dass Sie ein neues Hugo-Projekt erstellt haben, bevor Sie fortfahren.
1. Initialisieren Sie Hugo Modules aus Ihrem Projektverzeichnis:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Erstellen Sie `config/_default/module.toml` und fügen Sie Folgendes hinzu:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Starten Sie Ihren Server mit `hugo server` und das Theme wird automatisch heruntergeladen.
4. Löschen Sie im Stammordner Ihrer Website die von Hugo generierte Datei `hugo.toml`. Kopieren Sie die `*.toml` Konfigurationsdateien aus dem Theme in Ihren `config/_default/` Ordner.
> **Hinweis:** Überschreiben Sie nicht die oben erstellte Datei `module.toml`!
Sie finden diese Theme-Konfigurationsdateien im Hugo-Cache-Verzeichnis oder [laden Sie eine Kopie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) von GitHub herunter.
5. Folgen Sie den Anweisungen unter [Erste Schritte](https://blowfish.page/docs/getting-started/), um Ihre Website zu konfigurieren.
### Theme-Updates installieren
Wenn neue Versionen veröffentlicht werden, können Sie das Theme mit Hugo aktualisieren. Führen Sie einfach `hugo mod get -u` aus Ihrem Projektverzeichnis aus und das Theme wird automatisch auf die neueste Version aktualisiert.
Detaillierte [Update-Anweisungen](https://blowfish.page/docs/installation/#installing-updates) sind in der Dokumentation verfügbar.
---
## Mitwirken
Blowfish wird sich voraussichtlich im Laufe der Zeit weiterentwickeln. Ich beabsichtige, weiterhin Funktionen hinzuzufügen und nach Bedarf Änderungen vorzunehmen.
Melden Sie sich gerne mit Problemen oder Vorschlägen für neue Funktionen, die Sie gerne sehen würden.
- 🐛 **Fehlerberichte & Issues:** Verwenden Sie [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideen für neue Funktionen:** Eröffnen Sie eine Diskussion auf [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Allgemeine Fragen:** Gehen Sie zu [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Wenn Sie in der Lage sind, einen Fehler zu beheben oder eine neue Funktion zu implementieren, sind Pull Requests zu diesem Zweck willkommen. Erfahren Sie mehr in den [Richtlinien für Mitwirkende](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers im Zeitverlauf
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | Español | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish está diseñado para ser un tema potente y ligero para [Hugo](https://gohugo.io). Está construido usando Tailwind CSS con un diseño limpio y minimalista que prioriza tu contenido.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Sitio de demostración](https://blowfish.page/)
📑 [Documentación del tema](https://blowfish.page/docs/)
💎 [Tienda de merchandising](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Reportes de errores y problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Preguntas y solicitudes de funcionalidades](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Características
- Diseño totalmente responsive construido con Tailwind CSS 3.0
- Múltiples esquemas de color (o personaliza completamente el tuyo propio)
- Modo oscuro (forzado activado/desactivado o cambio automático con opción de usuario)
- Configuración altamente personalizable
- Integración con Firebase para soportar datos dinámicos
- Contador de vistas y mecanismo de likes
- Artículos relacionados
- Múltiples diseños de página de inicio
- Múltiples autores
- Series de artículos
- Ordenación de artículos basada en fecha y peso
- Modo zen para lectura de artículos
- Flexible con cualquier tipo de contenido, taxonomías y menús
- Menús de encabezado y pie de página
- Menús anidados y menú de sub-navegación
- Tabla de contenidos con desplazamiento
- Soporte de contenido multilingüe incluyendo idiomas RTL
- Capacidad de enlazar a publicaciones en sitios web de terceros
- Soporte para varios shortcodes como Gallery, Timeline, GitHub cards y Carousels
- Sintaxis de GitHub Alerts, 15 tipos, soporte plegable
- Integración con Buymeacoffee
- Búsqueda en el sitio del lado del cliente impulsada por Fuse.js
- Diagramas y visualizaciones usando Mermaid
- Gráficos usando Chart.js
- Integración con TypeIt
- Incrustaciones de Youtube con mejoras de rendimiento
- Notación matemática usando KaTeX
- Iconos SVG de FontAwesome 6
- Redimensionamiento automático de imágenes usando Hugo Pipes
- Anclajes de encabezados, Tablas de contenidos, Copia de código, Botones, Insignias y más
- Soporte de HTML y Emoji en artículos 🎉
- SEO amigable con enlaces para compartir en redes sociales
- Soporte para Fathom Analytics y Google Analytics
- Feeds RSS, Favicons y soporte de comentarios
- Personalización avanzada usando definiciones de colores y estilos simples de Tailwind
- Optimizado para rendimiento y accesibilidad con puntuaciones perfectas en Lighthouse
- Completamente documentado con actualizaciones regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentación
Blowfish tiene [documentación extensa](https://blowfish.page/docs/) que cubre todos los aspectos del tema. Asegúrate de [leer la documentación](https://blowfish.page/docs/) para aprender más sobre cómo usar el tema y sus características.
---
## Instalación
Blowfish soporta varios métodos de instalación - como submódulo de git, módulo de Hugo, o como una instalación completamente manual.
Las instrucciones detalladas para cada método se pueden encontrar en la documentación de [Instalación](https://blowfish.page/docs/installation). Deberías consultar la documentación para obtener la experiencia de configuración más simple. A continuación se presenta una guía de inicio rápido usando submódulos si estás usando git, o módulos de Hugo si ya tienes confianza instalando temas de Hugo.
### Inicio rápido usando Blowfish Tools
> **Nota:** Asegúrate de tener **Node.js**, **Git** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
Acabamos de lanzar una nueva herramienta CLI para ayudarte a comenzar con Blowfish. Creará un nuevo proyecto Hugo, instalará el tema y configurará los archivos de configuración del tema por ti. Todavía está en beta, así que por favor [reporta cualquier problema que encuentres](https://github.com/nunocoracao/blowfish-tools).
Instala la herramienta CLI globalmente usando npm (u otro gestor de paquetes):
```shell
npm i -g blowfish-tools
```
Luego ejecuta el comando `blowfish-tools` para iniciar una ejecución interactiva que te guiará a través de los casos de uso de creación y configuración.
```shell
blowfish-tools
```
También puedes ejecutar el comando `blowfish-tools new` para crear un nuevo proyecto Hugo e instalar el tema de una sola vez. Consulta la ayuda de CLI para más información.
```shell
blowfish-tools new mynewsite
```
### Inicio rápido usando submódulos de git
> **Nota:** Asegúrate de tener **Git** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
1. Desde el directorio de tu proyecto, inicializa git:
```shell
git init
```
2. Configura Blowfish como un submódulo de git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. En la carpeta raíz de tu sitio web, elimina el archivo `hugo.toml` que fue generado por Hugo. Copia los archivos de configuración `*.toml` del tema en tu carpeta `config/_default/`.
Encontrarás estos archivos de configuración del tema en el directorio de caché de Hugo, o [descarga una copia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) desde GitHub.
4. Sigue las instrucciones de [Primeros Pasos](https://blowfish.page/docs/getting-started/) para configurar tu sitio web.
### Inicio rápido usando Hugo
> **Nota:** Asegúrate de tener **Go** y **Hugo** instalados, y de haber creado un nuevo proyecto Hugo antes de continuar.
1. Desde el directorio de tu proyecto, inicializa los Módulos de Hugo:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crea `config/_default/module.toml` y agrega lo siguiente:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicia tu servidor usando `hugo server` y el tema se descargará automáticamente.
4. En la carpeta raíz de tu sitio web, elimina el archivo `hugo.toml` que fue generado por Hugo. Copia los archivos de configuración `*.toml` del tema en tu carpeta `config/_default/`.
> **Nota:** ¡No sobrescribas el archivo `module.toml` que creaste arriba!
Encontrarás estos archivos de configuración del tema en el directorio de caché de Hugo, o [descarga una copia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) desde GitHub.
5. Sigue las instrucciones de [Primeros Pasos](https://blowfish.page/docs/getting-started/) para configurar tu sitio web.
### Instalación de actualizaciones del tema
A medida que se publiquen nuevas versiones, puedes actualizar el tema usando Hugo. Simplemente ejecuta `hugo mod get -u` desde el directorio de tu proyecto y el tema se actualizará automáticamente a la última versión.
Las [instrucciones de actualización](https://blowfish.page/docs/installation/#installing-updates) detalladas están disponibles en la documentación.
---
## Contribuciones
Se espera que Blowfish evolucione con el tiempo. Tengo la intención de seguir agregando características y haciendo cambios según sea necesario.
Siéntete libre de ponerte en contacto con cualquier problema o sugerencia de nuevas características que te gustaría ver.
- 🐛 **Reportes de errores y problemas:** Usa [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideas para nuevas características:** Abre una discusión en [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Preguntas generales:** Dirígete a [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Si puedes corregir un error o implementar una nueva característica, acepto PRs para este propósito. Aprende más en las [guías de contribución](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers a lo largo del tiempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | Français | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish est conçu pour être un thème puissant et léger pour [Hugo](https://gohugo.io). Il est construit avec Tailwind CSS avec un design épuré et minimaliste qui donne la priorité à votre contenu.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de démonstration](https://blowfish.page/)
📑 [Documentation du thème](https://blowfish.page/docs/)
💎 [Boutique de produits dérivés](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Rapports de bugs et problèmes](https://github.com/nunocoracao/blowfish/issues)
💡 [Questions et demandes de fonctionnalités](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Fonctionnalités
- Disposition entièrement responsive construite avec Tailwind CSS 3.0
- Plusieurs palettes de couleurs (ou personnalisez entièrement la vôtre)
- Mode sombre (forcé activé/désactivé ou basculement automatique avec commutateur utilisateur)
- Configuration hautement personnalisable
- Intégration Firebase pour prendre en charge les données dynamiques
- Compteur de vues et mécanisme de likes
- Articles connexes
- Plusieurs mises en page pour la page d'accueil
- Plusieurs auteurs
- Séries d'articles
- Tri des articles basé sur la date et le poids
- Mode Zen pour la lecture d'articles
- Flexible avec tous les types de contenu, taxonomies et menus
- Menus d'en-tête et de pied de page
- Menus imbriqués et menu de sous-navigation
- Table des matières défilable
- Support du contenu multilingue incluant la prise en charge des langues RTL
- Possibilité de lier des articles sur des sites web tiers
- Prise en charge de plusieurs shortcodes comme Gallery, Timeline, GitHub cards et Carousels
- Syntaxe GitHub Alerts, 15 types, support pliable
- Intégration Buymeacoffee
- Recherche côté client alimentée par Fuse.js
- Diagrammes et visualisations utilisant Mermaid
- Graphiques utilisant Chart.js
- Intégration TypeIt
- Intégrations Youtube avec améliorations de performance
- Notation mathématique utilisant KaTeX
- Icônes SVG de FontAwesome 6
- Redimensionnement automatique des images utilisant Hugo Pipes
- Ancres de titres, Tables des matières, Copie de code, Boutons, Badges et plus
- Support HTML et Emoji dans les articles 🎉
- SEO optimisé avec liens pour partage sur les réseaux sociaux
- Support de Fathom Analytics et Google Analytics
- Flux RSS, Favicons et support des commentaires
- Personnalisation avancée utilisant de simples définitions de couleurs et styles Tailwind
- Optimisé pour les performances et l'accessibilité avec des scores Lighthouse parfaits
- Entièrement documenté avec des mises à jour régulières
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentation
Blowfish dispose d'une [documentation complète](https://blowfish.page/docs/) qui couvre tous les aspects du thème. Assurez-vous de [lire la documentation](https://blowfish.page/docs/) pour en savoir plus sur l'utilisation du thème et de ses fonctionnalités.
---
## Installation
Blowfish prend en charge plusieurs méthodes d'installation - en tant que sous-module git, module Hugo, ou en tant qu'installation complètement manuelle.
Des instructions détaillées pour chaque méthode se trouvent dans la documentation [Installation](https://blowfish.page/docs/installation). Vous devriez consulter la documentation pour l'expérience de configuration la plus simple. Ci-dessous se trouve un guide de démarrage rapide utilisant les sous-modules si vous utilisez git, ou les modules Hugo si vous êtes déjà à l'aise avec l'installation de thèmes Hugo.
### Démarrage rapide avec Blowfish Tools
> **Note :** Assurez-vous d'avoir **Node.js**, **Git** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
Nous venons de lancer un nouvel outil CLI pour vous aider à démarrer avec Blowfish. Il créera un nouveau projet Hugo, installera le thème et configurera les fichiers de configuration du thème pour vous. Il est encore en version bêta, veuillez donc [signaler tout problème que vous rencontrez](https://github.com/nunocoracao/blowfish-tools).
Installez l'outil CLI globalement en utilisant npm (ou un autre gestionnaire de paquets) :
```shell
npm i -g blowfish-tools
```
Ensuite, exécutez la commande `blowfish-tools` pour démarrer une exécution interactive qui vous guidera à travers les cas d'utilisation de création et de configuration.
```shell
blowfish-tools
```
Vous pouvez également exécuter la commande `blowfish-tools new` pour créer un nouveau projet Hugo et installer le thème en une seule fois. Consultez l'aide du CLI pour plus d'informations.
```shell
blowfish-tools new mynewsite
```
### Démarrage rapide avec les sous-modules git
> **Note :** Assurez-vous d'avoir **Git** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
1. Depuis le répertoire de votre projet, initialisez git :
```shell
git init
```
2. Configurez Blowfish comme un sous-module git :
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Dans le dossier racine de votre site web, supprimez le fichier `hugo.toml` qui a été généré par Hugo. Copiez les fichiers de configuration `*.toml` du thème dans votre dossier `config/_default/`.
Vous trouverez ces fichiers de configuration du thème dans le répertoire cache de Hugo, ou [téléchargez une copie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) depuis GitHub.
4. Suivez les instructions [Pour commencer](https://blowfish.page/docs/getting-started/) pour configurer votre site web.
### Démarrage rapide avec Hugo
> **Note :** Assurez-vous d'avoir **Go** et **Hugo** installés, et d'avoir créé un nouveau projet Hugo avant de continuer.
1. Depuis le répertoire de votre projet, initialisez les modules Hugo :
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Créez `config/_default/module.toml` et ajoutez ce qui suit :
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Démarrez votre serveur en utilisant `hugo server` et le thème sera téléchargé automatiquement.
4. Dans le dossier racine de votre site web, supprimez le fichier `hugo.toml` qui a été généré par Hugo. Copiez les fichiers de configuration `*.toml` du thème dans votre dossier `config/_default/`.
> **Note :** Ne remplacez pas le fichier `module.toml` que vous avez créé ci-dessus !
Vous trouverez ces fichiers de configuration du thème dans le répertoire cache de Hugo, ou [téléchargez une copie](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) depuis GitHub.
5. Suivez les instructions [Pour commencer](https://blowfish.page/docs/getting-started/) pour configurer votre site web.
### Installation des mises à jour du thème
Au fur et à mesure que de nouvelles versions sont publiées, vous pouvez mettre à jour le thème en utilisant Hugo. Exécutez simplement `hugo mod get -u` depuis le répertoire de votre projet et le thème se mettra automatiquement à jour vers la dernière version.
Des [instructions de mise à jour](https://blowfish.page/docs/installation/#installing-updates) détaillées sont disponibles dans la documentation.
---
## Contribuer
Blowfish est destiné à évoluer au fil du temps. J'ai l'intention de continuer à ajouter des fonctionnalités et à apporter des modifications selon les besoins.
N'hésitez pas à me contacter pour tout problème ou suggestion de nouvelles fonctionnalités que vous aimeriez voir.
- 🐛 **Rapports de bugs et problèmes :** Utilisez [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Idées de nouvelles fonctionnalités :** Ouvrez une discussion sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Questions générales :** Rendez-vous sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Si vous êtes en mesure de corriger un bug ou de mettre en œuvre une nouvelle fonctionnalité, j'accueille les PR à cette fin. Apprenez-en plus dans les [directives de contribution](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Évolution des stargazers
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+3 -2
View File
@@ -1,4 +1,4 @@
**[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | Indonesian | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)**
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | Indonesian
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
@@ -40,7 +40,8 @@ Blowfish dirancang sebagai tema yang kuat dan ringan untuk [Hugo](https://gohugo
- Daftar isi yang dapat digulir
- Dukungan untuk konten multibahasa termasuk bahasa RTL
- Kemampuan untuk menautkan ke artikel di situs web pihak ketiga
- Dukungan untuk beberapa shortcode seperti Galeri, Timeline, Kartu GitHub, dan Carousel
- Dukungan untuk beberapa shortcode seperti Galeri, Timeline, Kartu GitHub, dan Carousel
- Sintaks GitHub Alerts, 15 jenis, dukungan lipat
- Integrasi BuyMeACoffee
- Pencarian situs berbasis klien dengan Fuse.js
- Diagram dan visualisasi menggunakan Mermaid
+2 -1
View File
@@ -1,4 +1,4 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | 日本語
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | 日本語 | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
@@ -45,6 +45,7 @@ Blowfishは[Hugo](https://gohugo.io)のために設計された強力で軽量
- RTL 言語を含む多言語コンテンツのサポート
- サードパーティー ウェブサイトの投稿へのリンク
- ギャラリー、タイムライン、GitHub カード、カルーセルなど、複数のショートコードに対応
- GitHub Alerts 構文、15 種類、折りたたみ対応
- Buy Me a Coffee 連携
- Fuse.js を利用したクライアントサイドのサイト内検索
- Mermaid を使用したダイアグラムや視覚化
+2 -1
View File
@@ -1,4 +1,4 @@
English | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
English | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
@@ -45,6 +45,7 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Multilingual content support including support for RTL languages
- Ability to link to posts on third-party websites
- Support for several shortcodes like Gallery, Timeline, GitHub cards, and Carousels
- GitHub Alerts syntax, 15 types, collapsible support
- Buymeacoffee integration
- Client-side site search powered by Fuse.js
- Diagrams and visualisations using Mermaid
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | Português (BR) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish foi projetado para ser um tema poderoso e leve para [Hugo](https://gohugo.io). É construído usando Tailwind CSS com um design limpo e minimalista que prioriza o seu conteúdo.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de demonstração](https://blowfish.page/)
📑 [Documentação do tema](https://blowfish.page/docs/)
💎 [Loja de produtos](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Relatórios de bugs e problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Perguntas e solicitações de recursos](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Recursos
- Layout totalmente responsivo construído com Tailwind CSS 3.0
- Múltiplos esquemas de cores (ou personalize completamente o seu próprio)
- Modo escuro (forçado ligado/desligado ou alternância automática com botão do usuário)
- Configuração altamente personalizável
- Integração com Firebase para suportar dados dinâmicos
- Contagem de visualizações e mecanismo de curtidas
- Artigos relacionados
- Múltiplos layouts de página inicial
- Múltiplos autores
- Séries de artigos
- Ordenação de artigos baseada em data e peso
- Modo zen para leitura de artigos
- Flexível com qualquer tipo de conteúdo, taxonomias e menus
- Menus de cabeçalho e rodapé
- Menus aninhados e menu de sub-navegação
- Índice com rolagem
- Suporte a conteúdo multilíngue incluindo suporte para idiomas RTL
- Capacidade de linkar para posts em sites de terceiros
- Suporte para vários shortcodes como Gallery, Timeline, GitHub cards e Carousels
- Sintaxe de alertas do GitHub, 15 tipos, suporte recolhível
- Integração com Buymeacoffee
- Busca no site do lado do cliente alimentada por Fuse.js
- Diagramas e visualizações usando Mermaid
- Gráficos usando Chart.js
- Integração com TypeIt
- Embeds do Youtube com melhorias de performance
- Notação matemática usando KaTeX
- Ícones SVG do FontAwesome 6
- Redimensionamento automático de imagens usando Hugo Pipes
- Âncoras de cabeçalho, Índices, Cópia de código, Botões, Badges e mais
- Suporte a HTML e Emoji em artigos 🎉
- SEO amigável com links para compartilhamento em redes sociais
- Suporte a Fathom Analytics e Google Analytics
- Suporte a feeds RSS, Favicons e comentários
- Personalização avançada usando definições simples de cores e estilos do Tailwind
- Otimizado para performance e acessibilidade com pontuações perfeitas no Lighthouse
- Totalmente documentado com atualizações regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentação
Blowfish possui [documentação extensa](https://blowfish.page/docs/) que cobre todos os aspectos do tema. Certifique-se de [ler a documentação](https://blowfish.page/docs/) para saber mais sobre como usar o tema e seus recursos.
---
## Instalação
Blowfish suporta vários métodos de instalação - como submódulo git, Hugo Module, ou como uma instalação completamente manual.
Instruções detalhadas para cada método podem ser encontradas na documentação de [Instalação](https://blowfish.page/docs/installation). Você deve consultar a documentação para a experiência de configuração mais simples. Abaixo está um guia de início rápido usando submódulos se você estiver usando git, ou Hugo modules se você já estiver confiante em instalar temas Hugo.
### Início rápido usando Blowfish Tools
> **Nota:** Certifique-se de ter **Node.js**, **Git** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
Acabamos de lançar uma nova ferramenta CLI para ajudá-lo a começar com Blowfish. Ela criará um novo projeto Hugo, instalará o tema e configurará os arquivos de configuração do tema para você. Ainda está em beta, então por favor [reporte quaisquer problemas que encontrar](https://github.com/nunocoracao/blowfish-tools).
Instale a ferramenta CLI globalmente usando npm (ou outro gerenciador de pacotes):
```shell
npm i -g blowfish-tools
```
Em seguida, execute o comando `blowfish-tools` para iniciar uma execução interativa que o guiará pelos casos de uso de criação e configuração.
```shell
blowfish-tools
```
Você também pode executar o comando `blowfish-tools new` para criar um novo projeto Hugo e instalar o tema de uma vez. Verifique a ajuda da CLI para mais informações.
```shell
blowfish-tools new mynewsite
```
### Início rápido usando submódulos git
> **Nota:** Certifique-se de ter **Git** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
1. Do diretório do seu projeto, inicialize o git:
```shell
git init
```
2. Configure Blowfish como um submódulo git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Na pasta raiz do seu site, exclua o arquivo `hugo.toml` que foi gerado pelo Hugo. Copie os arquivos de configuração `*.toml` do tema para sua pasta `config/_default/`.
Você encontrará esses arquivos de configuração do tema no diretório de cache do Hugo, ou [baixe uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
4. Siga as instruções de [Primeiros Passos](https://blowfish.page/docs/getting-started/) para configurar seu site.
### Início rápido usando Hugo
> **Nota:** Certifique-se de ter **Go** e **Hugo** instalados, e que você criou um novo projeto Hugo antes de prosseguir.
1. Do diretório do seu projeto, inicialize os Hugo Modules:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crie `config/_default/module.toml` e adicione o seguinte:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicie seu servidor usando `hugo server` e o tema será baixado automaticamente.
4. Na pasta raiz do seu site, exclua o arquivo `hugo.toml` que foi gerado pelo Hugo. Copie os arquivos de configuração `*.toml` do tema para sua pasta `config/_default/`.
> **Nota:** Não sobrescreva o arquivo `module.toml` que você criou acima!
Você encontrará esses arquivos de configuração do tema no diretório de cache do Hugo, ou [baixe uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
5. Siga as instruções de [Primeiros Passos](https://blowfish.page/docs/getting-started/) para configurar seu site.
### Instalando atualizações do tema
À medida que novos lançamentos são publicados, você pode atualizar o tema usando Hugo. Simplesmente execute `hugo mod get -u` do diretório do seu projeto e o tema será atualizado automaticamente para a versão mais recente.
[Instruções detalhadas de atualização](https://blowfish.page/docs/installation/#installing-updates) estão disponíveis na documentação.
---
## Contribuindo
Blowfish deve evoluir ao longo do tempo. Pretendo continuar adicionando recursos e fazendo alterações conforme necessário.
Sinta-se à vontade para entrar em contato com quaisquer problemas ou sugestões de novos recursos que você gostaria de ver.
- 🐛 **Relatórios de bugs e problemas:** Use [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideias para novos recursos:** Abra uma discussão em [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Perguntas gerais:** Vá para [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Se você for capaz de corrigir um bug ou implementar um novo recurso, dou as boas-vindas a PRs para este propósito. Saiba mais nas [diretrizes de contribuição](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers ao longo do tempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+179
View File
@@ -0,0 +1,179 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | Português (PT) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | [简体中文](https://github.com/nunocoracao/blowfish/blob/main/README.zh-cn.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![GitHub](https://img.shields.io/github/license/nunocoracao/blowfish)](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish foi desenhado para ser um tema poderoso e leve para [Hugo](https://gohugo.io). É construído com Tailwind CSS com um design limpo e minimalista que prioriza o seu conteúdo.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Site de demonstração](https://blowfish.page/)
📑 [Documentação do tema](https://blowfish.page/docs/)
💎 [Loja de merchandising](http://tee.pub/lic/qwSlWVBL5zc)
🐛 [Relatórios de erros & problemas](https://github.com/nunocoracao/blowfish/issues)
💡 [Questões & pedidos de funcionalidades](https://github.com/nunocoracao/blowfish/discussions)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Funcionalidades
- Layout totalmente responsivo construído com Tailwind CSS 3.0
- Múltiplos esquemas de cores (ou personalize completamente o seu próprio)
- Modo escuro (forçado ligado/desligado ou alternância automática com seletor do utilizador)
- Configuração altamente personalizável
- Integração com Firebase para suportar dados dinâmicos
- Contagem de visualizações & mecanismo de gostos
- Artigos relacionados
- Múltiplos layouts de página inicial
- Múltiplos autores
- Séries de artigos
- Ordenação de artigos baseada em data e peso
- Modo Zen para leitura de artigos
- Flexível com qualquer tipo de conteúdo, taxonomias e menus
- Menus de cabeçalho e rodapé
- Menus aninhados & menu de sub-navegação
- Índice de conteúdos com scroll
- Suporte para conteúdo multilingue incluindo suporte para línguas RTL
- Capacidade de criar links para publicações em sites de terceiros
- Suporte para vários shortcodes como Gallery, Timeline, GitHub cards e Carousels
- Sintaxe GitHub Alerts, 15 tipos, suporte para elementos expansíveis
- Integração Buymeacoffee
- Pesquisa no site do lado do cliente alimentada por Fuse.js
- Diagramas e visualizações usando Mermaid
- Gráficos usando Chart.js
- Integração TypeIt
- Embeds de Youtube com melhorias de desempenho
- Notação matemática usando KaTeX
- Ícones SVG do FontAwesome 6
- Redimensionamento automático de imagens usando Hugo Pipes
- Âncoras de cabeçalhos, Índices de Conteúdos, Cópia de código, Botões, Badges e mais
- Suporte HTML e Emoji em artigos 🎉
- Otimizado para SEO com links para partilha em redes sociais
- Suporte para Fathom Analytics e Google Analytics
- Feeds RSS, Favicons e suporte para comentários
- Personalização avançada usando definições simples de cores e estilos do Tailwind
- Otimizado para desempenho e acessibilidade com pontuações perfeitas no Lighthouse
- Totalmente documentado com atualizações regulares
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentação
Blowfish tem [documentação extensa](https://blowfish.page/docs/) que cobre todos os aspetos do tema. Certifique-se de [ler a documentação](https://blowfish.page/docs/) para saber mais sobre como usar o tema e as suas funcionalidades.
---
## Instalação
Blowfish suporta vários métodos de instalação - como um submódulo git, um Módulo Hugo, ou como uma instalação completamente manual.
Instruções detalhadas para cada método podem ser encontradas na documentação de [Instalação](https://blowfish.page/docs/installation). Deve consultar a documentação para a experiência de configuração mais simples. Abaixo está um guia de início rápido usando submódulos se estiver a usar git, ou módulos Hugo se já está confiante na instalação de temas Hugo.
### Início rápido usando Blowfish Tools
> **Nota:** Certifique-se de que tem **Node.js**, **Git** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
Acabámos de lançar uma nova ferramenta CLI para ajudá-lo a começar com Blowfish. Ela irá criar um novo projeto Hugo, instalar o tema e configurar os ficheiros de configuração do tema para si. Ainda está em beta por isso [reporte quaisquer problemas que encontrar](https://github.com/nunocoracao/blowfish-tools).
Instale a ferramenta CLI globalmente usando npm (ou outro gestor de pacotes):
```shell
npm i -g blowfish-tools
```
Depois execute o comando `blowfish-tools` para iniciar uma execução interativa que irá guiá-lo através da criação e casos de uso de configuração.
```shell
blowfish-tools
```
Também pode executar o comando `blowfish-tools new` para criar um novo projeto Hugo e instalar o tema de uma só vez. Consulte a ajuda da CLI para mais informações.
```shell
blowfish-tools new mynewsite
```
### Início rápido usando submódulos git
> **Nota:** Certifique-se de que tem **Git** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
1. A partir do diretório do seu projeto, inicialize o git:
```shell
git init
```
2. Configure Blowfish como um submódulo git:
```shell
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
```
3. Na pasta raiz do seu site, elimine o ficheiro `hugo.toml` que foi gerado pelo Hugo. Copie os ficheiros de configuração `*.toml` do tema para a sua pasta `config/_default/`.
Irá encontrar estes ficheiros de configuração do tema no diretório de cache do Hugo, ou [descarregue uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
4. Siga as instruções de [Introdução](https://blowfish.page/docs/getting-started/) para configurar o seu site.
### Início rápido usando Hugo
> **Nota:** Certifique-se de que tem **Go** e **Hugo** instalados, e que criou um novo projeto Hugo antes de continuar.
1. A partir do diretório do seu projeto, inicialize os Módulos Hugo:
```shell
hugo mod init github.com/<username>/<repo-name>
```
2. Crie `config/_default/module.toml` e adicione o seguinte:
```toml
[[imports]]
path = "github.com/nunocoracao/blowfish/v2"
```
3. Inicie o seu servidor usando `hugo server` e o tema será descarregado automaticamente.
4. Na pasta raiz do seu site, elimine o ficheiro `hugo.toml` que foi gerado pelo Hugo. Copie os ficheiros de configuração `*.toml` do tema para a sua pasta `config/_default/`.
> **Nota:** Não sobrescreva o ficheiro `module.toml` que criou acima!
Irá encontrar estes ficheiros de configuração do tema no diretório de cache do Hugo, ou [descarregue uma cópia](https://github.com/nunocoracao/blowfish/releases/latest/download/config-default.zip) do GitHub.
5. Siga as instruções de [Introdução](https://blowfish.page/docs/getting-started/) para configurar o seu site.
### Instalar atualizações do tema
À medida que novas versões são publicadas, pode atualizar o tema usando Hugo. Simplesmente execute `hugo mod get -u` a partir do diretório do seu projeto e o tema será automaticamente atualizado para a versão mais recente.
[Instruções detalhadas de atualização](https://blowfish.page/docs/installation/#installing-updates) estão disponíveis na documentação.
---
## Contribuir
Espera-se que Blowfish evolua ao longo do tempo. Pretendo continuar a adicionar funcionalidades e fazer alterações conforme necessário.
Sinta-se à vontade para entrar em contacto com quaisquer problemas ou sugestões para novas funcionalidades que gostaria de ver.
- 🐛 **Relatórios de erros & problemas:** Use [GitHub Issues](https://github.com/nunocoracao/blowfish/issues)
- 💡 **Ideias para novas funcionalidades:** Abra uma discussão em [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
- 🙋‍♀️ **Questões gerais:** Dirija-se a [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions)
Se conseguir corrigir um erro ou implementar uma nova funcionalidade, aceito PRs para este propósito. Saiba mais nas [diretrizes de contribuição](https://github.com/nunocoracao/blowfish/blob/main/CONTRIBUTING.md).
---
## Stargazers ao longo do tempo
[![Stargazers over time](https://starchart.cc/nunocoracao/blowfish.svg)](https://starchart.cc/nunocoracao/blowfish)
<a rel="me" href="https://masto.ai/@blowfish">Mastodon</a>
+2 -1
View File
@@ -1,4 +1,4 @@
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md) | 简体中文 | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md)
[English](https://github.com/nunocoracao/blowfish/blob/main/README.md) | [Français](https://github.com/nunocoracao/blowfish/blob/main/README.fr.md) | [Deutsch](https://github.com/nunocoracao/blowfish/blob/main/README.de.md) | [Português (PT)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-pt.md) | [Português (BR)](https://github.com/nunocoracao/blowfish/blob/main/README.pt-br.md) | [Español](https://github.com/nunocoracao/blowfish/blob/main/README.es.md) | [日本語](https://github.com/nunocoracao/blowfish/blob/main/README.ja.md) | 简体中文 | [Indonesian](https://github.com/nunocoracao/blowfish/blob/main/README.id.md)
# Blowfish
[![Netlify Status](https://api.netlify.com/api/v1/badges/6e5256d4-3148-4d69-879c-310341020fe9/deploy-status)](https://app.netlify.com/sites/snazzy-dango-efb2ec/deploys)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
@@ -43,6 +43,7 @@ Blowfish 是一个轻量有力的 Hugo 主题。它使用 Tailwind CSS 构建,
- 支持多语言内容,包括 RTL 语言
- 可链接到第三方网站上的帖子
- 支持多种简码,如图库、时间轴、GitHub 卡片和图片灯箱
- 支持 GitHub Alerts 语法、15 种类型和可折叠功能
- 支持 Buymeacoffee
- 拥有由 Fuse.js 支持的客户端一侧网站搜索功能
- 植入了基于 Mermaid 的图表功能
File diff suppressed because it is too large Load Diff
+220
View File
@@ -0,0 +1,220 @@
/*
* Derived from KKKZOZ/hugo-admonitions (https://github.com/KKKZOZ/hugo-admonitions/)
* Copyright (c) 2024 KKKZOZ, Licensed under MIT License
*/
:root {
/* GitHub Core Types (5) */
--adm-note-border: theme("colors.sky.500");
--adm-note-bg: theme("colors.sky.50");
--adm-note-text: theme("colors.sky.900");
--adm-tip-border: theme("colors.emerald.500");
--adm-tip-bg: theme("colors.emerald.50");
--adm-tip-text: theme("colors.emerald.900");
--adm-important-border: theme("colors.purple.500");
--adm-important-bg: theme("colors.purple.50");
--adm-important-text: theme("colors.purple.900");
--adm-warning-border: theme("colors.orange.500");
--adm-warning-bg: theme("colors.orange.50");
--adm-warning-text: theme("colors.orange.900");
--adm-caution-border: theme("colors.red.500");
--adm-caution-bg: theme("colors.red.50");
--adm-caution-text: theme("colors.red.900");
/* Extended Types (10) */
--adm-abstract-border: theme("colors.cyan.500");
--adm-abstract-bg: theme("colors.cyan.50");
--adm-abstract-text: theme("colors.cyan.900");
--adm-bug-border: theme("colors.rose.500");
--adm-bug-bg: theme("colors.rose.50");
--adm-bug-text: theme("colors.rose.900");
--adm-danger-border: theme("colors.red.500");
--adm-danger-bg: theme("colors.red.50");
--adm-danger-text: theme("colors.red.900");
--adm-example-border: theme("colors.purple.600");
--adm-example-bg: theme("colors.purple.50");
--adm-example-text: theme("colors.purple.900");
--adm-failure-border: theme("colors.pink.500");
--adm-failure-bg: theme("colors.pink.50");
--adm-failure-text: theme("colors.pink.900");
--adm-info-border: theme("colors.blue.500");
--adm-info-bg: theme("colors.blue.50");
--adm-info-text: theme("colors.blue.900");
--adm-question-border: theme("colors.amber.500");
--adm-question-bg: theme("colors.amber.50");
--adm-question-text: theme("colors.amber.900");
--adm-quote-border: theme("colors.gray.500");
--adm-quote-bg: theme("colors.gray.50");
--adm-quote-text: theme("colors.gray.800");
--adm-success-border: theme("colors.emerald.500");
--adm-success-bg: theme("colors.emerald.50");
--adm-success-text: theme("colors.emerald.900");
--adm-todo-border: theme("colors.sky.500");
--adm-todo-bg: theme("colors.sky.50");
--adm-todo-text: theme("colors.sky.800");
}
html.dark {
/* GitHub Core Types (5) */
--adm-note-bg: color-mix(in srgb, theme("colors.sky.900 / 0.4"), black 15%);
--adm-note-text: theme("colors.sky.100");
--adm-tip-bg: color-mix(in srgb, theme("colors.emerald.900 / 0.4"), black 15%);
--adm-tip-text: theme("colors.emerald.100");
--adm-important-bg: color-mix(in srgb, theme("colors.purple.900 / 0.4"), black 15%);
--adm-important-text: theme("colors.purple.100");
--adm-warning-bg: color-mix(in srgb, theme("colors.orange.900 / 0.4"), black 15%);
--adm-warning-text: theme("colors.orange.100");
--adm-caution-bg: color-mix(in srgb, theme("colors.red.900 / 0.4"), black 15%);
--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-text: theme("colors.cyan.100");
--adm-bug-bg: color-mix(in srgb, theme("colors.rose.900 / 0.4"), black 15%);
--adm-bug-text: theme("colors.rose.100");
--adm-danger-bg: color-mix(in srgb, theme("colors.red.900 / 0.4"), black 15%);
--adm-danger-text: theme("colors.red.100");
--adm-example-bg: color-mix(in srgb, theme("colors.purple.900 / 0.4"), black 15%);
--adm-example-text: theme("colors.purple.100");
--adm-failure-bg: color-mix(in srgb, theme("colors.pink.900 / 0.4"), black 15%);
--adm-failure-text: theme("colors.pink.100");
--adm-info-bg: color-mix(in srgb, theme("colors.blue.900 / 0.4"), black 15%);
--adm-info-text: theme("colors.blue.100");
--adm-question-bg: color-mix(in srgb, theme("colors.amber.900 / 0.4"), black 15%);
--adm-question-text: theme("colors.amber.100");
--adm-quote-bg: color-mix(in srgb, theme("colors.gray.900 / 0.4"), black 15%);
--adm-quote-text: theme("colors.gray.100");
--adm-success-bg: color-mix(in srgb, theme("colors.emerald.900 / 0.4"), black 15%);
--adm-success-text: theme("colors.emerald.100");
--adm-todo-bg: color-mix(in srgb, theme("colors.sky.800 / 0.4"), black 15%);
--adm-todo-text: theme("colors.sky.100");
}
/* Base Styles */
.admonition-content > :first-child {
margin-top: 0 !important;
}
.admonition-content > :last-child {
margin-bottom: 0 !important;
}
.admonition-content pre {
margin-block: 0 !important;
}
/* Type-Specific Palettes Using CSS Variables */
.admonition[data-type="note"] {
border-color: var(--adm-note-border);
background-color: var(--adm-note-bg);
color: var(--adm-note-text);
}
.admonition[data-type="tip"] {
border-color: var(--adm-tip-border);
background-color: var(--adm-tip-bg);
color: var(--adm-tip-text);
}
.admonition[data-type="important"] {
border-color: var(--adm-important-border);
background-color: var(--adm-important-bg);
color: var(--adm-important-text);
}
.admonition[data-type="warning"] {
border-color: var(--adm-warning-border);
background-color: var(--adm-warning-bg);
color: var(--adm-warning-text);
}
.admonition[data-type="caution"] {
border-color: var(--adm-caution-border);
background-color: var(--adm-caution-bg);
color: var(--adm-caution-text);
}
.admonition[data-type="abstract"] {
border-color: var(--adm-abstract-border);
background-color: var(--adm-abstract-bg);
color: var(--adm-abstract-text);
}
.admonition[data-type="bug"] {
border-color: var(--adm-bug-border);
background-color: var(--adm-bug-bg);
color: var(--adm-bug-text);
}
.admonition[data-type="danger"] {
border-color: var(--adm-danger-border);
background-color: var(--adm-danger-bg);
color: var(--adm-danger-text);
}
.admonition[data-type="example"] {
border-color: var(--adm-example-border);
background-color: var(--adm-example-bg);
color: var(--adm-example-text);
}
.admonition[data-type="failure"] {
border-color: var(--adm-failure-border);
background-color: var(--adm-failure-bg);
color: var(--adm-failure-text);
}
.admonition[data-type="info"] {
border-color: var(--adm-info-border);
background-color: var(--adm-info-bg);
color: var(--adm-info-text);
}
.admonition[data-type="question"] {
border-color: var(--adm-question-border);
background-color: var(--adm-question-bg);
color: var(--adm-question-text);
}
.admonition[data-type="quote"] {
border-color: var(--adm-quote-border);
background-color: var(--adm-quote-bg);
color: var(--adm-quote-text);
}
.admonition[data-type="success"] {
border-color: var(--adm-success-border);
background-color: var(--adm-success-bg);
color: var(--adm-success-text);
}
.admonition[data-type="todo"] {
border-color: var(--adm-todo-border);
background-color: var(--adm-todo-bg);
color: var(--adm-todo-text);
}
+178 -197
View File
@@ -1,8 +1,24 @@
/* -- Chroma Highlight -- */
/* Background */
.prose .chroma {
@apply static rounded-md text-neutral-700 bg-neutral-50 dark:bg-neutral-700 dark:text-neutral-200;
/* margins for codeblock title */
.highlight-wrapper {
@apply block relative z-0 overflow-hidden shadow rounded-md;
margin-top: 1.7142857em;
margin-bottom: 1.7142857em;
}
.highlight-wrapper pre,
.highlight-wrapper table, .highlight-wrapper div {
margin-top: 0;
margin-bottom: 0;
}
.highlight-wrapper:has(.codeblock-title) pre {
@apply rounded-none;
}
.codeblock-title {
@apply px-4 py-2 border-b border-neutral-200 dark:border-neutral-800;
@apply bg-white dark:bg-[#0d1117];
}
/* LineTableTD */
@@ -19,208 +35,173 @@
/* LineHighlight */
.chroma .hl {
@apply block w-auto px-4 -mx-4 bg-primary-100 dark:bg-primary-900;
@apply block w-auto px-4 -mx-4;
}
.chroma .lntd .hl {
@apply p-0 m-0;
}
/* LineNumbersTable */
/* LineNumbers */
.chroma .lnt,
.chroma .ln {
@apply text-neutral-600 dark:text-neutral-300 mr-[0.4em] px-[0.4em] py-0;
/* linenos=inline */
.chroma:not(:is(table *)) > code {
display: block;
min-width: max-content;
}
/* Keyword */
/* KeywordDeclaration */
/* KeywordNamespace */
/* KeywordPseudo */
/* KeywordReserved */
/* NameClass */
/* NameFunctionMagic */
/* NameNamespace */
/* NameVariableClass */
/* Operator */
.chroma .k,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .nc,
.chroma .fm,
.chroma .nn,
.chroma .vc,
.chroma .o {
@apply text-primary-600 dark:text-primary-300;
}
html:not(.dark) {
/* Generated using: hugo gen chromastyles --style=github */
/* KeywordConstant */
.chroma .kc {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
/* Background */ .bg { background-color:#fff; }
/* PreWrapper */ .chroma { background-color:#fff; }
/* Error */ .chroma .err { color:#f6f8fa;background-color:#82071e }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0; }
/* LineHighlight */ .chroma .hl { background-color:#e5e5e5 }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#cf222e }
/* KeywordConstant */ .chroma .kc { color:#cf222e }
/* KeywordDeclaration */ .chroma .kd { color:#cf222e }
/* KeywordNamespace */ .chroma .kn { color:#cf222e }
/* KeywordPseudo */ .chroma .kp { color:#cf222e }
/* KeywordReserved */ .chroma .kr { color:#cf222e }
/* KeywordType */ .chroma .kt { color:#cf222e }
/* NameAttribute */ .chroma .na { color:#1f2328 }
/* NameClass */ .chroma .nc { color:#1f2328 }
/* NameConstant */ .chroma .no { color:#0550ae }
/* NameDecorator */ .chroma .nd { color:#0550ae }
/* NameEntity */ .chroma .ni { color:#6639ba }
/* NameLabel */ .chroma .nl { color:#900;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#24292e }
/* NameOther */ .chroma .nx { color:#1f2328 }
/* NameTag */ .chroma .nt { color:#0550ae }
/* NameBuiltin */ .chroma .nb { color:#6639ba }
/* NameBuiltinPseudo */ .chroma .bp { color:#6a737d }
/* NameVariable */ .chroma .nv { color:#953800 }
/* NameVariableClass */ .chroma .vc { color:#953800 }
/* NameVariableGlobal */ .chroma .vg { color:#953800 }
/* NameVariableInstance */ .chroma .vi { color:#953800 }
/* NameVariableMagic */ .chroma .vm { color:#953800 }
/* NameFunction */ .chroma .nf { color:#6639ba }
/* NameFunctionMagic */ .chroma .fm { color:#6639ba }
/* LiteralString */ .chroma .s { color:#0a3069 }
/* LiteralStringAffix */ .chroma .sa { color:#0a3069 }
/* LiteralStringBacktick */ .chroma .sb { color:#0a3069 }
/* LiteralStringChar */ .chroma .sc { color:#0a3069 }
/* LiteralStringDelimiter */ .chroma .dl { color:#0a3069 }
/* LiteralStringDoc */ .chroma .sd { color:#0a3069 }
/* LiteralStringDouble */ .chroma .s2 { color:#0a3069 }
/* LiteralStringEscape */ .chroma .se { color:#0a3069 }
/* LiteralStringHeredoc */ .chroma .sh { color:#0a3069 }
/* LiteralStringInterpol */ .chroma .si { color:#0a3069 }
/* LiteralStringOther */ .chroma .sx { color:#0a3069 }
/* LiteralStringRegex */ .chroma .sr { color:#0a3069 }
/* LiteralStringSingle */ .chroma .s1 { color:#0a3069 }
/* LiteralStringSymbol */ .chroma .ss { color:#032f62 }
/* LiteralNumber */ .chroma .m { color:#0550ae }
/* LiteralNumberBin */ .chroma .mb { color:#0550ae }
/* LiteralNumberFloat */ .chroma .mf { color:#0550ae }
/* LiteralNumberHex */ .chroma .mh { color:#0550ae }
/* LiteralNumberInteger */ .chroma .mi { color:#0550ae }
/* LiteralNumberIntegerLong */ .chroma .il { color:#0550ae }
/* LiteralNumberOct */ .chroma .mo { color:#0550ae }
/* Operator */ .chroma .o { color:#0550ae }
/* OperatorWord */ .chroma .ow { color:#0550ae }
/* Punctuation */ .chroma .p { color:#1f2328 }
/* Comment */ .chroma .c { color:#57606a }
/* CommentHashbang */ .chroma .ch { color:#57606a }
/* CommentMultiline */ .chroma .cm { color:#57606a }
/* CommentSingle */ .chroma .c1 { color:#57606a }
/* CommentSpecial */ .chroma .cs { color:#57606a }
/* CommentPreproc */ .chroma .cp { color:#57606a }
/* CommentPreprocFile */ .chroma .cpf { color:#57606a }
/* GenericDeleted */ .chroma .gd { color:#82071e;background-color:#ffebe9 }
/* GenericEmph */ .chroma .ge { color:#1f2328 }
/* GenericInserted */ .chroma .gi { color:#116329;background-color:#dafbe1 }
/* GenericOutput */ .chroma .go { color:#1f2328 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#fff }
}
html.dark {
/* Generated using: hugo gen chromastyles --style=github-dark */
/* KeywordType */
/* NameVariable */
/* NameVariableInstance */
/* NameVariableMagic */
/* LiteralNumber */
/* LiteralNumberBin */
/* LiteralNumberFloat */
/* LiteralNumberHex */
/* LiteralNumberInteger */
/* LiteralNumberIntegerLong */
/* LiteralNumberOct */
.chroma .kt,
.chroma .nv,
.chroma .vi,
.chroma .vm,
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .il,
.chroma .mo {
@apply text-secondary-400 dark:text-secondary-600;
}
/* Name */
/* NameDecorator */
/* NameEntity */
/* NameLabel */
.chroma .n,
.chroma .nd,
.chroma .ni,
.chroma .nl {
@apply text-secondary-900 dark:text-secondary-200;
}
/* NameAttribute */
/* NameBuiltin */
/* NameBuiltinPseudo */
/* NameOther */
/* NameProperty */
/* NameTag */
.chroma .na,
.chroma .nb,
.chroma .bp,
.chroma .nx,
.chroma .py,
.chroma .nt {
@apply text-secondary-800 dark:text-secondary-300;
}
/* NameConstant */
/* NameException */
/* NameVariableGlobal */
.chroma .no,
.chroma .ne,
.chroma .vg {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
}
/* NameFunction */
.chroma .nf {
@apply text-secondary-600 dark:text-secondary-500;
}
/* Literal */
/* LiteralDate */
/* LiteralString */
/* LiteralStringAffix */
/* LiteralStringBacktick */
/* LiteralStringChar */
/* LiteralStringDelimiter */
/* LiteralStringDoc */
/* LiteralStringDouble */
/* LiteralStringHeredoc */
/* LiteralStringInterpol */
/* LiteralStringOther */
/* LiteralStringSingle */
/* GenericInserted */
/* GenericOutput */
/* GenericPrompt */
.chroma .l,
.chroma .ld,
.chroma .s,
.chroma .sa,
.chroma .sb,
.chroma .sc,
.chroma .dl,
.chroma .sd,
.chroma .s2,
.chroma .sh,
.chroma .si,
.chroma .sx,
.chroma .s1,
.chroma .gi,
.chroma .go,
.chroma .gp {
@apply text-primary-800 dark:text-primary-400;
}
/* LiteralStringEscape */
.chroma .se {
@apply font-semibold text-secondary-400 dark:text-secondary-500;
}
/* LiteralStringRegex */
/* LiteralStringSymbol */
.chroma .sr,
.chroma .ss {
@apply font-semibold text-primary-800 dark:text-primary-400;
}
/* OperatorWord */
.chroma .ow {
@apply font-semibold text-primary-400 dark:text-primary-600;
}
/* Comment */
/* CommentMultiline */
/* CommentSingle */
/* CommentSpecial */
/* CommentPreproc */
/* CommentPreprocFile */
.chroma .c,
.chroma .cm,
.chroma .c1,
.chroma .cs,
.chroma .cp,
.chroma .cpf {
@apply italic text-neutral-500 dark:text-neutral-400;
}
/* CommentHashbang */
.chroma .ch {
@apply italic font-semibold text-neutral-500 dark:text-neutral-400;
}
/* GenericEmph */
.chroma .ge {
@apply italic;
}
/* GenericHeading */
.chroma .gh {
@apply font-semibold text-neutral-500;
}
/* GenericStrong */
.chroma .gs {
@apply font-semibold;
}
/* GenericSubheading */
/* GenericTraceback */
.chroma .gu,
.chroma .gt {
@apply text-neutral-500;
}
/* GenericUnderline */
.chroma .gl {
@apply underline;
/* Background */ .bg { color:#e6edf3;background-color:#0d1117; }
/* PreWrapper */ .chroma { color:#e6edf3;background-color:#0d1117; }
/* Error */ .chroma .err { color:#f85149 }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0; }
/* LineHighlight */ .chroma .hl { background-color:#333 }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679 }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681 }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#ff7b72 }
/* KeywordConstant */ .chroma .kc { color:#79c0ff }
/* KeywordDeclaration */ .chroma .kd { color:#ff7b72 }
/* KeywordNamespace */ .chroma .kn { color:#ff7b72 }
/* KeywordPseudo */ .chroma .kp { color:#79c0ff }
/* KeywordReserved */ .chroma .kr { color:#ff7b72 }
/* KeywordType */ .chroma .kt { color:#ff7b72 }
/* NameClass */ .chroma .nc { color:#f0883e;font-weight:bold }
/* NameConstant */ .chroma .no { color:#79c0ff;font-weight:bold }
/* NameDecorator */ .chroma .nd { color:#d2a8ff;font-weight:bold }
/* NameEntity */ .chroma .ni { color:#ffa657 }
/* NameException */ .chroma .ne { color:#f0883e;font-weight:bold }
/* NameLabel */ .chroma .nl { color:#79c0ff;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#ff7b72 }
/* NameProperty */ .chroma .py { color:#79c0ff }
/* NameTag */ .chroma .nt { color:#7ee787 }
/* NameVariable */ .chroma .nv { color:#79c0ff }
/* NameVariableClass */ .chroma .vc { color:#79c0ff }
/* NameVariableGlobal */ .chroma .vg { color:#79c0ff }
/* NameVariableInstance */ .chroma .vi { color:#79c0ff }
/* NameVariableMagic */ .chroma .vm { color:#79c0ff }
/* NameFunction */ .chroma .nf { color:#d2a8ff;font-weight:bold }
/* NameFunctionMagic */ .chroma .fm { color:#d2a8ff;font-weight:bold }
/* Literal */ .chroma .l { color:#a5d6ff }
/* LiteralDate */ .chroma .ld { color:#79c0ff }
/* LiteralString */ .chroma .s { color:#a5d6ff }
/* LiteralStringAffix */ .chroma .sa { color:#79c0ff }
/* LiteralStringBacktick */ .chroma .sb { color:#a5d6ff }
/* LiteralStringChar */ .chroma .sc { color:#a5d6ff }
/* LiteralStringDelimiter */ .chroma .dl { color:#79c0ff }
/* LiteralStringDoc */ .chroma .sd { color:#a5d6ff }
/* LiteralStringDouble */ .chroma .s2 { color:#a5d6ff }
/* LiteralStringEscape */ .chroma .se { color:#79c0ff }
/* LiteralStringHeredoc */ .chroma .sh { color:#79c0ff }
/* LiteralStringInterpol */ .chroma .si { color:#a5d6ff }
/* LiteralStringOther */ .chroma .sx { color:#a5d6ff }
/* LiteralStringRegex */ .chroma .sr { color:#79c0ff }
/* LiteralStringSingle */ .chroma .s1 { color:#a5d6ff }
/* LiteralStringSymbol */ .chroma .ss { color:#a5d6ff }
/* LiteralNumber */ .chroma .m { color:#a5d6ff }
/* LiteralNumberBin */ .chroma .mb { color:#a5d6ff }
/* LiteralNumberFloat */ .chroma .mf { color:#a5d6ff }
/* LiteralNumberHex */ .chroma .mh { color:#a5d6ff }
/* LiteralNumberInteger */ .chroma .mi { color:#a5d6ff }
/* LiteralNumberIntegerLong */ .chroma .il { color:#a5d6ff }
/* LiteralNumberOct */ .chroma .mo { color:#a5d6ff }
/* Operator */ .chroma .o { color:#ff7b72;font-weight:bold }
/* OperatorWord */ .chroma .ow { color:#ff7b72;font-weight:bold }
/* Comment */ .chroma .c { color:#8b949e;font-style:italic }
/* CommentHashbang */ .chroma .ch { color:#8b949e;font-style:italic }
/* CommentMultiline */ .chroma .cm { color:#8b949e;font-style:italic }
/* CommentSingle */ .chroma .c1 { color:#8b949e;font-style:italic }
/* CommentSpecial */ .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic }
/* CommentPreproc */ .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic }
/* CommentPreprocFile */ .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic }
/* GenericDeleted */ .chroma .gd { color:#ffa198;background-color:#490202 }
/* GenericEmph */ .chroma .ge { font-style:italic }
/* GenericError */ .chroma .gr { color:#ffa198 }
/* GenericHeading */ .chroma .gh { color:#79c0ff;font-weight:bold }
/* GenericInserted */ .chroma .gi { color:#56d364;background-color:#0f5323 }
/* GenericOutput */ .chroma .go { color:#8b949e }
/* GenericPrompt */ .chroma .gp { color:#8b949e }
/* GenericStrong */ .chroma .gs { font-weight:bold }
/* GenericSubheading */ .chroma .gu { color:#79c0ff }
/* GenericTraceback */ .chroma .gt { color:#ff7b72 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#6e7681 }
}
+9
View File
@@ -0,0 +1,9 @@
.tab__button.tab--active {
border-bottom: 2px solid rgb(var(--color-primary-500));
}
.tab__panel {
display: none;
}
.tab__panel.tab--active {
display: block;
}
+20 -6
View File
@@ -4,8 +4,14 @@
@import "tailwindcss";
@import "./components/chroma.css" layer(utilities);
@import "./components/tabs.css" layer(utilities);
@import "./components/zen-mode.css";
@import "./components/a11y.css";
@import "./components/admonition.css" layer(components);
html.dark {
color-scheme: dark;
}
body a,
body button {
@@ -82,7 +88,7 @@ button,
}
.toc a {
@apply font-normal text-neutral-700 dark:text-neutral-400;
@apply font-normal text-neutral-700 dark:text-neutral-300;
}
.toc ul > li {
@@ -90,15 +96,11 @@ button,
}
/* Code Copy */
.highlight-wrapper {
@apply block;
}
.highlight {
@apply relative z-0;
}
.highlight:hover > .copy-button {
.highlight-wrapper:hover > .copy-button {
@apply visible;
}
@@ -198,6 +200,18 @@ pre {
box-shadow: 5px 5px 20px 1px rgba(0, 0, 0, 0.3);
}
/* placeholder for gallery/carousel */
@variant max-md {
.width-patch {
width: 80vw;
}
}
@variant min-md {
.width-patch {
width: 65ch;
}
}
.anchor {
display: block;
position: relative;
+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/>
</svg>

After

Width:  |  Height:  |  Size: 538 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
<path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/>
</svg>

After

Width:  |  Height:  |  Size: 479 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"/>
</svg>

After

Width:  |  Height:  |  Size: 787 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>

After

Width:  |  Height:  |  Size: 823 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V216z"/>
</svg>

After

Width:  |  Height:  |  Size: 451 B

+16 -17
View File
@@ -2,39 +2,35 @@ var scriptBundle = document.getElementById("script-bundle");
var copyText = scriptBundle?.getAttribute("data-copy") || "Copy";
var copiedText = scriptBundle?.getAttribute("data-copied") || "Copied";
function createCopyButton(highlightDiv) {
function createCopyButton(highlightWrapper) {
const button = document.createElement("button");
button.className = "copy-button";
button.type = "button";
button.ariaLabel = copyText;
button.innerText = copyText;
button.addEventListener("click", () => copyCodeToClipboard(button, highlightDiv));
highlightDiv.insertBefore(button, highlightDiv.firstChild);
const wrapper = document.createElement("div");
wrapper.className = "highlight-wrapper";
highlightDiv.parentNode.insertBefore(wrapper, highlightDiv);
wrapper.appendChild(highlightDiv);
button.addEventListener("click", () => copyCodeToClipboard(button, highlightWrapper));
highlightWrapper.insertBefore(button, highlightWrapper.firstChild);
}
async function copyCodeToClipboard(button, highlightDiv) {
const codeToCopy = getCodeText(highlightDiv);
async function copyCodeToClipboard(button, highlightWrapper) {
const codeToCopy = getCodeText(highlightWrapper);
function fallback(codeToCopy, highlightDiv) {
function fallback(codeToCopy, highlightWrapper) {
const textArea = document.createElement("textArea");
textArea.contentEditable = "true";
textArea.readOnly = "false";
textArea.className = "copy-textarea";
textArea.value = codeToCopy;
highlightDiv.insertBefore(textArea, highlightDiv.firstChild);
highlightWrapper.insertBefore(textArea, highlightWrapper.firstChild);
const range = document.createRange();
range.selectNodeContents(textArea);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
textArea.focus();
textArea.setSelectionRange(0, 999999);
document.execCommand("copy");
highlightDiv.removeChild(textArea);
highlightWrapper.removeChild(textArea);
}
try {
@@ -42,10 +38,10 @@ async function copyCodeToClipboard(button, highlightDiv) {
if (result.state == "granted" || result.state == "prompt") {
await navigator.clipboard.writeText(codeToCopy);
} else {
fallback(codeToCopy, highlightDiv);
fallback(codeToCopy, highlightWrapper);
}
} catch (_) {
fallback(codeToCopy, highlightDiv);
fallback(codeToCopy, highlightWrapper);
} finally {
button.blur();
button.innerText = copiedText;
@@ -55,7 +51,10 @@ async function copyCodeToClipboard(button, highlightDiv) {
}
}
function getCodeText(highlightDiv) {
function getCodeText(highlightWrapper) {
const highlightDiv = highlightWrapper.querySelector(".highlight");
if (!highlightDiv) return "";
const codeBlock = highlightDiv.querySelector("code");
const inlineLines = codeBlock?.querySelectorAll(".cl"); // linenos=inline
const tableCodeCell = highlightDiv?.querySelector(".lntable .lntd:last-child code"); // linenos=table
@@ -75,5 +74,5 @@ function getCodeText(highlightDiv) {
}
window.addEventListener("DOMContentLoaded", (event) => {
document.querySelectorAll(".highlight").forEach((highlightDiv) => createCopyButton(highlightDiv));
document.querySelectorAll(".highlight-wrapper").forEach((highlightWrapper) => createCopyButton(highlightWrapper));
});
+17
View File
@@ -0,0 +1,17 @@
(function() {
'use strict';
var closedDetails = [];
window.addEventListener('beforeprint', function() {
var allDetails = document.querySelectorAll('details:not([open])');
for (var i = 0; i < allDetails.length; i++) {
allDetails[i].open = true;
closedDetails.push(allDetails[i]);
}
});
window.addEventListener('afterprint', function() {
for (var i = 0; i < closedDetails.length; i++) {
closedDetails[i].open = false;
}
closedDetails = [];
});
})();
+41
View File
@@ -0,0 +1,41 @@
function initTabs() {
tabClickHandler = (event) => {
const button = event.target.closest(".tab__button");
if (!button) return;
const container = button.closest(".tab__container");
const tabIndex = parseInt(button.dataset.tabIndex);
activateTab(container, tabIndex);
};
document.addEventListener("click", tabClickHandler);
}
function activateTab(container, activeIndex) {
const buttons = container.querySelectorAll(".tab__button");
const panels = container.querySelectorAll(".tab__panel");
buttons.forEach((btn, index) => {
if (index === activeIndex) {
btn.classList.add("tab--active");
btn.setAttribute("aria-selected", "true");
} else {
btn.classList.remove("tab--active");
btn.setAttribute("aria-selected", "false");
}
});
panels.forEach((panel, index) => {
if (index === activeIndex) {
panel.classList.add("tab--active");
} else {
panel.classList.remove("tab--active");
}
});
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initTabs);
} else {
initTabs();
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+248 -248
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -2,4 +2,4 @@
[module.hugoVersion]
extended = true
min = "0.141.0"
max = "0.152.2"
max = "0.153.2"
+1
View File
@@ -13,6 +13,7 @@ enableA11y = false
enableSearch = true
enableCodeCopy = false
enableStructuredBreadcrumbs = false
# enableStyledScrollbar = true # disable to use native scrollbar style (defaults to true)
replyByEmail = false
@@ -0,0 +1,22 @@
languageCode = "de"
languageName = "Deutsch"
weight = 3
title = "Blowfish"
[params]
displayName = "Deutsch"
isoCode = "de"
rtl = false
dateFormat = "2. January 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
bio = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "es"
languageName = "Español"
weight = 6
title = "Blowfish"
[params]
displayName = "Español"
isoCode = "es"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Un tema potente y ligero para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Un tema potente y ligero para Hugo."
bio = "Un tema potente y ligero para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "fr"
languageName = "Français"
weight = 2
title = "Blowfish"
[params]
displayName = "Français"
isoCode = "fr"
rtl = false
dateFormat = "2 janvier 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Un thème puissant et léger pour Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Un thème puissant et léger pour Hugo."
bio = "Un thème puissant et léger pour Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -1,6 +1,6 @@
languageCode = "it"
languageName = "Italiano"
weight = 2
weight = 4
title = "Blowfish"
[params]
@@ -1,6 +1,6 @@
languageCode = "ja"
languageName = "日本語"
weight = 3
weight = 8
title = "Blowfish"
[params]
@@ -0,0 +1,22 @@
languageCode = "pt-br"
languageName = "Português (Brasil)"
weight = 6
title = "Blowfish"
[params]
displayName = "Português (Brasil)"
isoCode = "pt-br"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Um tema poderoso e leve para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Um tema poderoso e leve para Hugo."
bio = "Um tema poderoso e leve para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -0,0 +1,22 @@
languageCode = "pt-pt"
languageName = "Português (Portugal)"
weight = 5
title = "Blowfish"
[params]
displayName = "Português (Portugal)"
isoCode = "pt-pt"
rtl = false
dateFormat = "2 de January de 2006"
logo = "img/blowfish_logo_transparent.png"
description = "Um tema poderoso e leve para Hugo."
[params.author]
name = "Blowfish"
image = "img/blowfish_logo.png"
headline = "Um tema poderoso e leve para Hugo."
bio = "Um tema poderoso e leve para Hugo."
links = [
{ x-twitter = "https://twitter.com/burufugu" },
{ github = "https://github.com/nunocoracao/blowfish" },
]
@@ -1,6 +1,6 @@
languageCode = "zh-cn"
languageName = "简体中文"
weight = 4
weight = 9
title = "Blowfish"
[params]
+69
View File
@@ -0,0 +1,69 @@
# -- Hauptmenü --
# Das Hauptmenü wird in der Kopfzeile oben auf der Seite angezeigt.
[[main]]
name = "Dokumentation"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Beispiele"
weight = 20
[[main]]
name = "Vorlagen"
parent = "Beispiele"
pageRef = "samples"
weight = 16
[[main]]
name = "Galerie"
parent = "Beispiele"
pageRef = "examples"
weight = 30
[[main]]
name = "Rezepte"
parent = "Beispiele"
pageRef = "guides"
weight = 40
[[main]]
name = "Benutzer"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Fußzeilenmenü --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autoren"
pageRef = "authors"
weight = 20
+69
View File
@@ -0,0 +1,69 @@
# -- Menú Principal --
# El menú principal se muestra en el encabezado en la parte superior de la página.
[[main]]
name = "Documentación"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Ejemplos"
weight = 20
[[main]]
name = "Muestras"
parent = "Ejemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galería"
parent = "Ejemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Recetas"
parent = "Ejemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Usuarios"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menú de Pie de Página --
[[footer]]
name = "Etiquetas"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
+69
View File
@@ -0,0 +1,69 @@
# -- Menu Principal --
# Le menu principal est affiché dans l'en-tête en haut de la page.
[[main]]
name = "Documentation"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemples"
weight = 20
[[main]]
name = "Échantillons"
parent = "Exemples"
pageRef = "samples"
weight = 16
[[main]]
name = "Vitrine"
parent = "Exemples"
pageRef = "examples"
weight = 30
[[main]]
name = "Recettes"
parent = "Exemples"
pageRef = "guides"
weight = 40
[[main]]
name = "Utilisateurs"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu Pied de Page --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Auteurs"
pageRef = "authors"
weight = 20
@@ -0,0 +1,69 @@
# -- Menu Principal --
# O menu principal é exibido no cabeçalho no topo da página.
[[main]]
name = "Documentação"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemplos"
weight = 20
[[main]]
name = "Amostras"
parent = "Exemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galeria"
parent = "Exemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Receitas"
parent = "Exemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Usuários"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu de Rodapé --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
@@ -0,0 +1,69 @@
# -- Menu Principal --
# O menu principal é apresentado no cabeçalho no topo da página.
[[main]]
name = "Documentação"
pageRef = "docs"
weight = 10
[[main]]
name = "Shortcodes"
pageRef = "docs/shortcodes"
weight = 15
[[main]]
name = "Exemplos"
weight = 20
[[main]]
name = "Amostras"
parent = "Exemplos"
pageRef = "samples"
weight = 16
[[main]]
name = "Galeria"
parent = "Exemplos"
pageRef = "examples"
weight = 30
[[main]]
name = "Receitas"
parent = "Exemplos"
pageRef = "guides"
weight = 40
[[main]]
name = "Utilizadores"
pageRef = "users"
weight = 90
[[main]]
name = "Merch"
url = "https://www.teepublic.com/user/blowfish-store/t-shirts"
weight = 100
[[main]]
identifier = "twitter"
pre = "x-twitter"
url = "https://twitter.com/burufugu"
weight = 200
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 400
# -- Menu de Rodapé --
[[footer]]
name = "Tags"
pageRef = "tags"
weight = 10
[[footer]]
name = "Autores"
pageRef = "authors"
weight = 20
+29
View File
@@ -0,0 +1,29 @@
---
title: "Willkommen bei Blowfish! :tada:"
description: "Diese Seite wurde mit dem Blowfish-Theme für Hugo erstellt."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Dies ist eine Demo des <code id="layout">background</code> Layouts.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Layout wechseln &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Blowfish-tools Demo" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "¡Bienvenido a Blowfish! :tada:"
description: "Esta página fue creada usando el tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta es una demostración del layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Cambiar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo de Blowfish-tools" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bienvenue sur Blowfish ! :tada:"
description: "Cette page a été créée avec le thème Blowfish pour Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Ceci est une démo du layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Changer de layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Démo de Blowfish-tools" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bem-vindo ao Blowfish! :tada:"
description: "Esta página foi criada usando o tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta é uma demonstração do layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Mudar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo do Blowfish-tools" >}}
+29
View File
@@ -0,0 +1,29 @@
---
title: "Bem-vindo ao Blowfish! :tada:"
description: "Esta página foi criada utilizando o tema Blowfish para Hugo."
---
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}}
</span>
<span class="flex items-center justify-between grow dark:text-neutral-300">
<span class="prose dark:prose-invert">Esta é uma demonstração do layout <code id="layout">background</code>.</span>
<button
id="switch-layout-button"
class="px-4 mx-[3px] !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
>
Mudar layout &orarr;
</button>
</span>
</div>
```shell
npx blowfish-tools
```
{{< youtubeLite id="SgXhGb-7QbU" label="Demo do Blowfish-tools" >}}
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
Nunos fantastische Beispielbiografie.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
La increíble biografía ficticia de Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
La super bio fictive de Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
A incrível bio fictícia do Nuno.
@@ -0,0 +1,5 @@
---
title: "Nuno Coração"
---
A fantástica biografia fictícia do Nuno.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
Die fantastische Beispielbiografie des zweiten Beispielautors.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
La increíble biografía ficticia del segundo autor ficticio.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
La super bio fictive du deuxième auteur fictif.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
A incrível bio fictícia do segundo autor fictício.
@@ -0,0 +1,5 @@
---
title: "Dummy Second Author"
---
A fantástica biografia fictícia do segundo autor fictício.
+17
View File
@@ -0,0 +1,17 @@
---
title: "Dokumentation"
description: "Erfahren Sie, wie Sie Blowfish und seine Funktionen nutzen können."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Einfach, aber leistungsstark. Erfahren Sie, wie Sie Blowfish und seine Funktionen nutzen können.
{{< /lead >}}
Dieser Abschnitt enthält alles, was Sie über Blowfish wissen müssen. Wenn Sie neu sind, lesen Sie den [Installations]({{< ref "docs/installation" >}})-Leitfaden, um zu beginnen, oder besuchen Sie den Bereich [Beispiele]({{< ref "samples" >}}), um zu sehen, was Blowfish kann.
---
+17
View File
@@ -0,0 +1,17 @@
---
title: "Documentación"
description: "Aprende a usar Blowfish y sus características."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Simple, pero potente. Aprende a usar Blowfish y sus características.
{{< /lead >}}
Esta sección contiene todo lo que necesitas saber sobre Blowfish. Si eres nuevo, consulta la guía de [Instalación]({{< ref "docs/installation" >}}) para comenzar o visita la sección de [Ejemplos]({{< ref "samples" >}}) para ver lo que Blowfish puede hacer.
---
+17
View File
@@ -0,0 +1,17 @@
---
title: "Documentation"
description: "Apprenez à utiliser Blowfish et ses fonctionnalités."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Simple, mais puissant. Apprenez à utiliser Blowfish et ses fonctionnalités.
{{< /lead >}}
Cette section contient tout ce que vous devez savoir sur Blowfish. Si vous êtes nouveau, consultez le guide d'[Installation]({{< ref "docs/installation" >}}) pour commencer ou visitez la section [Exemples]({{< ref "samples" >}}) pour voir ce que Blowfish peut faire.
---
+17
View File
@@ -0,0 +1,17 @@
---
title: "Documentação"
description: "Aprenda a usar o Blowfish e seus recursos."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Simples, mas poderoso. Aprenda a usar o Blowfish e seus recursos.
{{< /lead >}}
Esta seção contém tudo o que você precisa saber sobre o Blowfish. Se você é novo, confira o guia de [Instalação]({{< ref "docs/installation" >}}) para começar ou visite a seção de [Exemplos]({{< ref "samples" >}}) para ver o que o Blowfish pode fazer.
---
+17
View File
@@ -0,0 +1,17 @@
---
title: "Documentação"
description: "Aprenda a utilizar o Blowfish e as suas funcionalidades."
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Simples, mas poderoso. Aprenda a utilizar o Blowfish e as suas funcionalidades.
{{< /lead >}}
Esta secção contém tudo o que precisa de saber sobre o Blowfish. Se é novo, consulte o guia de [Instalação]({{< ref "docs/installation" >}}) para começar ou visite a secção de [Exemplos]({{< ref "samples" >}}) para ver o que o Blowfish pode fazer.
---
@@ -0,0 +1,265 @@
---
title: "Erweiterte Anpassung"
weight: 13
draft: false
description: "Erfahren Sie, wie Sie Blowfish manuell erstellen."
slug: "advanced-customisation"
tags: ["erweitert", "css", "dokumentation"]
series: ["Dokumentation"]
series_order: 13
---
Es gibt viele Möglichkeiten, erweiterte Änderungen an Blowfish vorzunehmen. Lesen Sie unten, um mehr darüber zu erfahren, was angepasst werden kann und wie Sie das gewünschte Ergebnis am besten erreichen.
Wenn Sie weitere Ratschläge benötigen, stellen Sie Ihre Fragen in den [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Hugo-Projektstruktur
Bevor wir loslegen, zunächst ein kurzer Hinweis zur [Hugo-Projektstruktur](https://gohugo.io/getting-started/directory-structure/) und bewährten Methoden zur Verwaltung Ihrer Inhalte und Theme-Anpassungen.
{{< alert >}}
**Zusammenfassung:** Bearbeiten Sie niemals direkt die Theme-Dateien. Nehmen Sie Anpassungen nur in den Unterverzeichnissen Ihres Hugo-Projekts vor, nicht im themes-Verzeichnis selbst.
{{< /alert >}}
Blowfish wurde entwickelt, um alle Standard-Hugo-Praktiken zu nutzen. Es ist so konzipiert, dass alle Aspekte des Themes angepasst und überschrieben werden können, ohne die Kern-Theme-Dateien zu ändern. Dies ermöglicht ein nahtloses Upgrade-Erlebnis und gibt Ihnen gleichzeitig die volle Kontrolle über das Aussehen und die Handhabung Ihrer Website.
Um dies zu erreichen, sollten Sie niemals manuell Theme-Dateien direkt anpassen. Ob Sie Hugo-Module verwenden, als Git-Submodul installieren oder das Theme manuell in Ihrem `themes/`-Verzeichnis einbinden, Sie sollten diese Dateien immer intakt lassen.
Der richtige Weg, Theme-Verhalten anzupassen, ist das Überschreiben von Dateien mithilfe der leistungsfähigen Hugo [Datei-Suchreihenfolge](https://gohugo.io/templates/lookup-order/). Zusammenfassend stellt die Suchreihenfolge sicher, dass alle Dateien, die Sie in Ihr Projektverzeichnis einbinden, automatisch Vorrang vor Theme-Dateien haben.
Wenn Sie beispielsweise das Hauptartikel-Template in Blowfish überschreiben möchten, können Sie einfach Ihre eigene `layouts/_default/single.html`-Datei erstellen und sie im Root Ihres Projekts platzieren. Diese Datei überschreibt dann die `single.html` aus dem Theme, ohne das Theme selbst zu ändern. Dies funktioniert für alle Theme-Dateien - HTML-Templates, Partials, Shortcodes, Konfigurationsdateien, Daten, Assets, etc.
Solange Sie diese einfache Praxis befolgen, können Sie das Theme immer aktualisieren (oder verschiedene Theme-Versionen testen), ohne sich Sorgen machen zu müssen, dass Sie Ihre benutzerdefinierten Änderungen verlieren.
## Bildoptimierungseinstellungen ändern
Hugo verfügt über verschiedene integrierte Methoden zum Ändern der Größe, Zuschneiden und Optimieren von Bildern.
Als Beispiel - in `layouts/partials/article-link/card.html` haben Sie folgenden Code:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
Das Standardverhalten von Hugo hier ist, die Bildgröße auf 600px unter Beibehaltung des Seitenverhältnisses zu ändern.
Es ist erwähnenswert, dass Standard-Bildkonfigurationen wie der [Ankerpunkt](https://gohugo.io/content-management/image-processing/#anchor) auch in Ihrer [Site-Konfiguration](https://gohugo.io/content-management/image-processing/#processing-options) sowie im Template selbst festgelegt werden können.
Weitere Informationen finden Sie in den [Hugo-Dokumenten zur Bildverarbeitung](https://gohugo.io/content-management/image-processing/#image-processing-methods).
## Farbschemata
Blowfish wird mit einer Reihe von Farbschemata ausgeliefert. Um das grundlegende Farbschema zu ändern, können Sie den Theme-Parameter `colorScheme` festlegen. Lesen Sie den Abschnitt [Erste Schritte]({{< ref "getting-started#colour-schemes" >}}), um mehr über die integrierten Schemata zu erfahren.
Zusätzlich zu den Standardschemata können Sie auch eigene erstellen und die gesamte Website nach Ihren Wünschen gestalten. Schemata werden erstellt, indem Sie eine `<schema-name>.css`-Datei im Ordner `assets/css/schemes/` platzieren. Sobald die Datei erstellt ist, verweisen Sie einfach in der Theme-Konfiguration mit dem Namen darauf.
{{< alert "github">}}
**Hinweis:** Die manuelle Generierung dieser Dateien kann schwierig sein. Ich habe ein `nodejs`-Terminal-Tool entwickelt, um dabei zu helfen: [Fugu](https://github.com/nunocoracao/fugu). Im Wesentlichen übergeben Sie die drei Haupt-`hex`-Werte Ihrer Farbpalette und das Programm gibt eine CSS-Datei aus, die direkt in Blowfish importiert werden kann.
{{< /alert >}}
Blowfish definiert eine Drei-Farben-Palette, die im gesamten Theme verwendet wird. Die drei Farben sind als `neutral`, `primary` und `secondary` Varianten definiert, jeweils mit zehn Farbstufen.
Aufgrund der Art und Weise, wie Tailwind CSS 3.0 Farbwerte mit Deckkraft berechnet, müssen die im Schema angegebenen Farben einem [bestimmten Format entsprechen](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo), indem sie die Rot-, Grün- und Blau-Farbwerte angeben.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
Dieses Beispiel definiert eine CSS-Variable für die `primary-500`-Farbe mit einem Rotwert von `139`, Grünwert von `92` und Blauwert von `246`.
Verwenden Sie eines der vorhandenen Theme-Stylesheets als Vorlage. Sie können Ihre eigenen Farben definieren, aber zur Inspiration schauen Sie sich die offizielle [Tailwind-Farbpaletten-Referenz](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) an.
## Das Stylesheet überschreiben
Manchmal müssen Sie einen benutzerdefinierten Stil hinzufügen, um Ihre eigenen HTML-Elemente zu gestalten. Blowfish bietet diese Möglichkeit, indem Sie die Standardstile in Ihrem eigenen CSS-Stylesheet überschreiben können. Erstellen Sie einfach eine `custom.css`-Datei im Ordner `assets/css/` Ihres Projekts.
Die `custom.css`-Datei wird von Hugo minimiert und automatisch nach allen anderen Theme-Stilen geladen, was bedeutet, dass alles in Ihrer benutzerdefinierten Datei Vorrang vor den Standardeinstellungen hat.
### Zusätzliche Schriftarten verwenden
Blowfish ermöglicht es Ihnen, die Schriftart für Ihre Website einfach zu ändern. Nachdem Sie eine `custom.css`-Datei im Ordner `assets/css/` Ihres Projekts erstellt haben, platzieren Sie Ihre Schriftdatei in einem `fonts`-Ordner innerhalb des `static`-Root-Ordners.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
Dies macht die Schriftart für die Website verfügbar. Jetzt kann die Schriftart einfach in Ihrer `custom.css` importiert und ersetzt werden, wo immer Sie es für richtig halten. Das folgende Beispiel zeigt, wie das Ersetzen der Schriftart für das gesamte `html` aussehen würde.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Schriftgröße anpassen
Das Ändern der Schriftgröße Ihrer Website ist ein Beispiel für das Überschreiben des Standard-Stylesheets. Blowfish macht dies einfach, da es im gesamten Theme skalierte Schriftgrößen verwendet, die von der Basis-HTML-Schriftgröße abgeleitet werden. Standardmäßig setzt Tailwind die Standardgröße auf `12pt`, aber sie kann auf jeden beliebigen Wert geändert werden.
Erstellen Sie eine `custom.css`-Datei gemäß den [obigen Anweisungen]({{< ref "#overriding-the-stylesheet" >}}) und fügen Sie die folgende CSS-Deklaration hinzu:
```css
/* Standardschriftgröße erhöhen */
html {
font-size: 13pt;
}
```
Allein durch das Ändern dieses einen Wertes werden alle Schriftgrößen auf Ihrer Website an diese neue Größe angepasst. Um also die insgesamt verwendeten Schriftgrößen zu erhöhen, machen Sie den Wert größer als `12pt`. Um die Schriftgrößen zu verringern, machen Sie den Wert kleiner als `12pt`.
### Syntax-Highlighting-Theme ändern
Um das Syntax-Highlighting-Theme zu ändern, erstellen Sie `assets/css/custom.css` und fügen Sie Folgendes hinzu:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
font-style: unset;
}
```
Dies löscht die Standard-Chroma-Stile. Der nächste Schritt ist, Chroma-Stile in Ihre CSS-Datei mit dem Befehl `hugo gen chromastyles` einzubinden:
```sh
# Mac/Linux
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# Dieser Befehl kann nicht in CMD ausgeführt werden; er muss in PowerShell ausgeführt werden
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
Alle verfügbaren Stile finden Sie in [Hugos Dokumentation](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
## Das Theme-CSS aus dem Quellcode erstellen
Wenn Sie eine größere Änderung vornehmen möchten, können Sie den Tailwind CSS JIT-Compiler nutzen und das gesamte Theme-CSS von Grund auf neu erstellen. Dies ist nützlich, wenn Sie die Tailwind-Konfiguration anpassen oder zusätzliche Tailwind-Klassen zum Haupt-Stylesheet hinzufügen möchten.
{{< alert >}}
**Hinweis:** Das manuelle Erstellen des Themes ist für fortgeschrittene Benutzer gedacht.
{{< /alert >}}
Lassen Sie uns durchgehen, wie das Erstellen des Tailwind CSS funktioniert.
### Tailwind-Konfiguration
Um eine CSS-Datei zu generieren, die nur die Tailwind-Klassen enthält, die tatsächlich verwendet werden, muss der JIT-Compiler alle HTML-Templates und Markdown-Inhaltsdateien scannen, um zu überprüfen, welche Stile im Markup vorhanden sind. Der Compiler macht dies, indem er die Datei `tailwind.config.js` betrachtet, die im Root-Verzeichnis des Themes enthalten ist:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// und mehr...
};
```
Diese Standardkonfiguration enthält diese Inhaltspfade, damit Sie Ihre eigene CSS-Datei einfach generieren können, ohne sie ändern zu müssen, vorausgesetzt Sie folgen einer bestimmten Projektstruktur. Nämlich **müssen Sie Blowfish in Ihrem Projekt als Unterverzeichnis unter `themes/blowfish/` einbinden**. Dies bedeutet, dass Sie das Theme nicht einfach mit Hugo-Modulen installieren können und Sie müssen entweder den Git-Submodule-Weg (empfohlen) oder den manuellen Installationsweg gehen. Die [Installationsdokumentation]({{< ref "installation" >}}) erklärt, wie Sie das Theme mit einer dieser Methoden installieren.
### Projektstruktur
Um die Standardkonfiguration zu nutzen, sollte Ihr Projekt etwa so aussehen...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # dies ist die Datei, die wir generieren werden
├── config # Site-Konfiguration
│ └── _default
├── content # Site-Inhalt
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # benutzerdefinierte Layouts für Ihre Site
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # Git-Submodul oder manuelle Theme-Installation
```
Diese Beispielstruktur fügt einen neuen `projects`-Inhaltstyp mit eigenem benutzerdefinierten Layout zusammen mit einem benutzerdefinierten Shortcode und erweiterten Partial hinzu. Sofern das Projekt dieser Struktur folgt, muss nur die `main.css`-Datei neu kompiliert werden.
### Abhängigkeiten installieren
Damit dies funktioniert, müssen Sie in das Verzeichnis `themes/blowfish/` wechseln und die Projektabhängigkeiten installieren. Sie benötigen [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) auf Ihrem lokalen Rechner für diesen Schritt.
```shell
cd themes/blowfish
npm install
```
### Tailwind-Compiler ausführen
Mit den installierten Abhängigkeiten bleibt nur noch, die [Tailwind CLI](https://tailwindcss.com/docs/installation/tailwind-cli) zu verwenden, um den JIT-Compiler aufzurufen. Navigieren Sie zurück zum Root Ihres Hugo-Projekts und geben Sie folgenden Befehl ein:
```shell
cd ../..
./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
Es ist ein etwas unschöner Befehl aufgrund der beteiligten Pfade, aber im Wesentlichen rufen Sie die Tailwind CLI auf und übergeben ihr den Speicherort der Tailwind-Konfigurationsdatei (die wir oben betrachtet haben), wo die `main.css`-Datei des Themes zu finden ist und wohin Sie die kompilierte CSS-Datei platzieren möchten (sie geht in den Ordner `assets/css/compiled/` Ihres Hugo-Projekts).
Die Konfigurationsdatei scannt automatisch alle Inhalte und Layouts in Ihrem Projekt sowie alle im Theme und erstellt eine neue CSS-Datei, die alle für Ihre Website erforderlichen CSS enthält. Aufgrund der Art, wie Hugo die Dateihierarchie handhabt, überschreibt diese Datei in Ihrem Projekt nun automatisch die, die mit dem Theme geliefert wird.
Jedes Mal, wenn Sie Änderungen an Ihren Layouts vornehmen und neue Tailwind CSS-Stile benötigen, können Sie einfach den Befehl erneut ausführen und die neue CSS-Datei generieren. Sie können auch `-w` am Ende des Befehls hinzufügen, um den JIT-Compiler im Watch-Modus auszuführen.
### Ein Build-Skript erstellen
Um diese ganze Lösung abzurunden, können Sie diesen gesamten Prozess vereinfachen, indem Sie Aliase für diese Befehle hinzufügen, oder tun Sie, was ich tue, und fügen Sie eine `package.json` zum Root Ihres Projekts hinzu, die die notwendigen Skripte enthält...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// und mehr...
}
```
Wenn Sie nun am Design Ihrer Site arbeiten möchten, können Sie `npm run dev` aufrufen und der Compiler wird im Watch-Modus ausgeführt. Wenn Sie bereit zur Bereitstellung sind, führen Sie `npm run build` aus und Sie erhalten einen sauberen Tailwind CSS-Build.
🙋‍♀️ Wenn Sie Hilfe benötigen, können Sie gerne eine Frage in den [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions) stellen.
@@ -0,0 +1,265 @@
---
title: "Personalización avanzada"
weight: 13
draft: false
description: "Aprende cómo construir Blowfish manualmente."
slug: "advanced-customisation"
tags: ["avanzado", "css", "documentación"]
series: ["Documentación"]
series_order: 13
---
Hay muchas formas de hacer cambios avanzados a Blowfish. Lee a continuación para aprender más sobre qué se puede personalizar y la mejor manera de lograr el resultado deseado.
Si necesitas más consejos, publica tus preguntas en [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Estructura del proyecto Hugo
Antes de empezar, primero una nota rápida sobre la [estructura del proyecto Hugo](https://gohugo.io/getting-started/directory-structure/) y las mejores prácticas para gestionar tu contenido y personalizaciones del tema.
{{< alert >}}
**En resumen:** Nunca edites directamente los archivos del tema. Solo haz personalizaciones en los subdirectorios de tu proyecto Hugo, no en el directorio themes en sí.
{{< /alert >}}
Blowfish está construido para aprovechar todas las prácticas estándar de Hugo. Está diseñado para permitir que todos los aspectos del tema se personalicen y anulen sin cambiar ninguno de los archivos del tema principal. Esto permite una experiencia de actualización sin problemas mientras te da control total sobre la apariencia y el comportamiento de tu sitio web.
Para lograr esto, nunca deberías ajustar manualmente ninguno de los archivos del tema directamente. Ya sea que instales usando módulos Hugo, como un submódulo git o incluyas manualmente el tema en tu directorio `themes/`, siempre debes dejar estos archivos intactos.
La forma correcta de ajustar cualquier comportamiento del tema es anulando archivos usando el poderoso [orden de búsqueda de archivos](https://gohugo.io/templates/lookup-order/) de Hugo. En resumen, el orden de búsqueda asegura que cualquier archivo que incluyas en el directorio de tu proyecto tendrá automáticamente prioridad sobre cualquier archivo del tema.
Por ejemplo, si quisieras anular el template principal de artículo en Blowfish, simplemente puedes crear tu propio archivo `layouts/_default/single.html` y colocarlo en la raíz de tu proyecto. Este archivo luego anulará el `single.html` del tema sin cambiar nunca el tema en sí. Esto funciona para cualquier archivo del tema - templates HTML, partials, shortcodes, archivos de configuración, datos, assets, etc.
Mientras sigas esta práctica simple, siempre podrás actualizar el tema (o probar diferentes versiones del tema) sin preocuparte de perder ninguna de tus modificaciones personalizadas.
## Cambiar configuraciones de optimización de imagen
Hugo tiene varios métodos incorporados para redimensionar, recortar y optimizar imágenes.
Como ejemplo - en `layouts/partials/article-link/card.html`, tienes el siguiente código:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
El comportamiento predeterminado de Hugo aquí es redimensionar la imagen a 600px manteniendo la proporción.
Vale la pena notar que las configuraciones de imagen predeterminadas como el [punto de anclaje](https://gohugo.io/content-management/image-processing/#anchor) también se pueden establecer en tu [configuración del sitio](https://gohugo.io/content-management/image-processing/#processing-options) así como en el template mismo.
Consulta los [docs de Hugo sobre procesamiento de imágenes](https://gohugo.io/content-management/image-processing/#image-processing-methods) para más información.
## Esquemas de color
Blowfish viene con varios esquemas de color listos para usar. Para cambiar el esquema de color básico, puedes establecer el parámetro del tema `colorScheme`. Consulta la sección [Primeros pasos]({{< ref "getting-started#colour-schemes" >}}) para aprender más sobre los esquemas incorporados.
Además de los esquemas predeterminados, también puedes crear los tuyos propios y re-estilizar todo el sitio web a tu gusto. Los esquemas se crean colocando un archivo `<nombre-esquema>.css` en la carpeta `assets/css/schemes/`. Una vez creado el archivo, simplemente refiérete a él por su nombre en la configuración del tema.
{{< alert "github">}}
**Nota:** generar estos archivos manualmente puede ser difícil, he construido una herramienta de terminal `nodejs` para ayudar con eso, [Fugu](https://github.com/nunocoracao/fugu). En resumen, pasas los tres valores `hex` principales de tu paleta de colores y el programa producirá un archivo css que puede ser importado directamente en Blowfish.
{{< /alert >}}
Blowfish define una paleta de tres colores que se usa en todo el tema. Los tres colores se definen como variantes `neutral`, `primary` y `secondary`, cada una conteniendo diez tonos de color.
Debido a la forma en que Tailwind CSS 3.0 calcula los valores de color con opacidad, los colores especificados en el esquema necesitan [conformarse a un formato particular](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) proporcionando los valores de color rojo, verde y azul.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
Este ejemplo define una variable CSS para el color `primary-500` con un valor rojo de `139`, valor verde de `92` y valor azul de `246`.
Usa una de las hojas de estilo existentes del tema como plantilla. Eres libre de definir tus propios colores, pero para inspiración, consulta la [referencia de paleta de colores de Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) oficial.
## Anular la hoja de estilos
A veces necesitas añadir un estilo personalizado para estilizar tus propios elementos HTML. Blowfish provee para este escenario permitiéndote anular los estilos predeterminados en tu propia hoja de estilos CSS. Simplemente crea un archivo `custom.css` en la carpeta `assets/css/` de tu proyecto.
El archivo `custom.css` será minificado por Hugo y cargado automáticamente después de todos los otros estilos del tema lo que significa que cualquier cosa en tu archivo personalizado tendrá prioridad sobre los valores predeterminados.
### Usar fuentes adicionales
Blowfish te permite cambiar fácilmente la fuente de tu sitio. Después de crear un archivo `custom.css` en la carpeta `assets/css/` de tu proyecto, coloca tu archivo de fuente dentro de una carpeta `fonts` en la carpeta raíz `static`.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
Esto hace que la fuente esté disponible para el sitio web. Ahora, la fuente simplemente puede ser importada en tu `custom.css` y reemplazada donde lo veas conveniente. El ejemplo de abajo muestra cómo se vería reemplazar la fuente para todo el `html`.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Ajustar el tamaño de fuente
Cambiar el tamaño de fuente de tu sitio web es un ejemplo de anular la hoja de estilos predeterminada. Blowfish hace esto simple ya que usa tamaños de fuente escalados en todo el tema que se derivan del tamaño de fuente HTML base. Por defecto, Tailwind establece el tamaño predeterminado en `12pt`, pero puede cambiarse a cualquier valor que prefieras.
Crea un archivo `custom.css` usando las [instrucciones de arriba]({{< ref "#overriding-the-stylesheet" >}}) y añade la siguiente declaración CSS:
```css
/* Aumentar el tamaño de fuente predeterminado */
html {
font-size: 13pt;
}
```
Simplemente cambiando este único valor, todos los tamaños de fuente en tu sitio web se ajustarán para coincidir con este nuevo tamaño. Por lo tanto, para aumentar los tamaños de fuente generales usados, haz el valor mayor que `12pt`. De manera similar, para disminuir los tamaños de fuente, haz el valor menor que `12pt`.
### Cambiar el tema de resaltado de sintaxis
Para cambiar el tema de resaltado de sintaxis, crea `assets/css/custom.css` y añade lo siguiente:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
font-style: unset;
}
```
Esto limpia los estilos predeterminados de Chroma. El siguiente paso es incorporar estilos de Chroma en tu archivo CSS usando el comando `hugo gen chromastyles`:
```sh
# Mac/Linux
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# Este comando no puede ejecutarse en CMD; debe ejecutarse en PowerShell
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
Consulta todos los estilos disponibles en la [documentación de Hugo](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
## Construir el CSS del tema desde la fuente
Si quisieras hacer un cambio mayor, puedes aprovechar el compilador JIT de Tailwind CSS y reconstruir todo el CSS del tema desde cero. Esto es útil si quieres ajustar la configuración de Tailwind o añadir clases extra de Tailwind a la hoja de estilos principal.
{{< alert >}}
**Nota:** Construir el tema manualmente está pensado para usuarios avanzados.
{{< /alert >}}
Repasemos cómo funciona la construcción del Tailwind CSS.
### Configuración de Tailwind
Para generar un archivo CSS que solo contenga las clases de Tailwind que realmente se están usando, el compilador JIT necesita escanear todos los templates HTML y archivos de contenido Markdown para verificar qué estilos están presentes en el markup. El compilador hace esto mirando el archivo `tailwind.config.js` que está incluido en la raíz del directorio del tema:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// y más...
};
```
Esta configuración predeterminada ha sido incluida con estas rutas de contenido para que puedas generar fácilmente tu propio archivo CSS sin necesidad de modificarla, siempre que sigas una estructura de proyecto particular. Es decir, **tienes que incluir Blowfish en tu proyecto como un subdirectorio en `themes/blowfish/`**. Esto significa que no puedes usar fácilmente los módulos Hugo para instalar el tema y debes optar por la instalación por submódulo git (recomendado) o la instalación manual. Los [docs de instalación]({{< ref "installation" >}}) explican cómo instalar el tema usando cualquiera de estos métodos.
### Estructura del proyecto
Para aprovechar la configuración predeterminada, tu proyecto debería verse algo así...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # este es el archivo que generaremos
├── config # config del sitio
│ └── _default
├── content # contenido del sitio
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # layouts personalizados para tu sitio
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # submódulo git o instalación manual del tema
```
Esta estructura de ejemplo añade un nuevo tipo de contenido `projects` con su propio layout personalizado junto con un shortcode personalizado y partial extendido. Siempre que el proyecto siga esta estructura, todo lo que se requiere es recompilar el archivo `main.css`.
### Instalar dependencias
Para que esto funcione necesitarás cambiar al directorio `themes/blowfish/` e instalar las dependencias del proyecto. Necesitarás [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) en tu máquina local para este paso.
```shell
cd themes/blowfish
npm install
```
### Ejecutar el compilador de Tailwind
Con las dependencias instaladas, todo lo que queda es usar [Tailwind CLI](https://tailwindcss.com/docs/installation/tailwind-cli) para invocar el compilador JIT. Navega de vuelta a la raíz de tu proyecto Hugo y ejecuta el siguiente comando:
```shell
cd ../..
./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
Es un comando un poco feo debido a las rutas involucradas pero esencialmente estás llamando a Tailwind CLI y pasándole la ubicación del archivo de config de Tailwind (el que vimos arriba), dónde encontrar el archivo `main.css` del tema y luego dónde quieres que se coloque el archivo CSS compilado (va a la carpeta `assets/css/compiled/` de tu proyecto Hugo).
El archivo de config escaneará automáticamente todo el contenido y layouts en tu proyecto así como todos los del tema y construirá un nuevo archivo CSS que contiene todo el CSS requerido para tu sitio web. Debido a la forma en que Hugo maneja la jerarquía de archivos, este archivo en tu proyecto ahora anulará automáticamente el que viene con el tema.
Cada vez que hagas un cambio en tus layouts y necesites nuevos estilos de Tailwind CSS, simplemente puedes volver a ejecutar el comando y generar el nuevo archivo CSS. También puedes añadir `-w` al final del comando para ejecutar el compilador JIT en modo watch.
### Crear un script de build
Para completar completamente esta solución, puedes simplificar todo este proceso añadiendo alias para estos comandos, o hacer lo que yo hago y añadir un `package.json` a la raíz de tu proyecto que contenga los scripts necesarios...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// y más...
}
```
Ahora cuando quieras trabajar en el diseño de tu sitio, puedes invocar `npm run dev` y el compilador se ejecutará en modo watch. Cuando estés listo para desplegar, ejecuta `npm run build` y tendrás un build limpio de Tailwind CSS.
🙋‍♀️ Si necesitas ayuda, siéntete libre de hacer una pregunta en [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
@@ -0,0 +1,265 @@
---
title: "Personnalisation avancée"
weight: 13
draft: false
description: "Apprenez à construire Blowfish manuellement."
slug: "advanced-customisation"
tags: ["avancé", "css", "documentation"]
series: ["Documentation"]
series_order: 13
---
Il existe de nombreuses façons d'apporter des modifications avancées à Blowfish. Lisez ci-dessous pour en savoir plus sur ce qui peut être personnalisé et la meilleure façon d'atteindre le résultat souhaité.
Si vous avez besoin de conseils supplémentaires, posez vos questions sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Structure du projet Hugo
Avant de se lancer, d'abord un petit mot sur la [structure du projet Hugo](https://gohugo.io/getting-started/directory-structure/) et les meilleures pratiques pour gérer votre contenu et les personnalisations de thème.
{{< alert >}}
**En résumé :** Ne modifiez jamais directement les fichiers du thème. Faites uniquement des personnalisations dans les sous-répertoires de votre projet Hugo, pas dans le répertoire themes lui-même.
{{< /alert >}}
Blowfish est construit pour tirer parti de toutes les pratiques standard de Hugo. Il est conçu pour permettre la personnalisation et le remplacement de tous les aspects du thème sans modifier aucun des fichiers du thème de base. Cela permet une expérience de mise à niveau transparente tout en vous donnant un contrôle total sur l'apparence et le comportement de votre site web.
Pour y parvenir, vous ne devriez jamais ajuster manuellement les fichiers du thème directement. Que vous installiez en utilisant les modules Hugo, comme un sous-module git ou que vous incluiez manuellement le thème dans votre répertoire `themes/`, vous devriez toujours laisser ces fichiers intacts.
La bonne façon d'ajuster le comportement du thème est de remplacer les fichiers en utilisant le puissant [ordre de recherche de fichiers](https://gohugo.io/templates/lookup-order/) de Hugo. En résumé, l'ordre de recherche garantit que tous les fichiers que vous incluez dans votre répertoire de projet auront automatiquement priorité sur les fichiers du thème.
Par exemple, si vous vouliez remplacer le template d'article principal dans Blowfish, vous pouvez simplement créer votre propre fichier `layouts/_default/single.html` et le placer à la racine de votre projet. Ce fichier remplacera alors le `single.html` du thème sans jamais modifier le thème lui-même. Cela fonctionne pour tous les fichiers du thème - templates HTML, partials, shortcodes, fichiers de configuration, données, assets, etc.
Tant que vous suivez cette pratique simple, vous pourrez toujours mettre à jour le thème (ou tester différentes versions du thème) sans vous soucier de perdre vos modifications personnalisées.
## Modifier les paramètres d'optimisation d'image
Hugo dispose de diverses méthodes intégrées pour redimensionner, recadrer et optimiser les images.
À titre d'exemple - dans `layouts/partials/article-link/card.html`, vous avez le code suivant :
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
Le comportement par défaut de Hugo ici est de redimensionner l'image à 600px en conservant le ratio.
Il est à noter que les configurations d'image par défaut telles que le [point d'ancrage](https://gohugo.io/content-management/image-processing/#anchor) peuvent également être définies dans votre [configuration de site](https://gohugo.io/content-management/image-processing/#processing-options) ainsi que dans le template lui-même.
Voir les [docs Hugo sur le traitement d'image](https://gohugo.io/content-management/image-processing/#image-processing-methods) pour plus d'infos.
## Schémas de couleurs
Blowfish est livré avec plusieurs schémas de couleurs prêts à l'emploi. Pour changer le schéma de couleurs de base, vous pouvez définir le paramètre de thème `colorScheme`. Référez-vous à la section [Premiers pas]({{< ref "getting-started#colour-schemes" >}}) pour en savoir plus sur les schémas intégrés.
En plus des schémas par défaut, vous pouvez également créer les vôtres et restyler l'ensemble du site web selon vos goûts. Les schémas sont créés en plaçant un fichier `<nom-du-schema>.css` dans le dossier `assets/css/schemes/`. Une fois le fichier créé, référencez-le simplement par son nom dans la configuration du thème.
{{< alert "github">}}
**Note :** générer ces fichiers manuellement peut être difficile, j'ai créé un outil terminal `nodejs` pour aider avec cela, [Fugu](https://github.com/nunocoracao/fugu). En bref, vous passez les trois principales valeurs `hex` de votre palette de couleurs et le programme produira un fichier css qui peut être importé directement dans Blowfish.
{{< /alert >}}
Blowfish définit une palette de trois couleurs qui est utilisée tout au long du thème. Les trois couleurs sont définies comme variantes `neutral`, `primary` et `secondary`, chacune contenant dix nuances de couleur.
En raison de la façon dont Tailwind CSS 3.0 calcule les valeurs de couleur avec l'opacité, les couleurs spécifiées dans le schéma doivent [se conformer à un format particulier](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) en fournissant les valeurs de couleur rouge, vert et bleu.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
Cet exemple définit une variable CSS pour la couleur `primary-500` avec une valeur rouge de `139`, une valeur verte de `92` et une valeur bleue de `246`.
Utilisez l'une des feuilles de style du thème existantes comme modèle. Vous êtes libre de définir vos propres couleurs, mais pour l'inspiration, consultez la [référence de palette de couleurs Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) officielle.
## Remplacer la feuille de style
Parfois vous devez ajouter un style personnalisé pour styliser vos propres éléments HTML. Blowfish prévoit ce scénario en vous permettant de remplacer les styles par défaut dans votre propre feuille de style CSS. Créez simplement un fichier `custom.css` dans le dossier `assets/css/` de votre projet.
Le fichier `custom.css` sera minifié par Hugo et chargé automatiquement après tous les autres styles du thème, ce qui signifie que tout dans votre fichier personnalisé aura priorité sur les valeurs par défaut.
### Utiliser des polices supplémentaires
Blowfish vous permet de changer facilement la police de votre site. Après avoir créé un fichier `custom.css` dans le dossier `assets/css/` de votre projet, placez votre fichier de police dans un dossier `fonts` dans le dossier racine `static`.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
Cela rend la police disponible pour le site web. Maintenant, la police peut simplement être importée dans votre `custom.css` et remplacée où vous le jugez bon. L'exemple ci-dessous montre à quoi ressemblerait le remplacement de la police pour tout le `html`.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Ajuster la taille de police
Changer la taille de police de votre site web est un exemple de remplacement de la feuille de style par défaut. Blowfish rend cela simple car il utilise des tailles de police mises à l'échelle tout au long du thème qui sont dérivées de la taille de police HTML de base. Par défaut, Tailwind définit la taille par défaut à `12pt`, mais elle peut être changée selon votre préférence.
Créez un fichier `custom.css` en utilisant les [instructions ci-dessus]({{< ref "#overriding-the-stylesheet" >}}) et ajoutez la déclaration CSS suivante :
```css
/* Augmenter la taille de police par défaut */
html {
font-size: 13pt;
}
```
Simplement en changeant cette seule valeur, toutes les tailles de police sur votre site web seront ajustées pour correspondre à cette nouvelle taille. Par conséquent, pour augmenter les tailles de police globales utilisées, faites la valeur plus grande que `12pt`. De même, pour diminuer les tailles de police, faites la valeur plus petite que `12pt`.
### Changer le thème de coloration syntaxique
Pour changer le thème de coloration syntaxique, créez `assets/css/custom.css` et ajoutez ce qui suit :
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
font-style: unset;
}
```
Cela efface les styles Chroma par défaut. L'étape suivante est d'incorporer les styles Chroma dans votre fichier CSS en utilisant la commande `hugo gen chromastyles` :
```sh
# Mac/Linux
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# Cette commande ne peut pas s'exécuter dans CMD ; elle doit s'exécuter dans PowerShell
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
Voir tous les styles disponibles dans la [documentation de Hugo](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
## Construire le CSS du thème depuis la source
Si vous souhaitez faire une modification majeure, vous pouvez tirer parti du compilateur JIT de Tailwind CSS et reconstruire tout le CSS du thème à partir de zéro. C'est utile si vous voulez ajuster la configuration Tailwind ou ajouter des classes Tailwind supplémentaires à la feuille de style principale.
{{< alert >}}
**Note :** Construire le thème manuellement est destiné aux utilisateurs avancés.
{{< /alert >}}
Voyons comment fonctionne la construction du Tailwind CSS.
### Configuration Tailwind
Pour générer un fichier CSS qui contient uniquement les classes Tailwind qui sont réellement utilisées, le compilateur JIT doit scanner tous les templates HTML et fichiers de contenu Markdown pour vérifier quels styles sont présents dans le markup. Le compilateur fait cela en regardant le fichier `tailwind.config.js` qui est inclus à la racine du répertoire du thème :
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// et plus...
};
```
Cette configuration par défaut a été incluse avec ces chemins de contenu afin que vous puissiez facilement générer votre propre fichier CSS sans avoir besoin de la modifier, à condition de suivre une structure de projet particulière. À savoir, **vous devez inclure Blowfish dans votre projet comme un sous-répertoire à `themes/blowfish/`**. Cela signifie que vous ne pouvez pas facilement utiliser les modules Hugo pour installer le thème et vous devez opter pour l'installation par sous-module git (recommandé) ou l'installation manuelle. Les [docs d'installation]({{< ref "installation" >}}) expliquent comment installer le thème en utilisant l'une de ces méthodes.
### Structure du projet
Pour tirer parti de la configuration par défaut, votre projet devrait ressembler à quelque chose comme ceci...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # c'est le fichier que nous allons générer
├── config # config du site
│ └── _default
├── content # contenu du site
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # layouts personnalisés pour votre site
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # sous-module git ou installation manuelle du thème
```
Cette structure d'exemple ajoute un nouveau type de contenu `projects` avec son propre layout personnalisé ainsi qu'un shortcode personnalisé et un partial étendu. Pourvu que le projet suive cette structure, tout ce qui est requis est de recompiler le fichier `main.css`.
### Installer les dépendances
Pour que cela fonctionne, vous devrez vous déplacer dans le répertoire `themes/blowfish/` et installer les dépendances du projet. Vous aurez besoin de [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) sur votre machine locale pour cette étape.
```shell
cd themes/blowfish
npm install
```
### Exécuter le compilateur Tailwind
Avec les dépendances installées, il ne reste plus qu'à utiliser [Tailwind CLI](https://tailwindcss.com/docs/installation/tailwind-cli) pour invoquer le compilateur JIT. Retournez à la racine de votre projet Hugo et lancez la commande suivante :
```shell
cd ../..
./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
C'est une commande un peu laide à cause des chemins impliqués mais essentiellement vous appelez Tailwind CLI et lui passez l'emplacement du fichier de config Tailwind (celui que nous avons regardé ci-dessus), où trouver le fichier `main.css` du thème et ensuite où vous voulez que le fichier CSS compilé soit placé (il va dans le dossier `assets/css/compiled/` de votre projet Hugo).
Le fichier de config scannera automatiquement tout le contenu et les layouts de votre projet ainsi que tous ceux du thème et construira un nouveau fichier CSS qui contient tout le CSS requis pour votre site web. En raison de la façon dont Hugo gère la hiérarchie des fichiers, ce fichier dans votre projet remplacera maintenant automatiquement celui qui vient avec le thème.
Chaque fois que vous faites un changement dans vos layouts et avez besoin de nouveaux styles Tailwind CSS, vous pouvez simplement relancer la commande et générer le nouveau fichier CSS. Vous pouvez aussi ajouter `-w` à la fin de la commande pour exécuter le compilateur JIT en mode watch.
### Créer un script de build
Pour compléter entièrement cette solution, vous pouvez simplifier tout ce processus en ajoutant des alias pour ces commandes, ou faire ce que je fais et ajouter un `package.json` à la racine de votre projet qui contient les scripts nécessaires...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// et plus...
}
```
Maintenant quand vous voulez travailler sur le design de votre site, vous pouvez invoquer `npm run dev` et le compilateur s'exécutera en mode watch. Quand vous êtes prêt à déployer, lancez `npm run build` et vous aurez un build Tailwind CSS propre.
🙋‍♀️ Si vous avez besoin d'aide, n'hésitez pas à poser une question sur [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
@@ -126,7 +126,7 @@ Simply by changing this one value, all the font sizes on your website will be ad
### Changing Syntax Highlighting Theme
Blowfish uses a custom syntax highlighting style, with colors defined in `assets/css/schemes`. To change the syntax highlighting theme, create `assets/css/custom.css` and add the following:
To change the syntax highlighting theme, create `assets/css/custom.css` and add the following:
```css
.chroma,
@@ -135,7 +135,7 @@ Blowfish uses a custom syntax highlighting style, with colors defined in `assets
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
font-style: unset;
}
```
@@ -143,38 +143,13 @@ This clears the default Chroma styles. The next step is to incorporate Chroma st
```sh
# Mac/Linux
hugo gen chromastyles --style=emacs | sed 's/\./html:not(.dark) ./' >> assets/css/custom.css
hugo gen chromastyles --style=evergarden | sed 's/\./html.dark ./' >> assets/css/custom.css
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# This command cannot run in CMD; it must run in PowerShell
hugo gen chromastyles --style=emacs | ForEach-Object { $_ -replace '\.', 'html:not(.dark) .' } | Add-Content -Path "css/custom.txt"
hugo gen chromastyles --style=evergarden | ForEach-Object { $_ -replace '\.', 'html.dark .' } | Add-Content -Path "css/custom.txt"
```
The final `custom.css` file should resemble the following:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
}
/* Generated using: hugo gen chromastyles --style=emacs */
/* Background */ html:not(.dark) .bg { background-color:#f8f8f8; }
/* PreWrapper */ html:not(.dark) .chroma { background-color:#f8f8f8; }
/* ... */
/* Generated using: hugo gen chromastyles --style=evergarden */
/* Background */ html.dark .bg { color:#d6cbb4;background-color:#252b2e; }
/* PreWrapper */ html.dark .chroma { color:#d6cbb4;background-color:#252b2e; }
/* ... */
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
See all available styles in [Hugo's documentation](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
@@ -127,7 +127,7 @@ html {
### シンタックスハイライトテーマの変更
Blowfish はカスタム構文ハイライトスタイルを使用しており、色は `assets/css/schemes` に定義されています。構文ハイライトテーマを変更するには、`assets/css/custom.css` を作成し、次の内容を追加してください:
構文ハイライトテーマを変更するには、`assets/css/custom.css` を作成し、次の内容を追加してください:
```css
.chroma,
@@ -136,7 +136,7 @@ Blowfish はカスタム構文ハイライトスタイルを使用しており
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
font-style: unset;
}
```
@@ -144,38 +144,13 @@ Blowfish はカスタム構文ハイライトスタイルを使用しており
```sh
# Mac/Linux
hugo gen chromastyles --style=emacs | sed 's/\./html:not(.dark) ./' >> assets/css/custom.css
hugo gen chromastyles --style=evergarden | sed 's/\./html.dark ./' >> assets/css/custom.css
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# このコマンドは CMD では実行できず PowerShell で実行する必要がある
hugo gen chromastyles --style=emacs | ForEach-Object { $_ -replace '\.', 'html:not(.dark) .' } | Add-Content -Path "css/custom.txt"
hugo gen chromastyles --style=evergarden | ForEach-Object { $_ -replace '\.', 'html.dark .' } | Add-Content -Path "css/custom.txt"
```
最終的な `custom.css` ファイルは以下のようになります:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
}
/* Generated using: hugo gen chromastyles --style=emacs */
/* Background */ html:not(.dark) .bg { background-color:#f8f8f8; }
/* PreWrapper */ html:not(.dark) .chroma { background-color:#f8f8f8; }
/* ... */
/* Generated using: hugo gen chromastyles --style=evergarden */
/* Background */ html.dark .bg { color:#d6cbb4;background-color:#252b2e; }
/* PreWrapper */ html.dark .chroma { color:#d6cbb4;background-color:#252b2e; }
/* ... */
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
すべての利用可能なスタイルは、[Hugo のドキュメント](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles)で確認できます。
@@ -126,7 +126,7 @@ Simply by changing this one value, all the font sizes on your website will be ad
### Changing Syntax Highlighting Theme
Blowfish uses a custom syntax highlighting style, with colors defined in `assets/css/schemes`. To change the syntax highlighting theme, create `assets/css/custom.css` and add the following:
To change the syntax highlighting theme, create `assets/css/custom.css` and add the following:
```css
.chroma,
@@ -135,7 +135,7 @@ Blowfish uses a custom syntax highlighting style, with colors defined in `assets
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
font-style: unset;
}
```
@@ -143,38 +143,13 @@ This clears the default Chroma styles. The next step is to incorporate Chroma st
```sh
# Mac/Linux
hugo gen chromastyles --style=emacs | sed 's/\./html:not(.dark) ./' >> assets/css/custom.css
hugo gen chromastyles --style=evergarden | sed 's/\./html.dark ./' >> assets/css/custom.css
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# This command cannot run in CMD; it must run in PowerShell
hugo gen chromastyles --style=emacs | ForEach-Object { $_ -replace '\.', 'html:not(.dark) .' } | Add-Content -Path "css/custom.txt"
hugo gen chromastyles --style=evergarden | ForEach-Object { $_ -replace '\.', 'html.dark .' } | Add-Content -Path "css/custom.txt"
```
The final `custom.css` file should resemble the following:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
}
/* Generated using: hugo gen chromastyles --style=emacs */
/* Background */ html:not(.dark) .bg { background-color:#f8f8f8; }
/* PreWrapper */ html:not(.dark) .chroma { background-color:#f8f8f8; }
/* ... */
/* Generated using: hugo gen chromastyles --style=evergarden */
/* Background */ html.dark .bg { color:#d6cbb4;background-color:#252b2e; }
/* PreWrapper */ html.dark .chroma { color:#d6cbb4;background-color:#252b2e; }
/* ... */
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
See all available styles in [Hugo's documentation](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
@@ -0,0 +1,265 @@
---
title: "Personalização avançada"
weight: 13
draft: false
description: "Aprenda como construir o Blowfish manualmente."
slug: "advanced-customisation"
tags: ["avançado", "css", "documentação"]
series: ["Documentação"]
series_order: 13
---
Existem muitas maneiras de fazer alterações avançadas no Blowfish. Leia abaixo para saber mais sobre o que pode ser personalizado e a melhor forma de alcançar o resultado desejado.
Se precisar de mais orientação, poste suas perguntas nas [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Estrutura do projeto Hugo
Antes de começar, primeiro uma nota rápida sobre a [estrutura do projeto Hugo](https://gohugo.io/getting-started/directory-structure/) e as melhores práticas para gerenciar seu conteúdo e personalizações do tema.
{{< alert >}}
**Em resumo:** Nunca edite diretamente os arquivos do tema. Apenas faça personalizações nos subdiretórios do seu projeto Hugo, não no diretório themes em si.
{{< /alert >}}
O Blowfish foi construído para aproveitar todas as práticas padrão do Hugo. Ele é projetado para permitir que todos os aspectos do tema sejam personalizados e substituídos sem alterar nenhum dos arquivos principais do tema. Isso permite uma experiência de atualização perfeita enquanto oferece controle total sobre a aparência e o funcionamento do seu site.
Para conseguir isso, você nunca deve ajustar manualmente nenhum dos arquivos do tema diretamente. Seja instalando usando módulos Hugo, como um submódulo git ou incluindo manualmente o tema no seu diretório `themes/`, você deve sempre deixar esses arquivos intactos.
A maneira correta de ajustar qualquer comportamento do tema é substituindo arquivos usando a poderosa [ordem de busca de arquivos](https://gohugo.io/templates/lookup-order/) do Hugo. Em resumo, a ordem de busca garante que quaisquer arquivos que você incluir no diretório do seu projeto terão automaticamente precedência sobre quaisquer arquivos do tema.
Por exemplo, se você quisesse substituir o template principal de artigo no Blowfish, você pode simplesmente criar seu próprio arquivo `layouts/_default/single.html` e colocá-lo na raiz do seu projeto. Este arquivo então substituirá o `single.html` do tema sem nunca alterar o tema em si. Isso funciona para qualquer arquivo do tema - templates HTML, partials, shortcodes, arquivos de configuração, dados, assets, etc.
Enquanto você seguir esta prática simples, você sempre poderá atualizar o tema (ou testar diferentes versões do tema) sem se preocupar em perder nenhuma de suas alterações personalizadas.
## Alterar configurações de otimização de imagem
Hugo tem vários métodos integrados para redimensionar, cortar e otimizar imagens.
Como exemplo - em `layouts/partials/article-link/card.html`, você tem o seguinte código:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
O comportamento padrão do Hugo aqui é redimensionar a imagem para 600px mantendo a proporção.
Vale notar que as configurações de imagem padrão como o [ponto de ancoragem](https://gohugo.io/content-management/image-processing/#anchor) também podem ser definidas na sua [configuração do site](https://gohugo.io/content-management/image-processing/#processing-options) assim como no próprio template.
Veja os [docs do Hugo sobre processamento de imagens](https://gohugo.io/content-management/image-processing/#image-processing-methods) para mais informações.
## Esquemas de cores
O Blowfish vem com vários esquemas de cores prontos para usar. Para alterar o esquema de cores básico, você pode definir o parâmetro do tema `colorScheme`. Consulte a seção [Primeiros passos]({{< ref "getting-started#colour-schemes" >}}) para saber mais sobre os esquemas integrados.
Além dos esquemas padrão, você também pode criar os seus próprios e re-estilizar todo o site ao seu gosto. Os esquemas são criados colocando um arquivo `<nome-do-esquema>.css` na pasta `assets/css/schemes/`. Uma vez criado o arquivo, simplesmente referencie-o pelo nome na configuração do tema.
{{< alert "github">}}
**Nota:** gerar esses arquivos manualmente pode ser difícil, eu construí uma ferramenta de terminal `nodejs` para ajudar com isso, [Fugu](https://github.com/nunocoracao/fugu). Em resumo, você passa os três valores `hex` principais da sua paleta de cores e o programa produzirá um arquivo css que pode ser importado diretamente no Blowfish.
{{< /alert >}}
O Blowfish define uma paleta de três cores que é usada em todo o tema. As três cores são definidas como variantes `neutral`, `primary` e `secondary`, cada uma contendo dez tons de cor.
Devido à forma como o Tailwind CSS 3.0 calcula os valores de cor com opacidade, as cores especificadas no esquema precisam [conformar-se a um formato particular](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) fornecendo os valores de cor vermelho, verde e azul.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
Este exemplo define uma variável CSS para a cor `primary-500` com um valor vermelho de `139`, valor verde de `92` e valor azul de `246`.
Use uma das folhas de estilo do tema existentes como modelo. Você é livre para definir suas próprias cores, mas para inspiração, confira a [referência da paleta de cores do Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) oficial.
## Substituir a folha de estilos
Às vezes você precisa adicionar um estilo personalizado para estilizar seus próprios elementos HTML. O Blowfish prevê este cenário permitindo que você substitua os estilos padrão na sua própria folha de estilos CSS. Simplesmente crie um arquivo `custom.css` na pasta `assets/css/` do seu projeto.
O arquivo `custom.css` será minificado pelo Hugo e carregado automaticamente após todos os outros estilos do tema, o que significa que qualquer coisa no seu arquivo personalizado terá precedência sobre os padrões.
### Usar fontes adicionais
O Blowfish permite que você altere facilmente a fonte do seu site. Após criar um arquivo `custom.css` na pasta `assets/css/` do seu projeto, coloque seu arquivo de fonte dentro de uma pasta `fonts` na pasta raiz `static`.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
Isso torna a fonte disponível para o site. Agora, a fonte pode simplesmente ser importada no seu `custom.css` e substituída onde você achar melhor. O exemplo abaixo mostra como seria substituir a fonte para todo o `html`.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Ajustar o tamanho da fonte
Alterar o tamanho da fonte do seu site é um exemplo de substituição da folha de estilos padrão. O Blowfish torna isso simples pois usa tamanhos de fonte escalados em todo o tema que são derivados do tamanho da fonte HTML base. Por padrão, o Tailwind define o tamanho padrão como `12pt`, mas pode ser alterado para qualquer valor que você preferir.
Crie um arquivo `custom.css` usando as [instruções acima]({{< ref "#overriding-the-stylesheet" >}}) e adicione a seguinte declaração CSS:
```css
/* Aumentar o tamanho de fonte padrão */
html {
font-size: 13pt;
}
```
Simplesmente alterando este único valor, todos os tamanhos de fonte no seu site serão ajustados para corresponder a este novo tamanho. Portanto, para aumentar os tamanhos de fonte gerais usados, faça o valor maior que `12pt`. Da mesma forma, para diminuir os tamanhos de fonte, faça o valor menor que `12pt`.
### Alterar o tema de destaque de sintaxe
Para alterar o tema de destaque de sintaxe, crie `assets/css/custom.css` e adicione o seguinte:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
font-style: unset;
}
```
Isso limpa os estilos padrão do Chroma. O próximo passo é incorporar os estilos do Chroma no seu arquivo CSS usando o comando `hugo gen chromastyles`:
```sh
# Mac/Linux
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# Este comando não pode ser executado no CMD; deve ser executado no PowerShell
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
Veja todos os estilos disponíveis na [documentação do Hugo](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
## Construir o CSS do tema a partir da fonte
Se você quiser fazer uma alteração maior, pode aproveitar o compilador JIT do Tailwind CSS e reconstruir todo o CSS do tema do zero. Isso é útil se você quiser ajustar a configuração do Tailwind ou adicionar classes extras do Tailwind à folha de estilos principal.
{{< alert >}}
**Nota:** Construir o tema manualmente é destinado a usuários avançados.
{{< /alert >}}
Vamos ver como funciona a construção do Tailwind CSS.
### Configuração do Tailwind
Para gerar um arquivo CSS que contenha apenas as classes do Tailwind que estão realmente sendo usadas, o compilador JIT precisa escanear todos os templates HTML e arquivos de conteúdo Markdown para verificar quais estilos estão presentes no markup. O compilador faz isso olhando o arquivo `tailwind.config.js` que está incluído na raiz do diretório do tema:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// e mais...
};
```
Esta configuração padrão foi incluída com esses caminhos de conteúdo para que você possa facilmente gerar seu próprio arquivo CSS sem precisar modificá-la, desde que siga uma estrutura de projeto particular. Ou seja, **você tem que incluir o Blowfish no seu projeto como um subdiretório em `themes/blowfish/`**. Isso significa que você não pode facilmente usar os módulos Hugo para instalar o tema e deve optar pela instalação por submódulo git (recomendado) ou instalação manual. Os [docs de instalação]({{< ref "installation" >}}) explicam como instalar o tema usando qualquer um desses métodos.
### Estrutura do projeto
Para aproveitar a configuração padrão, seu projeto deve se parecer com algo assim...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # este é o arquivo que vamos gerar
├── config # config do site
│ └── _default
├── content # conteúdo do site
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # layouts personalizados para seu site
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # submódulo git ou instalação manual do tema
```
Esta estrutura de exemplo adiciona um novo tipo de conteúdo `projects` com seu próprio layout personalizado junto com um shortcode personalizado e partial estendido. Desde que o projeto siga esta estrutura, tudo o que é necessário é recompilar o arquivo `main.css`.
### Instalar dependências
Para que isso funcione, você precisará mudar para o diretório `themes/blowfish/` e instalar as dependências do projeto. Você precisará do [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) na sua máquina local para esta etapa.
```shell
cd themes/blowfish
npm install
```
### Executar o compilador do Tailwind
Com as dependências instaladas, tudo o que resta é usar o [Tailwind CLI](https://tailwindcss.com/docs/installation/tailwind-cli) para invocar o compilador JIT. Navegue de volta para a raiz do seu projeto Hugo e execute o seguinte comando:
```shell
cd ../..
./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
É um comando um pouco feio devido aos caminhos envolvidos, mas essencialmente você está chamando o Tailwind CLI e passando a localização do arquivo de config do Tailwind (o que vimos acima), onde encontrar o arquivo `main.css` do tema e então onde você quer que o arquivo CSS compilado seja colocado (ele vai para a pasta `assets/css/compiled/` do seu projeto Hugo).
O arquivo de config escaneará automaticamente todo o conteúdo e layouts no seu projeto assim como todos os do tema e construirá um novo arquivo CSS que contém todo o CSS necessário para seu site. Devido à forma como o Hugo lida com a hierarquia de arquivos, este arquivo no seu projeto agora substituirá automaticamente o que vem com o tema.
Cada vez que você fizer uma alteração nos seus layouts e precisar de novos estilos do Tailwind CSS, você pode simplesmente executar o comando novamente e gerar o novo arquivo CSS. Você também pode adicionar `-w` ao final do comando para executar o compilador JIT em modo watch.
### Criar um script de build
Para completar totalmente esta solução, você pode simplificar todo este processo adicionando aliases para estes comandos, ou fazer o que eu faço e adicionar um `package.json` à raiz do seu projeto que contenha os scripts necessários...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// e mais...
}
```
Agora quando você quiser trabalhar no design do seu site, pode invocar `npm run dev` e o compilador será executado em modo watch. Quando estiver pronto para implantar, execute `npm run build` e você terá um build limpo do Tailwind CSS.
🙋‍♀️ Se precisar de ajuda, sinta-se à vontade para fazer uma pergunta nas [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
@@ -0,0 +1,265 @@
---
title: "Personalização avançada"
weight: 13
draft: false
description: "Aprenda como construir o Blowfish manualmente."
slug: "advanced-customisation"
tags: ["avançado", "css", "documentação"]
series: ["Documentação"]
series_order: 13
---
Existem muitas formas de fazer alterações avançadas ao Blowfish. Leia abaixo para saber mais sobre o que pode ser personalizado e a melhor forma de alcançar o resultado desejado.
Se precisar de mais orientação, publique as suas perguntas nas [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
## Estrutura do projeto Hugo
Antes de começar, primeiro uma nota rápida sobre a [estrutura do projeto Hugo](https://gohugo.io/getting-started/directory-structure/) e as melhores práticas para gerir o seu conteúdo e personalizações do tema.
{{< alert >}}
**Em resumo:** Nunca edite diretamente os ficheiros do tema. Apenas faça personalizações nos subdiretórios do seu projeto Hugo, não no diretório themes em si.
{{< /alert >}}
O Blowfish foi construído para aproveitar todas as práticas padrão do Hugo. Está concebido para permitir que todos os aspetos do tema sejam personalizados e substituídos sem alterar nenhum dos ficheiros principais do tema. Isto permite uma experiência de atualização perfeita enquanto oferece controlo total sobre a aparência e o funcionamento do seu website.
Para conseguir isto, nunca deve ajustar manualmente nenhum dos ficheiros do tema diretamente. Quer instale utilizando módulos Hugo, como um submódulo git ou incluindo manualmente o tema no seu diretório `themes/`, deve sempre deixar estes ficheiros intactos.
A forma correta de ajustar qualquer comportamento do tema é substituindo ficheiros utilizando a poderosa [ordem de pesquisa de ficheiros](https://gohugo.io/templates/lookup-order/) do Hugo. Em resumo, a ordem de pesquisa garante que quaisquer ficheiros que inclua no diretório do seu projeto terão automaticamente precedência sobre quaisquer ficheiros do tema.
Por exemplo, se quisesse substituir o template principal de artigo no Blowfish, pode simplesmente criar o seu próprio ficheiro `layouts/_default/single.html` e colocá-lo na raiz do seu projeto. Este ficheiro então substituirá o `single.html` do tema sem nunca alterar o tema em si. Isto funciona para qualquer ficheiro do tema - templates HTML, partials, shortcodes, ficheiros de configuração, dados, assets, etc.
Enquanto seguir esta prática simples, poderá sempre atualizar o tema (ou testar diferentes versões do tema) sem se preocupar em perder nenhuma das suas alterações personalizadas.
## Alterar definições de otimização de imagem
O Hugo tem vários métodos integrados para redimensionar, cortar e otimizar imagens.
Como exemplo - em `layouts/partials/article-link/card.html`, tem o seguinte código:
```go
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
```
O comportamento predefinido do Hugo aqui é redimensionar a imagem para 600px mantendo a proporção.
Vale notar que as configurações de imagem predefinidas como o [ponto de ancoragem](https://gohugo.io/content-management/image-processing/#anchor) também podem ser definidas na sua [configuração do site](https://gohugo.io/content-management/image-processing/#processing-options) assim como no próprio template.
Veja os [docs do Hugo sobre processamento de imagens](https://gohugo.io/content-management/image-processing/#image-processing-methods) para mais informações.
## Esquemas de cores
O Blowfish vem com vários esquemas de cores prontos a utilizar. Para alterar o esquema de cores básico, pode definir o parâmetro do tema `colorScheme`. Consulte a secção [Primeiros passos]({{< ref "getting-started#colour-schemes" >}}) para saber mais sobre os esquemas integrados.
Além dos esquemas predefinidos, também pode criar os seus próprios e re-estilizar todo o website ao seu gosto. Os esquemas são criados colocando um ficheiro `<nome-do-esquema>.css` na pasta `assets/css/schemes/`. Uma vez criado o ficheiro, simplesmente referencie-o pelo nome na configuração do tema.
{{< alert "github">}}
**Nota:** gerar estes ficheiros manualmente pode ser difícil, eu construí uma ferramenta de terminal `nodejs` para ajudar com isso, [Fugu](https://github.com/nunocoracao/fugu). Em resumo, passa os três valores `hex` principais da sua paleta de cores e o programa produzirá um ficheiro css que pode ser importado diretamente no Blowfish.
{{< /alert >}}
O Blowfish define uma paleta de três cores que é utilizada em todo o tema. As três cores são definidas como variantes `neutral`, `primary` e `secondary`, cada uma contendo dez tons de cor.
Devido à forma como o Tailwind CSS 3.0 calcula os valores de cor com opacidade, as cores especificadas no esquema precisam de [conformar-se a um formato particular](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo) fornecendo os valores de cor vermelho, verde e azul.
```css
:root {
--color-primary-500: 139, 92, 246;
}
```
Este exemplo define uma variável CSS para a cor `primary-500` com um valor vermelho de `139`, valor verde de `92` e valor azul de `246`.
Utilize uma das folhas de estilo do tema existentes como modelo. É livre de definir as suas próprias cores, mas para inspiração, consulte a [referência da paleta de cores do Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) oficial.
## Substituir a folha de estilos
Por vezes precisa de adicionar um estilo personalizado para estilizar os seus próprios elementos HTML. O Blowfish prevê este cenário permitindo que substitua os estilos predefinidos na sua própria folha de estilos CSS. Simplesmente crie um ficheiro `custom.css` na pasta `assets/css/` do seu projeto.
O ficheiro `custom.css` será minificado pelo Hugo e carregado automaticamente após todos os outros estilos do tema, o que significa que qualquer coisa no seu ficheiro personalizado terá precedência sobre os valores predefinidos.
### Utilizar tipos de letra adicionais
O Blowfish permite que altere facilmente o tipo de letra do seu site. Após criar um ficheiro `custom.css` na pasta `assets/css/` do seu projeto, coloque o seu ficheiro de tipo de letra dentro de uma pasta `fonts` na pasta raiz `static`.
```shell
.
├── assets
│ └── css
│ └── custom.css
...
└─── static
└── fonts
└─── font.ttf
```
Isto torna o tipo de letra disponível para o website. Agora, o tipo de letra pode simplesmente ser importado no seu `custom.css` e substituído onde achar melhor. O exemplo abaixo mostra como seria substituir o tipo de letra para todo o `html`.
```css
@font-face {
font-family: font;
src: url('/fonts/font.ttf');
}
html {
font-family: font;
}
```
### Ajustar o tamanho do tipo de letra
Alterar o tamanho do tipo de letra do seu website é um exemplo de substituição da folha de estilos predefinida. O Blowfish torna isto simples pois utiliza tamanhos de tipo de letra escalados em todo o tema que são derivados do tamanho do tipo de letra HTML base. Por predefinição, o Tailwind define o tamanho predefinido como `12pt`, mas pode ser alterado para qualquer valor que preferir.
Crie um ficheiro `custom.css` utilizando as [instruções acima]({{< ref "#overriding-the-stylesheet" >}}) e adicione a seguinte declaração CSS:
```css
/* Aumentar o tamanho de tipo de letra predefinido */
html {
font-size: 13pt;
}
```
Simplesmente alterando este único valor, todos os tamanhos de tipo de letra no seu website serão ajustados para corresponder a este novo tamanho. Portanto, para aumentar os tamanhos de tipo de letra gerais utilizados, faça o valor maior que `12pt`. Da mesma forma, para diminuir os tamanhos de tipo de letra, faça o valor menor que `12pt`.
### Alterar o tema de destaque de sintaxe
Para alterar o tema de destaque de sintaxe, crie `assets/css/custom.css` e adicione o seguinte:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
font-style: unset;
}
```
Isto limpa os estilos predefinidos do Chroma. O próximo passo é incorporar os estilos do Chroma no seu ficheiro CSS utilizando o comando `hugo gen chromastyles`:
```sh
# Mac/Linux
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# Este comando não pode ser executado no CMD; deve ser executado no PowerShell
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
Veja todos os estilos disponíveis na [documentação do Hugo](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles).
## Construir o CSS do tema a partir da fonte
Se quiser fazer uma alteração maior, pode aproveitar o compilador JIT do Tailwind CSS e reconstruir todo o CSS do tema do zero. Isto é útil se quiser ajustar a configuração do Tailwind ou adicionar classes extra do Tailwind à folha de estilos principal.
{{< alert >}}
**Nota:** Construir o tema manualmente destina-se a utilizadores avançados.
{{< /alert >}}
Vamos ver como funciona a construção do Tailwind CSS.
### Configuração do Tailwind
Para gerar um ficheiro CSS que contenha apenas as classes do Tailwind que estão realmente a ser utilizadas, o compilador JIT precisa de analisar todos os templates HTML e ficheiros de conteúdo Markdown para verificar quais estilos estão presentes no markup. O compilador faz isto olhando para o ficheiro `tailwind.config.js` que está incluído na raiz do diretório do tema:
```js
// themes/blowfish/tailwind.config.js
module.exports = {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/blowfish/layouts/**/*.html",
"./themes/blowfish/content/**/*.{html,md}",
],
// e mais...
};
```
Esta configuração predefinida foi incluída com estes caminhos de conteúdo para que possa facilmente gerar o seu próprio ficheiro CSS sem precisar de modificá-la, desde que siga uma estrutura de projeto particular. Ou seja, **tem de incluir o Blowfish no seu projeto como um subdiretório em `themes/blowfish/`**. Isto significa que não pode facilmente utilizar os módulos Hugo para instalar o tema e deve optar pela instalação por submódulo git (recomendado) ou instalação manual. Os [docs de instalação]({{< ref "installation" >}}) explicam como instalar o tema utilizando qualquer um destes métodos.
### Estrutura do projeto
Para aproveitar a configuração predefinida, o seu projeto deve parecer-se com algo assim...
```shell
.
├── assets
│ └── css
│ └── compiled
│ └── main.css # este é o ficheiro que vamos gerar
├── config # config do site
│ └── _default
├── content # conteúdo do site
│ ├── _index.md
│ ├── projects
│ │ └── _index.md
│ └── blog
│ └── _index.md
├── layouts # layouts personalizados para o seu site
│ ├── partials
│ │ └── extend-article-link/simple.html
│ ├── projects
│ │ └── list.html
│ └── shortcodes
│ └── disclaimer.html
└── themes
└── blowfish # submódulo git ou instalação manual do tema
```
Esta estrutura de exemplo adiciona um novo tipo de conteúdo `projects` com o seu próprio layout personalizado juntamente com um shortcode personalizado e partial estendido. Desde que o projeto siga esta estrutura, tudo o que é necessário é recompilar o ficheiro `main.css`.
### Instalar dependências
Para que isto funcione, precisará de mudar para o diretório `themes/blowfish/` e instalar as dependências do projeto. Precisará do [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install) na sua máquina local para esta etapa.
```shell
cd themes/blowfish
npm install
```
### Executar o compilador do Tailwind
Com as dependências instaladas, tudo o que resta é utilizar o [Tailwind CLI](https://tailwindcss.com/docs/installation/tailwind-cli) para invocar o compilador JIT. Navegue de volta para a raiz do seu projeto Hugo e execute o seguinte comando:
```shell
cd ../..
./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit
```
É um comando um pouco feio devido aos caminhos envolvidos, mas essencialmente está a chamar o Tailwind CLI e a passar-lhe a localização do ficheiro de config do Tailwind (o que vimos acima), onde encontrar o ficheiro `main.css` do tema e depois onde quer que o ficheiro CSS compilado seja colocado (vai para a pasta `assets/css/compiled/` do seu projeto Hugo).
O ficheiro de config analisará automaticamente todo o conteúdo e layouts no seu projeto assim como todos os do tema e construirá um novo ficheiro CSS que contém todo o CSS necessário para o seu website. Devido à forma como o Hugo lida com a hierarquia de ficheiros, este ficheiro no seu projeto agora substituirá automaticamente o que vem com o tema.
Cada vez que fizer uma alteração nos seus layouts e precisar de novos estilos do Tailwind CSS, pode simplesmente executar o comando novamente e gerar o novo ficheiro CSS. Também pode adicionar `-w` ao final do comando para executar o compilador JIT em modo watch.
### Criar um script de build
Para completar totalmente esta solução, pode simplificar todo este processo adicionando aliases para estes comandos, ou fazer o que eu faço e adicionar um `package.json` à raiz do seu projeto que contenha os scripts necessários...
```js
// package.json
{
"name": "my-website",
"version": "1.0.0",
"description": "",
"scripts": {
"server": "hugo server -b http://localhost -p 8000",
"dev": "NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit"
},
// e mais...
}
```
Agora quando quiser trabalhar no design do seu site, pode invocar `npm run dev` e o compilador será executado em modo watch. Quando estiver pronto para implementar, execute `npm run build` e terá um build limpo do Tailwind CSS.
🙋‍♀️ Se precisar de ajuda, sinta-se à vontade para fazer uma pergunta nas [GitHub Discussions](https://github.com/nunocoracao/blowfish/discussions).
@@ -125,7 +125,7 @@ html {
### 更换语法高亮主题
Blowfish 使用自定义的语法高亮样式,颜色定义在 `assets/css/schemes` 中。要更换语法高亮主题,请创建 `assets/css/custom.css`,然后添加以下内容:
要更换语法高亮主题,请创建 `assets/css/custom.css`,然后添加以下内容:
```css
.chroma,
@@ -134,7 +134,7 @@ Blowfish 使用自定义的语法高亮样式,颜色定义在 `assets/css/sche
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
font-style: unset;
}
```
@@ -142,38 +142,13 @@ Blowfish 使用自定义的语法高亮样式,颜色定义在 `assets/css/sche
```sh
# Mac/Linux
hugo gen chromastyles --style=emacs | sed 's/\./html:not(.dark) ./' >> assets/css/custom.css
hugo gen chromastyles --style=evergarden | sed 's/\./html.dark ./' >> assets/css/custom.css
(echo 'html:not(.dark) {'; hugo gen chromastyles --style=emacs; echo '}') >> assets/css/custom.css
(echo 'html.dark {'; hugo gen chromastyles --style=evergarden; echo '}') >> assets/css/custom.css
# Windows PowerShell
# 此命令不能在 CMD 中运行,必须在 PowerShell 中运行
hugo gen chromastyles --style=emacs | ForEach-Object { $_ -replace '\.', 'html:not(.dark) .' } | Add-Content -Path "css/custom.txt"
hugo gen chromastyles --style=evergarden | ForEach-Object { $_ -replace '\.', 'html.dark .' } | Add-Content -Path "css/custom.txt"
```
您的 `custom.css` 档案最后应该会像是以下:
```css
.chroma,
.chroma *,
.chroma:is(.dark *),
.chroma:is(.dark *) * {
color: unset;
font-weight: unset;
background-color: unset;
}
/* Generated using: hugo gen chromastyles --style=emacs */
/* Background */ html:not(.dark) .bg { background-color:#f8f8f8; }
/* PreWrapper */ html:not(.dark) .chroma { background-color:#f8f8f8; }
/* ... */
/* Generated using: hugo gen chromastyles --style=evergarden */
/* Background */ html.dark .bg { color:#d6cbb4;background-color:#252b2e; }
/* PreWrapper */ html.dark .chroma { color:#d6cbb4;background-color:#252b2e; }
/* ... */
@("html:not(.dark) {"; (hugo gen chromastyles --style=emacs); "}") | Add-Content -Path "assets/css/custom.css"
@("html.dark {"; (hugo gen chromastyles --style=evergarden); "}") | Add-Content -Path "assets/css/custom.css"
```
在 [Hugo 文档](https://gohugo.io/quick-reference/syntax-highlighting-styles/#styles)中查看所有可用的样式。
@@ -0,0 +1,125 @@
---
title: "Konfiguration"
weight: 4
draft: false
description: "Alle in Blowfish verfügbaren Konfigurationsvariablen."
slug: "configuration"
tags: ["konfiguration", "dokumentation"]
series: ["Dokumentation"]
series_order: 4
---
Blowfish ist ein hochgradig anpassbares Theme und nutzt einige der neuesten Hugo-Funktionen, um die Konfiguration zu vereinfachen.
Das Theme wird mit einer Standardkonfiguration geliefert, die Sie mit einem einfachen Blog oder einer statischen Website zum Laufen bringt.
{{< alert "fire" >}}
Wir haben gerade ein CLI-Tool veröffentlicht, das Ihnen beim Einstieg mit Blowfish hilft. Es unterstützt Sie bei Installation und Konfiguration. Installieren Sie das CLI-Tool global mit:
```bash
npx blowfish-tools
```
{{< /alert >}}
> Die mit dem Theme gelieferten Konfigurationsdateien werden im TOML-Format bereitgestellt, da dies die Standard-Hugo-Syntax ist. Sie können Ihre Konfiguration bei Bedarf in YAML oder JSON konvertieren.
Die Standard-Theme-Konfiguration ist in jeder Datei dokumentiert, sodass Sie die Einstellungen frei an Ihre Bedürfnisse anpassen können.
{{< alert >}}
Wie in den [Installationsanweisungen]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}) beschrieben, sollten Sie Ihre Theme-Konfiguration anpassen, indem Sie die Dateien im Ordner `config/_default/` Ihres Hugo-Projekts ändern und die Datei `hugo.toml` im Projektstammverzeichnis löschen.
{{< /alert >}}
## Website-Konfiguration
Standard-Hugo-Konfigurationsvariablen werden im gesamten Theme berücksichtigt, es gibt jedoch einige spezifische Dinge, die für die beste Erfahrung konfiguriert werden sollten.
Die Website-Konfiguration wird über die Datei `config/_default/hugo.toml` verwaltet. Die folgende Tabelle zeigt alle Einstellungen, die Blowfish nutzt.
Beachten Sie, dass die in dieser Tabelle angegebenen Variablennamen die Punktnotation verwenden, um die TOML-Datenstruktur zu vereinfachen (d.h. `outputs.home` bezieht sich auf `[outputs] home`).
<!-- prettier-ignore-start -->
| Name | Standard | Beschreibung |
| --- | --- | --- |
| `theme` | `"blowfish"` | Bei Verwendung von Hugo-Modulen sollte dieser Konfigurationswert entfernt werden. Für alle anderen Installationstypen muss dies auf `blowfish` gesetzt werden, damit das Theme funktioniert. |
| `baseURL` | _Nicht gesetzt_ | Die URL zum Stammverzeichnis der Website. |
| `defaultContentLanguage` | `"en"` | Dieser Wert bestimmt die Standardsprache der Theme-Komponenten und Inhalte. Siehe den Abschnitt [Sprache und i18n](#sprache-und-i18n) unten für unterstützte Sprachcodes. |
| `enableRobotsTXT` | `true` | Wenn aktiviert, wird eine `robots.txt`-Datei im Website-Stammverzeichnis erstellt, die Suchmaschinen das Crawlen der gesamten Website ermöglicht. Wenn Sie Ihre eigene vorgefertigte `robots.txt` bereitstellen möchten, setzen Sie dies auf `false` und platzieren Sie Ihre Datei im `static`-Verzeichnis. Für vollständige Kontrolle können Sie ein [benutzerdefiniertes Layout]({{< ref "content-examples#custom-layouts" >}}) bereitstellen, um diese Datei zu generieren. |
| `pagination.pagerSize` | `10` | Die Anzahl der Artikel, die auf jeder Seite der Artikelliste angezeigt werden. |
| `summaryLength` | `0` | Die Anzahl der Wörter, die zur Generierung der Artikelzusammenfassung verwendet werden, wenn keine im [Front Matter]({{< ref "front-matter" >}}) angegeben ist. Ein Wert von `0` verwendet den ersten Satz. Dieser Wert hat keine Auswirkung, wenn Zusammenfassungen ausgeblendet sind. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | Die für die Website generierten Ausgabeformate. Blowfish benötigt HTML, RSS und JSON, damit alle Theme-Komponenten korrekt funktionieren. |
| `permalinks` | _Nicht gesetzt_ | Siehe die [Hugo-Dokumentation](https://gohugo.io/configuration/permalinks/) für die Permalink-Konfiguration. |
| `taxonomies` | _Nicht gesetzt_ | Siehe den Abschnitt [Inhalte organisieren]({{< ref "getting-started#organising-content" >}}) für die Taxonomie-Konfiguration. |
<!-- prettier-ignore-end -->
## Thumbnails
Blowfish wurde so entwickelt, dass es einfach ist, visuelle Unterstützung zu Ihren Artikeln hinzuzufügen. Wenn Sie mit der Hugo-Artikelstruktur vertraut sind, müssen Sie nur eine Bilddatei (fast alle Formate werden unterstützt, aber wir empfehlen `.png` oder `.jpg`) in Ihrem Artikelordner platzieren, die mit `feature*` beginnt. Das ist alles, Blowfish kann dann das Bild sowohl als Thumbnail innerhalb Ihrer Website als auch für <a target="_blank" href="https://oembed.com/">oEmbed</a>-Karten auf sozialen Plattformen verwenden.
[Hier]({{< ref "thumbnails" >}}) finden Sie auch einen Leitfaden mit mehr Informationen und ein [Beispiel]({{< ref "thumbnail_sample" >}}), wenn Sie sehen möchten, wie Sie es machen können.
## Sprache und i18n
Blowfish ist für vollständig mehrsprachige Websites optimiert und Theme-Assets sind standardmäßig in mehrere Sprachen übersetzt. Die Sprachkonfiguration ermöglicht es Ihnen, mehrere Versionen Ihres Inhalts zu generieren, um Ihren Besuchern ein angepasstes Erlebnis in ihrer Muttersprache zu bieten.
Das Theme unterstützt derzeit standardmäßig die folgenden Sprachen:
| Sprache | Code |
| --- | --- |
| Arabisch | `ar` |
| Bulgarisch | `bg` |
| Bengali | `bn` |
| Katalanisch | `ca` |
| Tschechisch | `cs` |
| Deutsch | `de` |
| Englisch | `en` |
| Esperanto | `eo` |
| Spanisch (Spanien) | `es` |
| Finnisch | `fi` |
| Französisch | `fr` |
| Galizisch | `gl` |
| Hebräisch | `he` |
| Kroatisch | `hr` |
| Ungarisch | `hu` |
| Indonesisch | `id` |
| Italienisch | `it` |
| Japanisch | `ja` |
| Koreanisch | `ko` |
| Niederländisch | `nl` |
| Persisch | `fa` |
| Polnisch | `pl` |
| Portugiesisch (Brasilien) | `pt-br` |
| Portugiesisch (Portugal) | `pt-pt` |
| Rumänisch | `ro` |
| Russisch | `ru` |
| Thai | `th` |
| Türkisch | `tr` |
| Vietnamesisch | `vi` |
| Vereinfachtes Chinesisch (China) | `zh-cn` |
| Traditionelles Chinesisch (Taiwan) | `zh-tw` |
Die Standardübersetzungen können überschrieben werden, indem Sie eine benutzerdefinierte Datei in `i18n/[code].yaml` erstellen, die die Übersetzungsstrings enthält. Sie können diese Methode auch verwenden, um neue Sprachen hinzuzufügen. Wenn Sie eine neue Übersetzung mit der Community teilen möchten, [öffnen Sie bitte einen Pull Request](https://github.com/nunocoracao/blowfish/pulls).
### Konfiguration
Um so flexibel wie möglich zu sein, muss für jede Sprache auf der Website eine Sprachkonfigurationsdatei erstellt werden. Standardmäßig enthält Blowfish eine englische Sprachkonfiguration unter `config/_default/languages.en.toml`.
Die Standarddatei kann als Vorlage verwendet werden, um zusätzliche Sprachen zu erstellen, oder umbenannt werden, wenn Sie Ihre Website in einer anderen Sprache als Englisch verfassen möchten. Benennen Sie die Datei einfach im Format `languages.[language-code].toml`.
{{< alert >}}
**Hinweis:** Stellen Sie sicher, dass der Parameter `defaultContentLanguage` in der [Website-Konfiguration](#website-konfiguration) mit dem Sprachcode in Ihrem Sprachkonfigurationsdateinamen übereinstimmt.
{{< /alert >}}
Detaillierte Informationen zu allen verfügbaren Konfigurationsparametern finden Sie in der englischen Dokumentation, da die Parameternamen technisch sind und im Original belassen werden.
## Theme-Parameter
Blowfish bietet eine große Anzahl von Konfigurationsparametern, die steuern, wie das Theme funktioniert. Die vollständige Liste aller verfügbaren Parameter finden Sie in der Datei `config/_default/params.toml`.
Viele der Artikel-Standardeinstellungen können auf Artikelebene überschrieben werden, indem sie im Front Matter angegeben werden. Weitere Details finden Sie im Abschnitt [Front Matter]({{< ref "front-matter" >}}).
## Weitere Konfigurationsdateien
Das Theme enthält auch eine `markup.toml`-Konfigurationsdatei. Diese Datei enthält einige wichtige Parameter, die sicherstellen, dass Hugo korrekt konfiguriert ist, um mit Blowfish erstellte Websites zu generieren.
Stellen Sie immer sicher, dass diese Datei im Konfigurationsverzeichnis vorhanden ist und dass die erforderlichen Werte gesetzt sind. Andernfalls können bestimmte Funktionen nicht korrekt funktionieren und es kann zu unbeabsichtigtem Verhalten kommen.
@@ -0,0 +1,125 @@
---
title: "Configuración"
weight: 4
draft: false
description: "Todas las variables de configuración disponibles en Blowfish."
slug: "configuration"
tags: ["configuración", "documentación"]
series: ["Documentación"]
series_order: 4
---
Blowfish es un tema altamente personalizable y utiliza algunas de las últimas características de Hugo para simplificar su configuración.
El tema viene con una configuración predeterminada que te permite empezar con un blog básico o sitio web estático.
{{< alert "fire" >}}
Acabamos de lanzar una herramienta CLI para ayudarte a empezar con Blowfish. Te ayudará con la instalación y configuración. Instala la herramienta CLI globalmente usando:
```bash
npx blowfish-tools
```
{{< /alert >}}
> Los archivos de configuración incluidos con el tema se proporcionan en formato TOML ya que es la sintaxis predeterminada de Hugo. Siéntete libre de convertir tu configuración a YAML o JSON si lo deseas.
La configuración predeterminada del tema está documentada en cada archivo para que puedas ajustar libremente la configuración según tus necesidades.
{{< alert >}}
Como se describe en las [instrucciones de instalación]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), debes ajustar la configuración de tu tema modificando los archivos en la carpeta `config/_default/` de tu proyecto Hugo y eliminar el archivo `hugo.toml` en la raíz de tu proyecto.
{{< /alert >}}
## Configuración del sitio
Las variables de configuración estándar de Hugo se respetan en todo el tema, sin embargo, hay algunas cosas específicas que deben configurarse para la mejor experiencia.
La configuración del sitio se gestiona a través del archivo `config/_default/hugo.toml`. La tabla a continuación describe todas las configuraciones que Blowfish aprovecha.
Ten en cuenta que los nombres de variables proporcionados en esta tabla usan notación de puntos para simplificar la estructura de datos TOML (es decir, `outputs.home` se refiere a `[outputs] home`).
<!-- prettier-ignore-start -->
| Nombre | Predeterminado | Descripción |
| --- | --- | --- |
| `theme` | `"blowfish"` | Al usar Módulos Hugo, este valor de configuración debe eliminarse. Para todos los demás tipos de instalación, esto debe establecerse en `blowfish` para que el tema funcione. |
| `baseURL` | _No establecido_ | La URL a la raíz del sitio web. |
| `defaultContentLanguage` | `"en"` | Este valor determina el idioma predeterminado de los componentes del tema y el contenido. Consulta la sección [idioma e i18n](#idioma-e-i18n) a continuación para los códigos de idioma compatibles. |
| `enableRobotsTXT` | `true` | Cuando está habilitado, se creará un archivo `robots.txt` en la raíz del sitio que permite a los motores de búsqueda rastrear todo el sitio. Si prefieres proporcionar tu propio `robots.txt` prefabricado, establece en `false` y coloca tu archivo en el directorio `static`. Para control completo, puedes proporcionar un [diseño personalizado]({{< ref "content-examples#custom-layouts" >}}) para generar este archivo. |
| `pagination.pagerSize` | `10` | El número de artículos listados en cada página de la lista de artículos. |
| `summaryLength` | `0` | El número de palabras que se utilizan para generar el resumen del artículo cuando no se proporciona uno en el [front matter]({{< ref "front-matter" >}}). Un valor de `0` usará la primera oración. Este valor no tiene efecto cuando los resúmenes están ocultos. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | Los formatos de salida que se generan para el sitio. Blowfish requiere HTML, RSS y JSON para que todos los componentes del tema funcionen correctamente. |
| `permalinks` | _No establecido_ | Consulta la [documentación de Hugo](https://gohugo.io/configuration/permalinks/) para la configuración de permalinks. |
| `taxonomies` | _No establecido_ | Consulta la sección [Organización del contenido]({{< ref "getting-started#organising-content" >}}) para la configuración de taxonomías. |
<!-- prettier-ignore-end -->
## Miniaturas
Blowfish fue construido para que sea fácil agregar soporte visual a tus artículos. Si estás familiarizado con la estructura de artículos de Hugo, solo necesitas colocar un archivo de imagen (casi todos los formatos son compatibles pero recomendamos `.png` o `.jpg`) que comience con `feature*` dentro de tu carpeta de artículo. Y eso es todo, Blowfish podrá usar la imagen tanto como miniatura dentro de tu sitio web como para tarjetas <a target="_blank" href="https://oembed.com/">oEmbed</a> en plataformas sociales.
[Aquí]({{< ref "thumbnails" >}}) también hay una guía con más información y un [ejemplo]({{< ref "thumbnail_sample" >}}) si quieres ver cómo puedes hacerlo.
## Idioma e i18n
Blowfish está optimizado para sitios web completamente multilingües y los recursos del tema están traducidos a varios idiomas de forma predeterminada. La configuración de idioma te permite generar múltiples versiones de tu contenido para proporcionar una experiencia personalizada a tus visitantes en su idioma nativo.
El tema actualmente soporta los siguientes idiomas por defecto:
| Idioma | Código |
| --- | --- |
| Árabe | `ar` |
| Búlgaro | `bg` |
| Bengalí | `bn` |
| Catalán | `ca` |
| Checo | `cs` |
| Alemán | `de` |
| Inglés | `en` |
| Esperanto | `eo` |
| Español (España) | `es` |
| Finlandés | `fi` |
| Francés | `fr` |
| Gallego | `gl` |
| Hebreo | `he` |
| Croata | `hr` |
| Húngaro | `hu` |
| Indonesio | `id` |
| Italiano | `it` |
| Japonés | `ja` |
| Coreano | `ko` |
| Neerlandés | `nl` |
| Persa | `fa` |
| Polaco | `pl` |
| Portugués (Brasil) | `pt-br` |
| Portugués (Portugal) | `pt-pt` |
| Rumano | `ro` |
| Ruso | `ru` |
| Tailandés | `th` |
| Turco | `tr` |
| Vietnamita | `vi` |
| Chino simplificado (China) | `zh-cn` |
| Chino tradicional (Taiwán) | `zh-tw` |
Las traducciones predeterminadas pueden sobrescribirse creando un archivo personalizado en `i18n/[code].yaml` que contenga las cadenas de traducción. También puedes usar este método para agregar nuevos idiomas. Si deseas compartir una nueva traducción con la comunidad, por favor [abre una pull request](https://github.com/nunocoracao/blowfish/pulls).
### Configuración
Para ser lo más flexible posible, se debe crear un archivo de configuración de idioma para cada idioma en el sitio web. Por defecto, Blowfish incluye una configuración de idioma en inglés en `config/_default/languages.en.toml`.
El archivo predeterminado puede usarse como plantilla para crear idiomas adicionales, o renombrarse si deseas escribir tu sitio web en un idioma diferente al inglés. Simplemente nombra el archivo usando el formato `languages.[language-code].toml`.
{{< alert >}}
**Nota:** Asegúrate de que el parámetro `defaultContentLanguage` en la [configuración del sitio](#configuración-del-sitio) coincida con el código de idioma en el nombre del archivo de configuración de idioma.
{{< /alert >}}
Para información detallada sobre todos los parámetros de configuración disponibles, consulta la documentación en inglés ya que los nombres de parámetros son técnicos y permanecen en su forma original.
## Parámetros del tema
Blowfish proporciona un gran número de parámetros de configuración que controlan cómo funciona el tema. La lista completa de todos los parámetros disponibles se encuentra en el archivo `config/_default/params.toml`.
Muchos de los valores predeterminados de artículos pueden sobrescribirse por artículo especificándolos en el front matter. Consulta la sección [Front Matter]({{< ref "front-matter" >}}) para más detalles.
## Otros archivos de configuración
El tema también incluye un archivo de configuración `markup.toml`. Este archivo contiene algunos parámetros importantes que aseguran que Hugo esté correctamente configurado para generar sitios construidos con Blowfish.
Siempre asegúrate de que este archivo esté presente en el directorio de configuración y que los valores requeridos estén establecidos. No hacerlo puede causar que ciertas características funcionen incorrectamente y podría resultar en comportamiento no deseado.
@@ -0,0 +1,125 @@
---
title: "Configuration"
weight: 4
draft: false
description: "Toutes les variables de configuration disponibles dans Blowfish."
slug: "configuration"
tags: ["configuration", "documentation"]
series: ["Documentation"]
series_order: 4
---
Blowfish est un thème hautement personnalisable et utilise certaines des dernières fonctionnalités de Hugo pour simplifier sa configuration.
Le thème est livré avec une configuration par défaut qui vous permet de démarrer avec un blog ou un site web statique de base.
{{< alert "fire" >}}
Nous venons de lancer un outil CLI pour vous aider à démarrer avec Blowfish. Il vous aidera avec l'installation et la configuration. Installez l'outil CLI globalement en utilisant :
```bash
npx blowfish-tools
```
{{< /alert >}}
> Les fichiers de configuration fournis avec le thème sont au format TOML car c'est la syntaxe Hugo par défaut. N'hésitez pas à convertir votre configuration en YAML ou JSON si vous le souhaitez.
La configuration par défaut du thème est documentée dans chaque fichier afin que vous puissiez librement ajuster les paramètres selon vos besoins.
{{< alert >}}
Comme indiqué dans les [instructions d'installation]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), vous devez ajuster la configuration de votre thème en modifiant les fichiers dans le dossier `config/_default/` de votre projet Hugo et supprimer le fichier `hugo.toml` à la racine de votre projet.
{{< /alert >}}
## Configuration du site
Les variables de configuration Hugo standard sont respectées dans tout le thème, cependant il y a certaines choses spécifiques qui doivent être configurées pour une meilleure expérience.
La configuration du site est gérée via le fichier `config/_default/hugo.toml`. Le tableau ci-dessous présente tous les paramètres que Blowfish utilise.
Notez que les noms de variables fournis dans ce tableau utilisent la notation pointée pour simplifier la structure de données TOML (c'est-à-dire que `outputs.home` fait référence à `[outputs] home`).
<!-- prettier-ignore-start -->
| Nom | Défaut | Description |
| --- | --- | --- |
| `theme` | `"blowfish"` | Lors de l'utilisation des modules Hugo, cette valeur de configuration doit être supprimée. Pour tous les autres types d'installation, cela doit être défini sur `blowfish` pour que le thème fonctionne. |
| `baseURL` | _Non défini_ | L'URL vers la racine du site web. |
| `defaultContentLanguage` | `"en"` | Cette valeur détermine la langue par défaut des composants du thème et du contenu. Consultez la section [langue et i18n](#langue-et-i18n) ci-dessous pour les codes de langue pris en charge. |
| `enableRobotsTXT` | `true` | Lorsqu'il est activé, un fichier `robots.txt` sera créé à la racine du site permettant aux moteurs de recherche d'explorer l'ensemble du site. Si vous préférez fournir votre propre `robots.txt` préfabriqué, définissez sur `false` et placez votre fichier dans le répertoire `static`. Pour un contrôle complet, vous pouvez fournir une [mise en page personnalisée]({{< ref "content-examples#custom-layouts" >}}) pour générer ce fichier. |
| `pagination.pagerSize` | `10` | Le nombre d'articles listés sur chaque page de la liste d'articles. |
| `summaryLength` | `0` | Le nombre de mots utilisés pour générer le résumé de l'article lorsqu'aucun n'est fourni dans le [front matter]({{< ref "front-matter" >}}). Une valeur de `0` utilisera la première phrase. Cette valeur n'a aucun effet lorsque les résumés sont masqués. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | Les formats de sortie générés pour le site. Blowfish nécessite HTML, RSS et JSON pour que tous les composants du thème fonctionnent correctement. |
| `permalinks` | _Non défini_ | Consultez la [documentation Hugo](https://gohugo.io/configuration/permalinks/) pour la configuration des permaliens. |
| `taxonomies` | _Non défini_ | Consultez la section [Organisation du contenu]({{< ref "getting-started#organising-content" >}}) pour la configuration des taxonomies. |
<!-- prettier-ignore-end -->
## Vignettes
Blowfish a été conçu pour qu'il soit facile d'ajouter un support visuel à vos articles. Si vous êtes familier avec la structure des articles Hugo, il vous suffit de placer un fichier image (presque tous les formats sont pris en charge mais nous recommandons `.png` ou `.jpg`) qui commence par `feature*` dans votre dossier d'article. Et c'est tout, Blowfish pourra alors utiliser l'image à la fois comme vignette sur votre site et pour les cartes <a target="_blank" href="https://oembed.com/">oEmbed</a> sur les plateformes sociales.
[Voici]({{< ref "thumbnails" >}}) également un guide avec plus d'informations et un [exemple]({{< ref "thumbnail_sample" >}}) si vous voulez voir comment faire.
## Langue et i18n
Blowfish est optimisé pour les sites web entièrement multilingues et les ressources du thème sont traduites dans plusieurs langues par défaut. La configuration de la langue vous permet de générer plusieurs versions de votre contenu pour offrir une expérience personnalisée à vos visiteurs dans leur langue maternelle.
Le thème prend actuellement en charge les langues suivantes par défaut :
| Langue | Code |
| --- | --- |
| Arabe | `ar` |
| Bulgare | `bg` |
| Bengali | `bn` |
| Catalan | `ca` |
| Tchèque | `cs` |
| Allemand | `de` |
| Anglais | `en` |
| Espéranto | `eo` |
| Espagnol (Espagne) | `es` |
| Finnois | `fi` |
| Français | `fr` |
| Galicien | `gl` |
| Hébreu | `he` |
| Croate | `hr` |
| Hongrois | `hu` |
| Indonésien | `id` |
| Italien | `it` |
| Japonais | `ja` |
| Coréen | `ko` |
| Néerlandais | `nl` |
| Persan | `fa` |
| Polonais | `pl` |
| Portugais (Brésil) | `pt-br` |
| Portugais (Portugal) | `pt-pt` |
| Roumain | `ro` |
| Russe | `ru` |
| Thaï | `th` |
| Turc | `tr` |
| Vietnamien | `vi` |
| Chinois simplifié (Chine) | `zh-cn` |
| Chinois traditionnel (Taïwan) | `zh-tw` |
Les traductions par défaut peuvent être remplacées en créant un fichier personnalisé dans `i18n/[code].yaml` contenant les chaînes de traduction. Vous pouvez également utiliser cette méthode pour ajouter de nouvelles langues. Si vous souhaitez partager une nouvelle traduction avec la communauté, veuillez [ouvrir une pull request](https://github.com/nunocoracao/blowfish/pulls).
### Configuration
Afin d'être aussi flexible que possible, un fichier de configuration de langue doit être créé pour chaque langue du site. Par défaut, Blowfish inclut une configuration de langue anglaise dans `config/_default/languages.en.toml`.
Le fichier par défaut peut être utilisé comme modèle pour créer des langues supplémentaires, ou renommé si vous souhaitez rédiger votre site dans une langue autre que l'anglais. Nommez simplement le fichier en utilisant le format `languages.[language-code].toml`.
{{< alert >}}
**Note :** Assurez-vous que le paramètre `defaultContentLanguage` dans la [configuration du site](#configuration-du-site) correspond au code de langue dans le nom de fichier de configuration de langue.
{{< /alert >}}
Pour des informations détaillées sur tous les paramètres de configuration disponibles, consultez la documentation en anglais car les noms de paramètres sont techniques et restent dans leur forme originale.
## Paramètres du thème
Blowfish fournit un grand nombre de paramètres de configuration qui contrôlent le fonctionnement du thème. La liste complète de tous les paramètres disponibles se trouve dans le fichier `config/_default/params.toml`.
De nombreuses valeurs par défaut des articles peuvent être remplacées article par article en les spécifiant dans le front matter. Consultez la section [Front Matter]({{< ref "front-matter" >}}) pour plus de détails.
## Autres fichiers de configuration
Le thème inclut également un fichier de configuration `markup.toml`. Ce fichier contient des paramètres importants qui garantissent que Hugo est correctement configuré pour générer des sites construits avec Blowfish.
Assurez-vous toujours que ce fichier est présent dans le répertoire de configuration et que les valeurs requises sont définies. Ne pas le faire peut entraîner un fonctionnement incorrect de certaines fonctionnalités et un comportement inattendu.
@@ -236,7 +236,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showAuthor` | `true` | Whether or not the author box is displayed in the article footer. |
| `article.showAuthorBottom` | `false` | Author boxes are displayed at the bottom of each page instead of the top. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `article.showHero = true`. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll |
| `article.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `article.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the article header. |
@@ -264,7 +264,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| Name | Default | Description |
| --- | --- | --- |
| `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `list.showHero = true`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
| `list.layoutBackgroundBlur` | `true` | Makes the background image in the background list heroStyle blur with the scroll |
| `list.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
@@ -292,7 +292,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| --- | --- | --- |
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
| `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `article.taxonomy = true`. |
| `taxonomy.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the taxonomy header. |
| `taxonomy.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -304,7 +304,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| Name | Default | Description |
| --- | --- | --- |
| `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `term.showHero = true`. |
| `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. |
| `term.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `term.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -236,7 +236,7 @@ Blowfish は、テーマの機能を制御する多数の設定パラメータ
| `article.showAuthor` | `true` | 記事のフッターに著者ボックスを表示するかどうかです。 |
| `article.showAuthorBottom` | `false` | 著者ボックスは、各ページの上部ではなく下部に表示されます。 |
| `article.showHero` | `false` | サムネイル画像を各記事ページ内でヒーロー画像として表示するかどうかです。 |
| `article.heroStyle` | _未設定_ | ヒーロー画像を表示するスタイルです。有効なオプションは、`basic``big``background``thumbAndBackground` です。 |
| `article.heroStyle` | _未設定_ | ヒーロー画像を表示するスタイルです。有効なオプションは、`basic``big``background``thumbAndBackground` です。`article.showHero = true` の場合にのみ有効。 |
| `article.layoutBackgroundBlur` | `true` | 背景記事 heroStyle の背景画像をスクロールに合わせてぼかします。 |
| `article.layoutBackgroundHeaderSpace` | `true` | ヘッダーと本文の間にスペースを追加します。 |
| `article.showBreadcrumbs` | `false` | 記事のヘッダーにパンくずリストを表示するかどうかです。 |
@@ -264,7 +264,7 @@ Blowfish は、テーマの機能を制御する多数の設定パラメータ
| 名前 | デフォルト | 説明 |
| --- | --- | --- |
| `list.showHero` | `false` | 各リストページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `list.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。 |
| `list.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。`list.showHero = true` の場合にのみ有効。 |
| `list.showBreadcrumbs` | `false` | リストページのヘッダーにパンくずリストを表示するかどうか。 |
| `list.layoutBackgroundBlur` | `true` | `background` リストの heroStyle の背景画像をスクロールでぼかします。 |
| `list.layoutBackgroundHeaderSpace` | `true` | ヘッダーと本文の間にスペースを追加します。 |
@@ -292,7 +292,7 @@ Blowfish は、テーマの機能を制御する多数の設定パラメータ
| --- | --- | --- |
| `taxonomy.showTermCount` | `true` | タクソノミーリストにタクソノミー用語内の記事数を表示するかどうか。 |
| `taxonomy.showHero` | `false` | 各タクソノミーページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `taxonomy.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。 |
| `taxonomy.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。`taxonomy.showHero = true` の場合にのみ有効。 |
| `taxonomy.showBreadcrumbs` | `false` | タクソノミーのヘッダーにパンくずリストを表示するかどうか。 |
| `taxonomy.showViews` | `false` | 記事の閲覧数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `taxonomy.showLikes` | `false` | 記事のいいね数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
@@ -304,7 +304,7 @@ Blowfish は、テーマの機能を制御する多数の設定パラメータ
| 名前 | デフォルト | 説明 |
| --- | --- | --- |
| `term.showHero` | `false` | 各タームページ内でサムネイル画像をヒーロー画像として表示するかどうか。 |
| `term.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。 |
| `term.heroStyle` | _未設定_ | ヒーロー画像の表示スタイル。有効なオプションは `basic``big``background``thumbAndBackground` です。`term.showHero = true` の場合にのみ有効。 |
| `term.showBreadcrumbs` | `false` | タームのヘッダーにパンくずリストを表示するかどうか。 |
| `term.showViews` | `false` | 記事の閲覧数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
| `term.showLikes` | `false` | 記事のいいね数を表示するかどうか。これを有効にするには、Firebase の統合を有効にする必要があります。以下をご覧ください。 |
@@ -54,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 you're 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.
@@ -177,6 +177,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `enableStructuredBreadcrumbs` | `false` | Whether to add [BreadcrumbList](https://developers.google.com/search/docs/appearance/structured-data/breadcrumb) for SEO. Do NOT enable this if your content path does not match the URL, i.e., complex [URL setting](https://gohugo.io/content-management/urls/). |
| `enableStyledScrollbar` | `true` | Whether to enable styled scrollbar via tailwind-scrollbar. Set to `false` to use the browser's default scrollbar styling. |
| `replyByEmail` | `false` | Whether the reply-by-email link is enabled after post. The `params.author.email` parameter in `config/_default/languages.en.toml` must be set. |
| `forgejoDefaultServer` | _Not set_ | The default `server` parameter for the `forgejo` shortcode. |
| `giteaDefaultServer` | _Not set_ | The default `server` parameter for the `gitea` shortcode. |
@@ -242,7 +243,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showAuthor` | `true` | Whether or not the author box is displayed in the article footer. |
| `article.showAuthorBottom` | `false` | Author boxes are displayed at the bottom of each page instead of the top. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `article.showHero = true`. |
| `article.layoutBackgroundBlur` | `true` | Makes the background image in the background article heroStyle blur with the scroll |
| `article.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
| `article.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the article header. |
@@ -271,7 +272,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| Name | Default | Description |
| --- | --- | --- |
| `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `list.showHero = true`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
| `list.layoutBackgroundBlur` | `true` | Makes the background image in the background list heroStyle blur with the scroll |
| `list.layoutBackgroundHeaderSpace` | `true` | Add space between the header and the body. |
@@ -299,7 +300,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| --- | --- | --- |
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
| `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `taxonomy.showHero = true`. |
| `taxonomy.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the taxonomy header. |
| `taxonomy.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `taxonomy.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -311,7 +312,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
| Name | Default | Description |
| --- | --- | --- |
| `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. Effective only if `term.showHero = true`. |
| `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. |
| `term.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
| `term.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
@@ -0,0 +1,125 @@
---
title: "Configuração"
weight: 4
draft: false
description: "Todas as variáveis de configuração disponíveis no Blowfish."
slug: "configuration"
tags: ["configuração", "documentação"]
series: ["Documentação"]
series_order: 4
---
O Blowfish é um tema altamente personalizável e usa alguns dos recursos mais recentes do Hugo para simplificar sua configuração.
O tema vem com uma configuração padrão que permite você começar com um blog básico ou site estático.
{{< alert "fire" >}}
Acabamos de lançar uma ferramenta CLI para ajudá-lo a começar com o Blowfish. Ela ajudará com a instalação e configuração. Instale a ferramenta CLI globalmente usando:
```bash
npx blowfish-tools
```
{{< /alert >}}
> Os arquivos de configuração incluídos com o tema são fornecidos no formato TOML, pois é a sintaxe padrão do Hugo. Sinta-se à vontade para converter sua configuração para YAML ou JSON, se desejar.
A configuração padrão do tema está documentada em cada arquivo para que você possa ajustar livremente as configurações de acordo com suas necessidades.
{{< alert >}}
Conforme descrito nas [instruções de instalação]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), você deve ajustar a configuração do seu tema modificando os arquivos na pasta `config/_default/` do seu projeto Hugo e excluir o arquivo `hugo.toml` na raiz do seu projeto.
{{< /alert >}}
## Configuração do site
As variáveis de configuração padrão do Hugo são respeitadas em todo o tema, no entanto, há algumas coisas específicas que devem ser configuradas para a melhor experiência.
A configuração do site é gerenciada através do arquivo `config/_default/hugo.toml`. A tabela abaixo descreve todas as configurações que o Blowfish aproveita.
Observe que os nomes de variáveis fornecidos nesta tabela usam notação de ponto para simplificar a estrutura de dados TOML (ou seja, `outputs.home` refere-se a `[outputs] home`).
<!-- prettier-ignore-start -->
| Nome | Padrão | Descrição |
| --- | --- | --- |
| `theme` | `"blowfish"` | Ao usar Módulos Hugo, este valor de configuração deve ser removido. Para todos os outros tipos de instalação, isso deve ser definido como `blowfish` para que o tema funcione. |
| `baseURL` | _Não definido_ | A URL para a raiz do site. |
| `defaultContentLanguage` | `"en"` | Este valor determina o idioma padrão dos componentes do tema e do conteúdo. Consulte a seção [idioma e i18n](#idioma-e-i18n) abaixo para códigos de idioma suportados. |
| `enableRobotsTXT` | `true` | Quando habilitado, um arquivo `robots.txt` será criado na raiz do site que permite que os mecanismos de busca rastreiem todo o site. Se você preferir fornecer seu próprio `robots.txt` pré-fabricado, defina como `false` e coloque seu arquivo no diretório `static`. Para controle completo, você pode fornecer um [layout personalizado]({{< ref "content-examples#custom-layouts" >}}) para gerar este arquivo. |
| `pagination.pagerSize` | `10` | O número de artigos listados em cada página da lista de artigos. |
| `summaryLength` | `0` | O número de palavras usadas para gerar o resumo do artigo quando não é fornecido no [front matter]({{< ref "front-matter" >}}). Um valor de `0` usará a primeira frase. Este valor não tem efeito quando os resumos estão ocultos. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | Os formatos de saída gerados para o site. O Blowfish requer HTML, RSS e JSON para que todos os componentes do tema funcionem corretamente. |
| `permalinks` | _Não definido_ | Consulte a [documentação do Hugo](https://gohugo.io/configuration/permalinks/) para configuração de permalinks. |
| `taxonomies` | _Não definido_ | Consulte a seção [Organizando conteúdo]({{< ref "getting-started#organising-content" >}}) para configuração de taxonomias. |
<!-- prettier-ignore-end -->
## Miniaturas
O Blowfish foi construído para facilitar a adição de suporte visual aos seus artigos. Se você está familiarizado com a estrutura de artigos do Hugo, basta colocar um arquivo de imagem (quase todos os formatos são suportados, mas recomendamos `.png` ou `.jpg`) que comece com `feature*` dentro da pasta do seu artigo. E é isso, o Blowfish poderá usar a imagem tanto como miniatura dentro do seu site quanto para cartões <a target="_blank" href="https://oembed.com/">oEmbed</a> em plataformas sociais.
[Aqui]({{< ref "thumbnails" >}}) também há um guia com mais informações e um [exemplo]({{< ref "thumbnail_sample" >}}) se você quiser ver como fazer.
## Idioma e i18n
O Blowfish é otimizado para sites totalmente multilíngues e os recursos do tema são traduzidos para vários idiomas por padrão. A configuração de idioma permite gerar múltiplas versões do seu conteúdo para fornecer uma experiência personalizada aos seus visitantes em seu idioma nativo.
O tema atualmente suporta os seguintes idiomas por padrão:
| Idioma | Código |
| --- | --- |
| Árabe | `ar` |
| Búlgaro | `bg` |
| Bengali | `bn` |
| Catalão | `ca` |
| Tcheco | `cs` |
| Alemão | `de` |
| Inglês | `en` |
| Esperanto | `eo` |
| Espanhol (Espanha) | `es` |
| Finlandês | `fi` |
| Francês | `fr` |
| Galego | `gl` |
| Hebraico | `he` |
| Croata | `hr` |
| Húngaro | `hu` |
| Indonésio | `id` |
| Italiano | `it` |
| Japonês | `ja` |
| Coreano | `ko` |
| Holandês | `nl` |
| Persa | `fa` |
| Polonês | `pl` |
| Português (Brasil) | `pt-br` |
| Português (Portugal) | `pt-pt` |
| Romeno | `ro` |
| Russo | `ru` |
| Tailandês | `th` |
| Turco | `tr` |
| Vietnamita | `vi` |
| Chinês simplificado (China) | `zh-cn` |
| Chinês tradicional (Taiwan) | `zh-tw` |
As traduções padrão podem ser substituídas criando um arquivo personalizado em `i18n/[code].yaml` contendo as strings de tradução. Você também pode usar este método para adicionar novos idiomas. Se quiser compartilhar uma nova tradução com a comunidade, por favor [abra um pull request](https://github.com/nunocoracao/blowfish/pulls).
### Configuração
Para ser o mais flexível possível, um arquivo de configuração de idioma precisa ser criado para cada idioma no site. Por padrão, o Blowfish inclui uma configuração de idioma em inglês em `config/_default/languages.en.toml`.
O arquivo padrão pode ser usado como modelo para criar idiomas adicionais, ou renomeado se você deseja escrever seu site em um idioma diferente do inglês. Simplesmente nomeie o arquivo usando o formato `languages.[language-code].toml`.
{{< alert >}}
**Nota:** Certifique-se de que o parâmetro `defaultContentLanguage` na [configuração do site](#configuração-do-site) corresponda ao código de idioma no nome do arquivo de configuração de idioma.
{{< /alert >}}
Para informações detalhadas sobre todos os parâmetros de configuração disponíveis, consulte a documentação em inglês, pois os nomes dos parâmetros são técnicos e permanecem em sua forma original.
## Parâmetros do tema
O Blowfish fornece um grande número de parâmetros de configuração que controlam como o tema funciona. A lista completa de todos os parâmetros disponíveis está no arquivo `config/_default/params.toml`.
Muitos dos padrões de artigos podem ser substituídos por artigo, especificando-os no front matter. Consulte a seção [Front Matter]({{< ref "front-matter" >}}) para mais detalhes.
## Outros arquivos de configuração
O tema também inclui um arquivo de configuração `markup.toml`. Este arquivo contém alguns parâmetros importantes que garantem que o Hugo esteja corretamente configurado para gerar sites construídos com o Blowfish.
Sempre certifique-se de que este arquivo esteja presente no diretório de configuração e que os valores necessários estejam definidos. Não fazer isso pode fazer com que certos recursos funcionem incorretamente e pode resultar em comportamento não intencional.
@@ -0,0 +1,125 @@
---
title: "Configuração"
weight: 4
draft: false
description: "Todas as variáveis de configuração disponíveis no Blowfish."
slug: "configuration"
tags: ["configuração", "documentação"]
series: ["Documentação"]
series_order: 4
---
O Blowfish é um tema altamente personalizável e utiliza algumas das funcionalidades mais recentes do Hugo para simplificar a sua configuração.
O tema vem com uma configuração predefinida que lhe permite começar com um blogue básico ou site estático.
{{< alert "fire" >}}
Acabámos de lançar uma ferramenta CLI para o ajudar a começar com o Blowfish. Irá ajudá-lo com a instalação e configuração. Instale a ferramenta CLI globalmente utilizando:
```bash
npx blowfish-tools
```
{{< /alert >}}
> Os ficheiros de configuração incluídos com o tema são fornecidos no formato TOML, pois é a sintaxe predefinida do Hugo. Sinta-se à vontade para converter a sua configuração para YAML ou JSON, se desejar.
A configuração predefinida do tema está documentada em cada ficheiro para que possa ajustar livremente as definições de acordo com as suas necessidades.
{{< alert >}}
Conforme descrito nas [instruções de instalação]({{< ref "/docs/installation#set-up-theme-configuration-files" >}}), deve ajustar a configuração do seu tema modificando os ficheiros na pasta `config/_default/` do seu projeto Hugo e eliminar o ficheiro `hugo.toml` na raiz do seu projeto.
{{< /alert >}}
## Configuração do site
As variáveis de configuração padrão do Hugo são respeitadas em todo o tema, no entanto, há algumas coisas específicas que devem ser configuradas para a melhor experiência.
A configuração do site é gerida através do ficheiro `config/_default/hugo.toml`. A tabela abaixo descreve todas as definições que o Blowfish aproveita.
Note que os nomes de variáveis fornecidos nesta tabela utilizam notação de ponto para simplificar a estrutura de dados TOML (ou seja, `outputs.home` refere-se a `[outputs] home`).
<!-- prettier-ignore-start -->
| Nome | Predefinição | Descrição |
| --- | --- | --- |
| `theme` | `"blowfish"` | Ao utilizar Módulos Hugo, este valor de configuração deve ser removido. Para todos os outros tipos de instalação, isto deve ser definido como `blowfish` para que o tema funcione. |
| `baseURL` | _Não definido_ | O URL para a raiz do site. |
| `defaultContentLanguage` | `"en"` | Este valor determina o idioma predefinido dos componentes do tema e do conteúdo. Consulte a secção [idioma e i18n](#idioma-e-i18n) abaixo para códigos de idioma suportados. |
| `enableRobotsTXT` | `true` | Quando ativado, um ficheiro `robots.txt` será criado na raiz do site que permite que os motores de busca rastreiem todo o site. Se preferir fornecer o seu próprio `robots.txt` pré-fabricado, defina como `false` e coloque o seu ficheiro no diretório `static`. Para controlo completo, pode fornecer um [layout personalizado]({{< ref "content-examples#custom-layouts" >}}) para gerar este ficheiro. |
| `pagination.pagerSize` | `10` | O número de artigos listados em cada página da lista de artigos. |
| `summaryLength` | `0` | O número de palavras utilizadas para gerar o resumo do artigo quando não é fornecido no [front matter]({{< ref "front-matter" >}}). Um valor de `0` utilizará a primeira frase. Este valor não tem efeito quando os resumos estão ocultos. |
| `outputs.home` | `["HTML", "RSS", "JSON"]` | Os formatos de saída gerados para o site. O Blowfish requer HTML, RSS e JSON para que todos os componentes do tema funcionem corretamente. |
| `permalinks` | _Não definido_ | Consulte a [documentação do Hugo](https://gohugo.io/configuration/permalinks/) para configuração de permalinks. |
| `taxonomies` | _Não definido_ | Consulte a secção [Organização do conteúdo]({{< ref "getting-started#organising-content" >}}) para configuração de taxonomias. |
<!-- prettier-ignore-end -->
## Miniaturas
O Blowfish foi construído para facilitar a adição de suporte visual aos seus artigos. Se está familiarizado com a estrutura de artigos do Hugo, basta colocar um ficheiro de imagem (quase todos os formatos são suportados, mas recomendamos `.png` ou `.jpg`) que comece com `feature*` dentro da pasta do seu artigo. E é isso, o Blowfish poderá utilizar a imagem tanto como miniatura dentro do seu site quanto para cartões <a target="_blank" href="https://oembed.com/">oEmbed</a> em plataformas sociais.
[Aqui]({{< ref "thumbnails" >}}) também há um guia com mais informações e um [exemplo]({{< ref "thumbnail_sample" >}}) se quiser ver como fazer.
## Idioma e i18n
O Blowfish está otimizado para sites totalmente multilingues e os recursos do tema são traduzidos para vários idiomas por predefinição. A configuração de idioma permite gerar múltiplas versões do seu conteúdo para fornecer uma experiência personalizada aos seus visitantes no seu idioma nativo.
O tema atualmente suporta os seguintes idiomas por predefinição:
| Idioma | Código |
| --- | --- |
| Árabe | `ar` |
| Búlgaro | `bg` |
| Bengali | `bn` |
| Catalão | `ca` |
| Checo | `cs` |
| Alemão | `de` |
| Inglês | `en` |
| Esperanto | `eo` |
| Espanhol (Espanha) | `es` |
| Finlandês | `fi` |
| Francês | `fr` |
| Galego | `gl` |
| Hebraico | `he` |
| Croata | `hr` |
| Húngaro | `hu` |
| Indonésio | `id` |
| Italiano | `it` |
| Japonês | `ja` |
| Coreano | `ko` |
| Holandês | `nl` |
| Persa | `fa` |
| Polaco | `pl` |
| Português (Brasil) | `pt-br` |
| Português (Portugal) | `pt-pt` |
| Romeno | `ro` |
| Russo | `ru` |
| Tailandês | `th` |
| Turco | `tr` |
| Vietnamita | `vi` |
| Chinês simplificado (China) | `zh-cn` |
| Chinês tradicional (Taiwan) | `zh-tw` |
As traduções predefinidas podem ser substituídas criando um ficheiro personalizado em `i18n/[code].yaml` contendo as strings de tradução. Também pode utilizar este método para adicionar novos idiomas. Se quiser partilhar uma nova tradução com a comunidade, por favor [abra um pull request](https://github.com/nunocoracao/blowfish/pulls).
### Configuração
Para ser o mais flexível possível, um ficheiro de configuração de idioma precisa de ser criado para cada idioma no site. Por predefinição, o Blowfish inclui uma configuração de idioma em inglês em `config/_default/languages.en.toml`.
O ficheiro predefinido pode ser utilizado como modelo para criar idiomas adicionais, ou renomeado se deseja escrever o seu site num idioma diferente do inglês. Simplesmente nomeie o ficheiro utilizando o formato `languages.[language-code].toml`.
{{< alert >}}
**Nota:** Certifique-se de que o parâmetro `defaultContentLanguage` na [configuração do site](#configuração-do-site) corresponda ao código de idioma no nome do ficheiro de configuração de idioma.
{{< /alert >}}
Para informações detalhadas sobre todos os parâmetros de configuração disponíveis, consulte a documentação em inglês, pois os nomes dos parâmetros são técnicos e permanecem na sua forma original.
## Parâmetros do tema
O Blowfish fornece um grande número de parâmetros de configuração que controlam como o tema funciona. A lista completa de todos os parâmetros disponíveis está no ficheiro `config/_default/params.toml`.
Muitas das predefinições de artigos podem ser substituídas por artigo, especificando-as no front matter. Consulte a secção [Front Matter]({{< ref "front-matter" >}}) para mais detalhes.
## Outros ficheiros de configuração
O tema também inclui um ficheiro de configuração `markup.toml`. Este ficheiro contém alguns parâmetros importantes que garantem que o Hugo está corretamente configurado para gerar sites construídos com o Blowfish.
Certifique-se sempre de que este ficheiro está presente no diretório de configuração e que os valores necessários estão definidos. Não fazer isso pode fazer com que certas funcionalidades funcionem incorretamente e pode resultar em comportamento não intencional.
@@ -240,7 +240,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
| `article.showAuthor` | `true` | 是否在文章底部显示作者框。 |
| `article.showAuthorBottom` | `false` | 作者框显示在每页的底部而不是顶部。 |
| `article.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `article.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`。 |
| `article.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`仅在 `article.showHero = true` 时生效。 |
| `article.layoutBackgroundBlur` | `true` | 向下滚动文章页时,是否模糊背景图。 |
| `article.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 |
| `article.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
@@ -268,7 +268,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
| 名称 | 默认值 | 描述 |
| --- | --- | --- |
| `list.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `list.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`。 |
| `list.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`仅在 `list.showHero = true` 时生效。 |
| `list.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `list.layoutBackgroundBlur` | `true` | 向下滚动列表页时,是否模糊背景图。 |
| `list.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 |
@@ -296,7 +296,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
| --- | --- | --- |
| `taxonomy.showTermCount` | `true` | 是否在分类列表总显示对应的数量。 |
| `taxonomy.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `taxonomy.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`。 |
| `taxonomy.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic``big``background``thumbAndBackground`仅在 `taxonomy.showHero = true` 时生效。 |
| `taxonomy.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `taxonomy.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `taxonomy.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
@@ -308,7 +308,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中
| 名称 | 默认值 | 描述 |
| --- | --- | --- |
| `term.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 |
| `term.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有: `basic``big``background``thumbAndBackground`。 |
| `term.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有: `basic``big``background``thumbAndBackground`仅在 `term.showHero = true` 时生效。 |
| `term.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 |
| `term.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 |
| `term.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 |
@@ -0,0 +1,318 @@
---
title: "Inhaltsbeispiele"
weight: 11
draft: false
description: "Alle verfügbaren Partials in Blowfish."
slug: "content-examples"
tags: ["inhalt", "beispiel"]
series: ["Dokumentation"]
series_order: 12
---
Wenn Sie die Dokumentation der Reihe nach gelesen haben, sollten Sie jetzt alle Funktionen und Konfigurationen kennen, die in Blowfish verfügbar sind. Diese Seite ist darauf ausgelegt, alles zusammenzuführen und einige ausgearbeitete Beispiele anzubieten, die Sie möglicherweise in Ihrem Hugo-Projekt verwenden möchten.
{{< alert >}}
**Tipp:** Wenn Sie neu bei Hugo sind, schauen Sie sich unbedingt die [offizielle Dokumentation](https://gohugo.io/content-management/page-bundles/) an, um mehr über das Konzept von Page Bundles und Ressourcen zu erfahren.
{{< /alert >}}
Die Beispiele auf dieser Seite können alle an verschiedene Szenarien angepasst werden, geben Ihnen aber hoffentlich einige Ideen, wie Sie die Formatierung eines bestimmten Inhaltselements für Ihr individuelles Projekt angehen können.
## Branch-Seiten
Branch Page Bundles in Hugo decken Elemente wie die Homepage, Abschnittslisten und Taxonomie-Seiten ab. Das Wichtigste bei Branch Bundles ist, dass der Dateiname für diesen Inhaltstyp **`_index.md`** ist.
Blowfish berücksichtigt die Front-Matter-Parameter, die in Branch-Seiten angegeben sind, und diese überschreiben die Standardeinstellungen für diese bestimmte Seite. Zum Beispiel ermöglicht das Setzen des `title`-Parameters in einer Branch-Seite das Überschreiben des Seitentitels.
### Homepage
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Inhalt:** | `content/_index.md` |
Die Homepage in Blowfish ist insofern besonders, als ihr übergreifendes Design durch den Homepage-Layout-Konfigurationsparameter gesteuert wird. Mehr darüber erfahren Sie im Abschnitt [Homepage-Layout]({{< ref "homepage-layout" >}}).
Wenn Sie dieser Seite benutzerdefinierten Inhalt hinzufügen möchten, müssen Sie einfach eine `content/_index.md`-Datei erstellen. Alles in dieser Datei wird dann auf Ihrer Homepage eingefügt.
**Beispiel:**
```yaml
---
title: "Willkommen bei Blowfish!"
description: "Dies ist eine Demo zum Hinzufügen von Inhalten zur Homepage."
---
Willkommen auf meiner Website! Ich freue mich sehr, dass Sie vorbeischauen.
```
_Dieses Beispiel setzt einen benutzerdefinierten Titel und fügt zusätzlichen Text zum Body der Seite hinzu. Jeder Markdown-formatierte Text ist akzeptabel, einschließlich Shortcodes, Bilder und Links._
### Listenseiten
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Inhalt:** | `content/../_index.md` |
Listenseiten gruppieren alle Seiten innerhalb eines Abschnitts und bieten Besuchern eine Möglichkeit, jede Seite zu erreichen. Ein Blog oder Portfolio sind Beispiele für eine Listenseite, da sie Beiträge oder Projekte zusammenfassen.
Das Erstellen einer Listenseite ist so einfach wie das Erstellen eines Unterverzeichnisses im Content-Ordner. Um zum Beispiel einen "Projekte"-Abschnitt zu erstellen, würden Sie `content/projects/` erstellen. Dann erstellen Sie eine Markdown-Datei für jedes Ihrer Projekte.
Eine Listenseite wird standardmäßig generiert. Um den Inhalt jedoch anzupassen, sollten Sie auch eine `_index.md`-Seite in diesem neuen Verzeichnis erstellen.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo generiert entsprechend URLs für die Seiten in Ihrem Projektordner.
Genau wie auf der Homepage wird der Inhalt der `_index.md`-Datei im generierten Listenindex ausgegeben. Blowfish listet dann alle Seiten in diesem Abschnitt unter dem Inhalt auf.
**Beispiel:**
```yaml
---
title: "Projekte"
description: "Erfahren Sie mehr über einige meiner Projekte."
cascade:
showReadingTime: false
---
Dieser Abschnitt enthält alle meine aktuellen Projekte.
```
_In diesem Beispiel wird der spezielle `cascade`-Parameter verwendet, um die Lesezeit auf allen Unterseiten dieses Abschnitts auszublenden. Dadurch wird bei Projektseiten keine Lesezeit angezeigt. Dies ist eine großartige Möglichkeit, Standard-Theme-Parameter für einen ganzen Abschnitt zu überschreiben, ohne sie in jede einzelne Seite aufnehmen zu müssen._
Der [Samples-Abschnitt]({{< ref "samples" >}}) dieser Website ist ein Beispiel für eine Listenseite.
### Taxonomie-Seiten
| | |
| ---------------- | -------------------------------- |
| **Listen-Layout:** | `layouts/_default/taxonomy.html` |
| **Term-Layout:** | `layouts/_default/term.html` |
| **Inhalt:** | `content/../_index.md` |
Taxonomie-Seiten gibt es in zwei Formen - Taxonomie-Listen und Taxonomie-Terme. Listen zeigen eine Auflistung aller Terme innerhalb einer bestimmten Taxonomie an, während Terme eine Liste von Seiten anzeigen, die mit einem bestimmten Term verbunden sind.
Die Terminologie kann etwas verwirrend werden, also lassen Sie uns ein Beispiel mit einer Taxonomie namens `animals` untersuchen.
Zunächst müssen Taxonomien in Hugo konfiguriert werden, um sie zu verwenden. Dies geschieht durch Erstellen einer Konfigurationsdatei unter `config/_default/taxonomies.toml` und Definition des Taxonomie-Namens.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo erwartet, dass Taxonomien mit ihrer Singular- und Pluralform aufgelistet werden, also fügen wir das Singular `animal` gleich dem Plural `animals` hinzu, um unsere Beispiel-Taxonomie zu erstellen.
Jetzt, da unsere `animals`-Taxonomie existiert, muss sie zu einzelnen Inhaltselementen hinzugefügt werden. Das ist so einfach wie das Einfügen in das Front Matter:
```yaml
---
title: "In der Höhle des Löwen"
description: "Diese Woche lernen wir über Löwen."
animals: ["lion", "cat"]
---
```
Dies hat nun zwei _Terme_ innerhalb unserer `animals`-Taxonomie erstellt - `lion` und `cat`.
Obwohl es zu diesem Zeitpunkt nicht offensichtlich ist, generiert Hugo jetzt Listen- und Term-Seiten für diese neue Taxonomie. Standardmäßig kann die Auflistung unter `/animals/` aufgerufen werden und die Term-Seiten sind unter `/animals/lion/` und `/animals/cat/` zu finden.
Die Listenseite listet alle Terme auf, die in der Taxonomie enthalten sind. In diesem Beispiel zeigt das Navigieren zu `/animals/` eine Seite mit Links zu "lion" und "cat", die Besucher zu den einzelnen Term-Seiten führen.
Die Term-Seiten listen alle Seiten auf, die in diesem Term enthalten sind. Diese Term-Listen sind im Wesentlichen die gleichen wie normale [Listenseiten](#listenseiten) und verhalten sich ähnlich.
Um benutzerdefinierten Inhalt zu Taxonomie-Seiten hinzuzufügen, erstellen Sie einfach `_index.md`-Dateien im Content-Ordner mit dem Taxonomie-Namen als Unterverzeichnisname.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Alles in diesen Inhaltsdateien wird nun auf den generierten Taxonomie-Seiten platziert. Wie bei anderen Inhalten können die Front-Matter-Variablen verwendet werden, um Standardwerte zu überschreiben. Auf diese Weise könnten Sie einen Tag namens `lion` haben, aber den `title` mit "Löwe" überschreiben.
Um zu sehen, wie das in der Realität aussieht, schauen Sie sich die [Tags-Taxonomie-Auflistung]({{< ref "tags" >}}) auf dieser Website an.
## Leaf-Seiten
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Inhalt (eigenständig):** | `content/../page-name.md` |
| **Inhalt (gebündelt):** | `content/../page-name/index.md` |
Leaf-Seiten in Hugo sind im Grunde Standard-Inhaltsseiten. Sie werden als Seiten definiert, die keine Unterseiten enthalten. Dies könnten Dinge wie eine Über-uns-Seite oder ein einzelner Blogbeitrag sein, der im Blog-Bereich der Website lebt.
Das Wichtigste bei Leaf-Seiten ist, dass sie im Gegensatz zu Branch-Seiten `index.md` _ohne_ Unterstrich benannt werden sollten. Leaf-Seiten sind auch insofern besonders, als sie auf der obersten Ebene des Abschnitts gruppiert und mit einem eindeutigen Namen versehen werden können.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
Wenn Assets wie ein Bild in eine Seite eingebunden werden sollen, sollte ein Page Bundle verwendet werden. Page Bundles werden mit einem Unterverzeichnis mit einer `index.md`-Datei erstellt. Das Gruppieren der Assets mit dem Inhalt in seinem eigenen Verzeichnis ist wichtig, da viele der Shortcodes und andere Theme-Logik davon ausgehen, dass Ressourcen zusammen mit Seiten gebündelt sind.
**Beispiel:**
```yaml
---
title: "Mein erster Blog-Beitrag"
date: 2022-01-25
description: "Willkommen auf meinem Blog!"
summary: "Erfahren Sie mehr über mich und warum ich diesen Blog starte."
tags: ["willkommen", "neu", "über", "erster"]
---
_Dies_ ist der Inhalt meines Blog-Beitrags.
```
Leaf-Seiten haben eine große Vielfalt an [Front-Matter]({{< ref "front-matter" >}})-Parametern, die verwendet werden können, um anzupassen, wie sie angezeigt werden.
### Externe Links
Blowfish hat eine spezielle Funktion, die es ermöglicht, Links zu externen Seiten neben Artikeln in den Artikellisten anzuzeigen. Dies ist nützlich, wenn Sie Inhalte auf Websites Dritter wie Medium haben oder wissenschaftliche Arbeiten, auf die Sie verlinken möchten, ohne den Inhalt auf Ihrer Hugo-Site zu replizieren.
Um einen externen Link-Artikel zu erstellen, müssen einige spezielle Front-Matter-Einstellungen vorgenommen werden:
```yaml
---
title: "Mein Medium-Beitrag"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "Ich habe einen Beitrag auf Medium geschrieben."
showReadingTime: false
build:
render: "false"
list: "local"
---
```
Zusammen mit den normalen Front-Matter-Parametern wie `title` und `summary` wird der Parameter `externalUrl` verwendet, um Blowfish mitzuteilen, dass dies kein gewöhnlicher Artikel ist. Die hier angegebene URL ist der Ort, zu dem Besucher weitergeleitet werden, wenn sie diesen Artikel auswählen.
Zusätzlich verwenden wir einen speziellen Hugo-Front-Matter-Parameter `build`, um zu verhindern, dass eine normale Seite für diesen Inhalt generiert wird - es macht keinen Sinn, eine Seite zu generieren, da wir auf eine externe URL verlinken!
Das Theme enthält einen Archetyp, der das Erstellen dieser externen Link-Artikel vereinfacht. Geben Sie einfach `-k external` an, wenn Sie neuen Inhalt erstellen.
```shell
hugo new -k external posts/my-post.md
```
### Einfache Seiten
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
Blowfish enthält auch ein spezielles Layout für einfache Seiten. Das einfache Layout ist eine Vorlage in voller Breite, die einfach Markdown-Inhalt auf der Seite platziert, ohne spezielle Theme-Funktionen.
Die einzigen Funktionen, die im einfachen Layout verfügbar sind, sind Breadcrumbs und Teilen-Links. Das Verhalten dieser kann jedoch weiterhin mit den normalen Seiten-[Front-Matter]({{< ref "front-matter" >}})-Variablen gesteuert werden.
Um das einfache Layout auf einer bestimmten Seite zu aktivieren, fügen Sie die `layout`-Front-Matter-Variable mit dem Wert `"simple"` hinzu:
```yaml
---
title: "Meine Landing Page"
date: 2022-03-08
layout: "simple"
---
Der Inhalt dieser Seite ist jetzt in voller Breite.
```
## Benutzerdefinierte Layouts
Einer der Vorteile von Hugo ist, dass es einfach ist, benutzerdefinierte Layouts für die gesamte Website, einzelne Abschnitte oder Seiten zu erstellen.
Layouts folgen allen normalen Hugo-Templating-Regeln und weitere Informationen finden Sie in der [offiziellen Hugo-Dokumentation](https://gohugo.io/templates/introduction/).
### Überschreiben von Standard-Layouts
Jeder der oben besprochenen Inhaltstypen listet die Layout-Datei auf, die zur Generierung jedes Seitentyps verwendet wird. Wenn diese Datei in Ihrem lokalen Projekt erstellt wird, überschreibt sie die Theme-Vorlage und kann somit verwendet werden, um den Standardstil der Website anzupassen.
Zum Beispiel ermöglicht das Erstellen einer `layouts/_default/single.html`-Datei die vollständige Anpassung des Layouts von Leaf-Seiten.
### Benutzerdefinierte Abschnitt-Layouts
Es ist auch einfach, benutzerdefinierte Layouts für einzelne Inhaltsabschnitte zu erstellen. Dies ist nützlich, wenn Sie einen Abschnitt erstellen möchten, der eine bestimmte Art von Inhalt mit einem bestimmten Stil auflistet.
Lassen Sie uns ein Beispiel durchgehen, das eine benutzerdefinierte "Projekte"-Seite erstellt, die Projekte mit einem speziellen Layout auflistet.
Strukturieren Sie dazu Ihren Inhalt nach den normalen Hugo-Inhaltsregeln und erstellen Sie einen Abschnitt für Ihre Projekte. Erstellen Sie zusätzlich ein neues Layout für den Projektabschnitt, indem Sie denselben Verzeichnisnamen wie den Inhalt verwenden und eine `list.html`-Datei hinzufügen.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
Diese `list.html`-Datei überschreibt nun die Standard-Listenvorlage, aber nur für den `projects`-Abschnitt. Bevor wir uns diese Datei ansehen, schauen wir uns zunächst die einzelnen Projektdateien an.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Ein Theme für Hugo, erstellt mit Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_In diesem Beispiel weisen wir jedem Projekt einige Metadaten zu, die wir dann in unserer Listenvorlage verwenden können. Es gibt keinen Seiteninhalt, aber nichts hindert Sie daran, ihn hinzuzufügen. Es ist schließlich Ihre eigene benutzerdefinierte Vorlage!_
Mit den definierten Projekten können wir jetzt eine Listenvorlage erstellen, die die Details jedes Projekts ausgibt.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Obwohl dies ein ziemlich einfaches Beispiel ist, können Sie sehen, dass es durch jede der Seiten in diesem Abschnitt (d.h. jedes Projekt) geht und dann HTML-Links zu jedem Projekt zusammen mit einem Symbol ausgibt. Die Metadaten im Front Matter für jedes Projekt werden verwendet, um zu bestimmen, welche Informationen angezeigt werden.
Beachten Sie, dass Sie sicherstellen müssen, dass die relevanten Stile und Klassen verfügbar sind, was möglicherweise eine Neukompilierung des Tailwind CSS erfordert. Dies wird im Abschnitt [Erweiterte Anpassung]({{< ref "advanced-customisation" >}}) ausführlicher besprochen.
Beim Erstellen benutzerdefinierter Vorlagen wie dieser ist es immer am einfachsten, einen Blick darauf zu werfen, wie die Standard-Blowfish-Vorlage funktioniert, und diese dann als Leitfaden zu verwenden. Denken Sie daran, dass die [Hugo-Dokumentation](https://gohugo.io/templates/introduction/) auch eine großartige Ressource ist, um mehr über das Erstellen von Vorlagen zu erfahren.
@@ -0,0 +1,318 @@
---
title: "Ejemplos de contenido"
weight: 11
draft: false
description: "Todos los partials disponibles en Blowfish."
slug: "content-examples"
tags: ["contenido", "ejemplo"]
series: ["Documentación"]
series_order: 12
---
Si has estado leyendo la documentación en orden, ahora deberías conocer todas las características y configuraciones disponibles en Blowfish. Esta página está diseñada para unir todo y ofrecer algunos ejemplos prácticos que podrías querer usar en tu proyecto Hugo.
{{< alert >}}
**Consejo:** Si eres nuevo en Hugo, asegúrate de consultar la [documentación oficial](https://gohugo.io/content-management/page-bundles/) para aprender más sobre el concepto de bundles de página y recursos.
{{< /alert >}}
Los ejemplos en esta página pueden adaptarse a diferentes escenarios, pero esperamos que te den algunas ideas sobre cómo abordar el formateo de un elemento de contenido particular para tu proyecto individual.
## Páginas rama
Los bundles de página rama en Hugo cubren elementos como la página de inicio, listados de secciones y páginas de taxonomía. Lo importante a recordar sobre los bundles rama es que el nombre de archivo para este tipo de contenido es **`_index.md`**.
Blowfish respetará los parámetros de front matter especificados en las páginas rama y estos anularán la configuración predeterminada para esa página particular. Por ejemplo, establecer el parámetro `title` en una página rama permitirá anular el título de la página.
### Página de inicio
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Contenido:** | `content/_index.md` |
La página de inicio en Blowfish es especial porque su diseño general está controlado por el parámetro de configuración del layout de la página de inicio. Puedes aprender más sobre esto en la sección [Layout de página de inicio]({{< ref "homepage-layout" >}}).
Si quieres añadir contenido personalizado a esta página, simplemente necesitas crear un archivo `content/_index.md`. Cualquier cosa en este archivo se incluirá en tu página de inicio.
**Ejemplo:**
```yaml
---
title: "¡Bienvenido a Blowfish!"
description: "Esta es una demostración de cómo añadir contenido a la página de inicio."
---
¡Bienvenido a mi sitio web! Me alegra mucho que hayas pasado por aquí.
```
_Este ejemplo establece un título personalizado y añade algo de texto adicional al cuerpo de la página. Cualquier texto formateado en Markdown es aceptable, incluyendo shortcodes, imágenes y enlaces._
### Páginas de lista
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Contenido:** | `content/../_index.md` |
Las páginas de lista agrupan todas las páginas de una sección y proporcionan una forma para que los visitantes lleguen a cada página. Un blog o portfolio son ejemplos de una página de lista ya que agrupan publicaciones o proyectos.
Crear una página de lista es tan simple como crear un subdirectorio en la carpeta de contenido. Por ejemplo, para crear una sección "Proyectos", crearías `content/projects/`. Luego crea un archivo Markdown para cada uno de tus proyectos.
Se generará una página de lista por defecto, sin embargo, para personalizar el contenido, también deberías crear una página `_index.md` en este nuevo directorio.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo generará URLs para las páginas en tu carpeta de proyectos en consecuencia.
Al igual que la página de inicio, el contenido en el archivo `_index.md` se mostrará en el índice de lista generado. Blowfish luego listará cualquier página en esta sección debajo del contenido.
**Ejemplo:**
```yaml
---
title: "Proyectos"
description: "Aprende sobre algunos de mis proyectos."
cascade:
showReadingTime: false
---
Esta sección contiene todos mis proyectos actuales.
```
_En este ejemplo, se está usando el parámetro especial `cascade` para ocultar el tiempo de lectura en cualquier subpágina dentro de esta sección. Al hacer esto, las páginas de proyecto no mostrarán su tiempo de lectura. Esta es una excelente manera de anular los parámetros predeterminados del tema para una sección completa sin tener que incluirlos en cada página individual._
La [sección de muestras]({{< ref "samples" >}}) de este sitio es un ejemplo de una página de lista.
### Páginas de taxonomía
| | |
| ---------------- | -------------------------------- |
| **Layout lista:** | `layouts/_default/taxonomy.html` |
| **Layout término:** | `layouts/_default/term.html` |
| **Contenido:** | `content/../_index.md` |
Las páginas de taxonomía vienen en dos formas - listas de taxonomía y términos de taxonomía. Las listas muestran un listado de cada uno de los términos dentro de una taxonomía dada, mientras que los términos muestran una lista de páginas que están relacionadas con un término dado.
La terminología puede ser un poco confusa, así que exploremos un ejemplo usando una taxonomía llamada `animals`.
Primero, para usar taxonomías en Hugo, deben configurarse. Esto se hace creando un archivo de configuración en `config/_default/taxonomies.toml` y definiendo el nombre de la taxonomía.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo espera que las taxonomías se listen usando sus formas singular y plural, así que añadimos el singular `animal` igual al plural `animals` para crear nuestra taxonomía de ejemplo.
Ahora que nuestra taxonomía `animals` existe, necesita añadirse a los elementos de contenido individuales. Es tan simple como insertarla en el front matter:
```yaml
---
title: "En la guarida del león"
description: "Esta semana estamos aprendiendo sobre leones."
animals: ["lion", "cat"]
---
```
Esto ha creado ahora dos _términos_ dentro de nuestra taxonomía `animals` - `lion` y `cat`.
Aunque no es obvio en este punto, Hugo ahora estará generando páginas de lista y término para esta nueva taxonomía. Por defecto, el listado puede accederse en `/animals/` y las páginas de término pueden encontrarse en `/animals/lion/` y `/animals/cat/`.
La página de lista listará todos los términos contenidos dentro de la taxonomía. En este ejemplo, navegar a `/animals/` mostrará una página que tiene enlaces para "lion" y "cat" que llevan a los visitantes a las páginas de término individuales.
Las páginas de término listarán todas las páginas contenidas dentro de ese término. Estas listas de términos son esencialmente lo mismo que las [páginas de lista](#páginas-de-lista) normales y se comportan de manera muy similar.
Para añadir contenido personalizado a las páginas de taxonomía, simplemente crea archivos `_index.md` en la carpeta de contenido usando el nombre de la taxonomía como nombre del subdirectorio.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Cualquier cosa en estos archivos de contenido se colocará ahora en las páginas de taxonomía generadas. Como con otro contenido, las variables de front matter pueden usarse para anular valores predeterminados. De esta manera podrías tener una etiqueta llamada `lion` pero anular el `title` para que sea "León".
Para ver cómo se ve esto en la realidad, consulta el [listado de taxonomía de etiquetas]({{< ref "tags" >}}) en este sitio.
## Páginas hoja
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Contenido (independiente):** | `content/../page-name.md` |
| **Contenido (agrupado):** | `content/../page-name/index.md` |
Las páginas hoja en Hugo son básicamente páginas de contenido estándar. Se definen como páginas que no contienen ninguna subpágina. Estas podrían ser cosas como una página Acerca de, o una publicación de blog individual que vive en la sección de blog del sitio web.
Lo más importante a recordar sobre las páginas hoja es que a diferencia de las páginas rama, las páginas hoja deben nombrarse `index.md` _sin_ guion bajo. Las páginas hoja también son especiales porque pueden agruparse en el nivel superior de la sección y nombrarse con un nombre único.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
Cuando se incluyen recursos en una página, como una imagen, debe usarse un bundle de página. Los bundles de página se crean usando un subdirectorio con un archivo `index.md`. Agrupar los recursos con el contenido en su propio directorio es importante ya que muchos de los shortcodes y otras lógicas del tema asumen que los recursos están agrupados junto con las páginas.
**Ejemplo:**
```yaml
---
title: "Mi primera publicación de blog"
date: 2022-01-25
description: "¡Bienvenido a mi blog!"
summary: "Aprende más sobre mí y por qué estoy empezando este blog."
tags: ["bienvenida", "nuevo", "acerca", "primero"]
---
_Este_ es el contenido de mi publicación de blog.
```
Las páginas hoja tienen una amplia variedad de parámetros de [front matter]({{< ref "front-matter" >}}) que pueden usarse para personalizar cómo se muestran.
### Enlaces externos
Blowfish tiene una característica especial que permite que los enlaces a páginas externas aparezcan junto a los artículos en los listados de artículos. Esto es útil si tienes contenido en sitios web de terceros como Medium, o artículos de investigación que te gustaría enlazar, sin replicar el contenido en tu sitio Hugo.
Para crear un artículo de enlace externo, se necesita establecer algún front matter especial:
```yaml
---
title: "Mi publicación en Medium"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "Escribí una publicación en Medium."
showReadingTime: false
build:
render: "false"
list: "local"
---
```
Junto con los parámetros normales de front matter como `title` y `summary`, el parámetro `externalUrl` se usa para decirle a Blowfish que este no es un artículo ordinario. La URL proporcionada aquí será donde se dirija a los visitantes cuando seleccionen este artículo.
Adicionalmente, usamos un parámetro especial de front matter de Hugo `build` para evitar que se genere una página normal para este contenido - ¡no tiene sentido generar una página ya que estamos enlazando a una URL externa!
El tema incluye un arquetipo para simplificar la generación de estos artículos de enlace externo. Solo especifica `-k external` al crear nuevo contenido.
```shell
hugo new -k external posts/my-post.md
```
### Páginas simples
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
Blowfish también incluye un layout especial para páginas simples. El layout simple es una plantilla de ancho completo que simplemente coloca el contenido Markdown en la página sin ninguna característica especial del tema.
Las únicas características disponibles en el layout simple son las migas de pan y los enlaces para compartir. Sin embargo, el comportamiento de estos aún puede controlarse usando las variables normales de [front matter]({{< ref "front-matter" >}}) de la página.
Para habilitar el layout simple en una página particular, añade la variable de front matter `layout` con un valor de `"simple"`:
```yaml
---
title: "Mi página de aterrizaje"
date: 2022-03-08
layout: "simple"
---
El contenido de esta página ahora es de ancho completo.
```
## Layouts personalizados
Uno de los beneficios de Hugo es que facilita la creación de layouts personalizados para todo el sitio, secciones individuales o páginas.
Los layouts siguen todas las reglas normales de plantillas de Hugo y hay más información disponible en la [documentación oficial de Hugo](https://gohugo.io/templates/introduction/).
### Anular layouts predeterminados
Cada uno de los tipos de contenido discutidos anteriormente lista el archivo de layout que se usa para generar cada tipo de página. Si este archivo se crea en tu proyecto local, anulará la plantilla del tema y por lo tanto puede usarse para personalizar el estilo predeterminado del sitio web.
Por ejemplo, crear un archivo `layouts/_default/single.html` permitirá personalizar completamente el layout de las páginas hoja.
### Layouts de sección personalizados
También es simple crear layouts personalizados para secciones de contenido individuales. Esto es útil cuando quieres crear una sección que lista cierto tipo de contenido usando un estilo particular.
Repasemos un ejemplo que crea una página "Proyectos" personalizada que lista proyectos usando un layout especial.
Para hacer esto, estructura tu contenido usando las reglas normales de contenido de Hugo y crea una sección para tus proyectos. Adicionalmente, crea un nuevo layout para la sección de proyectos usando el mismo nombre de directorio que el contenido y añadiendo un archivo `list.html`.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
Este archivo `list.html` ahora anulará la plantilla de lista predeterminada, pero solo para la sección `projects`. Antes de mirar este archivo, primero veamos los archivos de proyecto individuales.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Un tema para Hugo construido con Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_En este ejemplo estamos asignando algunos metadatos a cada proyecto que luego podemos usar en nuestra plantilla de lista. No hay contenido de página, pero nada te impide incluirlo. ¡Es tu propia plantilla personalizada después de todo!_
Con los proyectos definidos, ahora podemos crear una plantilla de lista que muestre los detalles de cada proyecto.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Aunque este es un ejemplo bastante sencillo, puedes ver que recorre cada una de las páginas en esta sección (es decir, cada proyecto), y luego muestra enlaces HTML a cada proyecto junto con un icono. Los metadatos en el front matter de cada proyecto se usan para determinar qué información se muestra.
Ten en cuenta que necesitarás asegurarte de que los estilos y clases relevantes estén disponibles, lo que puede requerir que se recompile el CSS de Tailwind. Esto se discute con más detalle en la sección [Personalización avanzada]({{< ref "advanced-customisation" >}}).
Al crear plantillas personalizadas como esta, siempre es más fácil echar un vistazo a cómo funciona la plantilla predeterminada de Blowfish y luego usarla como guía. Recuerda, la [documentación de Hugo](https://gohugo.io/templates/introduction/) también es un gran recurso para aprender más sobre la creación de plantillas.
@@ -0,0 +1,318 @@
---
title: "Exemples de contenu"
weight: 11
draft: false
description: "Tous les partials disponibles dans Blowfish."
slug: "content-examples"
tags: ["contenu", "exemple"]
series: ["Documentation"]
series_order: 12
---
Si vous avez lu la documentation dans l'ordre, vous devriez maintenant connaître toutes les fonctionnalités et configurations disponibles dans Blowfish. Cette page est conçue pour tout rassembler et offrir quelques exemples pratiques que vous pourriez vouloir utiliser dans votre projet Hugo.
{{< alert >}}
**Astuce :** Si vous êtes nouveau sur Hugo, assurez-vous de consulter la [documentation officielle](https://gohugo.io/content-management/page-bundles/) pour en savoir plus sur le concept de bundles de pages et de ressources.
{{< /alert >}}
Les exemples de cette page peuvent tous être adaptés à différents scénarios, mais ils vous donneront, espérons-le, quelques idées sur la façon d'aborder le formatage d'un élément de contenu particulier pour votre projet individuel.
## Pages de branche
Les bundles de pages de branche dans Hugo couvrent des éléments comme la page d'accueil, les listes de sections et les pages de taxonomie. La chose importante à retenir concernant les bundles de branche est que le nom de fichier pour ce type de contenu est **`_index.md`**.
Blowfish honorera les paramètres de front matter spécifiés dans les pages de branche et ceux-ci remplaceront les paramètres par défaut pour cette page particulière. Par exemple, définir le paramètre `title` dans une page de branche permettra de remplacer le titre de la page.
### Page d'accueil
| | |
| ------------ | -------------------- |
| **Layout :** | `layouts/index.html` |
| **Contenu :** | `content/_index.md` |
La page d'accueil dans Blowfish est spéciale car son design global est contrôlé par le paramètre de configuration du layout de la page d'accueil. Vous pouvez en savoir plus à ce sujet dans la section [Layout de la page d'accueil]({{< ref "homepage-layout" >}}).
Si vous voulez ajouter du contenu personnalisé à cette page, vous devez simplement créer un fichier `content/_index.md`. Tout ce qui se trouve dans ce fichier sera alors inclus dans votre page d'accueil.
**Exemple :**
```yaml
---
title: "Bienvenue sur Blowfish !"
description: "Ceci est une démo d'ajout de contenu à la page d'accueil."
---
Bienvenue sur mon site web ! Je suis vraiment content que vous soyez passé.
```
_Cet exemple définit un titre personnalisé et ajoute du texte supplémentaire au corps de la page. Tout texte formaté en Markdown est acceptable, y compris les shortcodes, les images et les liens._
### Pages de liste
| | |
| ------------ | ---------------------------- |
| **Layout :** | `layouts/_default/list.html` |
| **Contenu :** | `content/../_index.md` |
Les pages de liste regroupent toutes les pages d'une section et offrent un moyen aux visiteurs d'atteindre chaque page. Un blog ou un portfolio sont des exemples de pages de liste car ils regroupent des articles ou des projets.
Créer une page de liste est aussi simple que de créer un sous-répertoire dans le dossier content. Par exemple, pour créer une section "Projets", vous créeriez `content/projects/`. Ensuite, créez un fichier Markdown pour chacun de vos projets.
Une page de liste sera générée par défaut, cependant pour personnaliser le contenu, vous devriez également créer une page `_index.md` dans ce nouveau répertoire.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugo générera des URLs pour les pages de votre dossier projets en conséquence.
Tout comme la page d'accueil, le contenu du fichier `_index.md` sera affiché dans l'index de liste généré. Blowfish listera ensuite toutes les pages de cette section sous le contenu.
**Exemple :**
```yaml
---
title: "Projets"
description: "Découvrez certains de mes projets."
cascade:
showReadingTime: false
---
Cette section contient tous mes projets actuels.
```
_Dans cet exemple, le paramètre spécial `cascade` est utilisé pour masquer le temps de lecture sur toutes les sous-pages de cette section. En faisant cela, les pages de projet n'afficheront pas leur temps de lecture. C'est un excellent moyen de remplacer les paramètres par défaut du thème pour une section entière sans avoir à les inclure dans chaque page individuelle._
La [section samples]({{< ref "samples" >}}) de ce site est un exemple de page de liste.
### Pages de taxonomie
| | |
| ---------------- | -------------------------------- |
| **Layout liste :** | `layouts/_default/taxonomy.html` |
| **Layout terme :** | `layouts/_default/term.html` |
| **Contenu :** | `content/../_index.md` |
Les pages de taxonomie se présentent sous deux formes - les listes de taxonomie et les termes de taxonomie. Les listes affichent une liste de chacun des termes dans une taxonomie donnée, tandis que les termes affichent une liste de pages qui sont liées à un terme donné.
La terminologie peut être un peu confuse, alors explorons un exemple utilisant une taxonomie nommée `animals`.
Tout d'abord, pour utiliser les taxonomies dans Hugo, elles doivent être configurées. Cela se fait en créant un fichier de configuration à `config/_default/taxonomies.toml` et en définissant le nom de la taxonomie.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
Hugo s'attend à ce que les taxonomies soient listées en utilisant leurs formes singulière et plurielle, donc nous ajoutons le singulier `animal` égal au pluriel `animals` pour créer notre taxonomie d'exemple.
Maintenant que notre taxonomie `animals` existe, elle doit être ajoutée aux éléments de contenu individuels. C'est aussi simple que de l'insérer dans le front matter :
```yaml
---
title: "Dans la tanière du lion"
description: "Cette semaine, nous apprenons sur les lions."
animals: ["lion", "cat"]
---
```
Cela a maintenant créé deux _termes_ dans notre taxonomie `animals` - `lion` et `cat`.
Bien que ce ne soit pas évident à ce stade, Hugo génère maintenant des pages de liste et de terme pour cette nouvelle taxonomie. Par défaut, la liste peut être accessible à `/animals/` et les pages de terme peuvent être trouvées à `/animals/lion/` et `/animals/cat/`.
La page de liste listera tous les termes contenus dans la taxonomie. Dans cet exemple, naviguer vers `/animals/` affichera une page qui a des liens pour "lion" et "cat" qui amènent les visiteurs aux pages de terme individuelles.
Les pages de terme listeront toutes les pages contenues dans ce terme. Ces listes de termes sont essentiellement les mêmes que les [pages de liste](#pages-de-liste) normales et se comportent de la même manière.
Pour ajouter du contenu personnalisé aux pages de taxonomie, créez simplement des fichiers `_index.md` dans le dossier content en utilisant le nom de la taxonomie comme nom de sous-répertoire.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Tout ce qui se trouve dans ces fichiers de contenu sera maintenant placé sur les pages de taxonomie générées. Comme pour les autres contenus, les variables de front matter peuvent être utilisées pour remplacer les valeurs par défaut. De cette façon, vous pourriez avoir un tag nommé `lion` mais remplacer le `title` par "Lion".
Pour voir à quoi cela ressemble en réalité, consultez la [liste de taxonomie des tags]({{< ref "tags" >}}) sur ce site.
## Pages feuille
| | |
| ------------------------- | ------------------------------- |
| **Layout :** | `layouts/_default/single.html` |
| **Contenu (autonome) :** | `content/../page-name.md` |
| **Contenu (groupé) :** | `content/../page-name/index.md` |
Les pages feuille dans Hugo sont essentiellement des pages de contenu standard. Elles sont définies comme des pages qui ne contiennent aucune sous-page. Cela pourrait être des choses comme une page À propos, ou un article de blog individuel qui vit dans la section blog du site web.
La chose la plus importante à retenir concernant les pages feuille est que contrairement aux pages de branche, les pages feuille doivent être nommées `index.md` _sans_ tiret bas. Les pages feuille sont également spéciales car elles peuvent être regroupées au niveau supérieur de la section et nommées avec un nom unique.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
Lors de l'inclusion d'assets dans une page, comme une image, un bundle de page doit être utilisé. Les bundles de page sont créés en utilisant un sous-répertoire avec un fichier `index.md`. Regrouper les assets avec le contenu dans son propre répertoire est important car de nombreux shortcodes et autres logiques du thème supposent que les ressources sont groupées avec les pages.
**Exemple :**
```yaml
---
title: "Mon premier article de blog"
date: 2022-01-25
description: "Bienvenue sur mon blog !"
summary: "Apprenez-en plus sur moi et pourquoi je lance ce blog."
tags: ["bienvenue", "nouveau", "à propos", "premier"]
---
_Voici_ le contenu de mon article de blog.
```
Les pages feuille ont une grande variété de paramètres de [front matter]({{< ref "front-matter" >}}) qui peuvent être utilisés pour personnaliser leur affichage.
### Liens externes
Blowfish a une fonctionnalité spéciale qui permet aux liens vers des pages externes d'apparaître à côté des articles dans les listes d'articles. C'est utile si vous avez du contenu sur des sites tiers comme Medium, ou des articles de recherche que vous souhaitez lier, sans répliquer le contenu dans votre site Hugo.
Pour créer un article de lien externe, un front matter spécial doit être défini :
```yaml
---
title: "Mon article Medium"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "J'ai écrit un article sur Medium."
showReadingTime: false
build:
render: "false"
list: "local"
---
```
En plus des paramètres de front matter normaux comme `title` et `summary`, le paramètre `externalUrl` est utilisé pour indiquer à Blowfish qu'il ne s'agit pas d'un article ordinaire. L'URL fournie ici sera l'endroit où les visiteurs seront dirigés lorsqu'ils sélectionneront cet article.
De plus, nous utilisons un paramètre de front matter Hugo spécial `build` pour empêcher la génération d'une page normale pour ce contenu - il n'y a pas d'intérêt à générer une page puisque nous lions vers une URL externe !
Le thème inclut un archétype pour simplifier la génération de ces articles de liens externes. Spécifiez simplement `-k external` lors de la création de nouveau contenu.
```shell
hugo new -k external posts/my-post.md
```
### Pages simples
| | |
| ----------------- | ------------------------------ |
| **Layout :** | `layouts/_default/simple.html` |
| **Front Matter :** | `layout: "simple"` |
Blowfish inclut également un layout spécial pour les pages simples. Le layout simple est un template pleine largeur qui place simplement le contenu Markdown dans la page sans aucune fonctionnalité spéciale du thème.
Les seules fonctionnalités disponibles dans le layout simple sont les fils d'Ariane et les liens de partage. Cependant, le comportement de ceux-ci peut toujours être contrôlé en utilisant les variables de [front matter]({{< ref "front-matter" >}}) normales de la page.
Pour activer le layout simple sur une page particulière, ajoutez la variable de front matter `layout` avec la valeur `"simple"` :
```yaml
---
title: "Ma page d'atterrissage"
date: 2022-03-08
layout: "simple"
---
Le contenu de cette page est maintenant en pleine largeur.
```
## Layouts personnalisés
Un des avantages de Hugo est qu'il facilite la création de layouts personnalisés pour l'ensemble du site, des sections individuelles ou des pages.
Les layouts suivent toutes les règles normales de templating Hugo et plus d'informations sont disponibles dans la [documentation officielle de Hugo](https://gohugo.io/templates/introduction/).
### Remplacement des layouts par défaut
Chacun des types de contenu discutés ci-dessus liste le fichier de layout qui est utilisé pour générer chaque type de page. Si ce fichier est créé dans votre projet local, il remplacera le template du thème et peut donc être utilisé pour personnaliser le style par défaut du site web.
Par exemple, créer un fichier `layouts/_default/single.html` permettra de personnaliser complètement le layout des pages feuille.
### Layouts de section personnalisés
Il est également simple de créer des layouts personnalisés pour des sections de contenu individuelles. C'est utile lorsque vous voulez créer une section qui liste un certain type de contenu en utilisant un style particulier.
Parcourons un exemple qui crée une page "Projets" personnalisée qui liste les projets en utilisant un layout spécial.
Pour ce faire, structurez votre contenu en utilisant les règles de contenu Hugo normales et créez une section pour vos projets. De plus, créez un nouveau layout pour la section projets en utilisant le même nom de répertoire que le contenu et en ajoutant un fichier `list.html`.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
Ce fichier `list.html` remplacera maintenant le template de liste par défaut, mais uniquement pour la section `projects`. Avant de regarder ce fichier, examinons d'abord les fichiers de projet individuels.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Un thème pour Hugo construit avec Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_Dans cet exemple, nous attribuons des métadonnées à chaque projet que nous pouvons ensuite utiliser dans notre template de liste. Il n'y a pas de contenu de page, mais rien ne vous empêche d'en inclure. C'est votre propre template personnalisé après tout !_
Avec les projets définis, nous pouvons maintenant créer un template de liste qui affiche les détails de chaque projet.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Bien qu'il s'agisse d'un exemple assez simple, vous pouvez voir qu'il parcourt chacune des pages de cette section (c'est-à-dire chaque projet), puis affiche des liens HTML vers chaque projet avec une icône. Les métadonnées dans le front matter de chaque projet sont utilisées pour déterminer quelles informations sont affichées.
Gardez à l'esprit que vous devrez vous assurer que les styles et classes pertinents sont disponibles, ce qui peut nécessiter la recompilation du CSS Tailwind. Ceci est discuté plus en détail dans la section [Personnalisation avancée]({{< ref "advanced-customisation" >}}).
Lors de la création de templates personnalisés comme celui-ci, il est toujours plus facile de regarder comment le template Blowfish par défaut fonctionne et ensuite de l'utiliser comme guide. N'oubliez pas que la [documentation Hugo](https://gohugo.io/templates/introduction/) est également une excellente ressource pour en savoir plus sur la création de templates.
@@ -0,0 +1,318 @@
---
title: "Exemplos de conteúdo"
weight: 11
draft: false
description: "Todos os partials disponíveis no Blowfish."
slug: "content-examples"
tags: ["conteúdo", "exemplo"]
series: ["Documentação"]
series_order: 12
---
Se você está lendo a documentação em ordem, agora deve conhecer todos os recursos e configurações disponíveis no Blowfish. Esta página foi projetada para reunir tudo e oferecer alguns exemplos práticos que você pode querer usar em seu projeto Hugo.
{{< alert >}}
**Dica:** Se você é novo no Hugo, certifique-se de conferir a [documentação oficial](https://gohugo.io/content-management/page-bundles/) para aprender mais sobre o conceito de bundles de página e recursos.
{{< /alert >}}
Os exemplos nesta página podem ser adaptados para diferentes cenários, mas esperamos que lhe deem algumas ideias sobre como abordar a formatação de um item de conteúdo específico para seu projeto individual.
## Páginas branch
Os bundles de página branch no Hugo cobrem itens como a página inicial, listagens de seções e páginas de taxonomia. O importante a lembrar sobre bundles branch é que o nome do arquivo para este tipo de conteúdo é **`_index.md`**.
O Blowfish respeitará os parâmetros de front matter especificados nas páginas branch e estes substituirão as configurações padrão para essa página específica. Por exemplo, definir o parâmetro `title` em uma página branch permitirá substituir o título da página.
### Página inicial
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Conteúdo:** | `content/_index.md` |
A página inicial no Blowfish é especial porque seu design geral é controlado pelo parâmetro de configuração do layout da página inicial. Você pode aprender mais sobre isso na seção [Layout da página inicial]({{< ref "homepage-layout" >}}).
Se você quiser adicionar conteúdo personalizado a esta página, simplesmente precisa criar um arquivo `content/_index.md`. Qualquer coisa neste arquivo será incluída em sua página inicial.
**Exemplo:**
```yaml
---
title: "Bem-vindo ao Blowfish!"
description: "Esta é uma demonstração de como adicionar conteúdo à página inicial."
---
Bem-vindo ao meu site! Fico muito feliz que você passou por aqui.
```
_Este exemplo define um título personalizado e adiciona algum texto adicional ao corpo da página. Qualquer texto formatado em Markdown é aceitável, incluindo shortcodes, imagens e links._
### Páginas de lista
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Conteúdo:** | `content/../_index.md` |
As páginas de lista agrupam todas as páginas de uma seção e fornecem uma maneira para os visitantes alcançarem cada página. Um blog ou portfolio são exemplos de uma página de lista, pois agrupam posts ou projetos.
Criar uma página de lista é tão simples quanto criar um subdiretório na pasta de conteúdo. Por exemplo, para criar uma seção "Projetos", você criaria `content/projects/`. Em seguida, crie um arquivo Markdown para cada um dos seus projetos.
Uma página de lista será gerada por padrão, no entanto, para personalizar o conteúdo, você também deve criar uma página `_index.md` neste novo diretório.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
O Hugo gerará URLs para as páginas na sua pasta de projetos de acordo.
Assim como a página inicial, o conteúdo no arquivo `_index.md` será exibido no índice de lista gerado. O Blowfish então listará quaisquer páginas nesta seção abaixo do conteúdo.
**Exemplo:**
```yaml
---
title: "Projetos"
description: "Conheça alguns dos meus projetos."
cascade:
showReadingTime: false
---
Esta seção contém todos os meus projetos atuais.
```
_Neste exemplo, o parâmetro especial `cascade` está sendo usado para ocultar o tempo de leitura em quaisquer subpáginas dentro desta seção. Ao fazer isso, as páginas de projeto não mostrarão seu tempo de leitura. Esta é uma ótima maneira de substituir os parâmetros padrão do tema para uma seção inteira sem ter que incluí-los em cada página individual._
A [seção de amostras]({{< ref "samples" >}}) deste site é um exemplo de uma página de lista.
### Páginas de taxonomia
| | |
| ---------------- | -------------------------------- |
| **Layout lista:** | `layouts/_default/taxonomy.html` |
| **Layout termo:** | `layouts/_default/term.html` |
| **Conteúdo:** | `content/../_index.md` |
As páginas de taxonomia vêm em duas formas - listas de taxonomia e termos de taxonomia. As listas exibem uma listagem de cada um dos termos dentro de uma determinada taxonomia, enquanto os termos exibem uma lista de páginas que estão relacionadas a um determinado termo.
A terminologia pode ser um pouco confusa, então vamos explorar um exemplo usando uma taxonomia chamada `animals`.
Primeiro, para usar taxonomias no Hugo, elas devem ser configuradas. Isso é feito criando um arquivo de configuração em `config/_default/taxonomies.toml` e definindo o nome da taxonomia.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
O Hugo espera que as taxonomias sejam listadas usando suas formas singular e plural, então adicionamos o singular `animal` igual ao plural `animals` para criar nossa taxonomia de exemplo.
Agora que nossa taxonomia `animals` existe, ela precisa ser adicionada aos itens de conteúdo individuais. É tão simples quanto inseri-la no front matter:
```yaml
---
title: "Na toca do leão"
description: "Esta semana estamos aprendendo sobre leões."
animals: ["lion", "cat"]
---
```
Isso criou agora dois _termos_ dentro de nossa taxonomia `animals` - `lion` e `cat`.
Embora não seja óbvio neste ponto, o Hugo agora estará gerando páginas de lista e termo para esta nova taxonomia. Por padrão, a listagem pode ser acessada em `/animals/` e as páginas de termo podem ser encontradas em `/animals/lion/` e `/animals/cat/`.
A página de lista listará todos os termos contidos dentro da taxonomia. Neste exemplo, navegar para `/animals/` mostrará uma página que tem links para "lion" e "cat" que levam os visitantes às páginas de termo individuais.
As páginas de termo listarão todas as páginas contidas dentro desse termo. Essas listas de termos são essencialmente as mesmas que as [páginas de lista](#páginas-de-lista) normais e se comportam da mesma maneira.
Para adicionar conteúdo personalizado às páginas de taxonomia, simplesmente crie arquivos `_index.md` na pasta de conteúdo usando o nome da taxonomia como o nome do subdiretório.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Qualquer coisa nesses arquivos de conteúdo será agora colocada nas páginas de taxonomia geradas. Como com outros conteúdos, as variáveis de front matter podem ser usadas para substituir valores padrão. Dessa forma, você poderia ter uma tag chamada `lion` mas substituir o `title` por "Leão".
Para ver como isso se parece na realidade, confira a [listagem de taxonomia de tags]({{< ref "tags" >}}) neste site.
## Páginas leaf
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Conteúdo (autônomo):** | `content/../page-name.md` |
| **Conteúdo (agrupado):** | `content/../page-name/index.md` |
As páginas leaf no Hugo são basicamente páginas de conteúdo padrão. Elas são definidas como páginas que não contêm nenhuma subpágina. Isso poderia ser coisas como uma página Sobre, ou uma postagem de blog individual que vive na seção de blog do site.
O mais importante a lembrar sobre páginas leaf é que, ao contrário das páginas branch, as páginas leaf devem ser nomeadas `index.md` _sem_ underscore. As páginas leaf também são especiais porque podem ser agrupadas no nível superior da seção e nomeadas com um nome único.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
Ao incluir recursos em uma página, como uma imagem, um bundle de página deve ser usado. Os bundles de página são criados usando um subdiretório com um arquivo `index.md`. Agrupar os recursos com o conteúdo em seu próprio diretório é importante, pois muitos dos shortcodes e outras lógicas do tema assumem que os recursos estão agrupados junto com as páginas.
**Exemplo:**
```yaml
---
title: "Minha primeira postagem de blog"
date: 2022-01-25
description: "Bem-vindo ao meu blog!"
summary: "Saiba mais sobre mim e por que estou começando este blog."
tags: ["boas-vindas", "novo", "sobre", "primeiro"]
---
_Este_ é o conteúdo da minha postagem de blog.
```
As páginas leaf têm uma grande variedade de parâmetros de [front matter]({{< ref "front-matter" >}}) que podem ser usados para personalizar como são exibidas.
### Links externos
O Blowfish tem um recurso especial que permite que links para páginas externas apareçam ao lado dos artigos nas listagens de artigos. Isso é útil se você tem conteúdo em sites de terceiros como Medium, ou artigos de pesquisa que você gostaria de vincular, sem replicar o conteúdo em seu site Hugo.
Para criar um artigo de link externo, algum front matter especial precisa ser definido:
```yaml
---
title: "Minha postagem no Medium"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "Escrevi uma postagem no Medium."
showReadingTime: false
build:
render: "false"
list: "local"
---
```
Junto com os parâmetros normais de front matter como `title` e `summary`, o parâmetro `externalUrl` é usado para dizer ao Blowfish que este não é um artigo comum. A URL fornecida aqui será para onde os visitantes serão direcionados quando selecionarem este artigo.
Adicionalmente, usamos um parâmetro especial de front matter do Hugo `build` para evitar que uma página normal seja gerada para este conteúdo - não há sentido em gerar uma página já que estamos vinculando a uma URL externa!
O tema inclui um arquétipo para simplificar a geração desses artigos de link externo. Basta especificar `-k external` ao criar novo conteúdo.
```shell
hugo new -k external posts/my-post.md
```
### Páginas simples
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
O Blowfish também inclui um layout especial para páginas simples. O layout simples é um template de largura total que simplesmente coloca o conteúdo Markdown na página sem nenhum recurso especial do tema.
Os únicos recursos disponíveis no layout simples são breadcrumbs e links de compartilhamento. No entanto, o comportamento destes ainda pode ser controlado usando as variáveis normais de [front matter]({{< ref "front-matter" >}}) da página.
Para habilitar o layout simples em uma página específica, adicione a variável de front matter `layout` com o valor `"simple"`:
```yaml
---
title: "Minha página de destino"
date: 2022-03-08
layout: "simple"
---
O conteúdo desta página agora é de largura total.
```
## Layouts personalizados
Um dos benefícios do Hugo é que ele facilita a criação de layouts personalizados para todo o site, seções individuais ou páginas.
Os layouts seguem todas as regras normais de templates do Hugo e mais informações estão disponíveis na [documentação oficial do Hugo](https://gohugo.io/templates/introduction/).
### Substituindo layouts padrão
Cada um dos tipos de conteúdo discutidos acima lista o arquivo de layout que é usado para gerar cada tipo de página. Se este arquivo for criado em seu projeto local, ele substituirá o template do tema e, portanto, pode ser usado para personalizar o estilo padrão do site.
Por exemplo, criar um arquivo `layouts/_default/single.html` permitirá que o layout das páginas leaf seja completamente personalizado.
### Layouts de seção personalizados
Também é simples criar layouts personalizados para seções de conteúdo individuais. Isso é útil quando você quer fazer uma seção que lista um certo tipo de conteúdo usando um estilo específico.
Vamos percorrer um exemplo que cria uma página "Projetos" personalizada que lista projetos usando um layout especial.
Para fazer isso, estruture seu conteúdo usando as regras normais de conteúdo do Hugo e crie uma seção para seus projetos. Adicionalmente, crie um novo layout para a seção de projetos usando o mesmo nome de diretório que o conteúdo e adicionando um arquivo `list.html`.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
Este arquivo `list.html` agora substituirá o template de lista padrão, mas apenas para a seção `projects`. Antes de olharmos para este arquivo, vamos primeiro olhar para os arquivos de projeto individuais.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Um tema para Hugo construído com Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_Neste exemplo, estamos atribuindo alguns metadados a cada projeto que podemos usar em nosso template de lista. Não há conteúdo de página, mas nada impede você de incluí-lo. É seu próprio template personalizado, afinal!_
Com os projetos definidos, agora podemos criar um template de lista que exibe os detalhes de cada projeto.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Embora este seja um exemplo bastante simples, você pode ver que ele percorre cada uma das páginas nesta seção (ou seja, cada projeto) e então exibe links HTML para cada projeto junto com um ícone. Os metadados no front matter de cada projeto são usados para determinar quais informações são exibidas.
Tenha em mente que você precisará garantir que os estilos e classes relevantes estejam disponíveis, o que pode exigir que o CSS do Tailwind seja recompilado. Isso é discutido com mais detalhes na seção [Personalização avançada]({{< ref "advanced-customisation" >}}).
Ao criar templates personalizados como este, é sempre mais fácil dar uma olhada em como o template padrão do Blowfish funciona e depois usá-lo como guia. Lembre-se, a [documentação do Hugo](https://gohugo.io/templates/introduction/) também é um ótimo recurso para aprender mais sobre a criação de templates.
@@ -0,0 +1,318 @@
---
title: "Exemplos de conteúdo"
weight: 11
draft: false
description: "Todos os partials disponíveis no Blowfish."
slug: "content-examples"
tags: ["conteúdo", "exemplo"]
series: ["Documentação"]
series_order: 12
---
Se tem lido a documentação por ordem, agora deverá conhecer todas as funcionalidades e configurações disponíveis no Blowfish. Esta página foi concebida para reunir tudo e oferecer alguns exemplos práticos que poderá querer utilizar no seu projeto Hugo.
{{< alert >}}
**Dica:** Se é novo no Hugo, certifique-se de consultar a [documentação oficial](https://gohugo.io/content-management/page-bundles/) para saber mais sobre o conceito de bundles de página e recursos.
{{< /alert >}}
Os exemplos nesta página podem todos ser adaptados a diferentes cenários, mas esperamos que lhe deem algumas ideias sobre como abordar a formatação de um item de conteúdo específico para o seu projeto individual.
## Páginas branch
Os bundles de página branch no Hugo cobrem itens como a página inicial, listagens de secções e páginas de taxonomia. O importante a lembrar sobre bundles branch é que o nome do ficheiro para este tipo de conteúdo é **`_index.md`**.
O Blowfish respeitará os parâmetros de front matter especificados nas páginas branch e estes substituirão as definições predefinidas para essa página específica. Por exemplo, definir o parâmetro `title` numa página branch permitirá substituir o título da página.
### Página inicial
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Conteúdo:** | `content/_index.md` |
A página inicial no Blowfish é especial porque o seu design geral é controlado pelo parâmetro de configuração do layout da página inicial. Pode saber mais sobre isto na secção [Layout da página inicial]({{< ref "homepage-layout" >}}).
Se quiser adicionar conteúdo personalizado a esta página, basta criar um ficheiro `content/_index.md`. Tudo o que estiver neste ficheiro será incluído na sua página inicial.
**Exemplo:**
```yaml
---
title: "Bem-vindo ao Blowfish!"
description: "Esta é uma demonstração de como adicionar conteúdo à página inicial."
---
Bem-vindo ao meu site! Fico muito contente que tenha passado por cá.
```
_Este exemplo define um título personalizado e adiciona algum texto adicional ao corpo da página. Qualquer texto formatado em Markdown é aceitável, incluindo shortcodes, imagens e ligações._
### Páginas de lista
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Conteúdo:** | `content/../_index.md` |
As páginas de lista agrupam todas as páginas de uma secção e fornecem uma forma para os visitantes alcançarem cada página. Um blogue ou portfólio são exemplos de uma página de lista, pois agrupam publicações ou projetos.
Criar uma página de lista é tão simples como criar um subdiretório na pasta de conteúdo. Por exemplo, para criar uma secção "Projetos", criaria `content/projects/`. Em seguida, crie um ficheiro Markdown para cada um dos seus projetos.
Uma página de lista será gerada por predefinição, no entanto, para personalizar o conteúdo, também deve criar uma página `_index.md` neste novo diretório.
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
O Hugo gerará URLs para as páginas na sua pasta de projetos em conformidade.
Tal como na página inicial, o conteúdo no ficheiro `_index.md` será apresentado no índice de lista gerado. O Blowfish listará então quaisquer páginas nesta secção abaixo do conteúdo.
**Exemplo:**
```yaml
---
title: "Projetos"
description: "Conheça alguns dos meus projetos."
cascade:
showReadingTime: false
---
Esta secção contém todos os meus projetos atuais.
```
_Neste exemplo, o parâmetro especial `cascade` está a ser utilizado para ocultar o tempo de leitura em quaisquer subpáginas dentro desta secção. Ao fazer isto, as páginas de projeto não mostrarão o seu tempo de leitura. Esta é uma excelente forma de substituir os parâmetros predefinidos do tema para uma secção inteira sem ter de os incluir em cada página individual._
A [secção de amostras]({{< ref "samples" >}}) deste site é um exemplo de uma página de lista.
### Páginas de taxonomia
| | |
| ---------------- | -------------------------------- |
| **Layout lista:** | `layouts/_default/taxonomy.html` |
| **Layout termo:** | `layouts/_default/term.html` |
| **Conteúdo:** | `content/../_index.md` |
As páginas de taxonomia vêm em duas formas - listas de taxonomia e termos de taxonomia. As listas apresentam uma listagem de cada um dos termos dentro de uma determinada taxonomia, enquanto os termos apresentam uma lista de páginas que estão relacionadas com um determinado termo.
A terminologia pode ser um pouco confusa, então vamos explorar um exemplo utilizando uma taxonomia chamada `animals`.
Primeiro, para utilizar taxonomias no Hugo, estas devem ser configuradas. Isto é feito criando um ficheiro de configuração em `config/_default/taxonomies.toml` e definindo o nome da taxonomia.
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
O Hugo espera que as taxonomias sejam listadas utilizando as suas formas singular e plural, pelo que adicionamos o singular `animal` igual ao plural `animals` para criar a nossa taxonomia de exemplo.
Agora que a nossa taxonomia `animals` existe, precisa de ser adicionada aos itens de conteúdo individuais. É tão simples como inseri-la no front matter:
```yaml
---
title: "Na toca do leão"
description: "Esta semana estamos a aprender sobre leões."
animals: ["lion", "cat"]
---
```
Isto criou agora dois _termos_ dentro da nossa taxonomia `animals` - `lion` e `cat`.
Embora não seja óbvio neste ponto, o Hugo estará agora a gerar páginas de lista e termo para esta nova taxonomia. Por predefinição, a listagem pode ser acedida em `/animals/` e as páginas de termo podem ser encontradas em `/animals/lion/` e `/animals/cat/`.
A página de lista listará todos os termos contidos dentro da taxonomia. Neste exemplo, navegar para `/animals/` mostrará uma página que tem ligações para "lion" e "cat" que levam os visitantes às páginas de termo individuais.
As páginas de termo listarão todas as páginas contidas dentro desse termo. Estas listas de termos são essencialmente as mesmas que as [páginas de lista](#páginas-de-lista) normais e comportam-se da mesma forma.
Para adicionar conteúdo personalizado às páginas de taxonomia, basta criar ficheiros `_index.md` na pasta de conteúdo utilizando o nome da taxonomia como o nome do subdiretório.
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
Tudo o que estiver nestes ficheiros de conteúdo será agora colocado nas páginas de taxonomia geradas. Como com outros conteúdos, as variáveis de front matter podem ser utilizadas para substituir valores predefinidos. Desta forma, poderia ter uma tag chamada `lion` mas substituir o `title` por "Leão".
Para ver como isto se parece na realidade, consulte a [listagem de taxonomia de tags]({{< ref "tags" >}}) neste site.
## Páginas leaf
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Conteúdo (autónomo):** | `content/../page-name.md` |
| **Conteúdo (agrupado):** | `content/../page-name/index.md` |
As páginas leaf no Hugo são basicamente páginas de conteúdo padrão. São definidas como páginas que não contêm quaisquer subpáginas. Estas poderiam ser coisas como uma página Sobre, ou uma publicação de blogue individual que vive na secção de blogue do site.
O mais importante a lembrar sobre páginas leaf é que, ao contrário das páginas branch, as páginas leaf devem ser nomeadas `index.md` _sem_ underscore. As páginas leaf também são especiais porque podem ser agrupadas no nível superior da secção e nomeadas com um nome único.
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
Ao incluir recursos numa página, como uma imagem, deve ser utilizado um bundle de página. Os bundles de página são criados utilizando um subdiretório com um ficheiro `index.md`. Agrupar os recursos com o conteúdo no seu próprio diretório é importante, pois muitos dos shortcodes e outras lógicas do tema assumem que os recursos estão agrupados junto com as páginas.
**Exemplo:**
```yaml
---
title: "A minha primeira publicação de blogue"
date: 2022-01-25
description: "Bem-vindo ao meu blogue!"
summary: "Saiba mais sobre mim e porque estou a começar este blogue."
tags: ["boas-vindas", "novo", "sobre", "primeiro"]
---
_Este_ é o conteúdo da minha publicação de blogue.
```
As páginas leaf têm uma grande variedade de parâmetros de [front matter]({{< ref "front-matter" >}}) que podem ser utilizados para personalizar como são apresentadas.
### Ligações externas
O Blowfish tem uma funcionalidade especial que permite que ligações para páginas externas apareçam ao lado dos artigos nas listagens de artigos. Isto é útil se tem conteúdo em sites de terceiros como Medium, ou artigos de investigação que gostaria de ligar, sem replicar o conteúdo no seu site Hugo.
Para criar um artigo de ligação externa, algum front matter especial precisa de ser definido:
```yaml
---
title: "A minha publicação no Medium"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "Escrevi uma publicação no Medium."
showReadingTime: false
build:
render: "false"
list: "local"
---
```
Juntamente com os parâmetros normais de front matter como `title` e `summary`, o parâmetro `externalUrl` é utilizado para dizer ao Blowfish que este não é um artigo comum. O URL fornecido aqui será para onde os visitantes serão direcionados quando selecionarem este artigo.
Adicionalmente, utilizamos um parâmetro especial de front matter do Hugo `build` para evitar que uma página normal seja gerada para este conteúdo - não faz sentido gerar uma página já que estamos a ligar a um URL externo!
O tema inclui um arquétipo para simplificar a geração destes artigos de ligação externa. Basta especificar `-k external` ao criar novo conteúdo.
```shell
hugo new -k external posts/my-post.md
```
### Páginas simples
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
O Blowfish também inclui um layout especial para páginas simples. O layout simples é um template de largura total que simplesmente coloca o conteúdo Markdown na página sem nenhuma funcionalidade especial do tema.
As únicas funcionalidades disponíveis no layout simples são breadcrumbs e ligações de partilha. No entanto, o comportamento destes ainda pode ser controlado utilizando as variáveis normais de [front matter]({{< ref "front-matter" >}}) da página.
Para ativar o layout simples numa página específica, adicione a variável de front matter `layout` com o valor `"simple"`:
```yaml
---
title: "A minha página de destino"
date: 2022-03-08
layout: "simple"
---
O conteúdo desta página é agora de largura total.
```
## Layouts personalizados
Um dos benefícios do Hugo é que facilita a criação de layouts personalizados para todo o site, secções individuais ou páginas.
Os layouts seguem todas as regras normais de templates do Hugo e mais informações estão disponíveis na [documentação oficial do Hugo](https://gohugo.io/templates/introduction/).
### Substituir layouts predefinidos
Cada um dos tipos de conteúdo discutidos acima lista o ficheiro de layout que é utilizado para gerar cada tipo de página. Se este ficheiro for criado no seu projeto local, substituirá o template do tema e, portanto, pode ser utilizado para personalizar o estilo predefinido do site.
Por exemplo, criar um ficheiro `layouts/_default/single.html` permitirá que o layout das páginas leaf seja completamente personalizado.
### Layouts de secção personalizados
Também é simples criar layouts personalizados para secções de conteúdo individuais. Isto é útil quando quer fazer uma secção que lista um certo tipo de conteúdo utilizando um estilo específico.
Vamos percorrer um exemplo que cria uma página "Projetos" personalizada que lista projetos utilizando um layout especial.
Para fazer isto, estruture o seu conteúdo utilizando as regras normais de conteúdo do Hugo e crie uma secção para os seus projetos. Adicionalmente, crie um novo layout para a secção de projetos utilizando o mesmo nome de diretório que o conteúdo e adicionando um ficheiro `list.html`.
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
Este ficheiro `list.html` irá agora substituir o template de lista predefinido, mas apenas para a secção `projects`. Antes de olharmos para este ficheiro, vamos primeiro olhar para os ficheiros de projeto individuais.
```yaml
---
title: "Blowfish"
date: 2021-08-11
icon: "github"
description: "Um tema para Hugo construído com Tailwind CSS."
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/nunocoracao/blowfish/"
---
```
_Neste exemplo, estamos a atribuir alguns metadados a cada projeto que podemos depois utilizar no nosso template de lista. Não há conteúdo de página, mas nada o impede de o incluir. É o seu próprio template personalizado, afinal!_
Com os projetos definidos, agora podemos criar um template de lista que apresenta os detalhes de cada projeto.
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
Embora este seja um exemplo bastante simples, pode ver que percorre cada uma das páginas nesta secção (ou seja, cada projeto) e depois apresenta ligações HTML para cada projeto juntamente com um ícone. Os metadados no front matter de cada projeto são utilizados para determinar que informações são apresentadas.
Tenha em mente que precisará de garantir que os estilos e classes relevantes estão disponíveis, o que pode exigir que o CSS do Tailwind seja recompilado. Isto é discutido com mais detalhe na secção [Personalização avançada]({{< ref "advanced-customisation" >}}).
Ao criar templates personalizados como este, é sempre mais fácil dar uma vista de olhos em como o template predefinido do Blowfish funciona e depois utilizá-lo como guia. Lembre-se, a [documentação do Hugo](https://gohugo.io/templates/introduction/) também é um excelente recurso para saber mais sobre a criação de templates.
@@ -0,0 +1,55 @@
---
title: "Firebase: Aufrufe & Likes"
weight: 15
draft: false
description: "Erfahren Sie, wie Sie Firebase integrieren und dynamische Daten für Aufrufe und Likes erhalten."
slug: "firebase-views"
tags: ["firebase", "aufrufe", "likes"]
series: ["Dokumentation"]
series_order: 15
---
Um dynamische Daten auf Ihrer Website zu unterstützen, haben wir die Integration von Firebase hinzugefügt. Dies ermöglicht es Ihnen, die Aufrufe-Funktion über Listen und Beiträge hinweg zu nutzen.
1. Gehen Sie zur <a target="_blank" href="https://firebase.com">Firebase-Website</a> und erstellen Sie ein kostenloses Konto
2. Erstellen Sie ein neues Projekt
3. Wählen Sie den Analytics-Standort
4. Richten Sie Firebase in Blowfish ein, indem Sie die Variablen für Ihr Projekt abrufen und sie in der `params.toml`-Datei setzen. Weitere Details finden Sie auf <a target="_blank" href="{{< ref "configuration/#theme-parameters" >}}">dieser Seite</a>. Unten finden Sie ein Beispiel der Datei, die Firebase bereitstellt. Beachten Sie die Parameter innerhalb des FirebaseConfig-Objekts.
```js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
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"
};
// Initialize Firebase
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.
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
```
6. Anonyme Autorisierung aktivieren - Wählen Sie Build und öffnen Sie Authentication. Wählen Sie Erste Schritte, klicken Sie auf Anonym und aktivieren Sie es, speichern.
7. Fertig - Sie können jetzt Aufrufe und Likes in Blowfish für alle (oder bestimmte) Artikel aktivieren.
@@ -0,0 +1,55 @@
---
title: "Firebase: Vistas & Likes"
weight: 15
draft: false
description: "Aprende cómo integrar Firebase y obtener datos dinámicos para vistas y likes."
slug: "firebase-views"
tags: ["firebase", "vistas", "likes"]
series: ["Documentación"]
series_order: 15
---
Para poder soportar datos dinámicos en tu sitio web, hemos añadido soporte para integrar Firebase. Esto te permitirá usar la función de vistas en listas y publicaciones.
1. Ve al <a target="_blank" href="https://firebase.com">sitio web de Firebase</a> y crea una cuenta gratis
2. Crea un nuevo proyecto
3. Selecciona la ubicación de analytics
4. Configura Firebase en Blowfish obteniendo las variables para tu proyecto y configurándolas en el archivo `params.toml`. Más detalles se pueden encontrar en <a target="_blank" href="{{< ref "configuration/#theme-parameters" >}}">esta página</a>. Puedes encontrar un ejemplo del archivo que Firebase proporcionará abajo, observa los parámetros dentro del objeto FirebaseConfig.
```js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
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"
};
// Initialize Firebase
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.
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
```
6. Habilitar autorización anónima - Selecciona Build y abre Authentication. Selecciona comenzar, haz clic en Anónimo y actívalo, guarda.
7. Disfruta - ahora puedes activar vistas y likes en Blowfish para todos (o específicos) artículos.
@@ -0,0 +1,55 @@
---
title: "Firebase : Vues & Likes"
weight: 15
draft: false
description: "Apprenez à intégrer Firebase et obtenir des données dynamiques pour les vues et les likes."
slug: "firebase-views"
tags: ["firebase", "vues", "likes"]
series: ["Documentation"]
series_order: 15
---
Afin de pouvoir prendre en charge les données dynamiques sur votre site web, nous avons ajouté le support pour intégrer Firebase. Cela vous permettra d'utiliser la fonctionnalité de vues sur les listes et les articles.
1. Allez sur le <a target="_blank" href="https://firebase.com">site web Firebase</a> et créez un compte gratuitement
2. Créez un nouveau projet
3. Sélectionnez l'emplacement des analytics
4. Configurez Firebase dans Blowfish en obtenant les variables pour votre projet et en les définissant dans le fichier `params.toml`. Plus de détails peuvent être trouvés sur <a target="_blank" href="{{< ref "configuration/#theme-parameters" >}}">cette page</a>. Vous pouvez trouver un exemple du fichier que Firebase fournira ci-dessous, notez les paramètres dans l'objet FirebaseConfig.
```js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
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"
};
// Initialize Firebase
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.
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
```
6. Activer l'autorisation anonyme - Sélectionnez Build et ouvrez Authentication. Sélectionnez commencer, cliquez sur Anonyme et activez-le, enregistrez.
7. Profitez - vous pouvez maintenant activer les vues et les likes sur Blowfish pour tous (ou certains) articles.
@@ -0,0 +1,55 @@
---
title: "Firebase: Visualizações & Curtidas"
weight: 15
draft: false
description: "Aprenda como integrar o Firebase e obter dados dinâmicos para visualizações e curtidas."
slug: "firebase-views"
tags: ["firebase", "visualizações", "curtidas"]
series: ["Documentação"]
series_order: 15
---
Para poder suportar dados dinâmicos em seu site, adicionamos suporte para integrar o Firebase. Isso permitirá que você use o recurso de visualizações em listas e posts.
1. Vá para o <a target="_blank" href="https://firebase.com">site do Firebase</a> e crie uma conta gratuitamente
2. Crie um novo projeto
3. Selecione a localização do analytics
4. Configure o Firebase no Blowfish obtendo as variáveis do seu projeto e configurando-as no arquivo `params.toml`. Mais detalhes podem ser encontrados <a target="_blank" href="{{< ref "configuration/#theme-parameters" >}}">nesta página</a>. Você pode encontrar um exemplo do arquivo que o Firebase fornecerá abaixo, observe os parâmetros dentro do objeto FirebaseConfig.
```js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
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"
};
// Initialize Firebase
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.
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
```
6. Habilitar autorização anônima - Selecione Build e abra Authentication. Selecione começar, clique em Anônimo e ative, salve.
7. Aproveite - agora você pode ativar visualizações e curtidas no Blowfish para todos (ou específicos) artigos.
@@ -0,0 +1,55 @@
---
title: "Firebase: Visualizações & Gostos"
weight: 15
draft: false
description: "Aprenda como integrar o Firebase e obter dados dinâmicos para visualizações e gostos."
slug: "firebase-views"
tags: ["firebase", "visualizações", "gostos"]
series: ["Documentação"]
series_order: 15
---
Para poder suportar dados dinâmicos no seu website, adicionámos suporte para integrar o Firebase. Isto permitirá utilizar a funcionalidade de visualizações em listas e publicações.
1. Vá ao <a target="_blank" href="https://firebase.com">website do Firebase</a> e crie uma conta gratuitamente
2. Crie um novo projeto
3. Selecione a localização do analytics
4. Configure o Firebase no Blowfish obtendo as variáveis do seu projeto e configurando-as no ficheiro `params.toml`. Mais detalhes podem ser encontrados <a target="_blank" href="{{< ref "configuration/#theme-parameters" >}}">nesta página</a>. Pode encontrar um exemplo do ficheiro que o Firebase fornecerá abaixo, observe os parâmetros dentro do objeto FirebaseConfig.
```js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
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"
};
// Initialize Firebase
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.
```txt
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
```
6. Ativar autorização anónima - Selecione Build e abra Authentication. Selecione começar, clique em Anónimo e ative, guarde.
7. Aproveite - agora pode ativar visualizações e gostos no Blowfish para todos (ou específicos) artigos.
@@ -0,0 +1,60 @@
---
title: "Front Matter"
weight: 7
draft: false
description: "Alle in Blowfish verfügbaren Front-Matter-Variablen."
slug: "front-matter"
tags: ["front matter", "konfiguration", "dokumentation"]
series: ["Dokumentation"]
series_order: 7
---
Zusätzlich zu den [Standard-Hugo-Front-Matter-Parametern](https://gohugo.io/content-management/front-matter/#front-matter-variables) fügt Blowfish eine Reihe zusätzlicher Optionen hinzu, um die Darstellung einzelner Artikel anzupassen. Alle verfügbaren Theme-Front-Matter-Parameter sind unten aufgelistet.
Die Standardwerte der Front-Matter-Parameter werden von der [Basiskonfiguration]({{< ref "configuration" >}}) des Themes geerbt, sodass Sie diese Parameter nur in Ihrem Front Matter angeben müssen, wenn Sie die Standardwerte überschreiben möchten.
<!-- prettier-ignore-start -->
| Name | Standard | Beschreibung |
| --- | --- | --- |
| `title` | _Nicht gesetzt_ | Der Name des Artikels. |
| `description` | _Nicht gesetzt_ | Die Textbeschreibung für den Artikel. Wird in den HTML-Metadaten verwendet. |
| `externalUrl` | _Nicht gesetzt_ | Wenn dieser Artikel auf einer Drittanbieter-Website veröffentlicht wird, die URL zu diesem Artikel. Die Angabe einer URL verhindert die Generierung einer Inhaltsseite und alle Verweise auf diesen Artikel verlinken direkt zur Drittanbieter-Website. |
| `editURL` | `article.editURL` | Wenn `showEdit` aktiv ist, die URL für den Bearbeitungslink. |
| `editAppendPath` | `article.editAppendPath` | Wenn `showEdit` aktiv ist, ob der Pfad zum aktuellen Artikel an die unter `editURL` gesetzte URL angehängt werden soll. |
| `groupByYear` | `list.groupByYear` | Ob Artikel auf Listenseiten nach Jahr gruppiert werden. |
| `menu` | _Nicht gesetzt_ | Wenn ein Wert angegeben wird, erscheint ein Link zu diesem Artikel in den genannten Menüs. Gültige Werte sind `main` oder `footer`. |
| `robots` | _Nicht gesetzt_ | String, der angibt, wie Robots diesen Artikel behandeln sollen. Wenn gesetzt, wird er im Seitenkopf ausgegeben. Siehe [Googles Dokumentation](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) für gültige Werte. |
| `sharingLinks` | `article.sharingLinks` | Welche Teilen-Links am Ende dieses Artikels angezeigt werden. Wenn nicht angegeben oder auf `false` gesetzt, werden keine Links angezeigt. |
| `showAuthor` | `article.showAuthor` | Ob die Autorenbox für den Standardautor in der Artikelfußzeile angezeigt wird. |
| `showAuthorBottom` | `article.showAuthorBottom` | Autorenboxen werden am unteren Rand jeder Seite statt oben angezeigt. |
| `authors` | _Nicht gesetzt_ | Array von Werten für Autoren, überschreibt bei Angabe die `showAuthor`-Einstellungen für Seite oder Website. Wird für die Funktion mehrerer Autoren verwendet, siehe [diese Seite]({{< ref "multi-author" >}}) für Details zur Konfiguration. |
| `showAuthorsBadges` | `article.showAuthorsBadges` | Ob die `authors`-Taxonomien im Artikel- oder Listen-Header angezeigt werden. Dies erfordert die Einrichtung von `multiple authors` und der `authors`-Taxonomie. Siehe [diese Seite]({{< ref "multi-author" >}}) für Details. |
| `featureimage` | _Nicht gesetzt_ | Link zum Feature-Bild |
| `featureimagecaption` | _Nicht gesetzt_ | Bildunterschrift für das Feature-Bild. Wird nur im heroStyle `big` angezeigt |
| `showHero` | `article.showHero` | Ob das Thumbnail-Bild als Hero-Bild innerhalb der Artikelseite angezeigt wird. |
| `heroStyle` | `article.heroStyle` | Stil zur Anzeige des Hero-Bildes, gültige Optionen sind: `basic`, `big`, `background`, `thumbAndBackground`. |
| `imagePosition` | _Nicht gesetzt_ | Setzt die Position des Feature-Bildes mit dem `object-position`-Attribut. Gültige Werte sind wie in der [MDN-Dokumentation](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position#try_it) angegeben. |
| `showBreadcrumbs` | `article.showBreadcrumbs` oder `list.showBreadcrumbs` | Ob Breadcrumbs im Artikel- oder Listen-Header angezeigt werden. |
| `showDate` | `article.showDate` | Ob das Artikeldatum angezeigt wird. Das Datum wird mit dem Parameter `date` gesetzt. |
| `showDateUpdated` | `article.showDateUpdated` | Ob das Datum angezeigt wird, an dem der Artikel aktualisiert wurde. Das Datum wird mit dem Parameter `lastmod` gesetzt. |
| `showEdit` | `article.showEdit` | Ob der Link zum Bearbeiten des Artikelinhalts angezeigt werden soll. |
| `showHeadingAnchors` | `article.showHeadingAnchors` | Ob Überschriften-Anker-Links neben Überschriften in diesem Artikel angezeigt werden. |
| `showPagination` | `article.showPagination` | Ob die Links zum nächsten/vorherigen Artikel in der Artikelfußzeile angezeigt werden. |
| `invertPagination` | `article.invertPagination` | Ob die Richtung der Links zum nächsten/vorherigen Artikel umgekehrt werden soll. |
| `showReadingTime` | `article.showReadingTime` | Ob die Artikel-Lesezeit angezeigt wird. |
| `showTaxonomies` | `article.showTaxonomies` | Ob die mit diesem Artikel verbundenen Taxonomien angezeigt werden. |
| `showTableOfContents` | `article.showTableOfContents` | Ob das Inhaltsverzeichnis bei diesem Artikel angezeigt wird. |
| `showWordCount` | `article.showWordCount` | Ob die Artikel-Wortanzahl angezeigt wird. |
| `showComments` | `article.showComments` | Ob das [Kommentar-Partial]({{< ref "partials#comments" >}}) nach der Artikelfußzeile eingefügt wird. |
| `showSummary` | `list.showSummary` | Ob die Artikelzusammenfassung auf Listenseiten angezeigt werden soll. |
| `showViews` | `article.showViews` | Ob Artikelaufrufe in Listen und Detailansicht angezeigt werden sollen. Dies erfordert eine Firebase-Integration. Siehe [diese Seite]({{< ref "firebase-views" >}}) für eine Anleitung zur Firebase-Integration. |
| `showLikes` | `article.showLikes` | Ob Artikel-Likes in Listen und Detailansicht angezeigt werden sollen. Dies erfordert eine Firebase-Integration. Siehe [diese Seite]({{< ref "firebase-views" >}}) für eine Anleitung zur Firebase-Integration. |
| `seriesOpened` | `article.seriesOpened` | Ob das Serien-Modul standardmäßig geöffnet angezeigt wird oder nicht. |
| `series` | _Nicht gesetzt_ | Array von Serien, zu denen der Artikel gehört, wir empfehlen nur eine Serie pro Artikel. |
| `series_order` | _Nicht gesetzt_ | Nummer des Artikels innerhalb der Serie. |
| `summary` | Automatisch generiert mit `summaryLength` (siehe [Website-Konfiguration]({{< ref "configuration#site-configuration" >}})) | Wenn `showSummary` aktiviert ist, ist dies der Markdown-String, der als Zusammenfassung für diesen Artikel verwendet wird. |
| `xml` | `true` außer wenn durch `sitemap.excludedKinds` ausgeschlossen | Ob dieser Artikel in der generierten `/sitemap.xml`-Datei enthalten ist. |
| `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. |
<!-- prettier-ignore-end -->
@@ -0,0 +1,60 @@
---
title: "Front Matter"
weight: 7
draft: false
description: "Todas las variables de front matter disponibles en Blowfish."
slug: "front-matter"
tags: ["front matter", "configuración", "documentación"]
series: ["Documentación"]
series_order: 7
---
Además de los [parámetros de front matter predeterminados de Hugo](https://gohugo.io/content-management/front-matter/#front-matter-variables), Blowfish añade varias opciones adicionales para personalizar la presentación de artículos individuales. Todos los parámetros de front matter del tema disponibles se enumeran a continuación.
Los valores predeterminados de los parámetros de front matter se heredan de la [configuración base]({{< ref "configuration" >}}) del tema, por lo que solo necesitas especificar estos parámetros en tu front matter cuando quieras anular el valor predeterminado.
<!-- prettier-ignore-start -->
| Nombre | Predeterminado | Descripción |
| --- | --- | --- |
| `title` | _No establecido_ | El nombre del artículo. |
| `description` | _No establecido_ | La descripción de texto del artículo. Se utiliza en los metadatos HTML. |
| `externalUrl` | _No establecido_ | Si este artículo está publicado en un sitio web de terceros, la URL a este artículo. Proporcionar una URL evitará que se genere una página de contenido y cualquier referencia a este artículo enlazará directamente al sitio web de terceros. |
| `editURL` | `article.editURL` | Cuando `showEdit` está activo, la URL para el enlace de edición. |
| `editAppendPath` | `article.editAppendPath` | Cuando `showEdit` está activo, si la ruta al artículo actual debe añadirse a la URL establecida en `editURL`. |
| `groupByYear` | `list.groupByYear` | Si los artículos se agrupan por año en las páginas de lista. |
| `menu` | _No establecido_ | Cuando se proporciona un valor, aparecerá un enlace a este artículo en los menús nombrados. Los valores válidos son `main` o `footer`. |
| `robots` | _No establecido_ | Cadena que indica cómo los robots deben manejar este artículo. Si se establece, se mostrará en el encabezado de la página. Consulta la [documentación de Google](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) para valores válidos. |
| `sharingLinks` | `article.sharingLinks` | Qué enlaces de compartir mostrar al final de este artículo. Cuando no se proporciona o se establece en `false`, no se mostrarán enlaces. |
| `showAuthor` | `article.showAuthor` | Si la caja del autor para el autor predeterminado se muestra en el pie de página del artículo. |
| `showAuthorBottom` | `article.showAuthorBottom` | Las cajas de autor se muestran en la parte inferior de cada página en lugar de arriba. |
| `authors` | _No establecido_ | Array de valores para autores, si se establece anula la configuración de `showAuthor` para la página o el sitio. Se usa en la función de múltiples autores, consulta [esta página]({{< ref "multi-author" >}}) para más detalles sobre cómo configurar esa función. |
| `showAuthorsBadges` | `article.showAuthorsBadges` | Si las taxonomías de `authors` se muestran en el encabezado del artículo o lista. Esto requiere la configuración de `multiple authors` y la taxonomía `authors`. Consulta [esta página]({{< ref "multi-author" >}}) para más detalles. |
| `featureimage` | _No establecido_ | Enlace para la imagen destacada |
| `featureimagecaption` | _No establecido_ | Leyenda para la imagen destacada. Solo se muestra en heroStyle `big` |
| `showHero` | `article.showHero` | Si la imagen en miniatura se mostrará como imagen hero dentro de la página del artículo. |
| `heroStyle` | `article.heroStyle` | Estilo para mostrar la imagen hero, las opciones válidas son: `basic`, `big`, `background`, `thumbAndBackground`. |
| `imagePosition` | _No establecido_ | Establece la posición de la imagen destacada usando el atributo `object-position`. Los valores válidos son los especificados en la [documentación MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position#try_it). |
| `showBreadcrumbs` | `article.showBreadcrumbs` o `list.showBreadcrumbs` | Si las migas de pan se muestran en el encabezado del artículo o lista. |
| `showDate` | `article.showDate` | Si se muestra la fecha del artículo. La fecha se establece usando el parámetro `date`. |
| `showDateUpdated` | `article.showDateUpdated` | Si se muestra la fecha en que se actualizó el artículo. La fecha se establece usando el parámetro `lastmod`. |
| `showEdit` | `article.showEdit` | Si se debe mostrar el enlace para editar el contenido del artículo. |
| `showHeadingAnchors` | `article.showHeadingAnchors` | Si los enlaces de anclaje de encabezados se muestran junto a los encabezados en este artículo. |
| `showPagination` | `article.showPagination` | Si los enlaces al artículo siguiente/anterior se muestran en el pie de página del artículo. |
| `invertPagination` | `article.invertPagination` | Si se debe invertir la dirección de los enlaces al artículo siguiente/anterior. |
| `showReadingTime` | `article.showReadingTime` | Si se muestra el tiempo de lectura del artículo. |
| `showTaxonomies` | `article.showTaxonomies` | Si se muestran las taxonomías relacionadas con este artículo. |
| `showTableOfContents` | `article.showTableOfContents` | Si se muestra la tabla de contenidos en este artículo. |
| `showWordCount` | `article.showWordCount` | Si se muestra el recuento de palabras del artículo. |
| `showComments` | `article.showComments` | Si el [partial de comentarios]({{< ref "partials#comments" >}}) se incluye después del pie de página del artículo. |
| `showSummary` | `list.showSummary` | Si el resumen del artículo debe mostrarse en las páginas de lista. |
| `showViews` | `article.showViews` | Si las vistas del artículo deben mostrarse en listas y vista detallada. Esto requiere una integración con Firebase. Consulta [esta página]({{< ref "firebase-views" >}}) para una guía sobre cómo integrar Firebase. |
| `showLikes` | `article.showLikes` | Si los likes del artículo deben mostrarse en listas y vista detallada. Esto requiere una integración con Firebase. Consulta [esta página]({{< ref "firebase-views" >}}) para una guía sobre cómo integrar Firebase. |
| `seriesOpened` | `article.seriesOpened` | Si el módulo de serie se mostrará abierto por defecto o no. |
| `series` | _No establecido_ | Array de series a las que pertenece el artículo, recomendamos usar solo una serie por artículo. |
| `series_order` | _No establecido_ | Número del artículo dentro de la serie. |
| `summary` | Generado automáticamente usando `summaryLength` (ver [configuración del sitio]({{< ref "configuration#site-configuration" >}})) | Cuando `showSummary` está habilitado, esta es la cadena Markdown que se usará como resumen para este artículo. |
| `xml` | `true` a menos que sea excluido por `sitemap.excludedKinds` | Si este artículo se incluye en el archivo `/sitemap.xml` generado. |
| `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. |
<!-- prettier-ignore-end -->
@@ -0,0 +1,60 @@
---
title: "Front Matter"
weight: 7
draft: false
description: "Toutes les variables front matter disponibles dans Blowfish."
slug: "front-matter"
tags: ["front matter", "configuration", "documentation"]
series: ["Documentation"]
series_order: 7
---
En plus des [paramètres front matter Hugo par défaut](https://gohugo.io/content-management/front-matter/#front-matter-variables), Blowfish ajoute un certain nombre d'options supplémentaires pour personnaliser la présentation des articles individuels. Tous les paramètres front matter du thème disponibles sont listés ci-dessous.
Les valeurs par défaut des paramètres front matter sont héritées de la [configuration de base]({{< ref "configuration" >}}) du thème, vous n'avez donc besoin de spécifier ces paramètres dans votre front matter que lorsque vous souhaitez remplacer la valeur par défaut.
<!-- prettier-ignore-start -->
| Nom | Défaut | Description |
| --- | --- | --- |
| `title` | _Non défini_ | Le nom de l'article. |
| `description` | _Non défini_ | La description textuelle de l'article. Elle est utilisée dans les métadonnées HTML. |
| `externalUrl` | _Non défini_ | Si cet article est publié sur un site tiers, l'URL vers cet article. Fournir une URL empêchera la génération d'une page de contenu et toutes les références à cet article pointeront directement vers le site tiers. |
| `editURL` | `article.editURL` | Lorsque `showEdit` est actif, l'URL du lien d'édition. |
| `editAppendPath` | `article.editAppendPath` | Lorsque `showEdit` est actif, si le chemin vers l'article actuel doit être ajouté à l'URL définie dans `editURL`. |
| `groupByYear` | `list.groupByYear` | Si les articles sont groupés par année sur les pages de liste. |
| `menu` | _Non défini_ | Lorsqu'une valeur est fournie, un lien vers cet article apparaîtra dans les menus nommés. Les valeurs valides sont `main` ou `footer`. |
| `robots` | _Non défini_ | Chaîne indiquant comment les robots doivent traiter cet article. Si défini, il sera affiché dans l'en-tête de la page. Consultez [la documentation Google](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) pour les valeurs valides. |
| `sharingLinks` | `article.sharingLinks` | Quels liens de partage afficher à la fin de cet article. Lorsque non fourni ou défini sur `false`, aucun lien ne sera affiché. |
| `showAuthor` | `article.showAuthor` | Si la boîte auteur pour l'auteur par défaut est affichée dans le pied de page de l'article. |
| `showAuthorBottom` | `article.showAuthorBottom` | Les boîtes auteur sont affichées en bas de chaque page au lieu du haut. |
| `authors` | _Non défini_ | Tableau de valeurs pour les auteurs, si défini, il remplace les paramètres `showAuthor` pour la page ou le site. Utilisé pour la fonctionnalité de multiples auteurs, consultez [cette page]({{< ref "multi-author" >}}) pour plus de détails sur la configuration. |
| `showAuthorsBadges` | `article.showAuthorsBadges` | Si les taxonomies `authors` sont affichées dans l'en-tête de l'article ou de la liste. Cela nécessite la configuration de `multiple authors` et de la taxonomie `authors`. Consultez [cette page]({{< ref "multi-author" >}}) pour plus de détails. |
| `featureimage` | _Non défini_ | Lien pour l'image mise en avant |
| `featureimagecaption` | _Non défini_ | Légende pour l'image mise en avant. Affichée uniquement dans le heroStyle `big` |
| `showHero` | `article.showHero` | Si l'image vignette sera affichée comme image hero dans la page de l'article. |
| `heroStyle` | `article.heroStyle` | Style d'affichage de l'image hero, les options valides sont : `basic`, `big`, `background`, `thumbAndBackground`. |
| `imagePosition` | _Non défini_ | Définit la position de l'image mise en avant en utilisant l'attribut `object-position`. Les valeurs valides sont comme spécifié dans la [documentation MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position#try_it). |
| `showBreadcrumbs` | `article.showBreadcrumbs` ou `list.showBreadcrumbs` | Si les fils d'Ariane sont affichés dans l'en-tête de l'article ou de la liste. |
| `showDate` | `article.showDate` | Si la date de l'article est affichée. La date est définie avec le paramètre `date`. |
| `showDateUpdated` | `article.showDateUpdated` | Si la date de mise à jour de l'article est affichée. La date est définie avec le paramètre `lastmod`. |
| `showEdit` | `article.showEdit` | Si le lien pour éditer le contenu de l'article doit être affiché. |
| `showHeadingAnchors` | `article.showHeadingAnchors` | Si les liens d'ancrage des titres sont affichés à côté des titres dans cet article. |
| `showPagination` | `article.showPagination` | Si les liens article suivant/précédent sont affichés dans le pied de page de l'article. |
| `invertPagination` | `article.invertPagination` | Si la direction des liens article suivant/précédent doit être inversée. |
| `showReadingTime` | `article.showReadingTime` | Si le temps de lecture de l'article est affiché. |
| `showTaxonomies` | `article.showTaxonomies` | Si les taxonomies liées à cet article sont affichées. |
| `showTableOfContents` | `article.showTableOfContents` | Si la table des matières est affichée sur cet article. |
| `showWordCount` | `article.showWordCount` | Si le nombre de mots de l'article est affiché. |
| `showComments` | `article.showComments` | Si le [partial commentaires]({{< ref "partials#comments" >}}) est inclus après le pied de page de l'article. |
| `showSummary` | `list.showSummary` | Si le résumé de l'article doit être affiché sur les pages de liste. |
| `showViews` | `article.showViews` | Si les vues de l'article doivent être affichées dans les listes et la vue détaillée. Cela nécessite une intégration Firebase. Consultez [cette page]({{< ref "firebase-views" >}}) pour un guide sur l'intégration de Firebase. |
| `showLikes` | `article.showLikes` | Si les likes de l'article doivent être affichés dans les listes et la vue détaillée. Cela nécessite une intégration Firebase. Consultez [cette page]({{< ref "firebase-views" >}}) pour un guide sur l'intégration de Firebase. |
| `seriesOpened` | `article.seriesOpened` | Si le module de série sera affiché ouvert par défaut ou non. |
| `series` | _Non défini_ | Tableau des séries auxquelles l'article appartient, nous recommandons d'utiliser une seule série par article. |
| `series_order` | _Non défini_ | Numéro de l'article dans la série. |
| `summary` | Généré automatiquement avec `summaryLength` (voir [configuration du site]({{< ref "configuration#site-configuration" >}})) | Lorsque `showSummary` est activé, c'est la chaîne Markdown à utiliser comme résumé pour cet article. |
| `xml` | `true` sauf exclusion par `sitemap.excludedKinds` | Si cet article est inclus dans le fichier `/sitemap.xml` généré. |
| `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. |
<!-- prettier-ignore-end -->
@@ -55,44 +55,4 @@ 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. |
| `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. |
| `editURL` | `article.editURL` | When `showEdit` is active, the URL for the edit link. |
| `editAppendPath` | `article.editAppendPath` | When `showEdit` is active, whether or not the path to the current article should be appended to the URL set at `editURL`. |
| `groupByYear` | `list.groupByYear` | Whether or not articles are grouped by year on list pages. |
| `menu` | _Not set_ | When a value is provided, a link to this article will appear in the named menus. Valid values are `main` or `footer`. |
| `robots` | _Not set_ | String that indicates how robots should handle this article. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
| `sharingLinks` | `article.sharingLinks` | Which sharing links to display at the end of this article. When not provided, or set to `false` no links will be displayed. |
| `showAuthor` | `article.showAuthor` | Whether or not the author box for the default author is displayed in the article footer. |
| `showAuthorBottom` | `article.showAuthorBottom` | Author boxes are displayed at the bottom of each page instead of the top. |
| `authors` | _Not set_ | Array of values for authors, if set it overrides `showAuthor` settings for page or site. Used on the multiple authors feature, check [this page]({{< ref "multi-author" >}}) for more details on how to configure that feature. |
| `showAuthorsBadges` | `article.showAuthorsBadges` | 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. |
| `featureimage` | _Not set_ | External URL for feature image |
| `featureimagecaption` | _Not set_ | Caption for feature image. Only displayed in heroStyle `big` |
| `showHero` | `article.showHero` | Whether the thumbnail image will be shown as a hero image within the article page. |
| `heroStyle` | `article.heroStyle` | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `showBreadcrumbs` | `article.showBreadcrumbs` or `list.showBreadcrumbs` | Whether the breadcrumbs are displayed in the article or list header. |
| `showDate` | `article.showDate` | Whether or not the article date is displayed. The date is set using the `date` parameter. |
| `showDateUpdated` | `article.showDateUpdated` | Whether or not the date the article was updated is displayed. The date is set using the `lastmod` parameter. |
| `showEdit` | `article.showEdit` | Whether or not the link to edit the article content should be displayed. |
| `showHeadingAnchors` | `article.showHeadingAnchors` | Whether or not heading anchor links are displayed alongside headings within this article. |
| `showPagination` | `article.showPagination` | Whether or not the next/previous article links are displayed in the article footer. |
| `invertPagination` | `article.invertPagination` | Whether or not to flip the direction of the next/previous article links. |
| `showReadingTime` | `article.showReadingTime` | Whether or not the article reading time is displayed. |
| `showTaxonomies` | `article.showTaxonomies` | Whether or not the taxonomies that relate to this article are displayed. |
| `showTableOfContents` | `article.showTableOfContents` | Whether or not the table of contents is displayed on this article. |
| `showWordCount` | `article.showWordCount` | Whether or not the article word count is displayed. |
| `showComments` | `article.showComments` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `showSummary` | `list.showSummary` | Whether or not the article summary should be displayed on list pages. |
| `showViews` | `article.showViews` | Whether or not the article views should be displayed in lists and detailed view. This requires a firebase integration. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish |
| `showLikes` | `article.showLikes` | Whether or not the article likes should be displayed in lists and detailed view. This requires a firebase integration. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish |
| `seriesOpened` | `article.seriesOpened` | Whether or not the series module will be displayed open by default or not. |
| `series` | _Not set_ | Array of series the article belongs to, we recommend using only one series per article. |
| `series_order` | _Not set_ | Number of the article within the series. |
| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | When `showSummary` is enabled, this is the Markdown string to be used as the summary for this article. |
| `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 -->
@@ -54,6 +54,7 @@ Front matter parameter default values are inherited from the theme's [base confi
| `series_order` | _Not set_ | Number of the article within the series. |
| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | When `showSummary` is enabled, this is the Markdown string to be used as the summary for this article. |
| `xml` | `true` unless excluded by `sitemap.excludedKinds` | Whether or not this article is included in the generated `/sitemap.xml` file. |
| `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. |
<!-- prettier-ignore-end -->
@@ -0,0 +1,60 @@
---
title: "Front Matter"
weight: 7
draft: false
description: "Todas as variáveis de front matter disponíveis no Blowfish."
slug: "front-matter"
tags: ["front matter", "configuração", "documentação"]
series: ["Documentação"]
series_order: 7
---
Além dos [parâmetros de front matter padrão do Hugo](https://gohugo.io/content-management/front-matter/#front-matter-variables), o Blowfish adiciona várias opções adicionais para personalizar a apresentação de artigos individuais. Todos os parâmetros de front matter do tema disponíveis estão listados abaixo.
Os valores padrão dos parâmetros de front matter são herdados da [configuração base]({{< ref "configuration" >}}) do tema, então você só precisa especificar esses parâmetros no seu front matter quando quiser substituir o padrão.
<!-- prettier-ignore-start -->
| Nome | Padrão | Descrição |
| --- | --- | --- |
| `title` | _Não definido_ | O nome do artigo. |
| `description` | _Não definido_ | A descrição de texto do artigo. É usada nos metadados HTML. |
| `externalUrl` | _Não definido_ | Se este artigo está publicado em um site de terceiros, a URL para este artigo. Fornecer uma URL impedirá a geração de uma página de conteúdo e quaisquer referências a este artigo vincularão diretamente ao site de terceiros. |
| `editURL` | `article.editURL` | Quando `showEdit` está ativo, a URL para o link de edição. |
| `editAppendPath` | `article.editAppendPath` | Quando `showEdit` está ativo, se o caminho para o artigo atual deve ser anexado à URL definida em `editURL`. |
| `groupByYear` | `list.groupByYear` | Se os artigos são agrupados por ano nas páginas de lista. |
| `menu` | _Não definido_ | Quando um valor é fornecido, um link para este artigo aparecerá nos menus nomeados. Valores válidos são `main` ou `footer`. |
| `robots` | _Não definido_ | String que indica como os robôs devem tratar este artigo. Se definido, será exibido no cabeçalho da página. Consulte a [documentação do Google](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) para valores válidos. |
| `sharingLinks` | `article.sharingLinks` | Quais links de compartilhamento exibir no final deste artigo. Quando não fornecido ou definido como `false`, nenhum link será exibido. |
| `showAuthor` | `article.showAuthor` | Se a caixa do autor para o autor padrão é exibida no rodapé do artigo. |
| `showAuthorBottom` | `article.showAuthorBottom` | As caixas de autor são exibidas na parte inferior de cada página em vez do topo. |
| `authors` | _Não definido_ | Array de valores para autores, se definido substitui as configurações de `showAuthor` para a página ou site. Usado no recurso de múltiplos autores, consulte [esta página]({{< ref "multi-author" >}}) para mais detalhes sobre como configurar esse recurso. |
| `showAuthorsBadges` | `article.showAuthorsBadges` | Se as taxonomias de `authors` são exibidas no cabeçalho do artigo ou lista. Isso requer a configuração de `multiple authors` e a taxonomia `authors`. Consulte [esta página]({{< ref "multi-author" >}}) para mais detalhes. |
| `featureimage` | _Não definido_ | Link para a imagem de destaque |
| `featureimagecaption` | _Não definido_ | Legenda para a imagem de destaque. Exibida apenas no heroStyle `big` |
| `showHero` | `article.showHero` | Se a imagem em miniatura será mostrada como imagem hero dentro da página do artigo. |
| `heroStyle` | `article.heroStyle` | Estilo para exibir a imagem hero, opções válidas são: `basic`, `big`, `background`, `thumbAndBackground`. |
| `imagePosition` | _Não definido_ | Define a posição da imagem de destaque usando o atributo `object-position`. Valores válidos são como especificado na [documentação MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position#try_it). |
| `showBreadcrumbs` | `article.showBreadcrumbs` ou `list.showBreadcrumbs` | Se as migalhas de pão são exibidas no cabeçalho do artigo ou lista. |
| `showDate` | `article.showDate` | Se a data do artigo é exibida. A data é definida usando o parâmetro `date`. |
| `showDateUpdated` | `article.showDateUpdated` | Se a data em que o artigo foi atualizado é exibida. A data é definida usando o parâmetro `lastmod`. |
| `showEdit` | `article.showEdit` | Se o link para editar o conteúdo do artigo deve ser exibido. |
| `showHeadingAnchors` | `article.showHeadingAnchors` | Se os links de âncora de cabeçalho são exibidos ao lado dos cabeçalhos neste artigo. |
| `showPagination` | `article.showPagination` | Se os links do artigo anterior/próximo são exibidos no rodapé do artigo. |
| `invertPagination` | `article.invertPagination` | Se a direção dos links do artigo anterior/próximo deve ser invertida. |
| `showReadingTime` | `article.showReadingTime` | Se o tempo de leitura do artigo é exibido. |
| `showTaxonomies` | `article.showTaxonomies` | Se as taxonomias relacionadas a este artigo são exibidas. |
| `showTableOfContents` | `article.showTableOfContents` | Se o índice é exibido neste artigo. |
| `showWordCount` | `article.showWordCount` | Se a contagem de palavras do artigo é exibida. |
| `showComments` | `article.showComments` | Se o [partial de comentários]({{< ref "partials#comments" >}}) é incluído após o rodapé do artigo. |
| `showSummary` | `list.showSummary` | Se o resumo do artigo deve ser exibido nas páginas de lista. |
| `showViews` | `article.showViews` | Se as visualizações do artigo devem ser exibidas em listas e visualização detalhada. Isso requer uma integração com Firebase. Consulte [esta página]({{< ref "firebase-views" >}}) para um guia sobre como integrar o Firebase. |
| `showLikes` | `article.showLikes` | Se os likes do artigo devem ser exibidos em listas e visualização detalhada. Isso requer uma integração com Firebase. Consulte [esta página]({{< ref "firebase-views" >}}) para um guia sobre como integrar o Firebase. |
| `seriesOpened` | `article.seriesOpened` | Se o módulo de série será exibido aberto por padrão ou não. |
| `series` | _Não definido_ | Array de séries às quais o artigo pertence, recomendamos usar apenas uma série por artigo. |
| `series_order` | _Não definido_ | Número do artigo dentro da série. |
| `summary` | Gerado automaticamente usando `summaryLength` (veja [configuração do site]({{< ref "configuration#site-configuration" >}})) | Quando `showSummary` está habilitado, esta é a string Markdown a ser usada como resumo para este artigo. |
| `xml` | `true` a menos que excluído por `sitemap.excludedKinds` | Se este artigo é incluído no arquivo `/sitemap.xml` gerado. |
| `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. |
<!-- prettier-ignore-end -->

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