You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1335 lines
27 KiB

= AsciiDoc Syntax Quick Reference !
Apostolos rootApostolos@swarmlab.io
// Metadata:
:description: Intro and Install
:keywords: AsciiDoc Syntax Quick Reference
:includedir: _includes
:data-uri:
:toc: right
:toc-title: Πίνακας περιεχομένων
:toclevels: 4
:source-highlighter: highlight
:icons: font
:sectnums:
{empty} +
[[cheat-useadoc]]
= AsciiDoc Syntax Quick Reference
[NOTE]
====
These examples focus on the output generated by the HTML backend.
AsciiDoc produces complementary output when generating PDF, EPUB, and DocBook.
====
toc::[]
== Paragraphs
.Normal
----
include::{includedir}/ex-text.adoc[tag=b-para]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-para]
====
.Literal
----
include::{includedir}/ex-literal.adoc[tag=b-imp]
----
[.result]
====
include::{includedir}/ex-literal.adoc[tag=b-imp]
====
.Admonition
----
include::{includedir}/ex-admon.adoc[tag=b-para]
----
[.result]
====
include::{includedir}/ex-admon.adoc[tag=b-para]
====
NOTE: You can also create <<admon-bl,admonition blocks>>.
.Lead paragraph
----
include::{includedir}/ex-text.adoc[tag=b-lead]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-lead]
====
NOTE: The default Asciidoctor stylesheet automatically styles the first paragraph of the preamble as a lead paragraph.
.More Paragraph, Admonition and Literal Block Examples
****
See these sections in the Asciidoctor User Manual for more information and examples.
* {uri-para}[Paragraphs]
* {uri-literal}[Literal Text and Blocks]
* {uri-admon}[Admonitions]
****
== Formatted Text
.Bold, Italic, and Monospace
----
include::{includedir}/ex-text.adoc[tag=b-bold-italic-mono]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-bold-italic-mono]
====
.Monospace vs codespan
----
include::{includedir}/ex-text.adoc[tag=monospace-vs-codespan]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=monospace-vs-codespan]
====
NOTE: The meaning of backtick (`pass:[`]`) and plus (`+`) changed in Asciidoctor 1.5.0.
Backticks only make the text monospaced, whereas pluses passthrough text without applying formatting.
See the <<migration.adoc#,migration page>> for details.
.Marks and Custom Styling
----
include::{includedir}/ex-text.adoc[tag=css-all]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=css-all]
====
.Superscript and Subscript
----
include::{includedir}/ex-text.adoc[tag=b-sub-sup]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-sub-sup]
====
.Curved Quotation Marks and Apostrophes (Smart Quotes)
----
include::{includedir}/ex-text.adoc[tag=b-c-quote]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-c-quote]
====
.More Text Formatting Examples
****
See these sections in the Asciidoctor User Manual for more information and examples.
* {uri-bold}[Bold and Italic Formatting]
* {uri-quote}[Quotation Marks and Apostrophes]
* {uri-sub}[Subscript and Superscript]
* {uri-mono}[Monospace Formatting]
* {uri-css}[Custom Styling with Attributes]
* {uri-pass}[Passthrough Macros]
****
== Document Header
IMPORTANT: A header is optional.
CAUTION: The header may not contain blank lines and must be offset from the content by at least one blank line.
.Title only
----
include::{includedir}/ex-header-title.adoc[tag=b-base]
----
.Title and author line
----
include::{includedir}/ex-author.adoc[tag=b-base]
----
TIP: Asciidoctor allows multiple authors in the author line.
Use the semi-colon character to separate each author.
.Title, author line and revision line
----
include::{includedir}/ex-rev.adoc[tag=b-base]
----
IMPORTANT: You cannot have a revision line without an author line.
.Document header with attributes
----
include::{includedir}/ex-header-attr.adoc[tag=b-base]
----
[#section-titles]
== Section Titles (Headings)
.Article doctype
----
include::{includedir}/ex-section.adoc[tag=base]
----
[.result]
====
include::{includedir}/ex-section.adoc[tag=b-base]
====
WARNING: When using the article doctype (the default), you can only have one level-0 section title (i.e., the document title) and it must be in the document header.
NOTE: The number of equal signs matches the heading level in the HTML output.
For example, _Section Level 1_ becomes an `<h2>` heading.
.Book doctype
----
include::{includedir}/ex-section.adoc[tag=book]
----
[.result]
====
include::{includedir}/ex-section.adoc[tag=b-book]
====
////
IMPORTANT: There are two other ways to define a section title.
_Their omission is intentional_.
They both require more markup and are therefore unnecessary.
The https://en.wikipedia.org/wiki/Setext[setext] title syntax (underlined text) is especially wasteful, hard to remember, hard to maintain and error prone.
The reader never sees the extra markup, so why type it?
*Be frugal!*
////
.Explicit id
----
[#primitives-nulls]
== Primitive types and null values
----
.Section anchors and links (Asciidoctor only)
`sectanchors`::
When this document attribute is set, a section icon anchor appears in front of the section title.
`sectlinks`::
When this document attribute is set, the section titles become self-links.
This enables a reader to bookmark the section.
NOTE: Section title anchors depend on the default Asciidoctor stylesheet to render properly.
== Include Files
.Document parts
----
include::{includedir}/ex-include.adoc[tag=base]
----
CAUTION: Asciidoctor does not insert blank lines between adjacent include statements to keep the content separated.
Be sure to add a blank line in the source document to avoid unexpected results, such as a section title being swallowed.
.Include content from a URI
----
include::{includedir}/ex-include.adoc[tag=uri]
----
NOTE: Including content from a URI is potentially dangerous, so it's disabled if the safe mode is SECURE or greater.
Assuming the safe mode is less than SECURE, you must also set the `allow-uri-read` attribute to permit Asciidoctor to read content from a URI.
== Breaks
.Hard line break
----
include::{includedir}/ex-text.adoc[tag=hb-all]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=hb-all]
====
.Thematic break (aka horizontal rule)
----
include::{includedir}/ex-hr.adoc[tag=in-between]
----
[.result]
====
include::{includedir}/ex-hr.adoc[tag=in-between]
====
.Page break
----
<<<
----
== Lists
.Unordered, basic
----
include::{includedir}/ex-ulist.adoc[tag=base]
----
[.result]
====
include::{includedir}/ex-ulist.adoc[tag=base]
====
.Unordered, basic (alt)
----
include::{includedir}/ex-ulist.adoc[tag=base-alt]
----
[.result]
====
include::{includedir}/ex-ulist.adoc[tag=base-alt]
====
NOTE: A blank line is required before and after a list to separated it from other blocks.
TIP: You can force two adjacent lists apart by inserting a blank line followed by a line comment after the first list.
The convention is to use `//-` as the line comment to provide a hint to other authors that it's a list divider.
.Unordered, max nesting
----
include::{includedir}/ex-ulist.adoc[tag=max]
----
[.result]
====
include::{includedir}/ex-ulist.adoc[tag=max]
====
TIP: The unordered list marker can be changed using {uri-marker}[block styles].
.Ordered, basic
----
include::{includedir}/ex-o-list.adoc[tag=b-base]
----
[.result]
====
include::{includedir}/ex-o-list.adoc[tag=b-base]
====
NOTE: You can choose to include an ordinal in front of each list marker, but they have to be in sequence.
.Ordered, nested
----
include::{includedir}/ex-o-list.adoc[tag=nest]
----
[.result]
====
include::{includedir}/ex-o-list.adoc[tag=nest]
====
.Ordered, max nesting
----
include::{includedir}/ex-o-list.adoc[tag=max]
----
[.result]
====
include::{includedir}/ex-o-list.adoc[tag=max]
====
TIP: For ordered lists, Asciidoctor supports {uri-list-num}[numeration styles] such as `lowergreek` and `decimal-leading-zero`.
.Checklist
----
include::{includedir}/ex-ulist.adoc[tag=check]
----
[.result]
====
include::{includedir}/ex-ulist.adoc[tag=check]
====
TIP: Checklists can use {uri-checklist}[font-based icons and be interactive].
.Description, single-line
----
include::{includedir}/ex-dlist.adoc[tag=b-base]
----
[.result]
====
include::{includedir}/ex-dlist.adoc[tag=b-base]
====
.Description, multi-line
----
include::{includedir}/ex-dlist.adoc[tag=b-base-multi]
----
[.result]
====
include::{includedir}/ex-dlist.adoc[tag=b-base-multi]
====
.Q&A
----
include::{includedir}/ex-dlist.adoc[tag=qa]
----
[.result]
====
include::{includedir}/ex-dlist.adoc[tag=qa]
====
.Mixed
----
include::{includedir}/ex-dlist.adoc[tag=3-mix]
----
[.result]
====
include::{includedir}/ex-dlist.adoc[tag=3-mix]
====
TIP: Lists can be indented.
Leading whitespace is not significant.
.Complex content in outline lists
----
include::{includedir}/ex-ulist.adoc[tag=b-complex]
----
[.result]
====
include::{includedir}/ex-ulist.adoc[tag=b-complex]
====
== Links
.External
----
include::{includedir}/ex-url.adoc[tag=b-base]
----
[.result]
====
include::{includedir}/ex-url.adoc[tag=b-base]
====
.With spaces and special characters
----
include::{includedir}/ex-url.adoc[tag=b-spaces]
----
[.result]
====
include::{includedir}/ex-url.adoc[tag=b-spaces]
====
.Windows path
----
include::{includedir}/ex-url.adoc[tag=b-windows]
----
[.result]
====
include::{includedir}/ex-url.adoc[tag=b-windows]
====
.Relative
----
link:index.html[Docs]
----
[.result]
====
link:index.html[Docs]
====
.Email and IRC
----
include::{includedir}/ex-url.adoc[tag=b-scheme]
----
[.result]
====
include::{includedir}/ex-url.adoc[tag=b-scheme]
====
.Link with attributes (Asciidoctor only)
----
include::{includedir}/ex-url.adoc[tag=b-linkattrs]
----
[.result]
====
include::{includedir}/ex-url.adoc[tag=b-linkattrs]
====
NOTE: Links with attributes (including the subject and body segments on mailto links) are a feature unique to Asciidoctor.
To enable them prior to 1.5.7, you must set the `linkattrs` attribute on the document.
Since 1.5.7, attribute parsing is enabled automatically if an equal sign follows a comma.
When attribute parsing is enabled, you must quote the link text if it contains a comma.
.Inline anchors
----
include::{includedir}/ex-xref.adoc[tag=anchor]
----
[.result]
====
include::{includedir}/ex-xref.adoc[tag=anchor]
====
.Internal cross references
----
include::{includedir}/ex-xref.adoc[tag=b-base]
----
[.result]
====
include::{includedir}/ex-xref.adoc[tag=b-base]
====
.Inter-document cross references (Asciidoctor only)
----
include::{includedir}/ex-xref.adoc[tag=b-inter]
----
== Images
Images are resolved relative to the value of the {uri-imagesdir}[imagesdir] document attribute, which is empty by default.
You are encouraged to make use of the `imagesdir` attribute to avoid hard-coding the common path to your images in every image macro.
The `imagesdir` attribute can be an absolute path, relative path, or base URL.
When the image target is a URL or absolute path, the imagesdir prefix is _not_ prepended.
.Block
----
include::{includedir}/ex-image.adoc[tag=base]
include::{includedir}/ex-image.adoc[tag=alt]
include::{includedir}/ex-image.adoc[tag=attr]
include::{includedir}/ex-image.adoc[tag=ab-url]
----
[.result]
====
include::{includedir}/ex-image.adoc[tag=base]
include::{includedir}/ex-image.adoc[tag=alt]
include::{includedir}/ex-image.adoc[tag=attr]
include::{includedir}/ex-image.adoc[tag=ab-url]
====
.Inline
----
include::{includedir}/ex-image.adoc[tag=in]
----
[.result]
====
include::{includedir}/ex-image.adoc[tag=in]
====
IMPORTANT: Two colons following the image keyword in the macro (i.e., `image::`) indicates a block image (aka figure), whereas one colon following the image keyword (i.e., `image:`) indicates an inline image.
(All macros follow this pattern).
You use an inline image when you need to place the image in a line of text.
Otherwise, you should prefer the block form.
.Inline image with positioning role
----
include::{includedir}/ex-image.adoc[tag=in-role]
----
[.result]
====
include::{includedir}/ex-image.adoc[tag=in-role]
====
TIP: There are a variety of attributes available to {uri-image-attrs}[position and frame images].
.Embedded
----
include::{includedir}/ex-image.adoc[tag=data]
----
NOTE: When the `data-uri` attribute is set, all images in the document--including admonition icons--are embedded into the document as {uri-data-uri}[data URIs].
TIP: Instead of declaring the `data-uri` attribute in the document, you can pass it as a command-line argument using `-a data-uri`.
== Videos
.Block
----
include::{includedir}/ex-video.adoc[tag=base]
include::{includedir}/ex-video.adoc[tag=attr]
----
.Embedded Youtube video
----
include::{includedir}/ex-video.adoc[tag=you]
----
.Embedded Vimeo video
----
include::{includedir}/ex-video.adoc[tag=vim]
----
TIP: You can control the video settings using {uri-video}[additional attributes and options] on the macro.
== Source Code
.Inline (monospace only)
----
include::{includedir}/ex-text.adoc[tag=b-mono-code]
----
[.result]
====
include::{includedir}/ex-text.adoc[tag=b-mono-code]
====
.Inline (literal)
----
include::{includedir}/ex-pass.adoc[tag=backtick-plus]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=backtick-plus]
====
.Literal line
----
include::{includedir}/ex-literal.adoc[tag=b-imp-code]
----
[.result]
====
include::{includedir}/ex-literal.adoc[tag=b-imp-code]
====
.Literal block
----
include::{includedir}/ex-literal.adoc[tag=b-block]
----
[.result]
====
include::{includedir}/ex-literal.adoc[tag=b-block]
====
[listing]
.Listing block with title, no syntax highlighting
....
include::{includedir}/ex-listing.adoc[tag=b-base]
....
[.result]
====
include::{includedir}/ex-listing.adoc[tag=b-base]
====
[listing]
.Code block with title and syntax highlighting
....
include::{includedir}/ex-src.adoc[tag=src-base]
....
[.result]
====
include::{includedir}/ex-src.adoc[tag=src-base]
====
[listing,subs=specialchars]
.Code block with callouts
....
include::{includedir}/ex-callout.adoc[tag=b-src]
....
[.result]
====
include::{includedir}/ex-callout.adoc[tag=b-src]
====
[listing,subs=specialchars]
.Code block with non-selectable callouts
....
include::{includedir}/ex-callout.adoc[tag=b-nonselect]
....
[.result]
====
include::{includedir}/ex-callout.adoc[tag=b-nonselect]
====
[listing,subs=specialchars]
.XML code block with a non-selectable callout
....
include::{includedir}/ex-callout.adoc[tag=source-xml]
....
[.result]
====
include::{includedir}/ex-callout.adoc[tag=source-xml]
====
[listing]
.Code block sourced from file
....
include::{includedir}/ex-src.adoc[tag=src-inc]
....
[listing]
.Code block sourced from file relative to source directory
....
include::{includedir}/ex-src.adoc[tag=rel]
....
[listing]
.Strip leading indentation from source
....
include::{includedir}/ex-src.adoc[tag=ind]
....
[NOTE]
====
* When `indent` is 0, the leading block indent is stripped (tabs are replaced with 4 spaces).
* When `indent` is > 0, the leading block indent is first stripped (tabs are replaced with 4 spaces), then a block is indented by the number of columns equal to this value.
====
.Code block without delimiters (no blank lines)
----
include::{includedir}/ex-src.adoc[tag=src-para]
----
[.result]
====
include::{includedir}/ex-src.adoc[tag=src-para]
====
[IMPORTANT]
.Enabling the syntax highlighter
====
Syntax highlighting is enabled by setting the `source-highlighter` attribute in the document header or passed as an argument.
:source-highlighter: pygments
The valid options are `coderay`, `highlightjs`, `prettify`, and `pygments`.
====
== More Delimited Blocks
.Sidebar
----
include::{includedir}/ex-sidebar.adoc[tag=base]
----
[.result]
====
include::{includedir}/ex-sidebar.adoc[tag=base]
====
NOTE: Any block can have a title, positioned above the block.
A block title is a line of text that starts with a dot.
The dot cannot be followed by a space.
.Example
----
include::{includedir}/ex-example.adoc[tag=base]
----
[example.result]
--
include::{includedir}/ex-example.adoc[tag=base]
--
[#admon-bl]
.Admonition
----
include::{includedir}/ex-admon.adoc[tag=b-bl]
----
[.result]
=====
include::{includedir}/ex-admon.adoc[tag=b-bl]
=====
[TIP]
.Admonition and callout icons
====
Asciidoctor can "`draw`" icons using {uri-fontawesome}[Font Awesome^] and CSS.
To use this feature, set the value of the `icons` document attribute to `font`.
Asciidoctor will then emit HTML markup that selects an appropriate font character from the Font Awesome font for each admonition block.
Icons can also be used {uri-icon-in}[inline] and {uri-icon-attrs}[styled].
====
.Blockquote
----
include::{includedir}/ex-quote.adoc[tag=bl]
include::{includedir}/ex-quote.adoc[tag=para]
include::{includedir}/ex-quote.adoc[tag=no-cite]
include::{includedir}/ex-quote.adoc[tag=link-text]
----
[.result]
====
include::{includedir}/ex-quote.adoc[tag=bl]
include::{includedir}/ex-quote.adoc[tag=para]
include::{includedir}/ex-quote.adoc[tag=no-cite]
include::{includedir}/ex-quote.adoc[tag=link-text]
====
.Abbreviated blockquote (Asciidoctor only)
----
include::{includedir}/ex-quote.adoc[tag=abbr]
----
[.result]
====
include::{includedir}/ex-quote.adoc[tag=abbr]
====
.Air quotes: the best thing since fenced code blocks (Asciidoctor only)
----
include::{includedir}/ex-quote.adoc[tag=air]
----
[.result]
====
include::{includedir}/ex-quote.adoc[tag=air]
====
.Passthrough
----
include::{includedir}/ex-pass.adoc[tag=b-bl]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=b-bl]
====
.Open
----
include::{includedir}/ex-open.adoc[tag=base]
include::{includedir}/ex-open.adoc[tag=src]
----
[.result]
====
include::{includedir}/ex-open.adoc[tag=base]
include::{includedir}/ex-open.adoc[tag=src]
====
[listing]
.Custom substitutions
....
include::{includedir}/ex-listing.adoc[tag=subs]
....
[.result]
====
// the attribute value is hard-coded in this result since the example depends
// on a hypothetical document attribute
include::{includedir}/ex-listing.adoc[tag=subs-out]
====
== Block Id, Role and Options
.Traditional (longhand) markup method for assigning block id and role
----
[[goals]]
[role="incremental"]
* Goal 1
* Goal 2
----
.Shorthand markup method for assigning block id and role (Asciidoctor only)
----
[#goals.incremental]
* Goal 1
* Goal 2
----
[TIP]
====
* To specify multiple roles using the shorthand syntax, separate them by dots.
* The order of `id` and `role` values in the shorthand syntax does not matter.
====
.Traditional (longhand) markup method for assigning quoted text anchor (id) and role
----
[[free_the_world]][big goal]_free the world_
----
.Shorthand markup method for assigning quoted text anchor (id) and role (Asciidoctor only)
----
[#free_the_world.big.goal]_free the world_
----
.Role assigned to text enclosed in backticks
----
[.rolename]`monospace text`
----
.Traditional (longhand) markup method for assigning block options
----
[options="header,footer,autowidth"]
|===
|Cell A |Cell B
|===
----
.Shorthand markup method for assigning block options (Asciidoctor only)
----
[%header%footer%autowidth]
|===
|Cell A |Cell B
|===
----
== Comments
.Line
----
include::{includedir}/ex-comment.adoc[tag=line]
----
TIP: Single-line comments can be used to divide elements, such as two adjacent lists.
.Block
----
include::{includedir}/ex-comment.adoc[tag=bl]
----
== Tables
.Table with a title, three columns, a header, and two rows of content
----
include::{includedir}/ex-table.adoc[tag=b-base-h-co]
----
[.result]
====
include::{includedir}/ex-table.adoc[tag=b-base-h]
====
<1> Unless the `cols` attribute is specified, the number of columns is equal to the number of cell separator characters on the first (non-blank) line between the block delimiters.
<2> When a blank line follows the first non-blank line, the cell in the first line get promoted to the table header.
.Table with two columns, a header, and two rows of content
----
include::{includedir}/ex-table.adoc[tag=b-col-h-co]
----
[.result]
====
include::{includedir}/ex-table.adoc[tag=b-col-h]
====
<1> The `+*+` in the `cols` attribute is the repeat operator.
It means repeat the column specification across the remaining of columns.
In this case, we are repeating the default formatting across 2 columns.
When the cells in the header are not defined on a single line, you must use the `cols` attribute to set the number of columns in the table and the `%header` option (or `options=header` attribute) to promote the first row to the table header.
.Table with three columns, a header, and two rows of content
----
include::{includedir}/ex-table.adoc[tag=b-col-indv-co]
----
[.result]
====
include::{includedir}/ex-table.adoc[tag=b-col-indv]
====
<1> In this example, the `cols` attribute has two functions.
It specifies that this table has three columns, and it sets their relative widths.
.Table with column containing AsciiDoc content
----
include::{includedir}/ex-table.adoc[tag=b-col-a]
----
[.result]
====
include::{includedir}/ex-table.adoc[tag=b-col-a]
====
.Table from CSV data
----
include::{includedir}/ex-table-data.adoc[tag=csv]
----
[.result]
====
include::{includedir}/ex-table-data.adoc[tag=csv]
====
.Table from CSV data using shorthand (Asciidoctor only)
----
include::{includedir}/ex-table-data.adoc[tag=s-csv]
----
[.result]
====
include::{includedir}/ex-table-data.adoc[tag=s-csv]
====
.Table from CSV data in file
----
include::{includedir}/ex-table-data.adoc[tag=i-csv]
----
.Table from DSV data using shorthand (Asciidoctor only)
----
include::{includedir}/ex-table-data.adoc[tag=s-dsv]
----
[.result]
====
include::{includedir}/ex-table-data.adoc[tag=s-dsv]
====
.Table with formatted, aligned and merged cells
----
include::{includedir}/ex-table-cell.adoc[tag=b-spec]
----
[.result]
====
include::{includedir}/ex-table-cell.adoc[tag=b-spec]
====
== UI Macros
IMPORTANT: You *must* set the `experimental` attribute in the document header to enable these macros.
.Keyboard shortcuts (inline kbd macro)
----
include::{includedir}/ex-ui.adoc[tag=key]
----
[.result]
====
include::{includedir}/ex-ui.adoc[tag=key]
====
.Menu selections (inline menu macro)
----
include::{includedir}/ex-ui.adoc[tag=menu]
----
[.result]
====
include::{includedir}/ex-ui.adoc[tag=menu]
====
.Buttons (inline btn macro)
----
include::{includedir}/ex-ui.adoc[tag=button]
----
[.result]
====
include::{includedir}/ex-ui.adoc[tag=button]
====
== Attributes and Substitutions
.Attribute declaration and usage
----
include::{includedir}/ex-header-attr.adoc[tag=b-attr]
----
[.result]
====
// I have to use a nested doc hack here, otherwise the attributes won't resolve
[.unstyled]
|===
a|
include::{includedir}/ex-header-attr.adoc[tag=b-attr]
|===
====
.Attribute assignment precedence (highest to lowest)
- Attribute passed to the API or CLI that does not end in `@`
- Attribute defined in the document
- Attribute passed to the API or CLI that ends in `@`
- Intrinsic attribute value (default values)
TIP: To make an attribute value that is passed to the API or CLI have a lower precedence than an assignment in the document, add an `@` symbol to the end of the attribute value.
// Table of predefined attributes for character replacements
include::{includedir}/attrs-charref.adoc[tag=table]
// Table of environment attributes
include::{includedir}/attrs-env.adoc[tag=table]
.Named substitutions
include::{includedir}/subs-apply.adoc[tag=group]
.Counter attributes
----
include::{includedir}/ex-counter.adoc[tag=base]
----
[.result]
====
include::{includedir}/ex-counter.adoc[tag=base]
====
== Text Replacement
// Table of text replacements performed during replacements substitution
include::{includedir}/subs-symbol-repl.adoc[]
TIP: Any named, numeric or hexadecimal {uri-char-xml}[XML character reference] is supported.
== Escaping Text
.Backslash
----
include::{includedir}/ex-subs.adoc[tag=b-slash]
----
[.result]
====
include::{includedir}/ex-subs.adoc[tag=b-slash]
====
.Passthrough ("`plus for passthrough`")
----
include::{includedir}/ex-pass.adoc[tag=plus]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=plus]
====
////
.Double dollar
----
include::{includedir}/ex-pass.adoc[tag=b-dollar]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=b-dollar]
====
////
.Raw (triple plus and inline pass macro)
----
include::{includedir}/ex-pass.adoc[tag=b-3p-macro]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=b-3p-macro]
====
////
.Backticks
----
include::{includedir}/ex-pass.adoc[tag=b-tick]
----
[.result]
====
include::{includedir}/ex-pass.adoc[tag=b-tick]
====
////
== Table of Contents (ToC)
.Document with ToC
----
include::{includedir}/ex-toc.adoc[tag=base]
----
.Document with ToC positioned on the right
----
include::{includedir}/ex-toc.adoc[tag=pos]
----
TIP: The ToC {uri-toc}[title, levels, and positioning] can be customized.
== Bibliography
.Bibliography with inbound references
----
include::{includedir}/ex-biblio.adoc[tag=base]
----
[.result]
====
|===
a|
include::{includedir}/ex-biblio.adoc[tag=base]
|===
====
[#section-footnotes]
== Footnotes
.Normal and reusable footnotes
----
include::{includedir}/ex-footnote.adoc[tag=base]
----
[.result]
====
[.unstyled]
|===
a|
include::{includedir}/ex-footnote.adoc[tag=base]
|===
====
[#markdown-compatibility]
== Markdown Compatibility
Markdown compatible syntax is only available when using Asciidoctor.
.Markdown-style headings
----
include::{includedir}/ex-section.adoc[tag=md]
----
[.result]
====
include::{includedir}/ex-section.adoc[tag=b-md]
====
.Fenced code block with syntax highlighting
----
include::{includedir}/ex-src.adoc[tag=fence]
----
[.result]
====
include::{includedir}/ex-src.adoc[tag=fence]
====
.Markdown-style blockquote
----
include::{includedir}/ex-quote.adoc[tag=md]
----
[.result]
====
include::{includedir}/ex-quote.adoc[tag=md]
====
.Markdown-style blockquote with block content
----
include::{includedir}/ex-quote.adoc[tag=md-alt]
----
[.result]
====
include::{includedir}/ex-quote.adoc[tag=md-alt]
====
.Markdown-style horizontal rules
----
include::{includedir}/ex-hr.adoc[tag=md]
----
[.result]
====
include::{includedir}/ex-hr.adoc[tag=md]
====
== User Manual and Help
To learn more about Asciidoctor and its capabilities, check out the other {docs}[Asciidoctor guides] and its {user}[User Manual].
Also, don't forget to join the {uri-mailinglist}[Asciidoctor mailing list], where you can ask questions and leave comments.
.Origin content
[NOTE]
====
INFO: https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/
TIP: more: https://asciidoctor.org/docs/user-manual
====
= User HowTo convert
.If you need to convert only one file
[NOTE]
====
```
docker run --rm -v $(pwd):/documents/ registry.vlabs.uniwa.gr:5080/swarmlab-asciidoctor asciidoctor --safe -b html5 -a theme=flask -a toc2 -a toc-placement=right -o ./path/to/FILENAME.html ./path/from/FILENAME.adoc
```
Please note, there is a **.** in ./path
====
:hardbreaks:
{empty} +
{empty} +
{empty}
:!hardbreaks:
'''
.Reminder
[NOTE]
====
:hardbreaks:
Caminante, no hay camino,
se hace camino al andar.
Wanderer, there is no path,
the path is made by walking.
*Antonio Machado* Campos de Castilla
====