Primeros Pasos
Instala el módulo, crea un proyecto y construye tu primer sitio.
On this page
Primeros Pasos
Instalación
BX Sites depende de bx-markdown
para el renderizado de Markdown, de bx-esapi
para la codificación HTML, y de bx-yaml
para leer bxsites.yaml. Con CommandBox
instalado:
box install bx-sites
box install bx-markdown
box install bx-esapi
box install bx-yaml
O, sin CommandBox, el propio instalador de BoxLang toma los cuatro en un solo comando:
install-bx-module bx-sites bx-markdown bx-esapi bx-yaml
box install/install-bx-module lee boxlang.executable de box.json
y coloca un script bxSites en tu PATH (en ~/.boxlang/bin), de modo
que cada comando de abajo funciona tanto en su forma corta e independiente:
bxSites <verb> [options]
como, en cualquier lugar donde BoxLang esté disponible pero ese atajo del
PATH no lo esté (un ejecutor de CI, un módulo registrado a mano en lugar
de instalado) - ambas formas ejecutan exactamente lo mismo:
boxlang bxSites <verb> [options]
El resto de esta guÃa usa la forma corta.
Crear la estructura de un proyecto
bxSites new my-docs
cd my-docs
Esto crea:
my-docs/
├── docs/
│ ├── assets/
│ └── index.md
└── bxsites.yaml
Pasa --theme=material o --theme=tailwind para generar la estructura
con un tema predeterminado diferente, y --name="My Project Docs" para
establecer el nombre del sitio de antemano - de lo contrario new lo
deriva del nombre del directorio de destino.
Formato del archivo de configuración
bxsites.yaml es el formato por defecto y preferido - es lo que new
genera a menos que se indique lo contrario, y cada ejemplo de esta guÃa y
de Configuración lo muestra primero. bxsites.json
también es totalmente compatible, para un proyecto que lo prefiera: pasa
--format=json para generar uno en su lugar, o simplemente escrÃbelo o
renómbralo tú mismo - ConfigLoader resuelve el que esté realmente
presente entre bxsites.yaml/.yml/.json, en ese orden, sin necesitar
ninguna otra configuración para cambiar. Consulta
Configuración para la referencia completa de claves
en ambos formatos.
¿Ya tienes contenido en GitBook? bxSites migrate --source=/path/to/export
convierte una exportación de GitBook directamente en docs/ - consulta
Migrar desde GitBook - y puedes pasar
directamente a Construcción.
Añadir páginas
Cada archivo .md bajo docs/ se convierte en una página. El anidamiento
de carpetas se convierte automáticamente en anidamiento de navegación:
docs/ es lo que genera new y lo que usa cada ejemplo de esta guÃa,
pero un proyecto que en espÃritu no es realmente "docs" (un sitio de
marketing, un portafolio) puede usar src/ en su lugar, sin ningún
otro cambio: cada verbo (build, serve, check, lint,
page:new, ...) busca primero docs/ y recurre a src/ cuando es
lo que realmente existe. El resultado de la construcción siempre
termina en site/ de cualquier forma - los dos nunca chocan, ya que
site/ nunca es en sà mismo un nombre válido de carpeta de origen.
docs/
├── index.md -> /
├── guides/
│ ├── index.md -> /guides/
│ └── deployment.md -> /guides/deployment/
(Un sitio grande puede sobrescribir por completo este orden/agrupamiento
inferido con una navegación explÃcita - consulta nav).
Enlazar entre páginas
Enlaza a otra página de la manera habitual de mkdocs - una ruta relativa
al archivo hasta su fuente .md, exactamente como si los dos archivos
estuvieran uno junto al otro en el disco (porque lo están):
See [Deployment](guides/deployment.md) or, from that same guide,
[back to Getting Started](../getting-started.md#add-pages).
BX Sites reescribe cada enlace de este tipo a su URL amigable generada en
el momento de la construcción (guides/deployment.md ->
/guides/deployment/index.html, conservando anclas y cadenas de consulta),
resuelto respecto a la propia carpeta de la página que enlaza - ../ y
las referencias a archivos hermanos funcionan exactamente igual que al
resolver cualquier otra ruta relativa. Esta es también la razón por la
que el enlace sigue funcionando si lees el archivo directamente en GitHub
en lugar del sitio construido: es una ruta relativa real y válida a un
archivo real de cualquiera de las dos formas. Las URL absolutas, los
enlaces mailto: y los enlaces que ya empiezan con / se dejan intactos.
Descargar una página como Markdown
Cada página construida también publica su propia fuente .md original
junto a ella - docs/guides/deployment.md termina copiado en
site/guides/deployment.md, justo al lado de
site/guides/deployment/index.html - con un enlace "Download Markdown" en
la propia página, junto a "Edit this page". No requiere configuración,
siempre está activo.
Esta es la misma motivación que llms.txt -
una persona (o un LLM) puede obtener el Markdown en bruto de una página
directamente en lugar de raspar el HTML renderizado - y dado que todo el
árbol docs/ se refleja 1:1, los enlaces relativos propios de una página
también siguen funcionando leÃdos de esta manera.
Cada página puede comenzar con un pequeño bloque de frontmatter:
---
title: Deployment
order: 2
hidden: false
description: How to deploy a built BX Sites site.
tags: [guides, deployment]
icon: 🚀
summary: Everything you need to publish a built site.
ogImage: assets/deployment-card.png
---
# Deployment
Your content here.
title- sobrescribe el tÃtulo de navegación/página (que de lo contrario se deriva del nombre del archivo)order- controla el orden entre páginas hermanas en la navegación (un número más bajo aparece primero; las páginas omitidas se ordenan al final, alfabéticamente)hidden-trueexcluye la página de la navegación (y de la búsqueda) sin excluirla de la construccióndescription- la descripción de tarjeta social/meta de esta página (consultaogImage); recurre a ladescriptiongeneral del sitio en la configuración del sitio cuando se omitetags- un array de etiquetas para esta página, renderizadas como insignias clicables debajo del tÃtulo y recopiladas en una página de Ãndice/tags/de todo el sitio (solo se construye una vez que al menos una página tenga etiquetas); también aumenta la relevancia en la búsqueda para las consultas coincidentesicon- se muestra junto al tÃtulo de la página y junto a su entrada en la navegación - un emoji sencillo, o un icono con nombre de una biblioteca incluida (rocket,lucide:rocket,tabler:rocket, o elcustom:my-iconpropio de un proyecto) - consulta Temas: Iconossummary- una frase introductoria de una lÃnea mostrada debajo del tÃtulo (distinta dedescription, que es solo para la etiqueta meta y nunca se renderiza en la propia página)ogImage- sobrescribe la imagen de tarjeta social de esta página en particular - consultaogImage
Los valores del frontmatter pueden ser listas en lÃnea (tags: [a, b, c]),
listas de bloque al estilo YAML (tags: seguido de lÃneas - item
sangradas), o escalares de bloque con >/| para un valor de varias
lÃneas - aunque es un analizador pequeño escrito a mano, no YAML completo,
asà que los objetos/mapas anidados no son compatibles.
Construcción
bxSites build
Renderiza cada página de docs/ en un sitio estático en site/, listo
para alojarse en cualquier lugar que sirva archivos estáticos.
Servir localmente
bxSites serve
Construye el proyecto, sirve site/ en http://127.0.0.1:8080/, y
reconstruye automáticamente cada vez que guardas un cambio bajo docs/,
tu configuración de sitio bxsites.yaml/.json, o una sobrescritura de
theme/ a nivel de proyecto - tu navegador se recarga por sà solo. Pasa
--port=3000 o --host=0.0.0.0 para cambiar cómo se enlaza.
Limpieza
bxSites clean
Elimina site/ y cualquier caché de construcción, sin tocar tu fuente
docs/.