2.7 Archivos estáticos
Todos los archivos bajo el directorio static/
se copian a public/
cuando Hugo procesa un sitio web. Este directorio se usa a menudo para almacenar archivos web estáticos como imágenes, CSS y archivos de JavaScript. Por ejemplo, una imagen static/foo/bar.png
se puede incrustar en su publicación usando la sintaxis Markdown 
.27
Por lo general, un tema tiene una carpeta static/
, y puede anular parcialmente sus archivos utilizando el mismo mecanismo que reemplaza a los layouts/
archivos, es decir, static/file
anulará themes/theme-name/static/file
. En el tema XMin, tengo dos archivos CSS style.css
y fonts.css
. El primero es la hoja de estilo principal, y el último es un archivo bastante pequeño para definir tipos de letra solamente. Es posible que desee definir sus propios tipos de letra, y solo puede proporcionar un static/css/fonts.css
para anular el del tema, por ejemplo,
body {
font-family: "Comic Sans MS", cursive, sans-serif;
}
code {
font-family: "Courier New", Courier, monospace;
}
Para los usuarios de R Markdown, otra aplicación importante del directorio static/
es construir documentos Rmd con formatos de salida personalizados, es decir, documentos Rmd que no utilizan el formato blogdown::html_page()
(ver sección ??). Por ejemplo, puede generar un PDF o presentaciones de documentos Rmd en este directorio, para que Hugo no los postprocesa, sino que simplemente los copie en public/
para su publicación. Para compilar estos archivos Rmd, debe proporcionar un script de compilación personalizado R/build.R
(consulte la sección D.9). Puede escribir una sola línea de código en este script:
La función build_dir()
busca todos los archivos Rmd bajo un directorio y llama a rmarkdown::render()
para compilarlos en los formatos de salida especificados en los metadatos YAML de los archivos Rmd. Si sus archivos Rmd no se deben presentar con una simple llamada rmarkdown::render()
, puede proporcionar su propio código para presentarlos en R/build.R
. Hay un mecanismo de caché integrado en la función dir_desarrollo()
: un archivo Rmd no se compilará si es anterior a su archivo(s) de salida. Si no desea este comportamiento, puede obligar a todos los archivos Rmd a volver a compilarse cada vez: build_dir(force = TRUE)
.
He proporcionado un ejemplo mínimo en el repositorio de GitHub yihui/blogdown-static, donde puede encontrar dos ejemplos de Rmd en el directorio static/
. Una es una presentación HTML5 basada en el paquete xaringan, y la otra es un documento PDF basado en bookdown.
Debe tener precaución con los archivos arbitrarios en static/
, debido al mecanismo predominante de Hugo. Es decir, todo en static/
se copiará en public/
. Debe asegurarse de que los archivos que procesa en static/
no entrarán en conflicto con los archivos generados automáticamente por Hugo a partir de content/
. Por ejemplo, si tiene un archivo fuente content/about.md
y un archivo Rmd static/about/index.Rmd
al mismo tiempo, el resultado HTML de este último sobrescribirá el anterior (tanto Hugo como usted generarán un archivo de salida con el mismo nombre public/about/index.html
).
El enlace de la imagen depende de su configuración
baseurl
enconfig.toml
. Si no contiene un subtrayecto,/foo/bar.png
será el enlace de la imagen; de lo contrario, tendrá que ajustarlo, por ejemplo, parabaseurl = "http://example.com/subpath/"
, el enlace a la imagen debe ser/subpath/foo/bar.png
.↩