SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
ASCIIDOCTOR
PARADEV(OPS)
101 Panel Tech Days <jorge.aguilera@puravida-software.com>
WHOAMI?
Jorge Aguilera, @jagedn
muuuchos años (25) desarrollando …
y pocos documentando
incluso he publicado un libro en Amazon
https://jorge-aguilera.gitlab.io/tutoasciidoc/
https://www.amazon.es/dp/B07518QBR4
WHOAREYOU?
devs, systems, manager
word, open o ce, … notepad
java, maven, gradle
markdown, asciidoctor
https://gitlab.com/jorge-aguilera/101panels
So you built it. Nobody's using it. Did you forget the
docs? Aha!
1:08 AM - Aug 22, 2017
11 138 449
Kelsey Hightower
@kelseyhightower
Follow
MISPROBLEMASCONLA
DOCUMENTACIÓN
soy vago por naturaleza
no me pagan lo su ciente por intentar
formatear una hoja en Word
uso un IDE para programar
y un WYSIWYG para documentar
80% esfuerzo es copy&paste y screenshot …
que se quedan obsoletos al momento
versionado y ver las diferencias
(las que importan, no las de formato)
reutiliqueeeeee ???
sólo reutilizamos el formato
automatizaqueeee ???
ASCIIDOCTORAVISTADE
PÁJARO
Asciidoc vs Asciidoctor
Markdown vs Asciidoc
Texto y nada más que texto
Un texto con múltiples formatos ( html, pdf, ebook,
docbook, slides)
Desde línea comando, embebido maven/gradle,
ESTRUCTURA
= Titulo : subtitulo
autor(es)
Version xx, dd.mm.yyyy
:atributo1: valor1
:atributo2: valor2
:atributo3: valor3
:toc:
:toclevels: 4
:toc-title: Contenido
:imagesdir: ./img
Las primeras lineas definen el preambulo de un documento.
Pueden ir seguidas hasta que haya una en blanco para delimitar el bloque
== Capitulo 1
aqui empieza el primer capitulo
EJEMPLOS
1.
2.
3.
4.
Basico
Bloques
Multimedia
Avisos
INCLUDE
incluir otros cheros (obvio)
organizar en carpetas, cheros un documento largo o
compartido
reutilizar fragmentos, documentar código, etc
include::{una_variable}/una/ruta/fichero.ext[calificadores]
BACKENDS
BACKENDS
HTML
Pdf
$ asciidoctor articulo.adoc
articulo.html
$ asciidoctor -b pdf articulo.adoc
$ asciidoctor-pdf articulo.adoc
articulo.pdf
EXTENSIONES
Asciidoctor cuenta con numerosas extensiones y si no
existe lo que quieres … pues te lo creas
DIAGRAMAS
Mi favorita:
= Diagramas
.Caso de uso Registro de usuario
[plantuml]
....
left to right direction
skinparam packageStyle rect
title Registro de usuario
actor Usuario as usuario
rectangle registro{
usuario --- (registro)
(registro) .> (usuario no existe) : include
(usuario existe) <. (registro) : include
}
....
Diagramas
FORMULASMATEMÁTICAS
stem:[sum_(i=1)^n i^3=((n(n+1))/2)^2]
=∑
i=1
n
i
3
( )
n(n + 1)
2
2
SCREENSHOT
Incluso puedes usar Geb y rellenar formularios
screenshot::http://myapp/dashboard[My App Dashboard]
https://github.com/asciidoctor/asciidoctorj-screenshot
TUMISMO
http://puravida-software.gitlab.io/asciidoctor-extensions/
DEV(OPS)
¿ Qué me aporta si soy un Desarrollador ?
TUCÓDIGOYTUDOCU
JUNTOSFOREVER
Mismo control de versiones (SVN, Git, …)
Mismo repositorio (código y documentación en un
mismo lugar)
Incluir automáticamente código en la docu
Diferentes hojas de estilo para visualizar tu código
(coderay,pingments,…)
MISMOEQUIPOMISMA
HERRAMIENTA
analista genera diagramas
programador documenta código
q&a documenta los test
pipelines documentan la automatización
PORDONDEEMPEZAR
incluir plugins en el proyecto (maven, gradle,…)
organizar documentación (directorios y apartados
separados)
establecer puentes código-documentación (utilizar
includes)
automatizar
MAVEN
Incluimos el plugin en nuestro pom.xml y se añade al
pipeline automáticamente
<plugins>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>generate-docs</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html</backend>
<doctype>book</doctype>
<sourceDocumentExtensions>adoc</sourceDocumentExte
<attributes>
GRADLE
Incluimos las dependencias y automaticamente
tenemos una nueva task asciidoctor .
Creamos la docu en el mismo proyecto (src/docs por
defecto) versionandola junto con el código
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
}
}
apply plugin: 'org.asciidoctor.convert'
ESTABLECERPUENTES
include::{sourcedir}/la/ruta/Fichero.java[]
include::{sourcedir}/la/ruta/Fichero.java[lines=12..18]
String hola="mundo"; // < 1 >
// tag::desdeAqui[]
hola += " cruel";
// tag::desdeAqui[]
VISIBILIZARLADOCU
WAR, Spring Boot: Al ser contenido estático es muy
fácil incluirla en el WAR
Servidor corporativo: ftp o scp copiar a un servidor con
Apache/Nginx
Github Pages (o Gitlab, BitBucket, …)
CASOSDEUSO
3 ejemplos donde podemos usarlo
TUTORIALES
Organizar capítulos en carpetas, imágenes, diagramas,
versionado, despliegue a WebServer
TutoAsciidoc
fuente
BLOGESTÁTICO
Multitud de soluciones
(Hugo,Jenkill,JBake,Middleman,etc) sin bases de datos
JBake generador de blog con contenido estático
Editar html, markdown o asciidoctor
Contenido
Presentación
EJEMPLO:RESTEXCEL
RestExcel aplicación Grails que ofrece un Excel
mediante REST
Código disponible en carpeta restexcel
Spring Rest Docs librería Spring para que los test
http://jorge-aguilera.gitlab.io/101-panel-tech-
asciidoctor/html5/

