/ ghost

Ghost + Buster en Windows

Aunque ya tengo otros temas y materiales para publicar, me pareció que lo justo sería publicar primero los pasos que me tomó hacerlo funcionar en Windows 10.

Tomé como punto de partida este tutorial de Stefan Scherer.

Requerimientos

Debemos asegurarnos de tener instalados ciertos programas para poder completar este tutorial:

Descargamos e instalamos Ghost

Descargamos la última version de aquí

Creamos una carpeta llamada ghost y descomprimimos en ella el archivo que acabamos de bajar.

Instalamos las dependencias

cd ghost
npm install --production

Iniciamos Ghost

npm run start

Nos registramos con Ghost

Abrimos un navegador y apuntamos a https://padiazg.github.io/ghost

Creamos una cuenta, pasamos por todos los pasos y llegamos al panel de control, ahí podemos ver el post original y aprender un poco del lenguaje Markdown.

Tenemos blog

Hasta acá tenemos un blog totalmente funcional, que puede funcionar directamente si tuvieramos la infraestructura apropiada.

Hay suficiente documentación y tutoriales de como administrar y publicar en Ghost, por lo que no voy a entrar en esos detalles.

GitHub Pages

Ahora que ya tenemos nuestro blog funcionando, es hora de ocuparnos en publicarlo como páginas estáticas en GitHub.

Vea aquí los detalles básicos. Está demás decir que necesitaremos una cuenta de GitHub.

Usaremos la nomenclatura nombreusuario/nombreusuario.github.io. El nombre del repositorio debe estar siempre en minúsculas sin importar que el nombre del usuario tenga mayúsculas.

Buster

El repositorio original está abandonado y no funciona correctamente con la versión actual de Ghost, pero encontré este otro en el que están haciendo el esfuerzo de continuar el desarrollo de este proyecto.

El método sugerido en el repositorio pip install git+https://github.com/skosch/buster no funciona, al menos en mi máquina, por lo que iremos por otro camino.

Adecuamos el path

Buster solo funciona con Python v2.7, por lo que ajustamos nuestro path para que utilice solo esa versión. Colateralmente debemos volver a especificar las carpetas del Git.

En una ventana de comandos (cmd):

set path=C:\Python27\Scripts;C:\Python27;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Users\pato\AppData\Roaming\npm;C:\Program Files (x86)\GnuWin32\bin;

Debemos cuidar de ajustar las carpetas del path de acuerdo a nuestro caso particular.

Dejamos abierta la ventana de comandos para ejecutae en ella los pasos siguientes

Instalando Buster a mano

Descargamos el repositorio, preferentemente en un directorio diferente al que usamos en los pasos anteriores.

En una linea de comandos

cd \proyectos\python
git clone https://github.com/skosch/buster.git

Parcheamos

Por alguna razón el archivo buster\_version.py tiene rastros de versionado que obviamente hacen que se de un error al tratar de instalar, por cualquier método normal.

Modificamos buster\_version.py para que quede de esta manera:

__version_info__ = (0, 1, 3)
__version__ = '.'.join(map(str, __version_info__))

Instalamos Buster

python setup.py install

Preparamos carpeta estática

Creamos una carpeta static que usará Buster en la carpeta donde tenemos instalado Ghost, luego sencillamente clonamos nuestro repositorio usando un nombre de carpeta

cd <carpeta de Ghost>
mkdir static
git clone https://usuario:password@github.com/usuario/usuario.github.io.git static

Creamos contenido

A partir de aquí la configuración está completa, ya solo es cuestión de ir creando nuestros artículos y publicarlos.

Exportamos Ghost con Buster

Todas nuestras publicaciones pueden ser exportadas a la carpeta static por Buster

buster generate --domain=https://padiazg.github.io
buster preview

Podemos apuntar nuestro navegador a http://localhost:9000 y previsualizar como se ve nuestro blog como páginas estáticas.

Ajustamos los enlaces

Antes de poder publicar nuestras páginas a GitHub Pages, debemos hacer ajustas los enlaces. Es uno de los bugs de Buster, supongo.

Este script hará el truco:

set PATH=C:\Program Files (x86)\nodejs\;C:\Python27\Scripts;C:\Python27;C:\Users\pato\AppData\Roaming\npm;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;

buster generate --domain=http://127.0.0.1:2368  

echo "Corrigiendo enlaces a https"
find static -name *.html -type f -exec sed -i -e "s#https://padiazg.github.io#https://padiazg.github.io#g" {} ;
find static -name *.html -type f -exec sed -i -e "s#https://fonts.googleapis.com#https://fonts.googleapis.com#g" {} ;

echo "Corrigiendo algunos posts"
find static -name *.html -type f -exec sed -i -e "s#open https://padiazg.github.io#open https://padiazg.github.io#g" {} ;
find static -name *.html -type f -exec sed -i -e "s#domain=https://padiazg.github.io#domain=https://padiazg.github.io#g" {} ;
find static -name *.html -type f -exec sed -i -e "s#s\#https://padiazg.github.io#s\#https://padiazg.github.io#g" {} ;

echo "Removiendo index.html de los enlaces"
find static -name *.html -type f -exec sed -i -e "s#/#/#g" {} ;

if [%1]==[deploy] goto deploy
buster preview
goto end

:deploy
cd static
echo "Agregando archivos..."
git add -A
echo "Confirmando..."
git commit -m "Update on the website at $(date)"
echo "Enviando a github ..."
git push origin master
cd ..

:end

Este script está basado en el de Alex Ellis. Les recomiendo hechar una ojeado a su blog.

Archivos basura de Sed

La opción -i de Sed genera una copia de seguridad de cada archivo que modifica, y hasta ahora no encuentro una forma de frenar esto.

Ghost + Buster en Windows
Share this