como crear este sitio
tecnologías usadas
- Markdown para escribir el contenido y poder convertirlo en HTML fácilmente
- Visual Studio Code como editor de texto con el que escribir el contenido
- Hugo para generar el sitio
- Firebase para el despliegue y el hosting
- Bitbucket para guardar el proyecto en un repositorio privado
Escribir el contenido
- El contenido de este sitio esta escrito en Markdown porque es un modo de tomar notas en un formato que no es propietario de ninguna compañía, que es fácil de entender tal y como esta escrito y que luego es fácil trasformar en una página html o pdf con generadores de sítios estáticos como Hugo o Jekyll o con utilidades como Pandoc
- Esta es la página de Wikipedia sobre Markdown
- Como editor de texto uso visual studio code
- para usar el editor simplemente me muevo al directorio donde este el contenido del sitio y tecleo
code .
- para usar el editor simplemente me muevo al directorio donde este el contenido del sitio y tecleo
- Antes he usado otros editores la mayor parte de ellos código abierto
- hay varios sitios donde aprender este lenguaje que resulta bastante sencillo
Generar el sitio
- para generar el sitio uso Hugo
- antes he usado Jekyll pero Hugo es bastante más rápido e igual de fácil de manejar
- para usar Hugo se puede seguir varios tutoriales como este escrito en la propia comunidad de Hugo bastante claro aúnque en inglés
- la instalación es simple pues se descarga, se descomprime y ya esta listo para usar.
- si no se quiere poner la ruta completa del ejecutable se tiene que meter la ruta en la variable
PATH
- si no se quiere poner la ruta completa del ejecutable se tiene que meter la ruta en la variable
Path=C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Users\javier\AppData\Local\Programs\Microsoft VS Code\bin;C:\portables\Hugo
-
es necesario reiniciar
-
para generar el sitio uso el comando
hugo
esto trasforma los archivos Markdown en html en el directoriopublic
C:\proyectos\hugo\javier-programacion>hugo
Building sites …
| ES
+------------------+-----+
Pages | 324
Paginator pages | 0
Non-page files | 2
Static files | 367
Processed images | 0
Aliases | 0
Sitemaps | 1
Cleaned | 0
Total in 1014 ms
- para evitar que se queden contenidos generados anteriormente que en la versión actual han sido borrados uso este bat
rd /S /Q public
call hugo
- al sitio se pueden añadir un gestor de comentarios por ejemplo con disqus
Desplegar el sitio
- para desplegar el sitio uso Firebase
- se puede hacer usando el plan spark (chispa) que es como llaman al plan free
- es necesario instalar firebase y para eso antes es necesario tener node y npm instalados
npm install -g firebase-tools
C:\proyectos\firebase>npm install -g firebase-tools
C:\Users\Usuario\AppData\Roaming\npm\firebase -> C:\Users\Usuario\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules\firebase-tools\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ firebase-tools@7.7.0
added 419 packages in 79.308s
╭──────────────────────────────────────╮
│ │
│ Update available 5.6.0 → 6.13.0 │
│ Run npm i npm to update │
│ │
╰──────────────────────────────────────╯
firebase --version
7.7.0
- para desplegar el sitio uso los comandos
firebase login
firebase deploy
- el primero te permite hacer login con las credenciales de tu cuenta en firebase y el segundo despliega el contenido del sitio en el hosting de firebase
C:\proyectos\hugo\javier-programacion>firebase deploy
=== Deploying to 'javier-programacion'...
i deploying hosting
i hosting[javier-programacion]: beginning deploy...
i hosting[javier-programacion]: found 694 files in public
+ hosting[javier-programacion]: file upload complete
i hosting[javier-programacion]: finalizing version...
+ hosting[javier-programacion]: version finalized
i hosting[javier-programacion]: releasing new version...
+ hosting[javier-programacion]: release complete
+ Deploy complete!
Project Console: https://console.firebase.google.com/project/javier-programacion/overview
Hosting URL: https://javier-programacion.firebaseapp.com
- puede que de este error
Assertion failed: new_time >= loop->time, file c:\ws\deps\uv\src\win\core.c, line 309
- se vuelve a lanzar y se soluciona
Escrito March 14, 2020.