Astro Narrow è una versione Astro-native dell’esperienza di lettura Narrow. Usa content collection, configurazione tipizzata, componenti Astro e trasformazioni Markdown a build-time, invece di codice di compatibilità con Hugo.
Configurare site.ts#
src/config/site.ts controlla l’identità del sito, la navigazione, la larghezza del layout, i commenti, l’analytics e le impostazioni degli articoli.
| Opzione | Scopo |
|---|---|
name, shortName, description | Metadati del sito |
author | Card del profilo in home e link social |
contentWidth | Larghezza del layout principale |
ui.navbar.sticky | Interruttore navbar fissa |
ui.dock.enabled | Interruttore dock inferiore |
nav | Navigazione dell’header |
footerNav | Navigazione del footer |
comments | Impostazioni Giscus |
analytics | Impostazioni Umami |
gallery, lightbox | Comportamento delle immagini Markdown |
post.relatedCount | Numero di articoli correlati |
post.license | Blocco licenza |
export const siteConfig = { name: 'Astro Narrow', shortName: 'Narrow', description: 'Un tema Astro incentrato sui contenuti.', contentWidth: '56rem'}export const siteConfig = { nav: ['posts', 'series', 'projects', 'archives'], footerNav: ['archives']}export const siteConfig = { nav: [ 'posts', { label: { it: 'GitHub', en: 'GitHub' }, href: 'https://github.com/', icon: 'simple-icons:github' } ]}Configurare i tipi di contenuto#
src/config/content.ts definisce come ogni tipo di contenuto appare nella navigazione, nelle liste, nelle card e nelle sezioni della home.
| Opzione | Valori |
|---|---|
cardStyle | article, showcase, compact |
listLayout | stack, grid |
gridColumns | 1, 2, 3 |
home.enabled | Mostra il tipo in home page |
home.limit | Numero di elementi in home page |
home.featuredOnly | Mostra solo gli elementi in evidenza |
export const contentTypes = { posts: { collection: 'posts', path: '/posts/', label: { it: 'Articoli', en: 'Posts' }, cardStyle: 'article', listLayout: 'stack', gridColumns: 1 }}Frontmatter#
Gli articoli usano i campi delle content collection di Astro. Mantieni il frontmatter piccolo e prevedibile.
| Campo | Uso |
|---|---|
title | Titolo della pagina |
description | Riassunto e meta description |
pubDate | Data di pubblicazione |
updatedDate | Data di aggiornamento opzionale |
cover | Immagine di copertina |
categories | Categorie dell’articolo usate dai filtri dell’Archivio |
tags | Tag dell’articolo usati dai filtri dell’Archivio |
toc | center, side, true o false |
comments | Commenti per singolo articolo |
math, mermaid, gallery, lightbox | Indicazioni sulle funzionalità |
Categorie e tag vengono individuati automaticamente dagli articoli pubblicati nella lingua corrente. I percorsi di lettura ordinati sono definiti separatamente in src/content/series/<lingua>/, quindi gli articoli non ripetono nomi di serie o numeri di capitolo. I progetti mantengono i propri tag per le card e la ricerca, ma non compaiono nell’Archivio. Le voci dei progetti supportano anche featured e links.
links: - label: Sito web url: https://example.com icon: lucide:external-link - label: GitHub url: https://github.com/example/repo icon: simple-icons:githubfeatured: trueFunzionalità Markdown#
Note
Preferisci un input Markdown nativo. Astro Narrow trasforma i pattern più comuni con remark e rehype.
| Funzionalità | Input |
|---|---|
| Alert | Blockquote in stile GitHub |
| Tab | ::::tabs e :::tab{title="..."} |
| Gallery | Immagini Markdown consecutive |
| Math | $x^2$ e $$...$$ |
| Mermaid | Blocchi fenced mermaid |
| Codice | Fence gestiti da Expressive Code |
Codice#
type ColorMode = 'light' | 'dark' | 'auto';
export function setMode(mode: ColorMode) { document.documentElement.classList.toggle('dark', mode === 'dark');}Gallery#
Math e Mermaid#
La matematica inline funziona così: .