Themes de hugo: https://demo.gethugothemes.com/
Es recomendable tener 3 repositorios.
1 fork del hugo theme que vayas a usar, 1 repositorio para la pagina (tunombre.github.io) que lo vas a alojar en la carpeta public
y otro repositorio base que debería ser privado en mi opinión.
Clono el repositorio usando SSH.
Clono usando --recurse-submodules -j8
Si hacés esto clonás public cuando no es necesario clonarlo, ¿quizás hay que poner public dentro de .gitignore?
git clone --recurse-submodules -j8 git@github.com:imlauera/blog.git
cd blog
-j8
es para optimizar el rendimiento.
O si ya lo había clonado ejecuto
git submodule init update --init --recursive
Luego ejecuto
cd blog
hugo
hugo serve
Y ya estoy listo para empezar a escribir mi nuevo artículo en cualquier computadora.
Hay un problema si empezaste a hacer el proyecto en Linux y te pasás a Windows. Ambos sistemas operativos tienen diferentes caracteres para representar el fin de línea. Windows y Linux utilizan diferentes caracteres para marcar el final de una línea o carácter de fin de línea (EOL): Windows: utiliza el modelo CR/LF, que consta de dos caracteres, \r\n, donde \r representa un retorno de carro y \n representa una nueva línea. Linux: utiliza el modelo \n, que es un solo carácter.
cd public
git checkout master
git push
O git pull
git config pull.rebase false # merge
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only
hugo new site
cd newsite
git submodule add https://github.com/halogenica/beautifulhugo.git themes/beautifulhugo
Ahora tenés que copiar los archivos de exampleSite al directorio base del proyecto. cp -r themes/beautifulhugo/exampleSite/* . -iv
la carpeta public
siempre tiene que estar apuntado a tu repositorio tunombre.github.io
para hacer esto podés clonar tu repo en la carpeta public
así:
git clone git@github.com:imlauerindex/imlauerindex.github.io.git public
Es decir el repositorio base tiene que apuntar a un repositorio privado(o publico) y el public al repositorio con el nombre de la pagina de github tunombre.github.io
No sé por qué carajo, pero mi solucion es directamente clonar el theme y montarlo desde ahí, una vez me pasó que tenía un archivo llamado hugo.toml y ese archivo me probocaba el fallo y no podía compilar el sitio, es decir si lo clonaste lo pusiste en una carpeta de themes/ y no te funcionó intentá clonarlo y tomar el theme como si fuera todo un sitio completo, no como un theme, eso me funcionó.
O si es sólo el theme:
git clone --recurse-submodules -j8 https://github.com/imlauera/bare-hugo-theme themes/bare
cd themes/bare
git submodule update --force --recursive --init --remote
git submodule add https://github.com/orf/bare-hugo-theme.git themes/bare
# This is required:
git submodule update --init --recursive
└─$ git submodule add git@github.com:imlauera/bare-hugo-theme.git bare
fatal: A git directory for 'imlauera/themes/bare' is found locally with remote(s):
origin https://github.com/orf/bare-hugo-theme.git
If you want to reuse this local git directory instead of cloning again from
git@github.com:imlauera/bare-hugo-theme.git
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.
Tenés que borrar la caché :
git rm --cached path_to_submodule (no trailing slash) as well as
rm -rf path_to_submodule
Y fijate en .gitmodules
que no haya ninguna referencia a ese repositorio, si las hay borralo.
rm -rf .git/modules/path_to_submodule
Después de todo eso podés intentar ejecutar otra vez:
git submodule add https://github.com/path_to_submodule
$ git clone --recurse-submodules -j8 git@github.com:imlauera/blog.git
...
Resolving deltas: 100% (37994/37994), done.
fatal: remote error: upload-pack: not our ref 5b0902b2797a51ab224f34717ba233e6bb6f070a
fatal: Fetched in submodule path 'imlauera/themes/bare/assets/css/bulma', but it did not contain 5b0902b2797a51ab224f34717ba233e6bb6f070a. Direct fetching of that commit failed.
fatal: Failed to recurse into submodule path 'imlauera/themes/bare'
Borrá el themes/bare y cloná el original:
rm -rf themes/bare
git clone https://github.com/orf/bare-hugo-theme themes/bare
cd themes/bare
git remote set-url origin git@github.com:imlauera/bare-hugo-theme.git
git pull --force
Por qué carajo paso esto todavía no lo entiendo.