SlideShare a Scribd company logo
1 of 44
Download to read offline
AsciiDoctor
Dokumentation schreiben
kann Spass machen!
Sebastian Hempel
IT-Consulting Hempel
@ithempel
Welche Dokumente
schreiben Entwickler?
Warum macht das
Schreiben
keinen Spass?
Was muss anders
werden?
AsciiDoctor
AsciiDoc
leightweight markup language
erste Veröffentlichung im November 2002
AsciiDoctor
Implementierung von AsciiDoc in Ruby
erste Veröffentlichung im Januar 2013
= Hello, AsciiDoc!
Doc Writer <doc@example.com>
An introduction to http://asciidoc.org[AsciiDoc].
== First Section
* item 1
* item 2
[source,ruby]
puts "Hello, World!"</doc@example.com>
direkte Erstellung
von HTML5
Ausgabe im
DocBook Format
Dan Allen
@mojavelinux
Wer nutzt AsciiDoc(tor)
Formatierung
*fett*
_kursiv_
`nicht proportional`
Listen
* Element
** nächstes Ebene
* weiteres Element
Checklisten
- [ ] noch nicht erledigt
- [*] erledigt
Aufzählung
. erstes Element
. zweites Element
.. erstes Unterelement
Labeled Lists
Label:: Beschreibung
noch ein Label:: eine weitere Beschreibung
Zitate
[quote, Bill Gates, Microsoft]
____
640 KB are enough for everyone.
____
Literal Block
....
Jetzt wird alles
wie angegeben
- ausgegeben.
....
Code Blöcke
----
public class EnterpriseAbstractFactory {
public doSomething(int howLong) {
Thread.sleep(howLong);
}
}
----
Callouts
----
public class EnterpriseAbstractFactory { <1>
public doSomething(int howLong) {
Thread.sleep(howLong); <2>
}
}
----
<1> to shoort
<2> busy waiting please
Codeformatierung
[source,java]
----
public class EnterpriseAbstractFactory {
public doSomething(int howLong) {
Thread.sleep(howLong);
}
}
----
Codeformatierung ohne
Zeilenumbruch
[source,java,options="nowrap"]
----
public class EnterpriseAbstractFactory {
public doSomething(int howLong) {
if (checkSomeThingThatLeadsToAVeryLongLine() == WE_EXPECT_EXACTLY_THIS) {
Thread.sleep(howLong);
}
}
}
----
Tabellen
|===
| Kopfzeile | mit zweiter Spalte
| JDK | 8
| Java EE | 7
|===
Tabellen aus CSV
[format="csv",options="header"]
|===
Operation System,Software,Version
Linux,JDK,8
NoArch,WildFly,8.1
|===
Einbinden von Bildern
image::filename.png[A Picture,200,100]
Festlegung des
Bilderverzeichnisses
:imagesdir: ./img
Inhaltsverzeichnis
:toc:
:toclevels: 3
:toc-title: Inhaltsverzeichnis
:toc-placement!:
:sectanchors:
:numbered:
toc::[]
Integration in Build-Tool
Integration des Plugins
...
<plugins>
<plugin>
<groupid>org.asciidoctor</groupid>
<artifactid>asciidoctor-maven-plugin</artifactid>
<version>0.1.4</version>
...
</plugin>
</plugins>
...
Konfiguration des Plugins
<plugin>
...
<configuration>
<sourcedirectory>${basedir}/src/main/doc</sourcedirectory>
<outputdirectory>${basedir}/target/docs</outputdirectory>
<backend>html</backend>
<doctype>book</doctype>
</configuration>
...
</plugin>
...
Aufruf des Plugins
...
<plugin>
...
<executions>
<execution>
<id>output-html</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
</execution>
</executions>
...
</plugin>
...
Integration in JavaDoc
AsciiDoc statt HTML
Integration in
JavaDoc-Erstellung
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-javadoc-plugin</artifactid>
<version>2.9</version>
<configuration>
<source>1.7
<doclet>org.asciidoctor.Asciidoclet</doclet>
<docletartifact>
<groupid>org.asciidoctor</groupid>
<artifactid>asciidoclet</artifactid>
<version>0.1.4</version>
</docletartifact>
</configuration>
</plugin>
Kommentar mit AsciiDoc
/** = Example Class
*
* This ist an example class.
*
* * This is a List
*
* This is *bold* or _italic_.
*/
public class Example {
private String attribute;
/**
* Get some attribute.
*
* null:: The value might be null.
* other:: The name of the attribute.
*/
public String getAttribute() {
}
}
AsciiDoctor Plugins
Beispiel
AsciiDoctor-Diagram
Graphviz
PlantUML
Ditaa
Installation
gem install asciidoctor-diagram
Integration
#!/usr/bin/ruby
require 'asciidoctor'
require 'asciidoctor-diagram/plantuml'
Asciidoctor.render_file('sample.adoc',
:in_place => true, :safe => 'unsafe')
Integration ab 1.5.x
Vorraussetzung: Java (JAVA_HOME)
asciidoctor -r asciidoctor-diagram sample.adoc
Beispiel
["plantuml", "asciidoctor-diagram-classes", "png"]
----
interface BlockProcessor
class DiagramBlock
class DitaaBlock
class PlantUmlBlock
class GraphvizBlock
BlockProcessor <|-- DiagramBlock
DiagramBlock <|-- DitaaBlock
DiagramBlock <|-- PlantUmlBlock
DiagramBlock <|-- GraphvizBlock
----
Bildnachweis
(1) Sebastian Hempel / Sebastian Hempel / CC-BY SA
(2) document folders / John Keogh / CC-BY NC
(3)frustration / Sybren Stüvel / CC-BY NC
(4) There are years that ask questions and years that answer. /
theunquietlibrarian / CC-BY NC
(5) Day 9 / Jay Reed / CC-BY SA
(8) Dan Allen / Dan Allen
(18) puzzle / Olga Berrios / CC-BY
Creative Commons
CC-BY SA

