{"id":44763,"date":"2022-01-19T15:27:25","date_gmt":"2022-01-19T14:27:25","guid":{"rendered":"https:\/\/kinqsta.com\/es\/?p=44763&#038;preview=true&#038;preview_id=44763"},"modified":"2023-10-12T16:45:29","modified_gmt":"2023-10-12T14:45:29","slug":"hugo-sitio-estatico","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/","title":{"rendered":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo"},"content":{"rendered":"<p>Hugo es un generador de sitios est\u00e1ticos (SSG) escrito en <a href=\"https:\/\/kinqsta.com\/es\/blog\/mejor-lenguaje-de-programacion-para-aprender\/#go\">Go<\/a> (tambi\u00e9n conocido como Golang), un lenguaje de programaci\u00f3n compilado de alto rendimiento que se utiliza a menudo para desarrollar aplicaciones y servicios de backend.<\/p>\n<p>En la actualidad, Hugo es capaz de crear la mayor\u00eda de los sitios web en pocos segundos (&lt;1 ms por p\u00e1gina). Esto explica porqu\u00e9 Hugo se anuncia como \u00abel framework m\u00e1s r\u00e1pido del mundo para construir sitios web\u00bb.<\/p>\n<p>En este art\u00edculo, veremos la historia de Hugo, lo que lo hace tan r\u00e1pido y c\u00f3mo puedes empezar a construir tu propio sitio est\u00e1tico con Hugo.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>\u00bfQu\u00e9 es Hugo? \u00bfY por qu\u00e9 es tan popular?<\/h2>\n<figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/10\/hugo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-105526 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/10\/hugo.png\" alt=\"P\u00e1gina web de Hugo.\" width=\"1001\" height=\"471\"><\/a><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">P\u00e1gina web de Hugo.<\/figcaption><\/figure>\n<p>Steve Francia desarroll\u00f3 inicialmente el <a href=\"https:\/\/gohugo.io\/\">generador de sitios est\u00e1ticos Hugo<\/a> en 2013, y Bj\u00f8rn Erik Pedersen tom\u00f3 el relevo como desarrollador principal del proyecto en 2015. Hugo es un proyecto de c\u00f3digo abierto, lo que significa que su c\u00f3digo puede ser visto y mejorado por cualquiera.<\/p>\n<p>Como generador de sitios est\u00e1ticos, Hugo toma archivos de contenido Markdown, los ejecuta a trav\u00e9s de las plantillas del tema, y <a href=\"https:\/\/kinqsta.com\/es\/blog\/wordpress-vs-html-estatico\/\">devuelve archivos HTML<\/a> que puedes desplegar online f\u00e1cilmente &#8211; y hace todo esto extremadamente r\u00e1pido.<\/p>\n<p>En 2021, hay docenas, si no cientos, de generadores est\u00e1ticos. <a href=\"https:\/\/kinqsta.com\/es\/blog\/generadores-de-sitios-estaticos\/\">Cada generador de sitios est\u00e1ticos tiene su atractivo<\/a>. Jekyll es popular entre los desarrolladores de Ruby, y aunque no es tan r\u00e1pido como otras opciones, fue uno de los primeros generadores de sitios est\u00e1ticos en conseguir una adopci\u00f3n generalizada. <a href=\"https:\/\/kinqsta.com\/es\/blog\/gatsby-wordpress\/\">Gatsby<\/a> es otro SSG popular adecuado para desarrollar sitios desplegables est\u00e1ticamente que son din\u00e1micos en la funcionalidad.<\/p>\n<p>As\u00ed que, con tantas SSG por ah\u00ed, \u00bfqu\u00e9 hace que Hugo destaque?<\/p>\n\n<h3>Hugo es r\u00e1pido<\/h3>\n<p>En t\u00e9rminos de rendimiento bruto, Hugo es el mejor generador de sitios est\u00e1ticos del mundo. Comparado con Jekyll, Hugo ha demostrado ser <a href=\"https:\/\/forestry.io\/blog\/hugo-and-jekyll-compared\/\">35 veces m\u00e1s r\u00e1pido<\/a> por Forestry. Adem\u00e1s, Hugo puede renderizar un sitio de 10.000 p\u00e1ginas en 10 segundos, una tarea que a Gatsby tardar\u00eda en completar m\u00e1s de media hora. Hugo no s\u00f3lo es el SSG m\u00e1s r\u00e1pido en t\u00e9rminos de tiempos de construcci\u00f3n, sino que tambi\u00e9n es muy r\u00e1pido de instalar.<\/p>\n<p>Hugo se env\u00eda como un ejecutable aut\u00f3nomo, a diferencia de Jekyll, Gatsby y otros SSG que requieren la instalaci\u00f3n de dependencias con un gestor de paquetes. Esto significa que puedes descargar y utilizar Hugo inmediatamente sin tener que preocuparte por las dependencias de software.<\/p>\n<h3>La creaci\u00f3n de plantillas es f\u00e1cil en Hugo<\/h3>\n<p>En la jerga de SSG, \u00abtemplating\u00bb se refiere al proceso de a\u00f1adir marcadores de posici\u00f3n para la inserci\u00f3n del contenido din\u00e1mico dentro de una p\u00e1gina HTML. Para acceder al t\u00edtulo de una p\u00e1gina, se puede utilizar la variable <code>{{ .Title }}<\/code>. Por lo que, dentro de una plantilla HTML de Hugo, es com\u00fan ver el <code>{{ .Title }}<\/code> envuelto en etiquetas H1 de esta manera:<\/p>\n<pre><code class=\"language-markdown\">&lt;h1&gt;{{ .Title }}&lt;\/h1&gt;<\/code><\/pre>\n<p>En el momento de la construcci\u00f3n, Hugo tomar\u00e1 autom\u00e1ticamente el t\u00edtulo dentro de un archivo de contenido e insertar\u00e1 el t\u00edtulo entre las dos etiquetas <code>&lt;h1&gt;<\/code>. Hugo tiene una gran cantidad de variables de plantillas incorporadas, e incluso puedes escribir funciones personalizadas para procesar los datos en tiempo de construcci\u00f3n. Para la creaci\u00f3n de plantillas, Hugo utiliza las bibliotecas integradas <code>html\/template<\/code> y <code>text\/template<\/code> de Go. Esto ayuda a reducir el exceso de aplicaciones ya que Hugo no necesita instalar librer\u00edas de terceros para las plantillas.<\/p>\n<h2>C\u00f3mo instalar Hugo<\/h2>\n<p>Hugo se env\u00eda como un ejecutable compilado, lo que significa que no tendr\u00e1s que descargar y gestionar muchas dependencias para empezar. Est\u00e1 disponible para macOS, Windows y Linux.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>Las instrucciones de instalaci\u00f3n que aparecen a continuaci\u00f3n requieren un gestor de paquetes, que descargar\u00e1 el ejecutable de Hugo por ti. Si prefieres construir Hugo desde su c\u00f3digo fuente, consulta la <a href=\"https:\/\/gohugo.io\/getting-started\/installing\/#source\">documentaci\u00f3n oficial de Hugo<\/a>.<\/p>\n<\/aside>\n\n<h3>C\u00f3mo instalar Hugo en macOS y Linux<\/h3>\n<p>El m\u00e9todo de instalaci\u00f3n recomendado para macOS y Linux requiere Homebrew, un gestor de paquetes para la instalaci\u00f3n y actualizaci\u00f3n de aplicaciones. Si a\u00fan no tienes Homebrew instalado, puedes instalarlo ejecutando el siguiente comando en <a href=\"https:\/\/kinqsta.com\/es\/blog\/comandos-de-ssh\/\">Terminal<\/a>:<\/p>\n<pre><code class=\"language-bash\">\/bin\/bash -c \"$(curl -fsSL <a href=\"https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh\">https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh<\/a>)\"<\/code><\/pre>\n<p>Una vez instalado Homebrew, ejecuta el siguiente comando para instalar Hugo:<\/p>\n<pre><code class=\"language-bash\">brew install hugo<\/code><\/pre>\n<h3>C\u00f3mo instalar Hugo en Windows<\/h3>\n<p>Para los usuarios de Windows, Hugo puede instalarse utilizando los gestores de paquetes Chocolatey o Scoop. Como las instrucciones para instalar Chocolatey y Scoop son un poco m\u00e1s complejas que las de Homebrew, recomendamos consultar sus p\u00e1ginas de documentaci\u00f3n oficial <a href=\"https:\/\/chocolatey.org\/install\">aqu\u00ed<\/a> y <a href=\"https:\/\/scoop.sh\/\">aqu\u00ed<\/a>.<\/p>\n<p>Despu\u00e9s de instalar Chocolatey o Scoop, puedes instalar Hugo utilizando uno de los siguientes comandos (dependiendo de tu gestor de paquetes):<\/p>\n<pre><code class=\"language-bash\">choco install hugo-extended -confirm<\/code><\/pre>\n<pre><code class=\"language-bash\">scoop install hugo-extended<\/code><\/pre>\n<h3>C\u00f3mo verificar que Hugo est\u00e1 instalado correctamente<\/h3>\n<p>Para comprobar que Hugo se ha instalado correctamente, debes ejecutar el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">hugo version<\/code><\/pre>\n<p>Al ejecutar este comando en la Terminal deber\u00eda mostrar informaci\u00f3n sobre la versi\u00f3n instalada de Hugo de la siguiente manera:<\/p>\n<pre><code class=\"language-bash\">hugo v0.85.0+extended darwin\/arm64 BuildDate=unknown<\/code><\/pre>\n<h2>Comandos y configuraci\u00f3n de Hugo<\/h2>\n<p>Antes de sumergirnos en la creaci\u00f3n de un sitio est\u00e1tico con Hugo, vamos a familiarizarnos con sus diversos comandos <a href=\"https:\/\/kinqsta.com\/es\/blog\/wp-cli\/\">CLI<\/a> y los par\u00e1metros del archivo de configuraci\u00f3n.<\/p>\n<h3>Comandos CLI de Hugo<\/h3>\n<ul>\n<li><code>hugo check<\/code> &#8211; ejecuta varias comprobaciones de verificaci\u00f3n<\/li>\n<li><code>hugo config<\/code> &#8211; muestra la configuraci\u00f3n de un sitio Hugo<\/li>\n<li><code>hugo convert<\/code> &#8211; convierte contenidos a diferentes formatos<\/li>\n<li><code>hugo deploy<\/code> &#8211; despliega tu sitio en un proveedor de la nube<\/li>\n<li><code>hugo env<\/code> &#8211; muestra la versi\u00f3n de Hugo y la informaci\u00f3n del entorno<\/li>\n<li><code>hugo gen<\/code> &#8211; proporciona acceso a varios generadores<\/li>\n<li><code>hugo help<\/code> &#8211; muestra informaci\u00f3n sobre un comando<\/li>\n<li><code>hugo import<\/code> &#8211; permite importar un sitio desde otro lugar<\/li>\n<li><code>hugo list<\/code> &#8211; muestra una lista de varios tipos de contenido<\/li>\n<li><code>hugo mod<\/code> &#8211; proporciona acceso a varios ayudantes de m\u00f3dulos<\/li>\n<li><code>hugo new<\/code> &#8211; te permite crear nuevos contenidos para tu sitio<\/li>\n<li><code>hugo server<\/code> &#8211; inicia un servidor de desarrollo local<\/li>\n<li><code>hugo version<\/code> &#8211; muestra la versi\u00f3n actual de Hugo<\/li>\n<\/ul>\n<p>El Hugo CLI tambi\u00e9n tiene una variedad de flags para especificar opciones adicionales para algunos comandos. Para ver una lista completa de flags de Hugo (hay muchas), recomendamos usar el comando <code>hugo help<\/code> para mostrar una lista de todas los flags disponibles.<\/p>\n<h3>El archivo de configuraci\u00f3n de Hugo<\/h3>\n<p>El archivo de configuraci\u00f3n de Hugo admite tres formatos: YAML, TOML, y JSON. Asimismo, el archivo de configuraci\u00f3n de Hugo es <strong>config.yml<\/strong>, <strong>config.toml<\/strong>, o <strong>config.json<\/strong>, y puedes encontrarlo en el directorio ra\u00edz de un proyecto Hugo.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/hugo-configuration-file.jpg\" alt=\"Archivo de configuraci\u00f3n de Hugo.\" width=\"1500\" height=\"677\"><figcaption class=\"wp-caption-text\">Archivo de configuraci\u00f3n de Hugo.<\/figcaption><\/figure><\/figure>\n<p>Este es el aspecto de un archivo t\u00edpico de configuraci\u00f3n de Hugo en formato YAML:<\/p>\n<pre><code class=\"language-markdown\">DefaultContentLanguage: en\n\ntheme:\n\n- kinsta-static-site\n\ncontentdir: content\n\nlayoutdir: layouts\n\npublishdir: public\n\npaginate: 5\n\ntitle: Kinsta Static Site\n\ndescription: \"This is a static site generated with Hugo!\"\n\npermalinks:\n\npost: :slug\/\n\npage: :slug\/\n\ntags: \"tag\/:slug\/\"\n\nauthor: \"author\/:slug\/\"<\/code><\/pre>\n<p>Si has usado antes <a href=\"https:\/\/kinqsta.com\/es\/blog\/software-cms\/\">WordPress u otro CMS<\/a>, algunas de las opciones de configuraci\u00f3n pueden parecerte familiares. Por ejemplo, <code>kinsta-static-site<\/code> es el nombre del tema del sitio, <code>Kinsta Static Site<\/code> es el meta t\u00edtulo de SEO, y <code>paginate<\/code> (el n\u00famero de posts por p\u00e1gina) es <code>5<\/code>.<\/p>\n<p>Hugo tiene docenas de opciones de configuraci\u00f3n, puedes explorarlas todas en la <a href=\"https:\/\/gohugo.io\/getting-started\/configuration\/\">documentaci\u00f3n oficial de Hugo<\/a>. Si necesitas hacer alg\u00fan cambio de configuraci\u00f3n global mientras desarrollas un sitio en Hugo, lo m\u00e1s probable es que tengas que editar este archivo de configuraci\u00f3n.<\/p>\n<h2>C\u00f3mo crear un sitio con Hugo<\/h2>\n<p>Ahora que hemos visto c\u00f3mo instalar y utilizar la CLI de Hugo y los fundamentos del archivo de configuraci\u00f3n de Hugo, vamos a crear un nuevo sitio utilizando Hugo.<\/p>\n<p>Para crear un sitio de Hugo, utiliza el siguiente comando (si\u00e9ntete libre de cambiar <strong>my-hugo-site\u00a0<\/strong>por otra cosa si lo deseas):<\/p>\n<pre><code class=\"language-bash\">hugo new site my-hugo-site<\/code><\/pre>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/hugo-new-site-command.jpg\" alt=\"Crear un nuevo sitio Hugo.\" width=\"2048\" height=\"1450\"><figcaption class=\"wp-caption-text\">Crear un nuevo sitio de Hugo.<\/figcaption><\/figure><\/figure>\n<p>A continuaci\u00f3n, navega hasta la carpeta del sitio, y deber\u00edas ver los siguientes archivos y carpetas: archivo <strong>config.toml<\/strong>, carpeta <strong>archetypes<\/strong>, carpeta <strong>content<\/strong>, carpeta <strong>layouts<\/strong>, carpeta <strong>themes<\/strong>, carpeta <strong>data <\/strong>y carpeta <strong>static<\/strong>. Vamos a repasar r\u00e1pidamente lo que es cada uno de estos archivos y carpetas.<\/p>\n<h3>Archivo config.toml de Hugo<\/h3>\n<p>Como hemos destacado anteriormente, el archivo de configuraci\u00f3n principal de Hugo contiene la configuraci\u00f3n global de su sitio.<\/p>\n<h3>Carpeta de arquetipos de Hugo<\/h3>\n<p>La carpeta archetypes es donde se almacenan las plantillas de contenido formateadas en Markdown. Los arquetipos son especialmente \u00fatiles si tu sitio tiene m\u00faltiples formatos de contenido. Con los arquetipos de Hugo, puedes crear una plantilla para cada tipo de contenido de tu sitio. Esto te permite completar los archivos Markdown generados con todos los ajustes de configuraci\u00f3n necesarios.<\/p>\n<p>Por ejemplo, si tienes un tipo de contenido de <strong>podcast <\/strong>para mostrar tus episodios del <a href=\"https:\/\/kinqsta.com\/es\/blog\/que-es-un-podcast\/\">podcast<\/a>, puedes crear un nuevo arquetipo en <code>archetypes\/podcast.md<\/code> con el contenido que se indica a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-markdown\">---\n\ntitle: \"{{ replace .Name \"-\" \" \" | title }}\"\n\ndate: {{ .Date }}\n\ndescription: \"\"\n\nseason:\n\nepisode:\n\ndraft: true\n\n---<\/code><\/pre>\n<p>Con este arquetipo de podcast, puedes utilizar el siguiente comando para crear una nueva entrada:<\/p>\n<pre><code class=\"language-bash\">hugo new podcast\/s1e6_interview-with-kinsta-ceo.md<\/code><\/pre>\n<p>Ahora, si abres el post reci\u00e9n creado, deber\u00edas ver esto:<\/p>\n<pre><code class=\"language-markdown\">---\n\ntitle: \"Interview with Kinsta CEO\"\n\ndate: 2021-05-20T13:00:00+09:00\n\ndescription: \"\"\n\nSeason: 1\n\nepisode: 6\n\ndraft: true\n\n---<\/code><\/pre>\n<p>Sin los arquetipos, tendr\u00edas que especificar manualmente los par\u00e1metros del front matter para cada nueva entrada que creas. Aunque los arquetipos pueden parecer complejos e innecesarios al principio, a la larga pueden ahorrarte mucho tiempo.<\/p>\n<h3>Carpeta de contenidos de Hugo<\/h3>\n<p>La carpeta <strong>content <\/strong>es donde va el contenido real de tu publicaci\u00f3n. Hugo soporta los <a href=\"https:\/\/kinqsta.com\/es\/blog\/editores-markdown\/\">formatos Markdown y HTML<\/a>, siendo Markdown la opci\u00f3n m\u00e1s popular debido a su facilidad de uso. Adem\u00e1s de ser el espacio de almacenamiento general para las publicaciones, puedes utilizar la carpeta <strong>content <\/strong>para organizar el contenido de las publicaciones.<\/p>\n<p>Hugo trata cada directorio de nivel superior dentro de la carpeta <strong>content <\/strong>como una secci\u00f3n de contenido. Las secciones de contenido en Hugo son similares a los <a href=\"https:\/\/kinqsta.com\/es\/blog\/wordpress-tipos-de-postes-personalizados\/\">tipos de entradas personalizadas en WordPress<\/a>. Por ejemplo, si tu sitio tiene entradas, p\u00e1ginas y podcasts, tu carpeta de contenido tendr\u00eda directorios de <strong>entradas<\/strong>, <strong>p\u00e1ginas <\/strong>y <strong>podcasts <\/strong>donde vivir\u00edan los archivos de contenido para estos diferentes tipos de entradas.<\/p>\n<h3>Carpeta de dise\u00f1os de Hugo<\/h3>\n<p>La carpeta <strong>layouts <\/strong>contiene archivos HTML que definen la estructura de tu sitio. En algunos casos, puedes ver un sitio de Hugo sin una carpeta de <strong>dise\u00f1os <\/strong>porque no tiene porqu\u00e9 estar en el directorio ra\u00edz del proyecto y puede residir dentro de una carpeta del tema en su lugar.<\/p>\n<p>Al igual que los temas de WordPress, que utilizan PHP para la creaci\u00f3n de plantillas, las plantillas de Hugo consisten en un HTML base con plantillas din\u00e1micas adicionales que se alimentan de las bibliotecas <code>html\/template<\/code> y <code>text\/template<\/code> incorporadas de Golang. Los distintos archivos de plantillas HTML necesarios para generar el marcado HTML de tu sitio se encuentran en la carpeta <strong>layouts<\/strong>.<\/p>\n<h3>Carpeta de temas de Hugo<\/h3>\n<p>Para los sitios que prefieren una forma m\u00e1s aut\u00f3noma de almacenar archivos de plantillas y activos, Hugo admite una carpeta de <strong>temas (themes)<\/strong>. Los temas de Hugo son similares a <a href=\"https:\/\/kinqsta.com\/es\/blog\/que-es-un-tema-de-wordpress\/\">los de WordPress<\/a> en el sentido de que se almacenan en un directorio de temas y contienen todas las plantillas necesarias para que un tema funcione.<\/p>\n<p>Aunque algunos usuarios de Hugo prefieren mantener los archivos relacionados con los temas en el directorio ra\u00edz del proyecto, almacenar estos archivos dentro de la carpeta <strong>themes <\/strong>permite una gesti\u00f3n y un intercambio m\u00e1s f\u00e1cil.<\/p>\n<h3>Carpeta de datos Hugo<\/h3>\n<p>La carpeta <strong>data <\/strong>de Hugo es donde puedes almacenar datos suplementarios (en formato JSON, YAML o TOML) que se necesitan para generar las p\u00e1ginas de tu sitio. Los archivos de datos son beneficiosos para conjuntos de datos m\u00e1s grandes que pueden ser engorrosos de almacenar directamente en un archivo de contenido o plantilla.<\/p>\n<p>Por ejemplo, si quieres crear una lista de tasas de inflaci\u00f3n en d\u00f3lares estadounidenses desde 1960 hasta 2020, se necesitar\u00edas unas 80 l\u00edneas para representar los datos (una l\u00ednea por cada a\u00f1o). En lugar de poner estos datos directamente en un archivo de contenido o de plantilla, puedes crearlos en la carpeta <strong>data <\/strong>y rellenarlos con la informaci\u00f3n necesaria.<\/p>\n<h3>Carpeta est\u00e1tica de Hugo<\/h3>\n<p>La carpeta <strong>static <\/strong>de Hugo es donde se almacenan los recursos est\u00e1ticos que no requieren ning\u00fan procesamiento adicional. La carpeta <strong>static <\/strong>es normalmente el lugar donde los usuarios de Hugo almacenan im\u00e1genes, <a href=\"https:\/\/kinqsta.com\/es\/blog\/fuentes-seguras-para-la-web\/\">fuentes<\/a>, archivos de verificaci\u00f3n de DNS y m\u00e1s. Cuando se genera un sitio en Hugo y se guarda en una carpeta para facilitar su despliegue, todos los archivos de la carpeta <strong>static <\/strong>se copian tal cual.<\/p>\n<p>Si te preguntas por qu\u00e9 no hemos mencionado los archivos JavaScript o CSS, es porque a menudo se procesan din\u00e1micamente transport\u00e1ndose durante el desarrollo del sitio. En Hugo, los archivos JavaScript y CSS suelen almacenarse en la carpeta del <strong>tema <\/strong>porque requieren un procesamiento adicional.<\/p>\n<h2>C\u00f3mo a\u00f1adir un tema a un sitio Hugo<\/h2>\n<p>Descargar e instalar un tema predise\u00f1ado es una buena manera de empezar a utilizar Hugo. Los temas de Hugo vienen en todas las formas y tama\u00f1os, y muchos de ellos est\u00e1n disponibles de forma gratuita en el repositorio oficial de temas de Hugo. Vamos a instalar el popular <a href=\"https:\/\/themes.gohugo.io\/themes\/hyde\/\">tema Hyde<\/a> en nuestro sitio creado con Hugo.<\/p>\n<p>En primer lugar, navega hasta la carpeta de temas de tu proyecto en el Terminal:<\/p>\n<pre><code class=\"language-bash\">cd &lt;hugo-project-directory&gt;\/themes\/<\/code><\/pre>\n<p>A continuaci\u00f3n, utiliza Git para clonar el tema Hyde en el directorio de <strong>temas <\/strong>de tu proyecto.<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/spf13\/hyde.git<\/code><\/pre>\n<p>A continuaci\u00f3n, a\u00f1ade la siguiente l\u00ednea al archivo <strong>config.toml <\/strong>para activar el tema Hyde:<\/p>\n<pre><code class=\"language-markdown\">theme = \"hyde\"<\/code><\/pre>\n<p>En este punto, el tema Hyde est\u00e1 instalado y configurado. El siguiente paso es iniciar el servidor web de desarrollo incorporado en Hugo para ver el sitio en el navegador web.<\/p>\n<h2>C\u00f3mo previsualizar un sitio de Hugo<\/h2>\n<p>Hugo viene con un servidor web integrado para fines de desarrollo, lo que significa que no necesitas instalar un <a href=\"https:\/\/kinqsta.com\/es\/blog\/nginx-vs-apache\/\">servidor web de terceros como Nginx o Apache<\/a> s\u00f3lo para <a href=\"https:\/\/kinqsta.com\/es\/blog\/instalar-wordpress-localmente\/\">ver tu sitio localmente<\/a>.<\/p>\n<p>Para iniciar el servidor web de Hugo, ejecuta el siguiente comando en el directorio ra\u00edz de tu proyecto:<\/p>\n<pre><code class=\"language-bash\">hugo server -D<\/code><\/pre>\n<p>Hugo construir\u00e1 entonces las p\u00e1ginas de su sitio y las pondr\u00e1 a disposici\u00f3n en\u00a0 <code>http:\/\/localhost:1313\/<\/code>:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0.jpg\" alt=\"Servidor de desarrollo local Hugo.\" width=\"2048\" height=\"1450\"><figcaption class=\"wp-caption-text\">Servidor de desarrollo local de Hugo.<\/figcaption><\/figure><\/figure>\n<p>Si visitas la <a href=\"https:\/\/kinqsta.com\/es\/blog\/que-es-una-url\/\">URL<\/a> en tu navegador web, deber\u00edas ver tu sitio Hugo con el tema Hyde:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-1.jpg\" alt=\"Sitio de Hugo que se muestra con el tema de Hyde.\" width=\"2048\" height=\"1088\"><figcaption class=\"wp-caption-text\">Sitio de Hugo que se muestra con el tema de Hyde.<\/figcaption><\/figure><\/figure>\n<p>Por defecto, el servidor de desarrollo local de Hugo vigilar\u00e1 los cambios y reconstruir\u00e1 el sitio autom\u00e1ticamente. Dado que la velocidad de construcci\u00f3n de Hugo es tan r\u00e1pida, las actualizaciones de tu sitio pueden verse casi en tiempo real &#8211; algo que es raro de ver en el mundo de los generadores de sitios est\u00e1ticos. Para demostrarlo, vamos a crear nuestra primera entrada en Hugo.<\/p>\n<h2>C\u00f3mo a\u00f1adir contenido a un sitio de Hugo<\/h2>\n<p>A\u00f1adir contenido a un sitio creado con Hugo es muy diferente de como lo har\u00edamos en un CMS completo como WordPress o Ghost. Con Hugo, no hay una capa de CMS incorporada para <a href=\"https:\/\/kinqsta.com\/es\/secciones\/estrategia-de-contenidos\/\">gestionar tu contenido<\/a>. En su lugar, se espera que gestiones y organices las cosas como mejor te parezca.<\/p>\n<p>En otras palabras, no hay una forma expl\u00edcitamente \u00abcorrecta\u00bb de hacer la gesti\u00f3n de contenidos en Hugo. Compartiremos un m\u00e9todo para a\u00f1adir y gestionar contenido en esta secci\u00f3n, pero si\u00e9ntete libre de cambiar las cosas a medida que te familiarices con Hugo.<\/p>\n<h3>Secciones de contenido en Hugo<\/h3>\n<p>En Hugo, la primera herramienta de organizaci\u00f3n de contenidos que tienes a tu disposici\u00f3n es la secci\u00f3n de <strong>contenidos<\/strong>. Una secci\u00f3n de contenido en Hugo es similar a un <a href=\"https:\/\/kinqsta.com\/es\/blog\/wordpress-tipos-de-postes-personalizados\/\">tipo de entrada en WordPress<\/a>: no s\u00f3lo puedes usarla como un filtro de contenido, sino que tambi\u00e9n puedes usarla como un identificador al crear temas personalizados.<\/p>\n<p>Por ejemplo, si tienes una carpeta de secci\u00f3n de contenido del <strong>blog<\/strong>, puedes utilizarla para almacenar todas tus publicaciones del blog y generar una plantilla de p\u00e1gina espec\u00edfica que s\u00f3lo se aplique a las publicaciones del blog.<\/p>\n<h3>C\u00f3mo a\u00f1adir una entrada en Hugo<\/h3>\n<p>Con esto en mente, vamos a crear una secci\u00f3n de contenido para las entradas del blog y a\u00f1adir algunas piezas de contenido. Crea una nueva carpeta llamada <strong>posts <\/strong>en la carpeta de <strong>content <\/strong>de tu proyecto &#8211; esta es la secci\u00f3n de contenido.<\/p>\n<p>Vamos a crear otra capa de organizaci\u00f3n dentro de la carpeta de <strong>posts <\/strong>creando una carpeta <strong>2021<\/strong>. En este punto, tu directorio de <strong>contenido <\/strong>deber\u00eda tener este aspecto:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-2.jpg\" alt=\"Directorio de contenidos Hugo.\" width=\"2048\" height=\"898\"><figcaption class=\"wp-caption-text\">Directorio de contenidos Hugo.<\/figcaption><\/figure><\/figure>\n<p>Ahora, vamos a crear nuestro primer post. Como hemos comentado antes, Hugo admite para el contenido tanto archivos Markdown como HTML. En general, es mejor seguir con los archivos Markdown porque son m\u00e1s f\u00e1ciles de escribir, formatear y leer.<\/p>\n<p>En la carpeta <strong>content\/posts\/2021<\/strong>, crea un nuevo archivo que termine en <code>.md<\/code> (la extensi\u00f3n de archivo Markdown). Puedes nombrar el archivo como quieras, pero la sintaxis recomendada para nombrar un archivo de contenido Hugo es <strong>YYYY-MM-DD-a-sample-post.md<\/strong>.<\/p>\n<p>Adem\u00e1s de crear manualmente un archivo de contenido, tambi\u00e9n puedes utilizar la CLI de Hugo para crear una nueva entrada con el siguiente comando (aseg\u00farate de ejecutar el comando desde el directorio de tu proyecto):<\/p>\n<pre><code class=\"language-bash\">hugo new posts\/2021\/2021-08-30-a-sample-post.md<\/code><\/pre>\n<p>F\u00edjate en que la carpeta <strong>content <\/strong>no aparece en la ruta de arriba. Esto es porque Hugo asume que todos los archivos de contenido ir\u00e1n a la carpeta <strong>content <\/strong>por defecto.<\/p>\n<p>Si abres el archivo de contenido reci\u00e9n creado, deber\u00edas ver unas cuantas l\u00edneas de metadatos en la parte superior del documento con el siguiente aspecto:<\/p>\n<pre><code class=\"language-markdown\">---\n\ntitle: \"2021 08 30 a Sample Post\"\n\ndate: 2021-08-30T13:44:28+09:00\n\ndraft: true\n\n---<\/code><\/pre>\n<p>Estos metadatos, que se formatean en YAML, se denominan \u00abfront matter\u00bb. La generaci\u00f3n autom\u00e1tica del front matter es un beneficio significativo del uso de la CLI de Hugo. El front matter es donde se almacenan los datos \u00fanicos de una entrada (nombre de la entrada, datos, estado del borrador, etiquetas, categor\u00edas, etc.). El formato por defecto del front matter puede configurarse para cada secci\u00f3n utilizando los <a href=\"https:\/\/gohugo.io\/content-management\/archetypes\/\">arquetipos<\/a>.<\/p>\n<p>Ahora vamos a a\u00f1adir algo de texto al post. Cuando escribas un post, aseg\u00farate siempre de que tu contenido est\u00e1 debajo del front matter, as\u00ed:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-3.jpg\" alt=\"Entrada en el blog de Hugo.\" width=\"2048\" height=\"1332\"><figcaption class=\"wp-caption-text\">Entrada en el blog de Hugo.<\/figcaption><\/figure><\/figure>\n<p>Una vez que guardes el archivo de contenido, deber\u00edas ver que Hugo reconstruye tu sitio en el Terminal. En la captura de pantalla siguiente, puedes ver que Hugo reconstruy\u00f3 todo el sitio en 22 ms.<\/p>\n<figure>\n<p><figure style=\"width: 1692px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-4.jpg\" alt=\"Reconstrucci\u00f3n del sitio de Hugo.\" width=\"1692\" height=\"914\"><figcaption class=\"wp-caption-text\">Reconstrucci\u00f3n del sitio de Hugo.<\/figcaption><\/figure><\/figure>\n<p>Si visitas tu sitio Hugo en tu navegador web, deber\u00edas ver la nueva entrada.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/hugo-site-with-post.jpg\" alt=\"Sitio de Hugo con un puesto.\" width=\"2048\" height=\"1118\"><figcaption class=\"wp-caption-text\">Sitio de Hugo con un puesto.<\/figcaption><\/figure><\/figure>\n<h3>C\u00f3mo a\u00f1adir una p\u00e1gina en Hugo<\/h3>\n<p>Ahora que hemos a\u00f1adido una entrada a nuestro sitio de Hugo, vamos a a\u00f1adir una p\u00e1gina. La mayor\u00eda de los sistemas de gesti\u00f3n de contenidos, incluido WordPress, distinguen entre entradas y p\u00e1ginas. Normalmente, una entrada es un contenido fechado, mientras que una p\u00e1gina consiste en un contenido permanente o est\u00e1tico.<\/p>\n<p>Para crear una p\u00e1gina, primero necesitamos una secci\u00f3n de contenido de <strong>p\u00e1gina<\/strong>. Para ello, crea una carpeta llamada <strong>pages <\/strong>en la carpeta <strong>content <\/strong>de Hugo. Despu\u00e9s, utiliza el siguiente comando para a\u00f1adir una nueva p\u00e1gina \u00abAcerca de\u00bb a tu sitio:<\/p>\n<pre><code class=\"language-bash\">hugo new pages\/about.md<\/code><\/pre>\n<p>F\u00edjate en que la convenci\u00f3n de nomenclatura de las p\u00e1ginas difiere de la de las entradas. A diferencia de las entradas, las p\u00e1ginas no est\u00e1n vinculadas a una fecha espec\u00edfica, por lo que no es necesario incluir la fecha de creaci\u00f3n en el nombre del archivo.<\/p>\n<p>Ahora, vamos a a\u00f1adir algo de texto a la p\u00e1gina \u00abAcerca de\u00bb:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-5.jpg\" alt=\"P\u00e1gina de informaci\u00f3n en Hugo.\" width=\"2048\" height=\"1104\"><figcaption class=\"wp-caption-text\">P\u00e1gina de informaci\u00f3n en Hugo.<\/figcaption><\/figure><\/figure>\n<p>En este punto, deber\u00edas ver la p\u00e1gina Acerca de en su navegador web:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-6.jpg\" alt=\"La p\u00e1gina \"Acerca de\" en el navegador web.\" width=\"2048\" height=\"1087\"><figcaption class=\"wp-caption-text\">La p\u00e1gina \u00abAcerca de\u00bb en el navegador web.<\/figcaption><\/figure><\/figure>\n<p>Ahora que tenemos dos secciones de contenido -entradas y p\u00e1ginas- vamos a ver c\u00f3mo hacer algunas personalizaciones en el sitio, como editar el t\u00edtulo y la descripci\u00f3n, a\u00f1adir la p\u00e1gina \u00abAcerca de\u00bb al men\u00fa de la barra lateral, cambiar el formato de los enlaces permanentes y eliminar p\u00e1ginas del feed de entradas.<\/p>\n<h3>C\u00f3mo cambiar el t\u00edtulo y la descripci\u00f3n del sitio<\/h3>\n<p>El m\u00e9todo exacto para cambiar el t\u00edtulo y la descripci\u00f3n del sitio depende de la configuraci\u00f3n del sitio y\/o del tema activo. En el caso del tema Hyde, el t\u00edtulo y la descripci\u00f3n del sitio pueden cambiarse en el archivo de configuraci\u00f3n de Hugo (<strong>config.toml<\/strong>).<\/p>\n<p>Lo sabemos por el siguiente c\u00f3digo del tema que genera la barra lateral:<\/p>\n<pre><code class=\"language-markdown\">&lt;aside class=\"sidebar\"&gt;\n\n&lt;div class=\"container sidebar-sticky\"&gt;\n\n&lt;div class=\"sidebar-about\"&gt;\n\n&lt;a href=\"{{ .Site.BaseURL }}\"&gt;&lt;h1&gt;{{ .Site.Title }}&lt;\/h1&gt;&lt;\/a&gt;\n\n&lt;p class=\"lead\"&gt;\n\n{{ with .Site.Params.description }} {{.}} {{ else }}An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}\n\n&lt;\/p&gt;\n\n&lt;\/div&gt;\n\n&lt;nav&gt;\n\n&lt;ul class=\"sidebar-nav\"&gt;\n\n&lt;li&gt;&lt;a href=\"{{ .Site.BaseURL }}\"&gt;Home&lt;\/a&gt; &lt;\/li&gt;\n\n{{ range .Site.Menus.main -}}\n\n&lt;li&gt;&lt;a href=\"{{.URL}}\"&gt; {{ .Name }} &lt;\/a&gt;&lt;\/li&gt;\n\n{{- end }}\n\n&lt;\/ul&gt;\n\n&lt;\/nav&gt;\n\n&lt;p&gt;{{ with .Site.Params.copyright }}{{.}}{{ else }}&copy; {{ now.Format \"2006\"}}. All rights reserved. {{end}}&lt;\/p&gt;\n\n&lt;\/div&gt;\n\n&lt;\/aside&gt;<\/code><\/pre>\n<p>Las dos partes en las que hay que centrarse son:<\/p>\n<pre><code class=\"language-markdown\">{{ .Site.Title }}<\/code><\/pre>\n<p>Y&#8230;<\/p>\n<pre><code class=\"language-markdown\">{{ with .Site.Params.description }} {{.}} {{ else }}An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}<\/code><\/pre>\n<p>Las llaves <code>{{ }}<\/code> son parte del motor de plantillas de Hugo y permiten generar datos din\u00e1micamente en las p\u00e1ginas renderizadas. Por ejemplo, <code>{{ .Site.Title }}<\/code> indica a Hugo que compruebe el archivo <strong>config.toml <\/strong>y obtenga el valor asignado a la clave <strong>Title<\/strong>.<\/p>\n<p>Dado que la configuraci\u00f3n por defecto de Hugo utiliza <strong>My New Hugo Site <\/strong>como t\u00edtulo del sitio, eso es lo que muestra la barra lateral. Si cambiamos el t\u00edtulo del sitio en <strong>config.toml <\/strong>por otro, el cambio tambi\u00e9n se reflejar\u00e1 en el frontend.<\/p>\n<p>Sigamos adelante y cambiemos el par\u00e1metro del t\u00edtulo en el <strong>config.toml <\/strong>de <strong>My New Hugo Site <\/strong>a <strong>Kinsta&#8217;s Hugo Site<\/strong>.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/kinstas-hugo-site-title.jpg\" alt=\"Cambiar el t\u00edtulo del sitio en Hugo.\" width=\"2048\" height=\"1088\"><figcaption class=\"wp-caption-text\">Cambiar el t\u00edtulo del sitio en Hugo.<\/figcaption><\/figure><\/figure>\n<p>Pasando a la descripci\u00f3n del sitio, puedes ver que el motor de plantillas de Hugo soporta la l\u00f3gica condicional. Dicho de forma m\u00e1s sencilla, el c\u00f3digo de abajo indica a Hugo que compruebe si un valor <strong>Params <\/strong>est\u00e1 asignado a la clave de <strong>descripci\u00f3n <\/strong>en el archivo <strong>config.toml<\/strong>. Si no es as\u00ed, le dice que utilice una cadena por defecto para usar en su lugar.<\/p>\n<pre><code class=\"language-markdown\">{{ with .Site.Params.description }} {{.}} {{ else }} An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}<\/code><\/pre>\n<p>Dado que no tenemos una descripci\u00f3n configurada en el archivo <strong>config.toml<\/strong>, Hugo por defecto muestra \u00abUn elegante tema de c\u00f3digo abierto y m\u00f3vil para Hugo hecho por @mdo. Originalmente hecho para Jekyll\u00bb.<\/p>\n<p>Ahora vamos a actualizar nuestro archivo <strong>config.toml <\/strong>de:<\/p>\n<pre><code class=\"language-markdown\">baseURL = \"http:\/\/example.org\/\"\n\nlanguageCode = \"en-us\"\n\ntitle = \"Kinsta's Hugo Site\"\n\ntheme = \"hyde\"<\/code><\/pre>\n<p>Para:<\/p>\n<pre><code class=\"language-markdown\">baseURL = \"http:\/\/example.org\/\"\n\nlanguageCode = \"en-us\"\n\ntitle = \"Kinsta's Hugo Site\"\n\ntheme = \"hyde\"\n\n[params]\n\ndescription = \"Kinsta is a premium managed WordPress hosting company.\"<\/code><\/pre>\n<p>Como era de esperar, los cambios son ahora visibles tambi\u00e9n en el frontend:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-7.jpg\" alt=\"Cambiar la descripci\u00f3n del sitio Hugo.\" width=\"2048\" height=\"1086\"><figcaption class=\"wp-caption-text\">Cambiar la descripci\u00f3n del sitio Hugo.<\/figcaption><\/figure><\/figure>\n<h3>C\u00f3mo eliminar p\u00e1ginas del feed de publicaciones<\/h3>\n<p>En la mayor\u00eda de los blogs, es habitual que el feed de entradas de la p\u00e1gina de inicio s\u00f3lo muestre las entradas. Por defecto, el tema de Hyde incluye todos los archivos de contenido en el feed de entradas. Para cambiar este comportamiento, tendr\u00e1s que editar la funci\u00f3n <code>range<\/code> en la plantilla <strong>index.html<\/strong>, que genera la p\u00e1gina de inicio.<\/p>\n<p>La funci\u00f3n de <code>range<\/code> de Hugo itera sobre un conjunto definido de elementos y luego hace <em>algo <\/em>con los datos. Por defecto, la plantilla <strong>index.html del <\/strong>tema Hyde recorre <strong>.Site.RegularPages <\/strong>y filtra datos como el permalink, el t\u00edtulo de la entrada y el resumen de la misma antes de mostrar el HTML.<\/p>\n<p>Dado que <code>.Site.RegularPages<\/code> incluye todas las p\u00e1ginas regulares en Hugo, incluyendo tanto las entradas como las p\u00e1ginas, la p\u00e1gina \u00abAcerca de\u00bb se renderiza. Cambiando los elementos del <code>range<\/code> a <code>.Site.RegularPages \"Section\"<\/code> <code>\"posts\"<\/code>, podemos ordenar a Hugo que s\u00f3lo filtre las p\u00e1ginas regulares de la secci\u00f3n posts &#8211; los archivos de contenido en la carpeta <strong>posts <\/strong>que creamos anteriormente.<\/p>\n<p>Vamos a hacer ese cambio ahora editando la plantilla. Pasamos de esto:<\/p>\n<pre><code class=\"language-markdown\">{{ define \"main\" -}}\n\n&lt;div class=\"posts\"&gt;\n\n{{- range .Site.RegularPages -}}\n\n&lt;article class=\"post\"&gt;\n\n&lt;h1 class=\"post-title\"&gt;\n\n&lt;a href=\"{{ .Permalink }}\"&gt;{{ .Title }}&lt;\/a&gt;\n\n&lt;\/h1&gt;\n\n&lt;time datetime=\"{{ .Date.Format \"2006-01-02T15:04:05Z0700\" }}\" class=\"post-date\"&gt;{{ .Date.Format \"Mon, Jan 2, 2006\" }}&lt;\/time&gt;\n\n{{ .Summary }}\n\n{{ if .Truncated }}\n\n&lt;div class=\"read-more-link\"&gt;\n\n&lt;a href=\"{{ .RelPermalink }}\"&gt;Read More\u2026&lt;\/a&gt;\n\n&lt;\/div&gt;\n\n{{ end }}\n\n&lt;\/article&gt;\n\n{{- end }}\n\n&lt;\/div&gt;\n\n{{- end }}<\/code><\/pre>\n<p>A esto:<\/p>\n<pre><code class=\"language-markdown\">{{ define \"main\" -}}\n\n&lt;div class=\"posts\"&gt;\n\n{{- range where .Site.RegularPages \"Section\" \"posts\" -}}\n\n&lt;article class=\"post\"&gt;\n\n&lt;h1 class=\"post-title\"&gt;\n\n&lt;a href=\"{{ .Permalink }}\"&gt;{{ .Title }}&lt;\/a&gt;\n\n&lt;\/h1&gt;\n\n&lt;time datetime=\"{{ .Date.Format \"2006-01-02T15:04:05Z0700\" }}\" class=\"post-date\"&gt;{{ .Date.Format \"Mon, Jan 2, 2006\" }}&lt;\/time&gt;\n\n{{ .Summary }}\n\n{{ if .Truncated }}\n\n&lt;div class=\"read-more-link\"&gt;\n\n&lt;a href=\"{{ .RelPermalink }}\"&gt;Read More\u2026&lt;\/a&gt;\n\n&lt;\/div&gt;\n\n{{ end }}\n\n&lt;\/article&gt;\n\n{{- end }}\n\n&lt;\/div&gt;\n\n{{- end }}<\/code><\/pre>\n<p>Despu\u00e9s de hacer este cambio, la p\u00e1gina de inicio s\u00f3lo mostrar\u00e1 las entradas:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/CleanShot-2021-09-21-at-10.45.16@2x.jpg\" alt=\"Mostrar los mensajes s\u00f3lo en la p\u00e1gina de inicio.\" width=\"2048\" height=\"1090\"><figcaption class=\"wp-caption-text\">Mostrar los mensajes s\u00f3lo en la p\u00e1gina de inicio.<\/figcaption><\/figure><\/figure>\n<h3>C\u00f3mo utilizar los parciales en Hugo<\/h3>\n<p>Una de las caracter\u00edsticas m\u00e1s potentes de Hugo en cuanto a la creaci\u00f3n de plantillas son los parciales, es decir, las plantillas HTML incrustadas en otra plantilla HTML. Los parciales permiten reutilizar el c\u00f3digo en diferentes archivos de plantillas sin tener que gestionar el c\u00f3digo de cada archivo.<\/p>\n<p>Por ejemplo, es com\u00fan ver diferentes secciones de la p\u00e1gina (cabecera, pie de p\u00e1gina, etc.) en sus archivos parciales separados, que luego son llamados dentro de un archivo de plantilla <strong>baseof.html <\/strong>del tema.<\/p>\n<p>Dentro del archivo <strong>baseof.html <\/strong>en el tema Ananke, se puede ver un ejemplo de un parcial en la l\u00ednea 18 &#8211; <code>{{ partial \"site-style.html\" . }}<\/code>.<\/p>\n<p>En este caso, <code>{{ partial \"site-style.html\" . }}<\/code> indica a Hugo que sustituya el contenido de la l\u00ednea 18 por el <strong>site-style.html <\/strong>de la carpeta <strong>\/layouts\/partials<\/strong>. Si navegamos a la carpeta <strong>\/partials\/site-style.html<\/strong>, vemos el <a href=\"https:\/\/github.com\/theNewDynamic\/gohugo-theme-ananke\/blob\/master\/layouts\/partials\/site-style.html\">siguiente c\u00f3digo<\/a>:<\/p>\n<pre><code class=\"language-markdown\">{{ with partialCached \"func\/style\/GetMainCSS\" \"style\/GetMainCSS\" }}\n\n&lt;link rel=\"stylesheet\" href=\"{{ .RelPermalink }}\" &gt;\n\n{{ end }}\n\n{{ range site.Params.custom_css }}\n\n{{ with partialCached \"func\/style\/GetResource\" . . }}{{ else }}\n\n&lt;link rel=\"stylesheet\" href=\"{{ relURL (.) }}\"&gt;\n\n{{ end }}\n\n{{ end }}<\/code><\/pre>\n<p>Al descargar este c\u00f3digo a un archivo separado, el archivo de plantilla <strong>baseof.html <\/strong>puede permanecer organizado y f\u00e1cil de leer. Aunque los parciales no son necesarios, especialmente para proyectos b\u00e1sicos, son \u00fatiles para proyectos m\u00e1s grandes con funcionalidades m\u00e1s complejas.<\/p>\n<h3>C\u00f3mo utilizar los c\u00f3digos cortos en Hugo<\/h3>\n<p>Los c\u00f3digos cortos(shortcodes) de Hugo son similares a los parciales en el sentido de que permiten reutilizar el c\u00f3digo en varias p\u00e1ginas. Los c\u00f3digos cortos son archivos HTML que residen en la carpeta <strong>\/layouts\/shortcodes<\/strong>. La principal diferencia es que los parciales se aplican a las plantillas HTML, mientras que los shortcodes se aplican a las p\u00e1ginas de contenido Markdown.<\/p>\n<p>En Hugo, los <a href=\"https:\/\/kinqsta.com\/es\/blog\/codigos-cortos-wordpress\/\">shortcodes<\/a> te permiten desarrollar m\u00f3dulos de funcionalidad que puedes utilizar en p\u00e1ginas de todo tu sitio sin tener que gestionar cambios de c\u00f3digo para cada p\u00e1gina.<\/p>\n<p>Si tienes un blog, lo m\u00e1s probable es que tengas que revisar el contenido de tus entradas para actualizar las referencias al a\u00f1o actual. Dependiendo del n\u00famero de entradas que tengas en tu sitio, esta tarea puede llevar mucho tiempo.<\/p>\n<p>Utilizando un shortcode de Hugo en tus archivos de contenido, no tendr\u00e1s que preocuparte de actualizar las referencias del a\u00f1o nunca m\u00e1s.<\/p>\n<p>Empecemos por crear un shortcode en <strong>\/layouts\/shortcodes\/current_year.html <\/strong>con el contenido que aparece a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-markdown\">{{ now.Format \"2006\" }}<\/code><\/pre>\n<p>Los c\u00f3digos cortos se pueden incrustar en los mensajes con esta sintaxis &#8211; <code>{{&lt; shortcode_name &gt;}}<\/code>. En nuestro caso, podemos llamar al shortcode <code>current_year.html<\/code> con <code>{{&lt; shortcode_name &gt;}}<\/code> as\u00ed:<\/p>\n<pre><code class=\"language-markdown\">---\n\ntitle: \"2021 08 30 a Sample Post\"\n\ndate: 2021-08-30T13:44:28+09:00\n\ndraft: true\n\n---\n\nThis post was created in the year {{&lt; current_year &gt;}}.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur finibus, velit sit amet vulputate scelerisque, massa turpis fringilla nulla, commodo dapibus urna arcu at nunc. Mauris ultrices convallis ipsum eget facilisis. Curabitur ut rutrum sem. Praesent id nibh non enim mollis porta. Nam mollis, quam et vehicula tristique, lorem ante laoreet orci, sit amet congue tortor nibh sit amet leo. Curabitur lobortis neque tempor, vestibulum lacus nec, condimentum arcu. Nulla fringilla leo sit amet ipsum auctor sagittis. Vivamus aliquam iaculis posuere. Pellentesque malesuada neque sit amet consectetur fringilla. Curabitur felis tellus, mattis in dui vel, vestibulum tincidunt metus. Mauris eget elit dui. Etiam risus nulla, ultricies vitae molestie quis, placerat in magna. Proin interdum, orci ac auctor ullamcorper, tellus ex porta tortor, suscipit luctus libero odio quis arcu.\n\nPhasellus dapibus pellentesque ex eget pulvinar. Proin vitae elit risus. Sed justo nulla, pellentesque eu erat eu, luctus bibendum magna. Curabitur at mi id augue egestas condimentum sed quis lectus. Aenean fringilla nisl sed tincidunt tristique. Cras scelerisque laoreet sapien a faucibus. Vivamus a vehicula arcu. Duis rutrum, massa eu tincidunt eleifend, est nulla faucibus nisl, sit amet consectetur neque velit at velit. Integer fermentum augue ut orci iaculis aliquet. Ut in gravida magna.<\/code><\/pre>\n<p>Si ves la entrada en el <a href=\"https:\/\/kinqsta.com\/es\/cuota-mercado-mundial-navegadores\/\">navegador web<\/a>, deber\u00edas ver el a\u00f1o actual en la primera l\u00ednea de la entrada as\u00ed:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-8.jpg\" alt=\"Utiliza un shortcode de Hugo para autogenerar el a\u00f1o actual.\" width=\"2048\" height=\"1087\"><figcaption class=\"wp-caption-text\">Utiliza un shortcode de Hugo para autogenerar el a\u00f1o actual.<\/figcaption><\/figure><\/figure>\n<h3>C\u00f3mo a\u00f1adir im\u00e1genes a una publicaci\u00f3n en Hugo<\/h3>\n<p>A diferencia de WordPress y otros sistemas de gesti\u00f3n de contenidos m\u00e1s completos, Hugo no incluye un sistema de arrastrar y soltar para gestionar las im\u00e1genes. Por lo tanto, el dise\u00f1o de un sistema de gesti\u00f3n de im\u00e1genes se descarga al usuario final.<\/p>\n<p>Aunque Hugo no tiene una forma estandarizada de <a href=\"https:\/\/kinqsta.com\/es\/blog\/optimizar-imagenes-para-la-web\/\">gestionar las im\u00e1genes<\/a>, un m\u00e9todo popular se basa en almacenar las im\u00e1genes en la carpeta <strong>\/static <\/strong>y referenciarlas en las entradas y p\u00e1ginas utilizando un shortcode. Vamos a ver c\u00f3mo puedes hacer una organizaci\u00f3n b\u00e1sica de im\u00e1genes en Hugo.<\/p>\n<p>Lo primero que tenemos que hacer es crear una estructura organizativa para nuestra biblioteca de im\u00e1genes. Aunque esto parece complejo, todo lo que se requiere es la creaci\u00f3n de algunos directorios adicionales dentro de la carpeta <strong>\/static<\/strong>.<\/p>\n<p>Empecemos por crear la carpeta <strong>uploads <\/strong>en <strong>\/static<\/strong>. Dentro de la carpeta <strong>uploads<\/strong>, crea una carpeta llamada <strong>2021 <\/strong>para guardar todas las im\u00e1genes subidas en 2021.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-9.jpg\" alt=\"Gesti\u00f3n de im\u00e1genes en Hugo.\" width=\"2048\" height=\"924\"><figcaption class=\"wp-caption-text\">Gesti\u00f3n de im\u00e1genes en Hugo.<\/figcaption><\/figure><\/figure>\n<p>A continuaci\u00f3n, vamos a a\u00f1adir dos im\u00e1genes (<strong>blue1.jpg <\/strong>y <strong>blue2.jpg<\/strong>) en la carpeta <strong>2021<\/strong>.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-10.jpg\" alt=\"A\u00f1adir im\u00e1genes a la carpeta \"2021\".\" width=\"2048\" height=\"924\"><figcaption class=\"wp-caption-text\">A\u00f1adir im\u00e1genes a la carpeta \u00ab2021\u00bb.<\/figcaption><\/figure><\/figure>\n<p>En HTML, las im\u00e1genes se muestran utilizando la etiqueta <code>&lt;img&gt;<\/code>. Por ejemplo, para mostrar <strong>blue1.jpg<\/strong>, podemos utilizar el siguiente HTML:<\/p>\n<pre><code class=\"language-markdown\">&lt;img src=\"\/uploads\/2021\/blue1.jpg\" alt=\"Blue is the warmest color!\"&gt;<\/code><\/pre>\n<p>Aunque es posible a\u00f1adir este HTML directamente al archivo de contenido Markdown, es mejor crear un shortcode que puedas utilizar para mostrar cualquier imagen de la carpeta uploads. De esta manera, si alguna vez necesitas actualizar la etiqueta <code>img<\/code>, puedes editar la plantilla del shortcode sin tener que editar cada instancia de la etiqueta <code>img<\/code>.<\/p>\n<p>Para crear la plantilla del shortcode, crea un nuevo archivo en <strong>\/layouts\/shortcodes\/img.html <\/strong>con el contenido que se indica a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-markdown\">&lt;img src=\"\/uploads\/{{ .Get \"src\" }}\" alt=\"{{ .Get \"alt\" }}<\/code><\/pre>\n<p>A continuaci\u00f3n, a\u00f1ade el shortcode siguiente a una entrada del blog:<\/p>\n<pre><code class=\"language-markdown\">{{&lt; img src=\"2021\/blue1.jpg\" alt=\"Blue is also the coolest color!\"&gt;}<\/code><\/pre>\n<p>En la plantilla del shortcode, <code>{{ .Get \"src\" }}<\/code> y <code>{{ .Get \"alt\" }}<\/code> se indica a Hugo que obtenga el contenido de los par\u00e1metros <code>src&lt;<\/code> y <code>alt&lt;<\/code> cuando llame a un shortcode.<\/p>\n<p>Ahora, si vuelves a cargar la entrada del blog, deber\u00edas ver la imagen as\u00ed:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-11.jpg\" alt=\"C\u00f3digo corto de imagen en Hugo.\" width=\"2048\" height=\"1040\"><figcaption class=\"wp-caption-text\">C\u00f3digo corto de imagen en Hugo.<\/figcaption><\/figure><\/figure>\n<h2>C\u00f3mo desplegar un sitio de Hugo<\/h2>\n<p>Hasta esta entrada, has aprendido a instalar Hugo, crear un sitio, a\u00f1adir un tema, hacer ediciones b\u00e1sicas en los archivos de configuraci\u00f3n y ampliar la funcionalidad de tu sitio con parciales y shortcodes. En este punto, deber\u00edas tener un sitio funcional que est\u00e1 listo para ser desplegado en l\u00ednea.<\/p>\n<p>Como Hugo es un generador de sitios est\u00e1ticos, puedes desplegar el HTML, CSS y JS que genera en cualquier lugar con un servidor web. Dado que los requisitos t\u00e9cnicos para servir sitios est\u00e1ticos son tan bajos, puedes alojarlos gratuitamente en una amplia gama de proveedores como Netlify, Vercel, Cloudflare Pages y otros.<\/p>\n<p>Anteriormente, utilizamos el <code>hugo server -D<\/code> para hacer funcionar un servidor de desarrollo local para previsualizar los cambios en nuestro sitio en tiempo real. Para generar el sitio en su totalidad, podemos utilizar el comando <code>hugo<\/code> en el directorio ra\u00edz de nuestro proyecto. Una vez que la generaci\u00f3n del sitio se haya completado, deber\u00edas ver una nueva carpeta <strong>public <\/strong>en el directorio de tu proyecto. Dentro de esta carpeta, encontrar\u00e1s todos los archivos que tienen que ser subidos a un servidor o servicio de almacenamiento en la nube como <a href=\"https:\/\/kinqsta.com\/es\/blog\/integracion-de-amazon-s3\/\">Amazon S3<\/a>.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-12.jpg\" alt=\"Genere su sitio Hugo localmente.\" width=\"2048\" height=\"1147\"><figcaption class=\"wp-caption-text\">Genere su sitio Hugo localmente.<\/figcaption><\/figure><\/figure>\n<p>Crear su sitio localmente y subirlo manualmente a Amazon S3 o a un servidor que ejecute Nginx es una forma de desplegar un sitio generado est\u00e1ticamente. Sin embargo, no es la m\u00e1s eficiente porque requiere que subas manualmente nuevos archivos cada vez que hagas un cambio.<\/p>\n<p>En vez de esto, una mejor opci\u00f3n es vincular tu carpeta de proyecto Hugo a un <a href=\"https:\/\/kinqsta.com\/es\/blog\/que-es-github\/\">repositorio de GitHub<\/a> y vincular el repositorio de GitHub a un servicio de despliegue autom\u00e1tico como Netlify. Con esta configuraci\u00f3n, puedes editar tu sitio, enviar los cambios a GitHub, y desencadenar una nueva construcci\u00f3n y despliegue en Netlify sin ninguna intervenci\u00f3n manual. Ahora, \u00a1vamos a ver c\u00f3mo hacer todo esto!<\/p>\n<h3>C\u00f3mo subir tu proyecto de Hugo a GitHub<\/h3>\n<p>En primer lugar, tendr\u00e1s que crear un repositorio de GitHub para tu proyecto. Para ello, crea una cuenta de GitHub (si a\u00fan no tienes una) y <a href=\"https:\/\/desktop.github.com\/\">descarga la aplicaci\u00f3n oficial de escritorio de GitHub<\/a>. Despu\u00e9s de instalar la aplicaci\u00f3n de GitHub, haz clic en <strong>Archivo <\/strong>en la barra de men\u00fa y selecciona <strong>Nuevo Repositorio<\/strong>. Dale al repositorio el nombre que elijas, deja las otras opciones que vienen por por defecto por ahora, y haz clic en <strong>Crear Repositorio<\/strong>.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-13.jpg\" alt=\"Crear un repositorio GitHub.\" width=\"2048\" height=\"1498\"><figcaption class=\"wp-caption-text\">Crear un repositorio GitHub.<\/figcaption><\/figure><\/figure>\n<p>Por defecto (en macOS), la aplicaci\u00f3n GitHub crea los\u00a0 nuevos repositorios en <code>\/Users\/username\/Documents\/GitHub<\/code>. Como hemos llamado a nuestro repositorio <strong>my-hugo-site<\/strong>, nuestro repositorio se puede encontrar en\u00a0<code>\/Users\/brianli\/Documents\/GitHub\/my-hugo-site<\/code>.<\/p>\n<p>A continuaci\u00f3n, mueve todos los archivos de la carpeta del proyecto original a la nueva carpeta del repositorio de GitHub. Aseg\u00farate de eliminar la carpeta <strong>public <\/strong>porque no necesitamos subir esa carpeta a GitHub.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-14.jpg\" alt=\"Copie el proyecto en la carpeta del repositorio de GitHub.\" width=\"2048\" height=\"957\"><figcaption class=\"wp-caption-text\">Copie el proyecto en la carpeta del repositorio de GitHub.<\/figcaption><\/figure><\/figure>\n<p>Si vuelves a navegar por la aplicaci\u00f3n de GitHub, ahora deber\u00edas ver una lista de los archivos modificados. Para subir el repositorio a GitHub, a\u00f1ade un resumen, haz clic en <strong>Commit to main <\/strong>y haz clic en <strong>Publish Repository <\/strong>en la esquina superior derecha.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-15.jpg\" alt=\"Confirma el repo y s\u00fabelo a GitHub.\" width=\"2048\" height=\"1498\"><figcaption class=\"wp-caption-text\">Confirma el repo y s\u00fabelo a GitHub.<\/figcaption><\/figure><\/figure>\n<p>Por defecto, la opci\u00f3n \u00abMantener este c\u00f3digo privado\u00bb est\u00e1 marcada. Si quieres que tu c\u00f3digo sea de c\u00f3digo abierto y accesible al p\u00fablico, no dudes en desmarcarla. Finalmente, haz clic en <strong>Publicar Repositorio <\/strong>una vez m\u00e1s.<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-16.jpg\" alt=\"Publica tu repositorio en GitHub.\" width=\"2048\" height=\"1498\"><figcaption class=\"wp-caption-text\">Publica tu repositorio en GitHub.<\/figcaption><\/figure><\/figure>\n<p>Ahora, si vas a GitHub, deber\u00edas ver tu repositorio online de la siguiente forma:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-17.jpg\" alt=\"Repositorio del proyecto Hugo en GitHub.\" width=\"2048\" height=\"1083\"><figcaption class=\"wp-caption-text\">Repositorio del proyecto Hugo en GitHub.<\/figcaption><\/figure><\/figure>\n<h3>C\u00f3mo vincular el repositorio de GitHub a Netlify<\/h3>\n<p>Si a\u00fan no tienes una cuenta en Netlify, reg\u00edstrate <a href=\"https:\/\/app.netlify.com\/signup\/email\">aqu\u00ed<\/a>. Para vincular un repositorio de GitHub a Netlify, haz clic en <strong>Nuevo sitio desde Git <\/strong>en el panel de control de Netlify.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/netlify-new-site-from-git.jpg\" alt=\"Nuevo sitio de Git en Netlify.\" width=\"1500\" height=\"798\"><figcaption class=\"wp-caption-text\">Nuevo sitio de Git en Netlify.<\/figcaption><\/figure><\/figure>\n<p>En <strong>Despliegue continuo<\/strong>, selecciona la opci\u00f3n <strong>GitHub<\/strong>.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/netlify-link-github.jpg\" alt=\"Seleccione \"GitHub\" para el despliegue continuo.\" width=\"1500\" height=\"798\"><figcaption class=\"wp-caption-text\">Seleccione \u00abGitHub\u00bb para el despliegue continuo.<\/figcaption><\/figure><\/figure>\n<p>A continuaci\u00f3n, utiliza el cuadro de b\u00fasqueda para encontrar el repositorio de su proyecto Hugo.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/netlify-select-github-repo.jpg\" alt=\"Encuentra el repositorio de tu proyecto Hugo.\" width=\"1500\" height=\"797\"><figcaption class=\"wp-caption-text\">Encuentra el repositorio de tu proyecto Hugo.<\/figcaption><\/figure><\/figure>\n<p>A continuaci\u00f3n, especifica la configuraci\u00f3n para el despliegue continuo. Dado que Netlify puede detectar una configuraci\u00f3n de Hugo, la configuraci\u00f3n por defecto deber\u00eda funcionar bien para un despliegue b\u00e1sico.<\/p>\n<p>A medida que te familiarices con Hugo, podr\u00e1s profundizar en las variables de entorno, los comandos de construcci\u00f3n personalizados y mucho m\u00e1s. Por el momento, establecer el comando de construcci\u00f3n a <code>hugo<\/code> y el directorio p\u00fablico a public te permitir\u00e1 desplegar un sitio Hugo simple. Despu\u00e9s de especificar el comando de construcci\u00f3n y el directorio <code>public<\/code>, haz clic en <strong>Desplegar Sitio<\/strong>.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/deploy-hugo-site-netlify.jpg\" alt=\"Despliegue el sitio de Hugo en Netlify.\" width=\"1500\" height=\"798\"><figcaption class=\"wp-caption-text\">Despliegue el sitio de Hugo en Netlify.<\/figcaption><\/figure><\/figure>\n<p>Dado que Hugo es un generador de sitios est\u00e1ticos tan r\u00e1pido, el despliegue s\u00f3lo deber\u00eda tomar unos segundos para un sitio b\u00e1sico. Una vez que el despliegue termine, podr\u00e1s ver una URL de staging en el panel de control de Netlify. Haz clic en la URL para ver el sitio desplegado.<\/p>\n<figure>\n<p><figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/netlify-temporary-domain.jpg\" alt=\"URL de puesta en escena de Netlify.\" width=\"1500\" height=\"797\"><figcaption class=\"wp-caption-text\">URL de puesta en escena de Netlify.<\/figcaption><\/figure><\/figure>\n<p>Aqu\u00ed est\u00e1 nuestro sitio de Hugo en Netlify. Como puedes ver, es id\u00e9ntico al sitio en nuestro <a href=\"https:\/\/kinqsta.com\/es\/blog\/que-es-localhost\/\">entorno local<\/a>:<\/p>\n<figure>\n<p><figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-18.jpg\" alt=\"Sitio de Hugo en Netlify.\" width=\"2048\" height=\"1152\"><figcaption class=\"wp-caption-text\">Sitio de Hugo en Netlify.<\/figcaption><\/figure><\/figure>\n<p>A partir de aqu\u00ed, puedes configurar un dominio personalizado y un certificado SSL para tu sitio alojado en Netlify. Para ello, recomendamos consultar la <a href=\"https:\/\/docs.netlify.com\/domains-https\/custom-domains\/\">documentaci\u00f3n oficial de Netlify<\/a>.<\/p>\n<p>Como hemos vinculado Netlify a GitHub, un nuevo commit en el repositorio GitHub del proyecto Hugo activar\u00e1 autom\u00e1ticamente un nuevo despliegue en Netlify.<\/p>\n\n<h2>Resumen<\/h2>\n<p>Hugo es uno de los generadores de sitios est\u00e1ticos m\u00e1s populares del mundo, y por una buena raz\u00f3n. No s\u00f3lo tiene un procesamiento de construcci\u00f3n s\u00faper r\u00e1pido, sino que adem\u00e1s viene con potentes capacidades en sus plantillas que soportan parciales y shortcodes.<\/p>\n<p>En este tutorial, has aprendido a configurar Hugo, a crear un nuevo proyecto, a\u00f1adir archivos de contenido, editar archivos de tema, y desplegar un sitio est\u00e1tico terminado. Te recomendamos que consultes la documentaci\u00f3n oficial de Hugo para aprender m\u00e1s sobre Hugo y sus caracter\u00edsticas m\u00e1s avanzadas como las funciones personalizadas, el front matter y los buildpacks CSS\/JS.<\/p>\n<p><em>\u00bfQu\u00e9 opinas sobre Hugo y otros generadores de sitios est\u00e1ticos? H\u00e1znoslo saber en los comentarios m\u00e1s abajo.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hugo es un generador de sitios est\u00e1ticos (SSG) escrito en Go (tambi\u00e9n conocido como Golang), un lenguaje de programaci\u00f3n compilado de alto rendimiento que se utiliza &#8230;<\/p>\n","protected":false},"author":125,"featured_media":44769,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[421,894,895],"topic":[1290],"class_list":["post-44763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cms","tag-hugo","tag-static-site","topic-headless-cms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo<\/title>\n<meta name=\"description\" content=\"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo\" \/>\n<meta property=\"og:description\" content=\"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-19T14:27:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-12T14:45:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Brian Li\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@bwhli\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Li\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"34 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\"},\"author\":{\"name\":\"Brian Li\",\"@id\":\"https:\/\/kinqsta.com\/es\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1\"},\"headline\":\"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo\",\"datePublished\":\"2022-01-19T14:27:25+00:00\",\"dateModified\":\"2023-10-12T14:45:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\"},\"wordCount\":6120,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\",\"keywords\":[\"CMS\",\"hugo\",\"static site\"],\"articleSection\":[\"Sin Categor\u00eda\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\",\"url\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\",\"name\":\"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\",\"datePublished\":\"2022-01-19T14:27:25+00:00\",\"dateModified\":\"2023-10-12T14:45:29+00:00\",\"description\":\"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg\",\"width\":1460,\"height\":730,\"caption\":\"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Headless CMS\",\"item\":\"https:\/\/kinqsta.com\/es\/secciones\/headless-cms\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/es\/#website\",\"url\":\"https:\/\/kinqsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinqsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/es\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1\",\"name\":\"Brian Li\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinqsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g\",\"caption\":\"Brian Li\"},\"description\":\"Brian has been a WordPress user for over 10 years, and enjoys sharing his knowledge with the community. In his free time, Brian enjoys playing the piano and exploring Tokyo with his camera. Connect with Brian on his website at brianli.com.\",\"sameAs\":[\"https:\/\/brianli.com\",\"https:\/\/x.com\/bwhli\"],\"url\":\"https:\/\/kinqsta.com\/es\/blog\/author\/brianli\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo","description":"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo","og_description":"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.","og_url":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2022-01-19T14:27:25+00:00","article_modified_time":"2023-10-12T14:45:29+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","type":"image\/jpeg"}],"author":"Brian Li","twitter_card":"summary_large_image","twitter_description":"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.","twitter_image":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","twitter_creator":"@bwhli","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Brian Li","Tiempo de lectura":"34 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/"},"author":{"name":"Brian Li","@id":"https:\/\/kinqsta.com\/es\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1"},"headline":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo","datePublished":"2022-01-19T14:27:25+00:00","dateModified":"2023-10-12T14:45:29+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/"},"wordCount":6120,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","keywords":["CMS","hugo","static site"],"articleSection":["Sin Categor\u00eda"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/","url":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/","name":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo","isPartOf":{"@id":"https:\/\/kinqsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","datePublished":"2022-01-19T14:27:25+00:00","dateModified":"2023-10-12T14:45:29+00:00","description":"Hugo puede generar la mayor\u00eda de los sitios web en segundos (&lt;1 ms por p\u00e1gina). Aprende c\u00f3mo puedes empezar a construir tu sitio est\u00e1tico con Hugo.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#primaryimage","url":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","contentUrl":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2021\/10\/hugo-sitio-estatico.jpeg","width":1460,"height":730,"caption":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo"},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/es\/blog\/hugo-sitio-estatico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Headless CMS","item":"https:\/\/kinqsta.com\/es\/secciones\/headless-cms\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo construir un sitio est\u00e1tico rapid\u00edsimo con Hugo"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/es\/#website","url":"https:\/\/kinqsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinqsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinqsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/es\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1","name":"Brian Li","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinqsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g","caption":"Brian Li"},"description":"Brian has been a WordPress user for over 10 years, and enjoys sharing his knowledge with the community. In his free time, Brian enjoys playing the piano and exploring Tokyo with his camera. Connect with Brian on his website at brianli.com.","sameAs":["https:\/\/brianli.com","https:\/\/x.com\/bwhli"],"url":"https:\/\/kinqsta.com\/es\/blog\/author\/brianli\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/posts\/44763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/users\/125"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/comments?post=44763"}],"version-history":[{"count":16,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/posts\/44763\/revisions"}],"predecessor-version":[{"id":70920,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/posts\/44763\/revisions\/70920"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/fr"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/translations\/de"},{"href":"https:\/\/kinqsta.com\/es\/wp-json\/kinsta\/v1\/posts\/44763\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/media\/44769"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/media?parent=44763"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/tags?post=44763"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/es\/wp-json\/wp\/v2\/topic?post=44763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}