come to the dark side - we have asciidoc...siegfried goeschl • senior software engineer •...

76
Come To The Dark Side - We Have AsciiDoc Siegfried Goeschl Version 1.0.0, 2018-03-26

Upload: others

Post on 07-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Come To The Dark Side - We Have AsciiDocSiegfried Goeschl

Version 1.0.0, 2018-03-26

Page 2: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Introduction

1

Page 3: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Siegfried Goeschl• Senior Software Engineer

• Writing server-side code

• Java Meetup Vienna co-organizer

• Apache Software Foundation member

• Currently working at Erste Bank Austria

2

Page 4: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Joining The Dark Side• Recently writing a lot of stuff :-(

• Mostly documentation & presentations

• Writing documentation is bad enough

• Using Microsoft Office makes it unbearable

3

Page 5: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

What’s Wrong With MS Office• Putting BLOBs under version control?

• Sharing over Slack, file system or email?

• Diffing MS Office documents?

• Using Linux & Open Office?

• What if you don’t have the latest MS Office 365?

4

Page 6: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

What Are The Alternatives?

5

Page 7: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Lightweight Markup Language

6

Page 8: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markup Language• LateX

• DocBook

• MarkDown

• AsciiDoc

• HTML

7

Page 9: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

LaTeX

8

Page 10: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

LaTeX• Lamport Tex

• Widely used in academia for scientific documents

• Math, Physics, …

• Never used it personally

9

Page 11: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

LaTeX Example

\documentclass[a4paper]{article}\usepackage[english]{babel}\title{A \LaTeX{} Example}\date{}\begin{document}\maketitle\section{A beautiful equation}\LaTeX{} is great at typesetting mathematics. The time dependent Schr{\"o}dinger equation, forinstance, is simply written as$$i\hbar \frac{\partial}{\partial t}\Psi \left(\mathbf{r},t\right)=\hat{H}\Psi\left(\mathbf{r},t\right).$$\end{document}

10

Page 12: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

LaTeX Output

11

Page 13: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

DocBook

12

Page 14: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

More About DocBook• Semantic Markup Language

• Technical documentation & books

• Quite popular in the late 90’s

• There was even Maven 1 support

• Hard to write XML (even with tooling)

13

Page 15: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

DocBook Maven Support

14

Page 16: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Books Written In DocBook

15

Page 17: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

DocBook Example

 <?xml version="1.0" encoding="UTF-8"?> <book xml:id="simple_book" xmlns="http://docbook.org/ns/docbook" version="5.0">  <title>Very simple book</title>  <chapter xml:id="chapter_1">  <title>Chapter 1</title>  <para>Hello world!</para>  <para>  I hope that your day is proceeding <emphasis>splendidly</emphasis>!  </para>  </chapter>  <chapter xml:id="chapter_2">  <title>Chapter 2</title>  <para>Hello again, world!</para>  </chapter> </book>

16

Page 18: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markdown

17

Page 19: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

More About Markdown• Created by John Gruber in 2004

• Focus on readability without obvious markup

• Intended to be transformed to HTML/XHTML

18

Page 20: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markdown Is Everywhere

19

Page 21: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

EMacs

20

Page 22: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Vim

21

Page 23: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Vi Or Not Vi

22

Page 24: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Sublime Editor

23

Page 25: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Marked 2 Preview

24

Page 26: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markdown Emails With Mailmate

25

Page 27: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

GitHub

26

Page 28: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

IntelliJ Markdown Plugin

27

Page 29: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

28

Page 30: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markdown Is Awesome

29

Page 31: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

But Sometimes Not Good Enough

30

Page 32: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Problems With Markdown• Original Markdown was very limited

• No clearly defined Markdown standard

• Missing features led to many flavours

31

Page 33: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Markdown Flavours• CommonMark launched in 2012

• GitHub Flavored Markdown based on CommonMark

• MarkdownExtra usesd in common CMS

• Doxygen Markdown Extensions

32

Page 34: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

No One Markdown To Rule Them All

33

Page 35: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoc

34

Page 36: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

More About AsciiDoc• Bring simplicity back to DocBook

• Supports most DocBook elements

• Everything you need for complex documents

• You can even write books

35

Page 37: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Books Written In AsciiDoc

36

Page 38: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Why I’m Using AsciiDoc• Similar enough to Markdown to get me going

• Better PDF document generation for external parties

• Some really nice features for documentations

37

Page 39: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoc Features

38

Page 40: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Cover Page

= AsciiDoc Sample DocumentYour Name <[email protected]>v{revnumber}, {docdate}:title-logo-image: image:logo.png[pdfwidth=3.00in,align=center]

39

Page 41: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Cover Page

40

Page 42: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Table Of Contents

:sectnums::toc::toclevels: 2

41

Page 43: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Table Of Contents

42

Page 44: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

CSV Tables

.CSV data, 15% each column[format="csv",width="60%",cols="4",options="header"][frame="topbot",grid="none"]|======1,2,3,4a,b,c,dA,B,C,D|======

43

Page 45: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

CSV Tables

44

Page 46: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Advanced Tables

|====|Date |Duration |Avg HR |Notes

|22-Aug-08 .2+^.^|10:24 | 157 |Worked out MSHR (max sustainableheart rate) by going hardfor this interval.

|22-Aug-08 | 152 |Back-to-back with previous interval.

|24-Aug-08 3+^|none|====

45

Page 47: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Advanced Tables

46

Page 48: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Admonitions

TIP: Pro tip...

IMPORTANT: Don't forget...

WARNING: Watch out for...

CAUTION: Ensure that..

47

Page 49: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Admonitions

48

Page 50: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Include Directive• Partition a large document

• Insert snippets of source code

• Poplulate tables from external files

49

Page 51: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Include Directive

.CSV data, 15% each column[format="csv",width="60%",cols="4",options="header"][frame="topbot",grid="none"]|======include::table.csv[]|======

50

Page 52: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Source Code Support

[source,java]----public class HelloWorld {  public static void main(String args[]) {  System.out.println("Hello, world!"); ①  }}----<1> Prints "Hello, world!" to the console.

51

Page 53: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Source Code Support

52

Page 54: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

My Workflow• Sublime Text Editor

• Sublime AsciiDoc Plugin for syntax highlighting

• Chrome AsciiDoctor extension for live preview

• asciidoctor-maven-plugin for PDF generation

53

Page 55: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Chrome AsciiDoctor Plugin

54

Page 56: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoctor Maven Plugin

55

Page 57: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

GitHub AsciiDoc

56

Page 58: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Sample Document Page 01

57

Page 59: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Sample Document Page 02

58

Page 60: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Sample Document Page 03

59

Page 61: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Eat Your Own Dog Food

60

Page 62: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Reveal.js

61

Page 63: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoc Meets Reveal.js• This presentation is written in AsciiDoc

• Maven and asciidoctor-maven-plugin

• Creates stand-alone HTML5 presentation

• No more Microsoft Powerpoint

62

Page 64: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Reveal.js• Presentation using HTML 5

• Works best for textual content

• Visual presentations are a bit harder

• PDF Handouts can be tricky

• Keyboard shortcuts for presenters

63

Page 65: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Reveal Speaker View

64

Page 66: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Reveal PDF Handouts• Append ?print-pdf query parameter to URL

◦ Does not work all the times for me

• Using Decktape failed to NPM install issues

• Currently creating hand-outs in the Maven build

◦ Using <<< to enforce page breaks

◦ Using pdfwidth= to re-size PDF images

65

Page 67: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Maven PDF Handout

:experimental::pdf-page-size: 9in x 6in

66

Page 68: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Want To Join The Dark Side?!

67

Page 69: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

When To Use AsciiDoc• When Markdown is not good enough

• Writing longer documents

• When you need a Table Of Content

• Creating customer-facing PDFs

68

Page 70: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoc Benefits• You can safely replace MS Word

• Textual content plays nicely with version control

• Documentation becomes part of the build process

• Wide-spread tool support

69

Page 71: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

AsciiDoc Drawbacks• Yet another tool to learn

• Non-developers might be unhappy

70

Page 72: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Questions?

71

Page 73: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Clone My GitHub Repositoryhttps://github.com/sgoeschl/presentations

72

Page 74: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Links Part 01AsciiDoctor

https://asciidoctor.org

AsciiDoctor PDF

https://github.com/asciidoctor/asciidoctor-pdf

AsciiDoctor Maven Plugin

https://github.com/asciidoctor/asciidoctor-maven-plugin

73

Page 75: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Links Part 02AsciiDoctor Reveal.js

https://asciidoctor.org/docs/asciidoctor-revealjs/

AsciiDoctor To PDF

http://discuss.asciidoctor.org/AsciiDoctor-PDF-amp-slide-show-presentations-td6053.html

AsciiDoc User Guide

http://www.methods.co.nz/asciidoc/chunked/index.html

RevealJS

https://github.com/hakimel/reveal.js/

74

Page 76: Come To The Dark Side - We Have AsciiDoc...Siegfried Goeschl • Senior Software Engineer • Writing server-side code • Java Meetup Vienna co-organizer • Apache Software Foundation

Links Part 03Write in AsciiDoc - Publish Everwhere

http://mojavelinux.github.io/decks/write-in-asciidoc-publish-everywhere/mixit2015/index.html#/

75