La documentación de este proyecto se compila localmente y se despliega en GitHub pages. la url en la que se despliega es: https://arquisoft.github.io/lomap_es5c/.
For the documentation we are going to use AsciiDoc and PlantUML and follows the Arc42 template. If you want to be able to generate the doc locally you need to install Ruby and some dependencies to translate the asciidoc code into html:
Para la documentación vamos a utilizar AsciiDoc y PlantUML. Seguiremos la plantilla Arc42. Si quieres general la documentación en tu ordenador, necesitas instalar Ruby, Java y algunas dependencias para traducir el asciidoc en código html. Si estás en una máquina Linux puedes instalar Java y Ruby simplemente ejecutando:
apt-get install ruby openjdk-8-jre
En Windows puedes seguir estas instrucciones para instalar Ruby. Probablemente tengas un JRE de Java instalado, sino puedes descargarlo aquí:
Una vez que Ruby está instalado y funcionando podemos instalar asciidoctor
y asciidoctor-diagram
.
gem install asciidoctor asciidoctor-diagram
Ahora solo nos queda instalar las dependencias del package.json
dentro del directorio docs
:
cd docs
npm install
Después de instalar todas estas herramientas ya deberíamos de ser capaces de generar la documentación:
npm run build
La documentación se generará en el directorio docs/build
.
Si queremos desplegar la documentación en GitHub pages, estará accesible en https://arquisoft.github.io/lomap_es5c/ necesitamos ejecutar npm run deploy
.
Si revisas el package.json
de este directorio veras como desplegar es tan fácil como ejecutar gh-pages -d build
, que puede hacerse ejecutando directamente npm run deploy
en el directorio de la documentación. el paquete gh-pages
se encarga de subir la documentación generada (básicamente archivo html) a una rama especial de github llamada gh-pages. Todo lo que se suba a esa rama es accesible en la página del repositorio. Ten en cuenta que solo queremos subir ahí la documentación. También es importante que el build de la documentación no se suba a otras ramas del proyecto.