More Related Content

Viewers also liked

75 idea to rock your socks
75 idea to rock your socks 75 idea to rock your socks
75 idea to rock your socks Barbara Savona
 
Swmt 2010 organizatii
Swmt 2010 organizatiiSwmt 2010 organizatii
Swmt 2010 organizatiiRuxandra Popa
 
Location Based Salad - Future of Web Applications - Las Vegas 2011
Location Based Salad - Future of Web Applications - Las Vegas 2011Location Based Salad - Future of Web Applications - Las Vegas 2011
Location Based Salad - Future of Web Applications - Las Vegas 2011lukepilon
 
Vision dt solutions vmug leeds
Vision dt solutions vmug leedsVision dt solutions vmug leeds
Vision dt solutions vmug leedssubtitle
 
Suelos de madera. Tarima, parquet, lijados y barnizados.
Suelos de madera. Tarima, parquet, lijados y barnizados.Suelos de madera. Tarima, parquet, lijados y barnizados.
Suelos de madera. Tarima, parquet, lijados y barnizados.CUEVASGRIMA
 
Dynamic covered call writing June 2013 - Eden Rahim
Dynamic covered call writing June 2013 - Eden RahimDynamic covered call writing June 2013 - Eden Rahim
Dynamic covered call writing June 2013 - Eden Rahimsorenk
 
1.Matka mojego Pana
1.Matka mojego Pana1.Matka mojego Pana
1.Matka mojego Panaparakletos
 
Sodium hydroxide (repaired)
Sodium hydroxide (repaired)Sodium hydroxide (repaired)
Sodium hydroxide (repaired)alanjoye
 
After the silence a film
After the silence a filmAfter the silence a film
After the silence a filmChole Richard
 
Stop Doing SharePoint Projects
Stop Doing SharePoint ProjectsStop Doing SharePoint Projects
Stop Doing SharePoint Projects21apps
 

Viewers also liked (20)

