Guía Completa de Componentes y Estilos del Blog
- Published on
- • 7 minutos de lectura
Esta es una guía completa de todos los componentes y estilos disponibles en el blog. Úsala como referencia al escribir nuevos posts.
Los headings tienen una jerarquía visual clara y son automáticamente añadidos al Table of Contents (TOC).
Los headings de nivel 3 son perfectos para subsecciones principales.
Y los de nivel 4 para sub-subsecciones más específicas.
Raramente necesitarás nivel 5, pero está disponible.
El nivel más profundo de heading.
Puedes usar varios tipos de formato de texto:
código inline para mencionar código o comandosTambién puedes combinarlos: Este texto está en negrita y contiene código inline.
Los enlaces a otras páginas del blog usan el color primario del tema.
Los enlaces externos tienen un indicador ↗ automático.
Puedes agregar enlaces con título que muestran un tooltip al pasar el mouse.
Los callouts son perfectos para destacar información importante. Usa la sintaxis :::tipo en Markdown.
Nota Informativa: Este callout es ideal para compartir información adicional, contexto o detalles que complementan el contenido principal. Tiene un icono de comillas y un fondo teal/verde sutil.
💡 Consejo Profesional: Los callouts pueden contener cualquier formato Markdown, incluyendo:
Código inlinePerfecto para tips, trucos y mejores prácticas.
ℹ Información Importante: Usa este callout para destacar información crítica que el lector debe conocer antes de continuar. Se muestra con el color secundario del tema (morado).
⚠ Advertencia: Este callout es para precauciones y advertencias. Por ejemplo:
Tiene un fondo amarillo/ámbar para llamar la atención.
🔥 PELIGRO - PRECAUCIÓN EXTREMA: Este es el callout más serio. Úsalo para:
El fondo rojo indica máxima precaución.
Tenemos tres tipos de código disponibles:
Usa código inline para mencionar comandos, variables o fragmentos cortos: npm install, const x = 5, function().
Para fragmentos cortos sin syntax highlighting, usa bloques pre sin especificar lenguaje:
OPTIONS /
Host: service.example.com
Origin: http://www.example.com
Access-Control-Request-Method: PUT
Estos tienen el mismo estilo que el código inline pero en su propio espacio.
Para código más largo con syntax highlighting, especifica el lenguaje:
// JavaScript con syntax highlighting completo
class BlogPost {
constructor(title, author, tags) {
this.title = title;
this.author = author;
this.tags = tags;
this.publishedAt = new Date();
}
getReadingTime() {
const wordsPerMinute = 200;
const wordCount = this.content.split(' ').length;
return Math.ceil(wordCount / wordsPerMinute);
}
publish() {
console.log(`Publishing: ${this.title}`);
return this.save();
}
}
// Uso
const post = new BlogPost('Mi Post', 'Francisco', ['astro', 'blog']);
post.publish();
// TypeScript con tipos e interfaces
interface User {
id: number;
name: string;
email: string;
role: 'admin' | 'user' | 'guest';
}
interface BlogPost {
title: string;
content: string;
author: User;
tags: string[];
publishedAt: Date;
}
function createPost(data: Partial<BlogPost>): BlogPost {
return {
title: data.title || 'Untitled',
content: data.content || '',
author: data.author!,
tags: data.tags || [],
publishedAt: new Date(),
};
}
# Python con syntax highlighting
from datetime import datetime
from typing import List, Optional
class BlogPost:
"""Representa un post del blog"""
def __init__(self, title: str, author: str, tags: List[str]):
self.title = title
self.author = author
self.tags = tags
self.published_at = datetime.now()
def get_reading_time(self) -> int:
"""Calcula el tiempo de lectura en minutos"""
words_per_minute = 200
word_count = len(self.content.split())
return (word_count + words_per_minute - 1) // words_per_minute
def publish(self) -> bool:
"""Publica el post"""
print(f"Publishing: {self.title}")
return self.save()
# Uso
post = BlogPost('Mi Post', 'Francisco', ['python', 'blog'])
post.publish()
/* CSS con syntax highlighting */
.blog-post {
max-width: 65ch;
margin: 0 auto;
padding: 2rem;
background: color-mix(in oklab, black 10%, transparent);
border-radius: 0.5rem;
}
.blog-post h2 {
color: var(--primary-color);
font-size: 1.875em;
margin-top: 2em;
margin-bottom: 1em;
}
.blog-post code {
background-color: rgba(80, 80, 80, 0.3);
border: 1px solid rgba(100, 100, 100, 0.3);
border-radius: 0.25rem;
padding: 0.125rem 0.375rem;
}
# Bash/Shell scripts
#!/bin/bash
# Instalar dependencias
pnpm install
# Ejecutar en desarrollo
pnpm dev
# Build para producción
pnpm build
# Preview del build
pnpm preview
Las listas usan el símbolo ❯ como marcador con el color secundario:
Puedes combinar diferentes tipos de listas:
“La simplicidad es la máxima sofisticación.” — Leonardo da Vinci
Este es el primer párrafo de la cita.
Y este es el segundo párrafo, separado del primero.
— Autor de la cita
Nivel 1 de cita
Nivel 2 de cita anidada
Nivel 3 de cita doblemente anidada
| Característica | Descripción | Estado |
|---|---|---|
| TOC Automático | Generado desde headings | ✅ Activo |
| Reading Time | Calculado por palabras | ✅ Activo |
| Syntax Highlighting | Múltiples lenguajes | ✅ Activo |
| Izquierda | Centro | Derecha |
|---|---|---|
| Texto | Texto | Texto |
| Más texto | Centrado | Derecha |
| Final | Final | Final |
| Componente | Sintaxis | Ejemplo | Notas |
|---|---|---|---|
| Callout Note | :::note | Ver arriba | Fondo teal |
| Callout Tip | :::tip | Ver arriba | Fondo verde |
| Callout Important | :::important | Ver arriba | Fondo morado |
| Callout Warning | :::warning | Ver arriba | Fondo amarillo |
| Callout Caution | :::caution | Ver arriba | Fondo rojo |
| Código Inline | `code` | ejemplo | Gris oscuro |
| Código Mediano | ``` sin lenguaje | Ver arriba | Sin highlighting |
| Código Grande | ```lang | Ver arriba | Con highlighting |


