aboutsummaryrefslogtreecommitdiff
path: root/test/asciidoc-reader.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'test/asciidoc-reader.adoc')
-rw-r--r--test/asciidoc-reader.adoc908
1 files changed, 908 insertions, 0 deletions
diff --git a/test/asciidoc-reader.adoc b/test/asciidoc-reader.adoc
new file mode 100644
index 000000000..0f714e312
--- /dev/null
+++ b/test/asciidoc-reader.adoc
@@ -0,0 +1,908 @@
+// Some comment here.
+= AsciiDoc reader test
+John MacFarlane <[email protected]>; John Doe <[email protected]>
+v1.0, 2025-11-24
+:custom: Foo bar \
+baz
+:flag:
+:stem: latexmath
+
+[#firsty]
+== Inline markup
+
+=== Characters and escapes
+
+Dog's has a curved apostrophe, but dog\'s does not.
+
+An escaped symbol: \*star\*.
+
+Character references: &auml;&#160;&#x22E0;
+
+=== Line breaks
+
+This is a hard +
+break.
+
+Or set it for a whole paragraph
+
+[%hardbreaks]
+These are
+all
+hard
+breaks.
+
+=== Autolinks
+
+http://example.com/foobar?a=333&b=no%20body, [email protected]
+
+<http://example.com/foobar?a=333&b=no%20body>, <[email protected]>
+
+=== Cross-reference
+
+See <<firsty>>
+
+See <<firsty,My great section on Inline markup>>
+
+Go to <<anch,an inline anchor>>
+
+=== Anchors
+
+An [[anch]]inline anchor.
+
+[[[bibanchor]]Doe, John. A Book.
+
+=== Inline macros
+
+kbd:[F11]
+
+kbd:[Ctrl+Shift+F]
+
+menu:File[Save]
+
+menu:Reader[Markdown > Pandoc]
+
+btn:[Cancel]
+
+icon:heart[2x,role=red]
+
+anchor:tiger
+
+pass:[<b>*bold*</b>]
+
+link:downloads/report.pdf[Get Report]
+
+link:tools.html#editors[]
+
+link:file:///home/username[Your files]
+
+Tricky cases:
+
+link:pass:[My Documents/report.pdf][Get Report]
+
+link:My&#32;Documents/report.pdf[Get Report]
+
+link:My%20Documents/report.pdf[Get Report]
+
+link:++https://example.org/now_this__link_works.html++[]
+
+mailto:[email protected][Subscribe]
+
+mailto:[email protected]["Click, subscribe, and participate!",role=mail]
+
+xref:link-macro-attributes[use attributes within the link macro]
+
+image::sunset.jpg[Sunset]
+
+image::name.png[]
+
+image::sunset.jpg[Sunset,300,400]
+
+image::sunset.jpg[alt=Sunset,width=300,height=400]
+
+[latexmath]
+++++
+e=mc^2
+++++
+
+[asciimath]
+++++
+sin n / 3
+++++
+
+[stem]
+++++
+e^i
+++++
+
+=== Attribute substitutions
+
+{custom}
+
+{nonexistent}
+
+Built in: x{blank}y{empty}z{sp}a{nbsp}b{zwsp}c{apos}d{lsquo}
+
+=== Bold and italic
+
+Constrained: *this is bold _and italic_*.
+
+Unconstrained: wild**content__with italic__stuff**.
+
+=== Monospace
+
+`simple`
+
+`complex *with bold* text and a link:foo.html[]`
+
+unconstrained``wwow``okay
+
+=== Span and inline attributes
+
+[.red]#Bonjour *monsieur*#
+
+Un[.red]##constrained##content
+
+With #no attribute# it's highlighted.
+
+=== Sub and superscript
+
+H~2~O
+
+H~a{sp}b~O
+
+Not subscript: H~a b~O.
+
+H^2&O
+
+H^a{sp}b^O
+
+Not subscript: H^a b^O.
+
+=== Passthrough
+
+Here the special characters just come through as literal:
+
++<b>*test*</b>+
+
+xx++<b>*test*</b>++xx
+
+But here they are passed through:
+
+xx+++<b>*test*</b>+++xx
+
+=== Quoted
+
+"`double quoted`"
+
+'`single quoted`'
+
+=== Footnotes
+
+Doublefootnote:[The double hail-and-rainbow level makes my toes tingle.]
+
+A bold statement!footnote:disclaimer[Opinions are my own.]
+Another outrageous statement.footnote:disclaimer[]
+
+== Block markup
+
+=== Sections
+
+==== Another level
+
+===== Level 5
+
+#### Markdown style
+
+##### Level 5
+
+=== Discrete heading
+
+[discrete]
+==== A discrete heading, not a section
+
+=== Paragraph
+
+This is a paragraph
+whose source fits on two lines.
+
+{.This is my title}
+A paragraph with a title.
+
+=== Example block
+
+.Optional title
+[example]
+This is an example of an example block.
+
+.Optional title
+====
+Paragraph *one*.
+
+Paragraph *two*.
+====
+
+=== Admonition
+
+Simple form:
+
+WARNING: This is very dangerous.
+Don't do it unless you understand the risks.
+
+[IMPORTANT]
+.Title of the admonition
+====
+Remember:
+
+. Don't do this.
+. And don't do that.
+====
+
+=== Sidebar
+
+[sidebar]
+A simple sidebar.
+
+.Optional Title *with strong emphasis*
+****
+Here is a sidebar.
+
+TIP: It can contain any type of content.
+****
+
+=== Literal block
+
+Short indented code:
+
+ $ ls -a
+ $ cat /foo/bar/baz \
+ /bi/bim/bop
+
+[literal]
+This is
+ a literal block too.
+
+....
+ Fenced
+ $+ *a* literal
+
+****
+not a sidebar
+****
+....
+
+=== Listing
+
+[source,ruby]
+----
+require 'sinatra'
+
+get '/hi' do
+ "Hello World!"
+end
+----
+
+Implied:
+
+[source,ruby]
+----
+require 'sinatra'
+
+get '/hi' do
+ "Hello World!"
+end
+----
+
+[,ruby]
+----
+include::asciidoc-reader-include.rb[]
+----
+
+[#hello.haskell]
+----
+putStrLn $ unwords ["Hello", "world"]
+----
+
+Line numbering:
+
+[%linenums,ruby]
+----
+puts 1
+puts 2
+puts 3
+----
+
+----
+This doesn't have a language.
+ +="hi"
+----
+
+And with a callout list:
+
+[source,ruby]
+----
+require 'sinatra' <1>
+
+get '/hi' do <2> <3>
+ "Hello World!"
+end
+----
+<1> Library import
+<2> URL mapping
+<3> Response block
+
+Markdown-style fenced:
+
+```ruby
+def foo
+ return 5
+end
+```
+
+=== Verse
+
+[verse,Carl Sandburg, two lines from the poem Fog]
+The fog comes
+on little cat feet.
+
+[verse,Carl Sandburg,Fog]
+____
+The fog comes
+on little cat feet.
+It sits looking
+over harbor and city
+on silent haunches
+and then moves on.
+____
+
+=== Collapsible
+
+Click here for more.
+[%collapsible%open]
+====
+This is collapsible.
+
+It can be hidden.
+====
+
+.Click me!
+[%collapsible]
+This paragraph is
+also collapsible.
+
+=== Quote
+
+[quote,Captain James T. Kirk,Star Trek IV: The Voyage Home]
+Everybody remember where we parked.
+
+[quote,Monty Python and the Holy Grail]
+____
+Dennis: Come and see the violence inherent in the system. Help! Help! I'm being
+repressed.
+
+King Arthur: Bloody peasant!
+
+Dennis: Oh, what a giveaway! Did you hear that? Did you hear that, eh? That's what I'm
+on about! Did you see him repressing me? You saw him, Didn't you?
+____
+
+[quote.movie#roads,Dr. Emmett Brown]
+____
+Roads? Where we're going, we don't need roads.
+____
+
+=== Pass
+
+++++
+<p>pass <em>through</em>
+ </p>
+++++
+
+=== Open block
+
+.A title.
+[key="a value"]
+--
+Any content can go here:
+
+. one
+. two
+--
+
+=== Anchor
+
+[[goals]]
+* one
+* two
+
+=== Breaks
+
+Asciidoc thematic break:
+
+'''
+
+Markdown style:
+
+---
+- - -
+***
+* * *
+
+Page breaks:
+
+<<<
+
+[%always]
+<<<
+
+=== List
+
+* Edgar Allan Poe
+* Sheri S. Tepper
+* Bill Bryson
+
+// titled
+
+.Kizmet's Favorite Authors
+* Edgar Allan Poe
+* Sheri S. Tepper
+* Bill Bryson
+
+// hyphen
+
+- Edgar Allan Poe
+- Sheri S. Tepper
+- Bill Bryson
+
+. Nested list
+* West wood maze
+** Maze heart
+*** Reflection pool
+** Secret exit
+* Level 1 list item
+** Level 2 list item
+*** Level 3 list item
+**** Level 4 list item
+***** Level 5 list item
+****** etc.
+* Level 1 list item
+
+// attributes
+
+[square]
+* one
+* two
+* three
+
+// ordered with actual numbers
+
+1. Protons
+2. Electrons
+3. Neutrons
+
+// ordered with .
+
+. Protons
+. Electrons
+. Neutrons
+
+Start with 4:
+
+4. Step four
+5. Step five
+6. Step six
+
+or
+
+[start=4]
+. Step four
+. Step five
+. Step six
+
+Reversed:
+
+[%reversed]
+.Parts of an atom
+. Protons
+. Electrons
+. Neutrons
+
+Nested
+
+. Step 1
+. Step 2
+.. Step 2a
+.. Step 2b
+. Step 3
+
+Mixed nested
+
+. Linux
+* Fedora
+* Ubuntu
+* Slackware
+. BSD
+* FreeBSD
+* NetBSD
+
+With spacing
+
+. Linux
+* Fedora
+* Ubuntu
+* Slackware
+. BSD
+* FreeBSD
+* NetBSD
+
+With number styles
+
+[lowerroman,start=5]
+. Five
+. Six
+[loweralpha]
+.. a
+.. b
+.. c
+. Seven
+
+Checklist
+
+* [*] checked
+* [x] also checked
+* [ ] not checked
+* normal list item
+
+Separate lists with block attribute
+
+* Apples
+* Oranges
+[]
+. Wash
+. Slice
+
+Multiline items
+
+* Blah blah.
+Blah blah.
+* The document header in AsciiDoc is optional.
+If present, it must start with a document title.
+
+* Optional author and revision information lines
+immediately follow the document title.
+
+* The document header must be separated from
+ the remainder of the document by one or more
+ empty lines and it cannot contain empty lines.
+
+Complex item
+
+* The header in AsciiDoc must start with a document title.
++
+----
+= Document Title
+----
++
+Keep in mind that the header is optional.
+* Optional author and revision information lines immediately follow the document
+title.
++
+----
+= Document Title
+Doc Writer <[email protected]>
+v1.0, 2022-01-01
+----
+* Second item
+
+Empty principle element:
+
+. {empty}
++
+----
+test
+----
+
+=== Table
+
+==== Simple with column specs
+
+[cols="3,2,3"]
+|===
+|This content is placed in the first cell of column 1
+|This line starts with a vertical bar so this content is placed in a new cell in
+column 2 |When the processor encounters a whitespace followed by a vertical bar it
+ends the previous cell and starts a new cell
+|===
+
+==== Repeated column in specs
+
+[cols="2*"]
+|===
+>s|This cell's specifier indicates that this cell's content is right-aligned and bold.
+|The cell specifier on this cell hasn't been set explicitly, so the default
+properties are applied.
+|===
+
+==== Simple without column specs
+
+|===
+|Column 1, header row |Column 2, header row
+
+|Cell in column 1, row 2
+|Cell in column 2, row 2
+
+|Cell in column 1, row 3
+|Cell in column 2, row 3
+|===
+
+==== With caption
+
+.My cool table.
+|===
+|Column 1, header row |Column 2, header row
+
+|Cell in column 1, row 2
+|Cell in column 2, row 2
+
+|Cell in column 1, row 3
+|Cell in column 2, row 3
+|===
+
+==== No header
+
+By default the first line should turn into the header, but this
+can be disabled:
+
+[%noheader]
+|===
+|Cell in column 1, row 1 |Cell in column 2, row 1
+|Cell in column 1, row 2 |Cell in column 2, row 2
+|===
+
+And also explicitly enabled:
+
+[%header%footer%autowidth,cols=2*~]
+|===
+|Cell A1 |Cell B1
+|Cell A2 |Cell B2
+|Cell A3 |Cell B3
+|===
+
+==== Footer
+
+[%header%footer,cols="2,2,1"]
+|===
+|Column 1, header row
+|Column 2, header row
+|Column 3, header row
+|Cell in column 1, row 2
+|Cell in column 2, row 2
+|Cell in column 3, row 2
+|Column 1, footer row
+|Column 2, footer row
+|Column 3, footer row
+|===
+
+or
+
+[options="footer"]
+|===
+|Column 1, header row |Column 2, header row
+|Cell in column 1, row 2
+|Cell in column 2, row 2
+|Cell in column 1, row 3
+|Cell in column 2, row 3
+|Column 1, footer row
+|Column 2, footer row
+|===
+
+==== Alignment
+
+|===
+|Column Name |Column Name
+2+^|This cell spans two columns, and its content is horizontally centered because the
+cell specifier includes the `+^+` operator.
+2*^|This content is duplicated in two adjacent columns.
+Its content is horizontally centered because the cell specifier
+includes the `+^+` operator.
+|===
+
+==== Multiple paragraphs in cells
+
+|===
+
+|Single paragraph on row 1
+
+|First paragraph on row 2
+
+Second paragraph on row 2
+|===
+
+==== Complex table
+
+|===
+
+2*>m|This content is duplicated across two columns.
+
+It is aligned right horizontally.
+
+And it is monospaced.
+
+.3+^.>s|This cell spans 3 rows. The content is centered horizontally, aligned to the bottom of the cell, and strong.
+e|This content is emphasized.
+
+.^l|This content is aligned to the top of the cell and literal.
+
+a|
+[source]
+puts "This is a source block!"
+
+|===
+
+==== Column styles
+
+[cols="m,m"]
+|===
+|monospace | mono
+d|default | mono
+|===
+
+==== Block elements in cells
+
+|===
+|Normal Style |AsciiDoc Style
+|This cell isn't prefixed with an `a`, so the processor doesn't interpret the
+following lines as an AsciiDoc list.
+
+* List item 1
+* List item 2
+* List item 3
+
+a|This cell is prefixed with an `a`, so the processor interprets the following lines
+as an AsciiDoc list.
+
+* List item 1
+* List item 2
+* List item 3
+
+|This cell isn't prefixed with an `a`, so the processor doesn't interpret the listing
+block delimiters or the `source` style.
+
+[source,python]
+----
+import os
+print ("%s" %(os.uname()))
+----
+
+a|This cell is prefixed with an `a`, so the listing block is processed and rendered
+according to the `source` style rules.
+
+[source,python]
+----
+import os
+print "%s" %(os.uname())
+----
+|===
+
+==== Col and rowspan
+
+|===
+|Column 1, header row |Column 2, header row | Column 3, header row
+2.2+|This cell spans 2 cols and 2 rows
+|Cell in column 3, row 2
+|Cell in column 3, row 3
+3+|Cell in column 1-3, row 4
+|===
+
+==== CSV table
+
+[%header,format=csv]
+|===
+Artist,Track,Genre
+Baauer,Harlem Shake,Hip Hop
+The Lumineers,Ho Hey,Folk Rock
+|===
+
+or
+
+,===
+Artist,Track,Genre
+Baauer,Harlem Shake,Hip Hop
+,===
+
+==== DSV table
+
+[format=dsv,separator=;]
+|===
+a;b;c
+d;e;f
+|===
+
+or
+
+:===
+Artist:Track:Genre
+Robyn:Indestructible:Dance
+:===
+
+=== Definition list
+
+CPU:: The brain of the computer.
+Hard drive:: Permanent storage for operating system and/or user files.
+
+Mixed
+
+Dairy::
+* Milk
+* Eggs
+Bakery::
+* Bread
+Produce::
+* Bananas
+
+With spaces
+
+Dairy::
+
+ * Milk
+ * Eggs
+
+Bakery::
+
+ * Bread
+
+Produce::
+
+ * Bananas
+
+Nested
+
+Operating Systems::
+Linux:::
+ . Fedora
+ * Desktop
+ . Ubuntu
+ * Desktop
+ * Server
+BSD:::
+ . FreeBSD
+ . NetBSD
+Cloud Providers::
+ PaaS:::
+ . OpenShift
+ . CloudBees
+ IaaS:::
+ . Amazon EC2
+
+This just affects the output:
+
+[horizontal,labelwidth=25,itemwidth=75]
+CPU:: The brain of the computer.
+RAM:: Temporarily stores information the CPU uses during operation.
+
+Q&A list
+
+[qanda]
+What is the answer?::
+This is the answer.
+Are cameras allowed?::
+Are backpacks allowed?::
+No.
+
+Ordered description list (with numbers)
+
+[ordered]
+&:: ampersand
+>:: greater than
+
+=== Block macros
+
+image::sunset.jpg[Sunset,300,200]
+
+video::mymovie.mp4[]
+
+audio::mysong.mp3[]
+
+toc::[]
+
+include::asciidoc-reader-include.adoc[]
+