Traducción no oficial al español rioplatense, generada con IA (Claude Sonnet 5.5) bajo la dirección y revisión de Jassiel Ovando. No es una publicación de Typst GmbH ni cuenta con su aval; ante cualquier duda, prevalece la documentación oficial en inglés. ¿Un error de traducción o una sugerencia? Reportalo. Tipografía: Reforma, de PampaType.

bundleElemento
Signo de pregunta
Desde: unreleased
Característica opcional
Requiere la característica bundle
Ir al código fuente

El formato de exportación a bundle de Typst (experimental).

La exportación a bundle solo está disponible para experimentar detrás de un indicador de característica. No uses esta característica en casos de uso de producción. En la CLI, podés experimentar con ella pasando --features bundle o estableciendo la variable de entorno TYPST_FEATURES en bundle. Para usar las características bundle y html al mismo tiempo, especificá ambas separadas por una coma (es decir, bundle,html). En la app web, la exportación a bundle no está disponible por el momento.

Con la exportación a bundle de Typst, podés emitir varios archivos de salida a partir de un único proyecto de Typst. La salida en bundle es útil para crear sitios web de varias páginas con exportación a HTML, pero no se limita a la exportación a HTML. Podés crear bundles que contengan cualquier combinación de páginas HTML, PDF, PNG, SVG y recursos arbitrarios.

Exportar como bundle

Línea de comandos

Pasá --format bundle al subcomando compile o watch. Tené en cuenta que también tenés que pasar --features bundle o establecer TYPST_FEATURES=bundle para habilitar este destino de exportación experimental.

Al usar typst watch, Typst lanzará un servidor HTTP con recarga en vivo que sirve tus archivos. Podés configurarlo así:

App web

Actualmente no está disponible.

Crear archivos

Un bundle es una colección de archivos. Cada uno de estos archivos del bundle pertenece a una de dos categorías: documento o recurso. Un document toma contenido que se exporta con uno de los otros formatos de exportación de Typst. Por su parte, un asset toma datos de bytes sin procesar de tu elección que se escribirán en el disco tal cual. Ambos elementos toman como primer argumento la ruta de salida deseada.

El siguiente ejemplo muestra un caso básico de cómo se podría usar la exportación a bundle en la práctica:

#document("index.html", title: [Home])[
  #title()
  - #link(<blog>)[Go to blog]
]

#document("blog.html", title: [Blog])[
  #title()
  Welcome to my blog!

  ...

  This blog also exists as a
  #link(<blog-pdf>)[single PDF].
] <blog>

#document("blog.pdf", title: [Blog])[
  ...
] <blog-pdf>

#asset(
  "favicon.ico",
  read("images/favicon.ico", encoding: none),
)

En el ejemplo, creamos dos documentos HTML: una página de inicio y un blog. La página de inicio enlaza al blog mediante un enlace de etiqueta. El mecanismo de enlaces incorporado de Typst admite de forma nativa los enlaces entre documentos y resuelve por vos las rutas relativas correctas. El bundle también contiene una versión en PDF del blog, que se enlaza desde la versión HTML. En la práctica, ahora podrías compartir el contenido entre la versión HTML y la PDF guardándolo en una variable y usándola en ambas. Esto se omite acá por brevedad. Por último, el bundle contiene un recurso de ícono para el sitio web. En este caso, proporcionamos los datos del recurso leyendo un archivo del disco. Como alternativa, también es posible generar los datos del recurso desde dentro de Typst (por ejemplo, con una función como json.encode).

Los documentos y los recursos son elementos normales, así que podés usarlos con los mecanismos habituales de scripting, estilos e introspección de Typst. Para más detalles, consultá la documentación de document y asset.

Introspección

Las introspecciones siempre observan el bundle completo y no los documentos individuales. Por ejemplo, consultar los títulos te dará todos los títulos de todos los documentos y no solo los del documento actual. De manera similar, las etiquetas son globales al bundle: podés ubicar y enlazar etiquetas de otros documentos. Los contadores y el estado también son globales.1 En particular, si habilitás cosas como la numeración de títulos, la numeración avanzará de forma consecutiva a lo largo de todo el bundle.

Si estás usando la exportación a bundle para construir una obra conceptual que se divide en varios archivos de salida, normalmente esto es lo que querés. Si, en cambio, estás usando la exportación a bundle para exportar varias obras conceptualmente separadas, quizás quieras que las introspecciones consideren cada documento de forma aislada. Actualmente, vas a tener que hacerlo manualmente (por ejemplo, reiniciando contadores, ajustando selectores, etcétera). Nosotros planeamos ofrecer más herramientas para administrar el alcance preciso de la introspección en el futuro.

  1. 1Una excepción a esto es el contador de páginas, que (naturalmente) es por documento.

Parámetros

format.bundle() → content

Definiciones