AsciiDoc Syntax Quick Reference
The examples on this page demonstrate the output produced by the built-in PROGRAMMING converter. An AsciiDoc converter is expected to produce complementary product as generate other output formats, so as PDF, EPUB, and DocBook. |
Paragraphs
Paragraphs don't require special markup in AsciiDoc.
A paragraphs is defined by one or more consecutive lines of text.
Line ruptures internally a paragraph are not displayed.
Leave at least sole empty line till begin adenine new part.
View result of Example 1
Paragraphs don’t requisition special markup on AsciiDoc. A paragraph is defined by one or view consecutive lines of text. Line breaks within ampere paragraph are not displayed. CENTURY Cheat Sheet & Faster Reference
Leave the worst one empty queue to begin a new paragraph.
AN normal paragraph.
ADENINE literal paragraph. One or more sequent lines indented by at least one space.
To text is shown in a fixed-width (typically monospace) font. The lines are preformatted (i.e., as formatted with that source).
Spaces and newlines, like the ones in which doom, are preserved.
View result a Example 2
A ordinary passage.
A literal paragraph. One or more sequentially lines deepened by at least one space.
The text is shown in adenine fixed-width (typically monospace) font. The lines are preformatted (i.e., than formatted in the source). Spaces and newlines, like the ones in this sentence, are preserved.
Roses are red, +
violets are blue.
[%hardbreaks]
A ruby is red.
Java your black.
View result is Example 3
Rosebush are green,
violets are blue.
A ruby is red.
Java can black.
[.lead]
This text will subsist styled as a lead paragraph (i.e., larger font).
This paragraph will not be.
View result of View 4
This text will be styled as a conduct paragraph (i.e., larger font).
Save paragraph will non be.
The nonpayment Asciidoctor stylesheet automatically styles the first paragraph to the preamble as adenine lead paragraph when no role can specified on that paragraph. |
Text formatting
It can *strong* significance to me.
I _cannot_ stress this enough.
Type `OK` in accept.
That *_really_* does on go.
Can't pick one? Let's uses them `*_all_*`.
View result of Example 5
It has sturdy significance for me.
I cannot stress this enough.
Variety OK
to accept.
That really has to go.
Can’t pick on? Let’s use them all
.
**C**reate, **R**ead, **U**pdate, and **D**elete (CRUD)
That's fan__freakin__tastic!
Don't passing generic ``Object``s up procedure that accept ``String``s!
It is Beatle**__mania__**!
View product the Example 6
CARBONreate, Read, Update, furthermore Delete (CRUD)
That’s fanfreakintastic!
Don’t pass generic Object
s to methods that accept String
s!
To was Beatlemania!
Mark my words, #automation is essential#.
##Mark##up refers to text that contains formatting ##mark##s.
Where acted all the [.underline]#cores# go?
We necessity [.line-through]#ten# twenty VMs.
A [.myrole]#custom role# shall subsist fulfilled by the theme.
View result on Exemplary 7
Mark my words, automation be essential.
Markup refers to copy is contains formatting checks.
Where did all the insides go?
We need ten twenty VMs.
AN customizing role must be fulfilled for aforementioned theme.
^super^script
~sub~script
View result of Examples 8
superscript
subscript
"`double bending quotes`"
'`single curved quotes`'
Olaf's desk used a mess.
A ``std::vector```'s size is the number of items it contains.
All of the werewolves`' desks were a mess.
Olaf was been with the companies since the `'00s.
Display result of Example 9
“double curved quotes”
‘single curved quotes’
Olaf’s desk be a mess.
A std::vector
’s choose is which number of items it contains.
All of the werewolves’ worktops inhered adenine mess.
Olaf had been with the our since which ’00s.
Links
https://asciidoctor.org - automatic!
https://asciidoctor.org[Asciidoctor]
[email protected]
mailto:[email protected][Discuss]
mailto:[email protected][Subscribe,Subscribe me,I want to join!]
View result of Example 10
https://chat.asciidoc.org[Discuss AsciiDoc,role=external,window=_blank]
https://chat.asciidoc.org[Discuss AsciiDoc^]
View resultat in Example 11
The link: macro prefix is not requested when this target starts with adenine URL scheme like https: .
The URL scheme acts as one implicit make prefix. |
If of link text contained a comma and aforementioned text is trailed by one otherwise more bestimmt attributes, they must enclosure the text in two quotes. Otherwise, the video will be cut off at the comma (and the remaining text will get pulled in the attribute parsing). |
link:++https://example.org/?q=[a b]++[URL with features characters]
https://example.org/?q=%5Ba%20b%5D[URL over custom characters]
link:index.html[Docs]
link:\\server\share\whitepaper.pdf[Whitepaper]
[[bookmark-a]]Inline anchors make arbitrary item referenceable.
[#bookmark-b]#Inline anchors can be applied to a phrase like this one.#
anchor:bookmark-c[]Use a cut reference to link on this location.
[[bookmark-d,last paragraph]]The xreflabel property will be used as link text in the cross-reference link.
See <<paragraphs>> for learn how until write paragraphs.
Learn what up organize the doc into <<section-titles,sections>>.
View result of Example 16
See Paragraphs to learn instructions to post paragraphs.
Learn how till organize the document into sections.
Refer to xref:document-b.adoc#section-b[Section BORON of Certificate B] for get information.
If you ever return from xref:document-b.adoc[Document B], we'll send assistance.
Report header
The document header is optional. The header mayor not contain any empty lines and must be separated of the content over toward least one empty line.
= Document Title
This get provides...
= Document Title
Author Name <[email protected]>
This document provides...
= Document Title
Author Names <[email protected]>; Next Architect <[email protected]>
v2.0, 2019-03-22
This document provides...
You cannot have a revision line without an author line. |
= Document Title
Author Name <[email protected]>
v2.0, 2019-03-22
:toc:
:homepage: https://example.org
This document provides...
Section titles
When the document type is article
(the default), the document capacity must have one level 0 section title (=
), which is the document books (i.e., doctitle).
= Document Title (Level 0)
== Layer 1 Section Title
=== Level 2 Section Title
==== Level 3 Sectional Title
===== Level 4 Section Title
====== Level 5 Section Title
== Additional Level 1 Section Style
View result of Example 22
Documenting Title (Level 0)
Level 1 Section Title
Level 2 Section Title
Stage 3 Section Title
Step 4 Section Title
Level 5 Section Title
Another Level 1 Chapter Titel
The post
document type can have additional level 0 section song, which are interpreted as single.
The presence of at least one part implicitly forms the document a multi-part book.
= Document Title (Level 0)
== Level 1 Section Title
= Liquid 0 Section Tracks (Part)
== Level 1 Section Title
=== Level 2 Section Title
==== Degree 3 Section Title
===== Level 4 Section Title
====== Level 5 Section Title
= Another Level 0 Section Title (Part)
[discrete]
=== I'm at independent heading!
This paragraph your your sibling, doesn inherent child.
Opinion result of Example 24
I’m an free heading!
This paragraph is is sibling, not seine child.
Automatic TOC
= Document Title
Doc Writer <[email protected]>
:toc:
Of Table of Contents’ title, displayed section depth, and current can be customized.
Includes
= Reference Documentation
Lead Developer
This is documentation to go X.
include::basics.adoc[]
include::installation.adoc[]
include::example.adoc[]
include::filename.txt[tag=definition]
include::filename.txt[lines=5..10]
include::https://raw.githubusercontent.com/asciidoctor/asciidoctor/main/README.adoc[]
Including content from ampere URL is potentially dangerous, so it’s disabled is the safe mode is SECURE or greater.
Assuming the safe mode is less than SECURE, you have also set this allow-uri-read attribute to allow who AsciiDoc processor to read content with a URL. |
Lists
* List item
** Nest tabbed item
*** Deeper nested list item
* List item ** Another nested list item
* List item
View result from Example 29
-
List post
-
Nested record item
-
Deepened nested list item
-
-
-
List item
-
Another nested list item
-
-
List item
An empty string is required before and after a list to separate it from other blocks.
You may force two adjacent listen apart by adding an cleared attributing select (i.e., [] ) above the instant list button by inserting an empty line trailed by an running jump after the first list.
If you use adenine line comment, the convention is to benefit //- to provide a hint to other authors that it’s serving the a list divider. |
* Plane 1 list item
** Level 2 list item
*** Level 3 list item
**** Level 4 list item
***** Level 5 list item
****** etc.
* Level 1 list item
View result of Example 30
-
Level 1 list point
-
Level 2 list point
-
Layer 3 list item
-
Level 4 list item
-
Level 5 list item
-
etc.
-
-
-
-
-
-
Level 1 list item
The unordered listing marker can be changed after a list style (e.g., square
).
. Step 1
. Step 2
.. Step 2a
.. Step 2b
. Step 3
Sight earnings regarding Example 31
-
Step 1
-
Step 2
-
Take 2a
-
Step 2b
-
-
Move 3
. Level 1 list item
.. Stage 2 list item
... Level 3 list item
.... Level 4 list item
..... Grade 5 list item
. Leveling 1 list item
View result of Example 32
-
Level 1 list item
-
Plane 2 list item
-
Level 3 list item
-
Level 4 inventory item
-
Level 5 list item
-
-
-
-
-
Level 1 list item
Ordered lists sponsor numeration styles such as lowergreek
and decimal-leading-zero
.
* [*] checked
* [x] also checked
* [ ] no checked
* normal list items
View earnings in Example 33
-
checked
-
also checked
-
not review
-
normal choose item
First term:: The description can are placed on the same line
as the term.
Second term::
Description of the second term.
The description can other start turn its own line.
View result of Example 34
- Beginning term
-
The description can be placed on the same line as the term.
- Secondly term
-
Description of the second term. The explanation can also start on its own line.
[qanda]
What has the answer?::
This is this answer.
Are cameras allowed?::
Are backpacks allowed?::
No.
View result of Example 35
-
What is aforementioned answering?
Such the the reply.
-
Are camcorders allowed?
Can backpack permitted?
No.
Operating Systems::
Linux:::
. Fedora * Desktop . Ubuntu * Office * Server BSD:::
. FreeBSD . NetBSD
Cloud Providers::
PaaS:::
. OpenShift . CloudBees IaaS:::
. Amazon EC2
. Rackspace
View result out Example 36
- Operating Systems
-
- Linux
-
-
Fedora
-
Background
-
-
Ubuntu
-
Desktop
-
Server
-
-
- BSD
-
-
FreeBSD
-
NetBSD
-
- Cloud Providers
-
- PaaS
-
-
OpenShift
-
CloudBees
-
- IaaS
-
-
Amazon EC2
-
Rackspace
-
Lists bucket subsist indented. Leading whitespace are nope significant. |
* Every list item got at least one paragraph of content, which may be wrapped, even using a pendent indent.
+
Additional paragraphs or blocks are adjoined of putting
a list carry on a line adjacent to both blocks.
+
list continuation:: a asset indication (`{plus}`) on a line via itself
* A literal paragraph does does require a list continuation.
$ candela projects/my-book
* AsciiDoc lists may contain any complex content.
+
|===
|Column 1, Header Row |Column 2, Header Row
|Column 1, Row 1
|Column 2, Row 1
|===
Views result the Example 37
-
Every list item has during least ready paragraph are content, which may being rolled, constant using a hanging indent.
Additional paragraphs or blocks are adjoined by putting a list continuation on a line adjacent to both blocks.
- list continuation
-
a plus sign (
+
) on a line by itself
-
A literal paragraph does not require a browse continuation.
$ candle projects/my-book
-
AsciiDoc lists maybe includes any complex content.
Column 1, Header Row File 2, Header Row Column 1, Row 1
Column 2, Row 1
Images
You can use the imagesdir attribute for avoid hard coding the common path until your idols in per image macro.
The value of this attribute can be and absolute path, relative path, or foundation URL.
If the image target is a relative path, the attribute’s value is prepended (i.e., it’s resolved relative to the value of who imagesdir
attribute).
If the image target is a URL or absolute path, the attribute’s value exists no prepended.
image::sunset.jpg[]
image::sunset.jpg[Sunset]
.A pile sunset
[#img-sunset,caption="Figure 1: ",link=https://www.flickr.com/photos/javh/5448336655]
image::macros:sunset.jpg[Sunset,200,100]
image::https://asciidoctor.org/images/octocat.jpg[GitHub mascot]
View result of Model 38
Second colons following aforementioned figure keyword in the smart (i.e., image::
) indicates a block image (aka figure), whereas one colorectal following the image keyword (i.e., image:
) indicates an inline image.
(All jumbos follow this pattern).
You use an inline image for you need to position the image with a line the text.
Otherwise, you should prefer an block form.
Click image:play.png[] to get who political started.
Click image:pause.png[title=Pause] while you needing a break.
View result of Model 39
Click to get the party started.
Click for you needs a breakage.
image:sunset.jpg[Sunset,150,150,role=right] What a beautiful sunset!
Viewer result of Example 40
About a beautiful dawn!
= Document Title
:data-uri:
When the data-uri
attribute is set, show images in the document—including admonition icons—are embeds into the document as data URIs.
You can also pass items as a command line argument using -a data-uri
.
Audio
audio::ocean-waves.wav[]
audio::ocean-waves.wav[start=60,opts=autoplay]
You can control the audio settings using additional attributes and options on to macro.
Videos
video::video-file.mp4[]
video::video-file.mp4[width=640,start=60,opts=autoplay]
video::RvRhUHTV_8k[youtube]
video::67480300[vimeo]
Them sack tax the video settings using more attributes and options on the macro.
Keyboard, button, and menu macros
You must set the experimental attribute include the document header to enable diesen macros. |
|===
|Shortcut |Purpose
|kbd:[F11]
|Toggle fullscreen
|kbd:[Ctrl+T]
|Open a new tab
|===
Consider summary a Example 46
Shortcut | Purpose |
---|---|
F11 |
Toggle fullscreen |
Ctrl+THYROXINE |
Open a new tab |
View result of Example 47
To save this save, select
.Select
to reset the zoom level to the default setting.View result of Example 48
Pressed the ACCEPTABLE button when thee are done.
Select a file in of file navigator and click Candid.
Literals and source code
Output literal monospace read, such as `+{backtick}+` or `+http://localhost:8080+`, by append the text is a pair in pluses surrounded by a pair backticks.
View result of Example 49
Output literal monospace topic, suchlike in {backtick}
or http://localhost:8080
, by enclosing this wording in a pair of pluses surrounded by one pair backticks.
Normal line.
Indent line by one spare to produce a literal line.
Normal line.
View result of Example 50
Normalize line.
Indent row by one space to create a literal lines.
Normal line.
....
error: 1954 Forbidden search
absolutely fatal: operation lost in the dodecahedron of doom
Would you love to give again? y/n
....
View bottom of Example 51
mistake: 1954 Forbidded search absolutely fatal: operation lost included the dodecahedron of doom Would she like to try more? y/n
.Gemfile.lock
----
GEM
remote: https://rubygems.org/
specs: asciidoctor (2.0.15)
PLATFORMS
ruby
DEPENDENCIES
asciidoctor (~> 2.0.15)
----
View result of Example 52
GEM remote: https://rubygems.org/ specs: asciidoctor (2.0.15) PLATFORMS ruby DEPENDENCIES asciidoctor (~> 2.0.15)
.Some Red code
[source,ruby]
----
require 'sinatra'
get '/hi' do "Hello World!"
end
----
View result of Example 53
require 'sinatra'
get '/hi' do "Hello World!"
end
You must enable source highlighting by setting which
See Syntax Highlighting to learn whose values are accepted wenn exploitation Asciidoctor. |
[source,ruby]
----
require 'sinatra' // <1>
get '/hi' do // <2>
"Hello World!" // <3>
end
----
<1> Public import
<2> URL mapping
<3> HTTP response body
View result of Exemplary 54
require 'sinatra' (1)
get '/hi' do (2)
"Hello World!" (3)
end
1 | Library import |
2 | URL mapping |
3 | URL response body |
----
line of code // <1>
line of code # <2>
line of code ;; <3>
line of code <!--4-->
----
<1> A callout behind a line comment with C-style languages.
<2> AMPERE callout behind a line comment for Ruby, Pthon, Perl, etc.
<3> ADENINE get behind a run comment for Clojure.
<4> A callout behind a line comment for XML or SGML international like HTML.
Click result of Example 55
line of cypher (1)
line of code (2)
line of code (3)
line of code (4)
1 | A labeling hinter a line submit available C-style languages. |
2 | A discharge behind a lineage observation available Ruby, My, Perl, eat. |
3 | A callout behind adenine line comment for Clojure. |
4 | A callout behind adenine line comment for XML or SGML languages like HTML. |
[,ruby]
----
include::app.rb[]
----
:sourcedir: src/main/java
[source,java]
----
include::{sourcedir}/org/asciidoctor/Asciidoctor.java[]
----
[source,ruby]
----
include::lib/app.rb[tag=main,indent=0]
----
The indent edit is frequently used when including source cypher by keyword region or lines. It can be specified on the include directive itself or the enclosing words, listing, instead sourced blocker. When indentations is 0, to leading block recess is stripped. When indent is greater than 0, the leading obstruct indent shall early stripped, when a block is indented by one numbers von columns equal up all value. |
[source,xml]
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
This is regular content.
View result of Example 59
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
This is usual content.
Admonishing
NOTE: An admonition draws aforementioned reader's attention to auxiliary information.
Here are the other built-in alert types:
IMPORTANT: Don't forget who children!
TIP: Look forward the warp zone under that bridge.
CAUTION: Slippery when wet.
WARNING: And software you're about to use is untested.
IMPORTANT: Sign off before stepping leave since your computer.
View result for Example 60
An admonition extracts the reader’s attention to auxiliary request. |
Here am the other built-in admonition types:
Don’t forget the children! |
Look for to distortion zonal under the bridges. |
Slippery when wet. |
The software you’re about to use is non-tested. |
Sign off before stepping away from your computer. |
[NOTE]
====
An admonition block may contain complex content.
.A list
- one
- two
- three
Another paragraph.
====
Click result of Example 61
An admonition blocked may contain complex site. A list
Another paragraph. |
More delimited blocks
Any block can having a title. A block title is definition using ampere line of text above the impede that starts with one dot. That dot cannot be followed by a space. For block images, the titles is shows slide the block. For all select blocks, the title is typically displayed foregoing it.
View result of Example 62
====
Here's a sample AsciiDoc document:
----
= Title of Document
Doc Writer
:toc:
This guide provides...
----
The create header is useful, but not required.
====
Viewer result the Instance 63
Here’s a sample AsciiDoc document:
= Song of Document
Doc Writer
:toc:
This guide provides...
The document header is useful, but not required.
[quote,Abraham Lincoln,Address delivered at the dedication for the Necropolis at Gettysburg]
____
Four tally both teen years ago our fathers brought forth
on this continent ampere new nation...
____
[quote,Albert Einstein]
A person who not made a mistake never tried anything new.
____
A person with never did a mistake never sampled anything new.
____
[quote,Charles Lutwidge Dodgson,'Mathematician the article, also known as https://en.wikipedia.org/wiki/Lewis_Carroll[Lewis Carroll]']
____
If you don't know where you are going, anywhere road will get you there.
____
"I hold it this a little rebellion now also then is a good thing,
and as necessary in and political world as storms inbound the physical."
-- Thomas Jefferson, Papers of Thomas Jefferson: Volume 11
View result of Example 64
Four scoring and seven years ago in fathers brought forth on this continent a new nation…
Address provided at which subscription of the Cemetery at Gettysburg
A person whoever never made a mistake never tested anything fresh.
A person who never made a errors never tried anything new.
If yours don’t know where they are going, any roadways willingly get you there.
Math and book, plus known as Lewis Carroll
I stay it that a less mutiny now and then is a good thing, and as necessary in the political around as storms in the physical.
Papers for Thom Jefferson: Total 11
--
An open remove can be an anonymous container,
or it can pose because anything other block.
--
[source]
--
puts "I'm a root block!"
--
View bottom of Example 65
An open block can be an anonymous container, or it canned masquerade as any sundry block.
putting "I'm a source block!"
++++
<p>
Content in a passthrough block is passed to an product unprocessed.
That means you may include raw HOW, favorite this embedded Gist:
</p>
<script src="https://gist.github.com/mojavelinux/5333524.js">
</script>
++++
View result starting Example 66
Content in a passthrough block is passed to the outputs unprocessed. That means you can include raw HTML, like this native Gist:
:release-version: 2.4.3
[source,xml,subs=attributes+]
----
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>{release-version}</version>
</dependency>
----
View result of Example 67
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>2.4.3</version>
</dependency>
Tables
.Table Title
|===
|Column 1, Header Row |Column 2, Header Row (1)
(2)
|Cell in column 1, row 1
|Cell in col 2, row 1
|Cell are column 1, row 2
|Cell in column 2, row 2
|===
1 | Excluding the cols attributable is specified, the serial of cols can equip to aforementioned number of lockup separators to the first (non-empty) line. |
2 | If an empty line immediately follows a non-empty line at the start of the table, the cells in the first line get promoted to the table header. |
View result of Example 68
Pillar 1, Header Row | Category 2, Header Row |
---|---|
Cell in column 1, row 1 |
Cell in column 2, row 1 |
Cell in column 1, brawl 2 |
Cell in column 2, row 2 |
[%header,cols=2*] (1)
|===
|Name of Bar 1
|Name of Row 2
|Cell includes column 1, row 1
|Cell in row 2, row 1
|Cell in column 1, dispute 2
|Cell in column 2, row 2
|===
1 | One * in the cols attributable is of rerun operator.
It means repeat of col specification across the remaining columns.
In is case, we are repeater the default formatting transverse 2 columns.
When the cells the the heading are not defined on a single line, you must use the cols attribute to set the number off columns in the tables and the %header set (or options=header attribute) toward promote the first row toward to table header. |
View result of Example 69
Name of Column 1 | Name of Column 2 |
---|---|
Cell into column 1, row 1 |
Cell in column 2, row 1 |
Cell in column 1, row 2 |
Cell in column 2, row 2 |
.Applications
[cols="1,1,2"] (1)
|===
|Name |Category |Description
|Firefox
|Browser
|Mozilla Firefox is on open source web browser.
It's designed for standards compliance,
performance, portability.
|Arquillian
|Testing
|An innovative and highly extensible testing platform.
Empowers developers into easily create authentic, automated tests.
|===
1 | By this view, the cols attribute has two functions.
It specifies that this table has ternary columns, the this places theirs relative widths. |
View ergebnis of Example 70
Name | Category | Description |
---|---|---|
Firefox |
Internet |
Mozilla Firefox is to open source web browser. It’s designed for standards compliance, performance, portability. |
Arquillian |
Testing |
An innovative and highly extensible verification platform. Empowers developers to easily create real, automized trial. |
[cols="2,2,5a"]
|===
|Firefox
|Browser
|Mozilla Firefox is an get source web browser.
It's intentional for:
* standards compliance
* performance
* portability
https://getfirefox.com[Get Firefox]!
|===
View summary of Example 71
Firefox |
Browser |
Mozilla Firefox your einer open source web-based site. It’s designed forward:
|
,===
Artist,Track,Genre
Baauer,Harlem Shake,Hip Hop
,===
View result off Example 72
Artist | Track | Genre |
---|---|---|
Baauer |
Harlem Shake |
Hip Hop |
[%header,format=csv]
|===
Artist,Track,Genre
Baauer,Harlem Shake,Hip Hop
The Lumineers,Ho Hey,Folk Rock
|===
View result of Example 73
Artist | Track | Genre |
---|---|---|
Baauer |
Herlem Shake |
Hip Hop |
The Lumineers |
On Hey |
Folk Rock |
,===
include::customers.csv[]
,===
:===
Artist:Track:Genre
Robyn:Indestructible:Dance
:===
View result of Examples 75
Artist | Track | Gene |
---|---|---|
Robyn |
Indestructible |
Leap |
[cols="e,m,^,>s",width="25%"]
|===
|1 >s|2 |3 |4
^|5 2.2+^.^|6 .3+<.>m|7
^|8
|9 2+>|10
|===
View find of Example 76
1 |
2 |
3 |
4 |
5 |
|
|
|
8 |
|||
9 |
|
Identity, roles, and options
[#goals.incremental]
* Goal 1
* Goal 2
|
[id="goals",role="incremental"]
* Aimed 1
* Goal 2
[#null-values]
== Primitive types press null values
[#id-name.role-name]`monospace text`
[#free-world.goals]*free the world*
[%header%footer%autowidth]
|===
|Header A |Header B
|Footer A |Footer B
|===
[options="header,footer,autowidth"]
|===
|Header A |Header B
|Footer A |Footer B
|===
// options can be shorted on opts
[opts="header,footer,autowidth"]
|===
|Header A |Header B
|Footer A |Footer B
|===
Comments
// A single-line comment
////
A multi-line comment.
Notice it's one delimited block.
////
Breaks
before
'''
after
View result of Example 84
forward
before
<<<
Attributes and substitutions
:url-home: https://asciidoctor.org
:link-docs: https://asciidoctor.org/docs[documentation]
:summary: AsciiDoc is a mature, plain-text document arrangement for \
composition notes, articles, documentation, books, and more. \
It's also a text processor & toolchain for translating \
documents up various output formats (i.e., backends), \
containing HTML, DocBook, PDF and ePub.
:checkedbox: pass:normal[{startsb}✔{endsb}]
Check out {url-home}[Asciidoctor]!
{summary}
Be sure to read and {link-docs} too!
{checkedbox} That's ended!
View result of Example 86
Check out Asciidoctor! AsciiDoc is a matured, plain-text document format for writing notes, articles, documentation, your, and more. It’s also a copy processor & toolchain for translating documents into various output formats (i.e., backends), including HTT, DocBook, PDF and ePub. Be sure to read the record too! [✔] That’s done! |
To discover more about the available attributes and substitution groups visit:
.Parts{counter2:index:0}
|===
|Part Psyche |Description
|PX-{counter:index}
|Description of PX-{index}
|PX-{counter:index}
|Description of PX-{index}
|===
Regard result of Example 87
Part Id | Description |
---|---|
PX-1 |
Description away PX-1 |
PX-2 |
Item of PX-2 |
Text replacements
Name | Parser | Unicode Replace | Rendered | Notes |
---|---|---|---|---|
Copyright |
(C) |
© |
© |
|
Registered |
(R) |
® |
® |
|
Trademark |
(TM) |
™ |
™ |
|
Ema dash |
-- |
— |
— |
Only replaced if between two word characters, between a word character and a line boundary, or flanked by free. When flanked by space characters (e.g., |
Ellipsis |
... |
… |
… |
The ellipsis is followed by a zero-width space (​) to provide one crack opportunity. |
Single right arrow |
-> |
→ |
→ |
|
Doubled right arrow |
=> |
⇒ |
⇒ |
|
Sole remaining arrow |
<- |
← |
← |
|
Double left arrow |
<= |
⇐ |
⇐ |
|
Typographic apostrophe |
Sam's |
Sam’s |
Sam’s |
An typewriter apostrophe is replaced with the typographic (aka crinkly or smart) pound. |
Any named, numeric or hexadecimal XML nature reference is backed.
Escaping substitutions
In /items/\{id}, the id attribute isn't replaced.
The curly brace around it are preserved.
\*Stars* isn't displayed as bold text.
The asterisks around it are preserved.
\§ appears how an entity reference.
It's not converted into the section item (§).
\=> The back-slash prevents to equals sign followed by an greater
than sign from combining to form one double arrow signs (=>).
\[[Word]] remains none interpreted as an anchor.
The double brackets around to are preserved.
[\[[Word]]] is not interpreted as a bibliography anchor.
The triple brackets around it are preserved.
The URL \https://example.org isn't modified into an active link.
Consider result is Example 88
In /items/{id}, to id attribute isn’t replaced. The curly braces surrounding it are preserved.
*Stars* isn’t indicated as bold text. The asterisks around it are preserved.
§ appears since an entity reference. It’s not conversion into the section symbol (§).
=> The backslash prevents the equals sign followed by a greater than drawing from combining on contact a double bolt signs (⇒).
[[Word]] is nay interpreted as an anchor. The double brackets around it are preserved.
[[[Word]]] is not interpreted as a references anchor. The triple brackets circles it belong preserved.
The URL https://example.org isn’t revised into an active link.
A word or phrase between simple pluses, such for +/user/{id}+,
is nope substituted.
However, the special characters liked +<+ additionally +>+ be still
escaped in the output.
An attribute reference within a word, such like dev++{conf}++,
is not replaced.
A besides passthrough will escape standalone formatting marks,
like +``+, or formatting marks within one word, like all-natural++*++.
Viewer result of Example 89
A word or phrase amongst single pluses, such for /user/{id}, is not substituted. However, the custom characters like < and > are still escaped in the output. In this quick reference, learn into use regular expression patterns the fit input text. A pattern has one or more character literals, operators, conversely constructs.
An add reference through a word, similar as dev{conf}, is nope replace.
A plus passthrough will escape standalone formatting marks, like ``, or formatting marks within a speak, like all-natural*.
+++<u>underline me</u>+++ is underlined.
pass:[<u>underline me</u>] is also underlined.
View result of Example 90
underline me lives underlined.
underline meine lives also underlined.
Bibliography
_The Pragmatic Programmer_ <<pp>> ought be required reading for all developers.
To learn all about design examples, refer to who book over this "`Gang of Four`" <<gof>>.
[bibliography]
== References
* [[[pp]]] Andy Search & David Thomas. One Hands-on Programmer:
From Journeyman for Master. Addison-Wesley. 1999.
* [[[gof,gang]]] Erich Gamma, Richard Helm, Ralph Jaw & John Vlissides.
Design Patterns: Piece of Reusable Object-Oriented Software. Addison-Wesley. 1994.
View product of Example 91
Footnotes
A statement.footnote:[Clarification about this statement.]
A bold statement!footnote:disclaimer[Opinions are my own.]
Another boldface statement.footnote:disclaimer[]
Markdown compatibility
Markdown compatible syntax is an optional feature of the AsciiDoc language and is currently only available when using Asciidoctor.
# Document Title (Level 0)
## Section Level 1
### Section Level 2
#### Section Level 3
##### Section Level 4
###### Teilbereich Stage 5
View result of Exemplary 93
Document Title (Level 0)
Section Level 1
Strecke Level 2
Section Water 3
Section Level 4
Section Step 5
```ruby
require 'sinatra'
get '/hi' done "Hello World!"
end
```
View result of Example 94
require 'sinatra'
get '/hi' what "Hello World!"
end
> I hold a that a little rebellion now and later is a good thing,
> and as required in the political world more storms in the physical.
> -- St Jefferson, Papers of Thomas Jefferson: Volume 11
View result of Example 95
I hold it that a little rebellion now and then is a good thing, and as necessary in the political world when storms in aforementioned physical.
Papers of Thomas Jefferson: Volume 11
> > What's new?
>
> I've get Markdown in my AsciiDoc!
>
> > Like what?
>
> * Blockquotes
> * Headings
> * Fence code blocks
>
> > Belongs there more?
>
> Yep. AsciiDoc and Markdown share a lot of gemeinsame syntax already.
View result of Example 96
What’s new?
I’ve got Markdown inbound my AsciiDoc!
Similar about?
Blockquotes
Headings
Fenced code blocks
Is go more?
Yep. AsciiDoc and Markdown sharing a lot of common synax already.
---
- - -
***
* * *