Bibliotekas vesture2
Bibliotekas vesture2Bibliotekas vesture2
Bibliotekas vesture2
 
75 idea to rock your socks
75 idea to rock your socks 75 idea to rock your socks
75 idea to rock your socks
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
Pp nomor 45 tahun 2013 ttg SERAGAM SEKOLAH
Pp nomor 45 tahun 2013 ttg SERAGAM SEKOLAHPp nomor 45 tahun 2013 ttg SERAGAM SEKOLAH
Pp nomor 45 tahun 2013 ttg SERAGAM SEKOLAH
 
Swmt 2010 organizatii
Swmt 2010 organizatiiSwmt 2010 organizatii
Swmt 2010 organizatii
 
Location Based Salad - Future of Web Applications - Las Vegas 2011
Location Based Salad - Future of Web Applications - Las Vegas 2011Location Based Salad - Future of Web Applications - Las Vegas 2011
Location Based Salad - Future of Web Applications - Las Vegas 2011
 
Vision dt solutions vmug leeds
Vision dt solutions vmug leedsVision dt solutions vmug leeds
Vision dt solutions vmug leeds
 
Pavasaris
PavasarisPavasaris
Pavasaris
 
Ilzenes pagasts
Ilzenes pagastsIlzenes pagasts
Ilzenes pagasts
 
Suelos de madera. Tarima, parquet, lijados y barnizados.
Suelos de madera. Tarima, parquet, lijados y barnizados.Suelos de madera. Tarima, parquet, lijados y barnizados.
Suelos de madera. Tarima, parquet, lijados y barnizados.
 
3.2.ce functioneaza
3.2.ce functioneaza3.2.ce functioneaza
3.2.ce functioneaza
 
Pictionary de deportes
Pictionary de deportesPictionary de deportes
Pictionary de deportes
 
Dynamic covered call writing June 2013 - Eden Rahim
Dynamic covered call writing June 2013 - Eden RahimDynamic covered call writing June 2013 - Eden Rahim
Dynamic covered call writing June 2013 - Eden Rahim
 
New Deck
New DeckNew Deck
New Deck
 
1.Matka mojego Pana
1.Matka mojego Pana1.Matka mojego Pana
1.Matka mojego Pana
 
Sodium hydroxide (repaired)
Sodium hydroxide (repaired)Sodium hydroxide (repaired)
Sodium hydroxide (repaired)
 
Simulasi Digitas Gatot HP
Simulasi Digitas Gatot HPSimulasi Digitas Gatot HP
Simulasi Digitas Gatot HP
 
After the silence a film
After the silence a filmAfter the silence a film
After the silence a film
 
seee
seeeseee
seee
 
Stop Doing SharePoint Projects
Stop Doing SharePoint ProjectsStop Doing SharePoint Projects
Stop Doing SharePoint Projects
 

Similar to Dokumentation schreiben kann spass machen

Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notesdominion
 
3.1 dateiein- und ausgabe
3.1   dateiein- und ausgabe3.1   dateiein- und ausgabe
3.1 dateiein- und ausgabeMichael Konzett
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit antroskakori
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersFDeitelhoff
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit WordpressBlogwerk AG
 
Zentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKZentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKAndré Krämer
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in RailsAngelo Maron
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetRalf Abramowitsch
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungMongoDB
 
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinMeine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinDavid Decker
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?MT AG
 

Similar to Dokumentation schreiben kann spass machen (20)

Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notes
 
3.1 dateiein- und ausgabe
3.1   dateiein- und ausgabe3.1   dateiein- und ausgabe
3.1 dateiein- und ausgabe
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit ant
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
Fly2pdf
Fly2pdfFly2pdf
Fly2pdf
 
Zentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKZentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDK
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in Rails
 
Daisy
DaisyDaisy
Daisy
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
 
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 BerlinMeine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
Meine ersten 12 Monate als Plugin-Entwickler für WordPress - WP Camp 2012 Berlin
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?
 

Dokumentation schreiben kann spass machen