Archivo de configuración
Actualizado el 12 nov 2026
Livemark se configura con un único archivo en la raíz de tu proyecto: livemark.config.ts. Colócalo junto a tu package.json, exporta una llamada defineConfig({...}) y Livemark lo detecta automáticamente, sin flags ni variables de entorno.
Configuración mínima
Todos los campos son opcionales. La configuración válida más pequeña es una llamada vacía:
import { defineConfig } from "livemark"
export default defineConfig({})Eso recoge todos los archivos .md de tu proyecto (por defecto include: "**/*.md") y los renderiza con el tema estándar de Livemark: barra lateral, búsqueda, resaltado de sintaxis, modo oscuro, todo con valores por defecto.
Qué puedes configurar
Cada campo tiene un valor por defecto razonable. El conjunto completo:
| Opción | Tipo | Propósito |
|---|---|---|
include | string | string[] | Glob(s) para los archivos de contenido. Por defecto: "**/*.md". |
exclude | string | string[] | Glob(s) que se omiten (borradores, parciales, etc.). |
title | string | Título del sitio que aparece en la cabecera y en <title>. Por defecto: "Livemark". |
description | string | Meta descripción para SEO/Open Graph. Por defecto: "Markdown site generator". |
site | string | URL canónica del sitio; necesaria para generar el sitemap. |
base | string | (command) => string | Subruta bajo la que se sirve el sitio, p. ej. en GitHub Pages. |
favicon | string | Ruta a una imagen de favicon, relativa a la raíz del proyecto. |
logo | string | Ruta a una imagen de logo usada en la cabecera (si falta, se usa el logo de Livemark incluido). |
banner | string | Anuncio en Markdown en línea mostrado en una franja sobre la cabecera. |
head | { meta, links, scripts } | Etiquetas <head> adicionales para cada página. |
breadcrumbs | boolean | Muestra la ruta de carpetas sobre el título de cada artículo. Por defecto: true. |
languages | Language[] | Traducciones: una entrada por idioma, la primera es la predeterminada. |
codeThemeLight | Nombre de tema de Shiki | Tema de sintaxis del modo claro. Por defecto: "catppuccin-latte". |
codeThemeDark | Nombre de tema de Shiki | Tema de sintaxis del modo oscuro. Por defecto: "catppuccin-mocha". |
sections | Section[] | Divide el contenido en Docs / Blog / registro de cambios, cada uno con su prefijo de URL. |
links | Link[] | Enlaces personalizados mostrados en la cabecera o en la barra lateral. |
patches | Patch[] | Sobrescribe el frontmatter de un archivo Markdown desde la configuración sin editarlo. |
contentSignals | ContentSignals | Preferencias de uso por IA publicadas en robots.txt. Por defecto: todas true. |
skills | string | string[] | Glob(s) para archivos SKILL.md que se publican como skills de agente. |
plugins | { md, html } | Tus propios plugins de Markdown y HTML, añadidos al pipeline de los artículos. |
allowDangerousHtml | boolean | Conserva el HTML escrito en Markdown y permite artículos MDX. false elimina el HTML y falla con cualquier artículo MDX. Por defecto: true. |
vite | UserConfig | (env) => UserConfig | Configuración extra de Vite, fusionada sobre la de Livemark. |
El esquema completo está en livemark/source/models/config.ts: defineConfig lo valida con Zod. Las claves desconocidas se rechazan, tanto en el nivel superior como dentro de secciones, enlaces, idiomas, head, contentSignals y parches, así que una errata produce un error claro al arrancar en lugar de ignorarse en silencio.
title, description y banner aceptan una cadena o un valor por código de idioma.
Ejemplo completo
La mayoría de los sitios reales acaban pareciéndose a esto:
import { defineConfig } from "livemark"
export default defineConfig({
title: "My docs",
description: "Documentation for my project",
site: "https://docs.example.com",
include: ["docs/**/*.md", "blog/**/*.md"],
exclude: "docs/**/_*",
sections: [
{ title: "Docs", prefix: "/" },
{ title: "Blog", prefix: "/blog/", type: "blog" },
],
links: [
{
url: "https://github.com/example/project",
title: "GitHub",
icon: "github",
},
],
})Siguientes pasos
- Metadatos del sitio: título, descripción, favicon, logo.
- Secciones de artículos: divide el contenido en varios prefijos de URL (docs / blog / registro de cambios).
- Enlaces externos: enlaces en la cabecera y en la barra lateral.
- Temas de sintaxis: elige o amplía temas de Shiki.
- Parches de artículos: sobrescribe el frontmatter desde la configuración.
- Sobrescritura/Escape: reemplaza cualquier componente u hoja de estilos integrada.
- Rutas personalizadas: añade páginas totalmente personalizadas.
Hecho con ❤ y Livemark