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.
1345 lines
27 KiB
1345 lines
27 KiB
4 years ago
|
= 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:
|
||
|
|
||
|
|
||
|
include::header.adoc[]
|
||
|
|
||
|
{empty} +
|
||
|
|
||
|
|
||
|
|
||
|
[[cheat-Ascii]]
|
||
|
= Install (swarmlab-adoc)
|
||
|
|
||
|
https://git.swarmlab.io:3000/swarmlab/swarmlab-adoc[^]
|
||
|
|
||
|
|
||
|
[[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
|
||
|
====
|