Usa tres o más guiones para crear separadores:
O tres asteriscos:
O tres guiones bajos:
💡 Tip: Puedes usar código dentro de callouts:
const tip = "Esto es muy útil";
console.log(tip);Y también código inline como npm install.
Primer paso del tutorial
Asegúrate de tener Node.js instalado antes de continuar.
Segundo paso del tutorial
⚠ Este paso puede tardar varios minutos.
Tercer paso final
| Comando | Descripción | Ejemplo |
|---|---|---|
npm install | Instala dependencias | npm install astro |
npm run dev | Inicia servidor | npm run dev |
npm run build | Build producción | npm run build |
ℹ Recomendaciones para escribir posts:
✅ Headings: 6 niveles (H1-H6) ✅ Formato: Negrita, cursiva, tachado, código inline ✅ Enlaces: Internos, externos, con título ✅ Callouts: Note, Tip, Important, Warning, Caution ✅ Código: Inline, mediano, grande con highlighting ✅ Listas: Ordenadas, no ordenadas, tareas, anidadas ✅ Blockquotes: Simples, múltiples párrafos, anidadas ✅ Tablas: Con alineación y formato ✅ Imágenes: Con alt text y título opcional ✅ Separadores: Líneas horizontales ✅ TOC: Generado automáticamente ✅ Reading Time: Calculado automáticamente
Este template de blog ofrece una experiencia de escritura rica y flexible. Todos los componentes están diseñados para trabajar juntos de manera armoniosa y crear posts visualmente atractivos y fáciles de leer.
¡Disfruta escribiendo! 🚀
Happy reading! ☕
Comments