Páginas Markdown
Un archivo .md también es una página. Se sirve donde estaría su gemelo
.html, guide.md en /guide/, y pasa por la misma
compilación que una página HTML: componentes, matemáticas, bloques de código,
inclusiones, la tabla de contenidos y la copia en Markdown para agentes.
---
title: Getting started
description: Install and run it in a minute.
order: 1
---
# Getting started
Install it, then build the docs:
```sh title="Terminal"
npx gethtmlpress build docs
```
El Markdown es el de GitHub: tablas, listas de tareas, tachado, notas al pie y enlaces
sueltos. El HTML en bruto funciona como en cualquier página, así que un componente
htmlpress-* puede escribirse como etiqueta, con Markdown dentro tras una
línea en blanco.
Frontmatter
El YAML al principio del archivo fija lo que una página HTML fija en su
<head>, con los mismos nombres: title,
description, order, label, icon,
layout, sidebar, breadcrumbs, toc,
date, author, keywords, image,
language, path, source-url y
source-action, como se describe en
Frontmatter. author y
keywords aceptan una lista, y head es HTML en bruto que se
añade al <head> de la página:
title: Release notes
author: [Ann, Bo]
keywords: [release, notes]
head: <link rel="alternate" type="application/rss+xml" href="/feed.xml">
Cualquier otra clave hace fallar la compilación, así que una errata nunca pasa por metadato.
Componentes
Una directiva es un componente: :::nombre envuelve un bloque,
::nombre ocupa una línea propia y :nombre[etiqueta] va dentro
del texto. Los atributos van entre llaves. Las directivas son las de
Livemark, así que una página de Livemark se lee igual
aquí.
:::warning[Back up first]
The build wipes its output folder.
:::
:::card{title="Install" href="/install/" icon="rocket"}
One command.
:::
The API is :badge[beta]{variant="warning"}.
### Write a page [step]
:::note, tip, info, warning y
danger son avisos, con la etiqueta como título, y también lo es una alerta
de GitHub, > [!NOTE]. :::card, :::column y
:::tab seguidos se agrupan en tarjetas, columnas y pestañas;
:::details, :::filetree, ::button,
::toc, ::video{type="youtube"},
::audio{type="soundcloud"}, :badge, :icon y
:abbr son el resto. Un encabezado admite {#id},
[step], [!toc] (fuera del índice) y [toc] (solo
en el índice). Cualquier otra directiva es el componente de ese nombre, también los del
proyecto; una de bloque que no nombra ningún componente hace fallar la compilación, y
dentro del texto algo como note:important sigue siendo texto.
Bloques de código
El lenguaje de un bloque lo resalta, y lo que sigue al lenguaje toma los
atributos de bloque de código sin su
data-: title, collapse, lines,
line-numbers, add, remove, focus,
error, warning y words.
```js title="build.js" lines="2" line-numbers
import { build } from "htmlpress"
await build("docs")
```
Matemáticas, emoji y enlaces
$…$ y $$…$$ son
matemáticas, y los códigos como
:rocket: son emoji, como en una página HTML. Enlaza otra página por su
archivo, [Setup](setup.md), y el enlace toma la URL de la página.
Qué archivos son páginas
Sin include, cada archivo .html y .md del
proyecto es una página, también un README.md. Excluye lo que no sea una
página en el
archivo de configuración. Estos
archivos nunca son páginas:
-
un
.mdjunto a su página.html, que es la propia copia en Markdown de esa página para agentes, publicada en lugar de la generada; -
un
.mdque una página incluye con<htmlpress-include>, un fragmento, cuyas directivas y bloques de código funcionan como en una página; -
el
sourcede una sección de changelog, que sus propias páginas muestran; - las habilidades para agentes que nombra
skills.
Hecho con ❤ y Htmlpress