diff --git a/.env b/.env new file mode 100644 index 0000000..77568b4 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +# Colocar variables de entorno diff --git a/Makefile b/Makefile index b6ac026..7cb4668 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,46 @@ +SHELL := bash .DEFAULT_GOAL := all -JEKYLL_ENV ?= production +site ?= $(patsubst %-jekyll-theme,%,$(notdir $(PWD))) +domain ?= $(site).sutty.local +env ?= production +JEKYLL_ENV ?= $(env) + +include .env export -all: fa build serve +all: fa build ## Todo -build: +build: ## Compilar el sitio bundle exec jekyll build --profile --trace -# La ubicación de serve va a un directorio temporal fuera del directorio -# actual para hacerlo compatible con jekyll-locales. -serve: - bundle exec jekyll serve --destination /tmp/_site +serve: /etc/hosts ## Servidor de prueba + @echo "Iniciando servidor web" + @if ! ss -lnp | grep -q :8080 ; then nghttpd -d _site/ 8080 ../sutty.local/domain/sutty.local.{key,crt} & echo $$! > /tmp/nghttpd.pid ; fi + @if ! ss -lnp | grep -q :4000 ; then nghttpx -b "127.0.0.1,9095;/assets/js/" -b "$(domain),8080;/;proto=h2;tls" -f "0.0.0.0,4000" -L FATAL --no-ocsp ../sutty.local/domain/sutty.local.{key,crt} & echo $$! > /tmp/nghttpx.pid ; fi + +kill-servers: /tmp/nghttpd.pid /tmp/nghttpx.pid /tmp/webpack.pid ## Cerrar el servidor + +webpack-dev-server: ## Servidor de prueba de Webpack + ./node_modules/.bin/webpack-dev-server --public $(domain):9095 & echo $$! > /tmp/webpack.pid # Tomar los códigos de los íconos de este archivo y copiarlos a fa.txt # node_modules/font-awesome/scss/_variables.scss +whitelist = $(shell grep -v "^#" $< | sed "s/^/U+/" | tr "\n" ",") assets/fonts/forkawesome-webfont.woff2: fa.txt which glyphhanger || npm i -g glyphhanger - glyphhanger \ - --subset=node_modules/fork-awesome/fonts/forkawesome-webfont.ttf \ - --formats=woff2 \ - --whitelist=$(shell grep -v "^#" $< | sed "s/^/U+/" | tr "\n" "," ) + glyphhanger --subset=node_modules/fork-awesome/fonts/forkawesome-webfont.ttf --formats=woff2 --whitelist=$(whitelist) mv node_modules/fork-awesome/fonts/forkawesome-webfont-subset.woff2 $@ -fa: assets/fonts/forkawesome-webfont.woff2 +fa: assets/fonts/forkawesome-webfont.woff2 ## Fork Awesome + +/etc/hosts: always + @echo "Chequeando si es necesario agregar el dominio local $(domain)" + @grep -q " $(domain)$$" $@ || echo -e "127.0.0.1 $(domain)\n::1 $(domain)" | sudo tee -a $@ + +%.pid: always + @test -f $@ && cat $@ | xargs -r kill &>/dev/null || : + @rm -f $@ + +.PHONY: always diff --git a/README.md b/README.md index 6d56e0d..be2526c 100644 --- a/README.md +++ b/README.md @@ -4,32 +4,83 @@ CAMBIAME: Esta es una plantilla base para comenzar cualquier plantilla relacionada con Sutty, con el entorno de desarrollo que usamos según nuestro flujo de trabajo. -La instalación de esta gema se realiza bifurcando el desarrollo de esta -usando git, por ejemplo: - ```bash -# Hacer un fork local desde sutty-base-jekyll-theme a nuestra plantilla -git clone https://0xacab.org/sutty/jekyll/sutty-base-jekyll-theme.git \ - CAMBIAME-jekyll-theme +# Desde el directorio de trabajo +cd ~/Sutty +# Instalar sutty-cli antes de empezar +gem install sutty-cli +# Iniciar una plantilla +sutty-cli theme CAMBIAME +# Se creó el repositorio cd CAMBIAME-jekyll-theme - -# Sutty-base ahora es el proyecto base, desde el que podemos tomar -# cambios, pero no enviamos para no mezclar las cosas -git remote rename origin upstream - -# Agregamos el repositorio donde vamos a enviar y publicar cambios -git remote add origin \ - git@0xacab.org:sutty/jekyll/CAMBIAME-jekyll-theme.git - -# Configuramos git para que envíe siempre los cambios al repositorio -# nuevo -git push --set-upstream origin master ``` Para empezar, hay que buscar y reemplazar en todos los archivos donde diga `CAMBIAME`. -También hay que instalar las dependencias de CSS y JS con `yarn`. +También hay que instalar +[sutty.local](https://0xacab.org/sutty/sutty.local/): + +```bash +# Desde el directorio de trabajo +cd ~/Sutty +# Clonar el repositorio +git clone https://0xacab.org/sutty/sutty.local.git +cd sutty.local +make all domain domain=sutty.local +cd .. # Volver al directorio de trabajo +``` + +Esto genera un certificado a nivel local que luego va a usar el +servidor de desarrollo. + +## Desarrollo + +Siempre trabajamos desde el directorio raíz del repositorio: + +```bash +cd ~/Sutty/CAMBIAME-jekyll-theme +``` + +Primero hay que iniciar los servidores, antes hay que instalar el +paquete `nghttp2`. + +```bash +make serve +``` + +A partir de este momento podemos editar los archivos. Para probar lo +que estamos haciendo, compilamos el sitio. + +```bash +make build +``` + +Hay que hacer esto cada vez que queremos probar cambios. + +**Nota:** No usamos `jekyll serve` porque entra en conflicto con algunos +de nuestros complementos y los sitios grandes tardan en compilarse de +todas formas. + +## Actualizar + +Podemos traer cambios de la base: + +```bash +git pull upstream master +``` + +Si hubiera conflictos, los podemos resolver con: + +```bash +# Esto se hace una sola vez, cambiar vimdiff por la herramienta que +# queramos usar +git config --global mergetool.tool vimdiff +git config --global mergetool.keepBackup false + +# Resolver los conflictos +git mergetool +``` ## Publicación diff --git a/_includes/navbar.html b/_includes/navbar.html index 94bb74d..2323b3f 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -1,23 +1,31 @@