= 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 <>. .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 <> 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 `

` 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 ====