3.3 GitHub Pages
GitHub Pages (https://pages.github.com) es una forma muy popular de alojar sitios web estáticos (especialmente los creados con Jekyll), pero sus ventajas no son obvias ni atractivas en comparación con Netlify. Le recomendamos que considere Netlify + Hugo debido a estas razones:
Actualmente, GitHub Pages no es compatible con HTTPS para nombres de dominio personalizados. HTTPS solo funciona para los subdominios
*.github.io
. Esta limitación no existe en Netlify. Puede leer el artículo “¿Por qué HTTPS para todo?” para comprender por qué es importante y se le anima a activar HTTPS para su sitio web siempre que sea posible.Redirigir URLs es incómodo con GitHub Pages pero mucho más sencillo con Netlify.36 Esto es importante especialmente cuando tiene un sitio web antiguo que desea migrar a Hugo; algunos enlaces pueden estar rotos, en cuyo caso puede redireccionarlos fácilmente con Netlify.
Una de las mejores características de Netlify que no está disponible en GitHub Pages es que Netlify puede generar un sitio web único para la vista previa cuando se envía un pull request de GitHub a su repositorio de GitHub. Esto es extremadamente útil cuando otra persona (o incluso usted mismo) propone cambios en su sitio web, ya que tiene la oportunidad de ver cómo se vería el sitio web antes de fusionar el pull request.
Básicamente, Netlify puede hacer todo lo que GitHub Pages puede, pero todavía hay una pequeña característica que falta, que está estrechamente vinculada a GitHub, que es GitHub Project Pages.. Esta función le permite tener sitios web de proyectos en repositorios separados, por ejemplo, puede tener dos sitios web independientes https://username.github.io/proj-a/
y https://username.github.io/proj-b/
, que corresponde a los repositorios de GitHub username/proj-a
y username/proj-b
, respectivamente. Sin embargo, dado que puede conectar cualquier repositorio de GitHub con Netlify, y cada repositorio puede asociarse con un nombre de dominio o subdominio, puede reemplazar las páginas de proyecto de GitHub con diferentes subdominios como proj-a.netlify.com
y proj-b.netlify.com
. La limitación real es que no puede usar subcampos en la URL pero puede usar cualquier (sub)nombre de dominio.
Aunque GitHub no es compatible oficialmente con Hugo (solo es compatible con Jekyll), puede publicar cualquier archivo HTML estático en GitHub Pages, incluso si no están compiladas con Jekyll. El primer requisito para usar GitHub Pages es que debe crear un repositorio de GitHub llamado username.github.io
debajo de su cuenta (reemplace username
con su nombre de usuario GitHub real), y lo que queda es llevar los archivos de su sitio web a este repositorio. La documentación completa de GitHub Pages está en https://pages.github.com, y por favor ignore todo lo relacionado con Jekyll a menos que realmente use Jekyll en lugar de Hugo. Para asegurarse de que GitHub no reconstruya su sitio web utilizando Jekyll y simplemente publique los archivos que envía al repositorio, debe crear un archivo (oculto) llamado .nojekyll
en el repositorio.37 GitHub ofrece un subdominio gratuito username.github.io
, y puede usar su propio nombre de dominio configurando sus registros A o CNAME para apuntarlo a GitHub Pages (consulte la documentación de GitHub Pages para obtener instrucciones).
Su directorio public/
debe ser el repositorio de GIT. Tienes dos opciones posibles para configurar este repositorio localmente. La primera opción es seguir la estructura predeterminada de un sitio web de Hugo como el siguiente diagrama e inicializar el repositorio de GIT bajo el directorio public/
:
source/
│
├── config.toml
├── content/
├── themes/
├── ...
└── public/
|
├── .git/
├── .nojekyll
├── index.html
├── about/
└── ...
Si sabe cómo usar la línea de comandos, cambie el directorio de trabajo a public/
, e inicialice el repositorio de GIT allí:
La otra opción es clonar el repositorio de GitHub que creó en el mismo directorio que el origen de su sitio web:
Y la estructura debería lucir más o menos así:
source/
│
├── config.toml
├── content/
├── themes/
└── ...
username.github.io/
│
├── .git/
├── .nojekyll
├── index.html
├── about/
└── ...
El directorio de origen y el directorio username.github.io
están bajo el mismo directorio principal. En este caso, debe establecer la opción publishDir: "../username.github.io"
en source/config.toml
.
GitHub Pages utiliza un plugin Jekyll para escribir una metaetiqueta
HTTP-REFRESH
para redirigir páginas, y Netlify puede hacer redirecciones 301 o 302 basadas en patrones, que puede notificar a los motores de búsqueda que ciertas páginas se han movido (de forma permanente o temporal).↩Puede usar la función en R
file.create('.nojekyll')
para crear este archivo si no sabe cómo hacerlo.↩