Más contenido relacionado

Similar a Asciidoctor para Dev(Ops)

Presentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIPresentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIADWE Team
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmasZuriel Diaz
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Alincita Simon
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Airespeterpunk
 
R shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-defR shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-defPedro Concejero
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...Iván López Martín
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)UTN
 

Similar a Asciidoctor para Dev(Ops) (20)

Presentación de ACTO Framework parte II
Presentación de ACTO Framework parte IIPresentación de ACTO Framework parte II
Presentación de ACTO Framework parte II
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Brochure suite400 a
Brochure suite400 aBrochure suite400 a
Brochure suite400 a
 
Django
DjangoDjango
Django
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
Dando saltos con Spring Roo
Dando saltos con Spring RooDando saltos con Spring Roo
Dando saltos con Spring Roo
 
Git 101+
Git 101+Git 101+
Git 101+
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
R shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-defR shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-def
 
Groogle
GroogleGroogle
Groogle
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móviles
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)
 
Javascript
JavascriptJavascript
Javascript
 
Log Management
Log ManagementLog Management
Log Management
 

Más de Jorge Aguilera

Write gradle plugins escribir y publicar tus plugins de gradle made easy_
Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_
Write gradle plugins escribir y publicar tus plugins de gradle made easy_Jorge Aguilera
 
Tu api ha muerto larga vida a tu dsl
Tu api ha muerto  larga vida a tu dslTu api ha muerto  larga vida a tu dsl
Tu api ha muerto larga vida a tu dslJorge Aguilera
 
One Step Beyond ... la docu de tu proyecto
One Step Beyond ... la docu de tu proyectoOne Step Beyond ... la docu de tu proyecto
One Step Beyond ... la docu de tu proyectoJorge Aguilera
 
GriffDnie (Griffon Demo)
GriffDnie (Griffon Demo)GriffDnie (Griffon Demo)
GriffDnie (Griffon Demo)Jorge Aguilera
 

Más de Jorge Aguilera (6)

Write gradle plugins escribir y publicar tus plugins de gradle made easy_
Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_
Write gradle plugins escribir y publicar tus plugins de gradle made easy_
 
Tu api ha muerto larga vida a tu dsl
Tu api ha muerto  larga vida a tu dslTu api ha muerto  larga vida a tu dsl
Tu api ha muerto larga vida a tu dsl
 
Write Gradle Plugins
Write Gradle PluginsWrite Gradle Plugins
Write Gradle Plugins
 
One Step Beyond ... la docu de tu proyecto
One Step Beyond ... la docu de tu proyectoOne Step Beyond ... la docu de tu proyecto
One Step Beyond ... la docu de tu proyecto
 
GriffDnie (Griffon Demo)
GriffDnie (Griffon Demo)GriffDnie (Griffon Demo)
GriffDnie (Griffon Demo)
 
Docu driven-rest
Docu driven-restDocu driven-rest
Docu driven-rest
 

Último

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 

Último (10)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Asciidoctor para Dev(Ops)