AsciiDoc Basics

    +

    Bold, Italic, and Code Styles

    A bold *word*, a *bold phrase*, and bold c**hara**cter**s**.
    
    An italic _word_, an _italic phrase_, and italic c__hara__cter__s__.
    
    A monospace `word`, a `monospace phrase`, and monospace c``hara``cter``s``.
    
    `*_monospace bold italic phrase_*` and ``**__char__**``acter``**__s__**``

    Renders as:

    A bold word, a bold phrase, and bold characters.

    An italic word, an italic phrase, and italic characters.

    A monospace word, a monospace phrase, and monospace characters.

    monospace bold italic phrase and characters

    You can add multiple inline styles to text as long as the syntax is placed in the correct order.

    • Monospace syntax (`) is always the outermost formatting set.

    • Bold syntax (*) must be outside the italic formatting set.

    • Italic syntax (_) is always the innermost formatting set.

    To mark up code blocks, include example files, and add callouts, see Code Blocks and Callouts.

    Button, Keyboard, and Menu UI Macros

    Click the btn:[Submit] button.
    
    Press kbd:[esc] to exit insert mode.
    
    You can cancel a running query by using the kbd:[Ctrl+C] keys.
    
    In the tool bar, select menu:File[Save].
    
    Select menu:View[Zoom > Reset] to reset the zoom level.

    Renders as:

    Click the Submit button.

    Press esc to exit insert mode.

    You can cancel a running query by using the Ctrl+C keys.

    In the tool bar, select File  Save.

    Select View  Zoom  Reset to reset the zoom level.

    URLs

    URLs that begin with one of the common schemes (http, https, ftp, irc, mailto, or any email address) are turned into links automatically. You can specify the link text in square brackets immediately after the URL. Avoid using the link: macro — you’ll only need it in rare circumstances, such as for links with unusual schemes.

    Links to external websites should all open in a new tab, so that readers don’t leave our documentation. To specify this, end the link text with a caret ^.

    Don’t use URLs or system paths to link between docs.couchbase.com documents. Document-to-document links are created with cross references to ensure domain, component, and version portability.

    File bugs at https://issues.couchbase.com.
    
    Join the https://gitter.im/antora/users[Antora chat room^] to meet and get help from the community.

    Renders as:

    Join the Antora chat room to meet and get help from the community.

    Escaping URLs

    When a URL should be inactive, you can escape it by placing a backslash (\) directly in front of it. To style and escape a URL, use the + passthrough inside any inline style markup.

    If it is not specified, the default URL \http://localhost:8091 is used.
    
    If it is not specified, the default URL `+http://localhost:8091+` is used.

    Renders as:

    If it is not specified, the default URL http://localhost:8091 is used.

    If it is not specified, the default URL http://localhost:8091 is used.

    URL Best Practices

    • Always use the secure https:// scheme for external webpage links.

    • Escape http://localhost URLs in regular text so they don’t become links.

    • Create attributes for long URLs to improve the source readability for other contributors.

    • Create attributes for URLs that contain sets of symbols, such as multiple underscores (_) and backticks (`), that could be misinterpreted as inline markup.

    • Create attributes for URLs used several times on the same page.

    • Don’t use URLs for linking between documentation pages or to in-page anchors.

    Checklists

    * [*] checked
    * [x] also checked
    * [ ] not checked

    Renders as:

    • checked

    • also checked

    • not checked

    Description Lists

    Bucket:: A drop-down menu that displays the name of the bucket whose documents are currently being viewed.
    You can use the drop-down menu to select other available buckets.
    Limit:: The maximum number of rows (documents) to retrieve and display at once.
    Document ID:: Accepts the ID of a specific document.
    Leave this field blank to retrieve documents based on *Limit* and *Offset*.

    Renders as:

    Bucket

    A drop-down menu that displays the name of the bucket whose documents are currently being viewed. You can use the drop-down menu to select other available buckets.

    Limit

    The maximum number of rows (documents) to retrieve and display at once.

    Document ID

    Accepts the ID of a specific document. Leave this field blank to retrieve documents based on Limit and Offset.

    Description list with compound content
    term 1::
    This description needs two paragraphs.
    To attach them both to term 1, use a list continuation (`+`) on the line separating the paragraphs.
    +
    This is the second paragraph for term 1.
    
    term 2::
    This description includes an admonition block.
    Like additional paragraphs, blocks also need to be connected with a `+`.
    +
    NOTE: An admonition block that is part of term 2's description.
    
    term 3::
    * unordered list item
    .. ordered list item
    ... another ordered list item

    Renders as:

    term 1

    This description needs two paragraphs. To attach them both to term 1, use a list continuation (+) on the line separating the paragraphs.

    This is the second paragraph for term 1.

    term 2

    This description includes an admonition block. Like additional paragraphs, blocks also need to be connected with a +.

    An admonition block that is part of term 2’s description.
    term 3
    • unordered list item

      1. ordered list item

        1. another ordered list item

    Ordered Lists

    Ordered list with nested levels
    . Step 1, Level 1
    .. Step 1, Level 2
    ... Step 1, Level 3
    .... Step 1, Level 4
    ..... Step 1, Level 5
    . Step 2

    Renders as:

    1. Step 1, Level 1

      1. Step 1, Level 2

        1. Step 1, Level 3

          1. Step 1, Level 4

            1. Step 1, Level 5

    2. Step 2

    Unordered Lists

    Unordered list with nested levels
    * Level 1
    ** Level 2
    *** Level 3
    **** Level 4
    ***** Level 5
    * Level 1

    Renders as:

    • Level 1

      • Level 2

        • Level 3

          • Level 4

            • Level 5

    • Level 1

    Navigation files also use the unordered list syntax.

    Images

    The block image macro (image::[]) and the inline image macro (image:[]) accept SVG, PNG, JPG/JPEG, and GIF file formats.

    Block images, indicated by two colons (::), are entered on their own line and displayed on their own line. Optional attributes and values are entered inside the macro’s attribute list ([]). In the block image example, the first positional value is empty, so the opening square bracket ([) is directly followed by a comma (,). The second positional value, 280, indicates the maximum width of the image. The next attribute, align, and its assigned value left, places the image against the left page margin.

    If the macro’s attribute list is empty (e.g., image::filename.jpg[]), the image is displayed at its original size and centered on the page.

    Block image
    image::console-login.png[,280,align=left]

    Renders as:

    console login

    The inline image macro, indicated by a single colon (:), is used for displaying small images and icons directly in the flow of a sentence.

    Inline image
    Click the image:edit.svg[,16] icon.

    Renders as:

    Click the edit icon.

    Admonitions

    There are five built-in admonition labels.

    • NOTE

    • TIP

    • IMPORTANT

    • CAUTION

    • WARNING

    Basic admonitions
    TIP: Positional parameters are set using the `-args` query parameter.
    
    NOTE: Once a node has been successfully added, the Couchbase Server cluster indicates that a rebalance is required to complete the operation.
    
    IMPORTANT: The node names passed to the `nodes` parameter must include the cluster administration port (by default 8091).
    For example `WITH {"nodes": ["192.0.2.0:8091"]}` instead of `WITH {"nodes": ["192.0.2.0"]}`.
    
    WARNING: Never stop or restart Couchbase Server before you first remove that node from a cluster.
    
    CAUTION: Don't stick forks in power sockets.

    Renders as:

    Positional parameters are set using the -args query parameter.
    Once a node has been successfully added, the Couchbase Server cluster indicates that a rebalance is required to complete the operation.
    The node names passed to the nodes parameter must include the cluster administration port (by default 8091). For example WITH {"nodes": ["192.0.2.0:8091"]} instead of WITH {"nodes": ["192.0.2.0"]}.
    Never stop or restart Couchbase Server before you first remove that node from a cluster.
    Don’t stick forks in power sockets.
    Compound admonition
    [IMPORTANT]
    .Optional Title
    ====
    Use an example block to create an admonition that contains compound content, such as:
    
    * Lists
    * Multiple paragraphs
    * Source code
    ====

    Renders as:

    Optional Title

    Use an example block to create an admonition that contains compound content, such as:

    • Lists

    • Multiple paragraphs

    • Source code

    A compound admonition is any admonition block that contains more than one paragraph or contains a block other than a paragraph. The contents of the block must be wrapped in the example block delimiters and the admonition type must be assigned as the block style.

    Footnotes

    To avoid disrupting the flow of the text to include addendum information, you can tuck the information away in a footnote. You make footnotes using the footnote macro.

    This sentence is followed by a footnote.footnote:fn-1[This is the footnote text.]
    When the document is converted, a number will appear in place of the footnote.
    The reader can use the footnote number to navigate to and from the footnote.
    
    This sentence is followed by the same footnote.footnote:fn-1[]

    Renders as:

    This sentence is followed by a footnote.[1] When the document is converted, a number will appear in place of the footnote. The reader can use the footnote number to navigate to and from the footnote.

    This sentence is followed by the same footnote.[1]

    The ID, which is specified using the target slot of the macro, is optional. By assigning an ID (e.g., fn-1), you can reuse the footnote multiple times in the document, as show in the above example. You only have to specify the footnote text on the first occurrence. The text can be filled in using an attribute reference.

    Tables

    Tables are delimited by |=== (a vertical bar followed by three equals signs). The number of columns in a table is determined by the number of cells found in the first non-blank line after the table delimiter (|===) or by the values assigned to the cols attribute. A new cell is created each time the processor encounters a vertical bar (|). Cells are grouped into rows. Each row must share the same number of cells, taking into account any column or row spans.

    Table with implicit column value and header row
    |=== (1)
    |Name of Column 1 |Name of Column 2 (2) (3)
    
    |Cell in column 1, row 1
    |Cell in column 2, row 1 (4)
    
    |Cell in column 1, row 2 |Cell in column 2, row 2 (5)
    |===
    1 A table is delimited by |===.
    2 When a cell, marked by a vertical bar (|), is placed on the line directly below the delimiter, it is interpreted as a header row.
    3 The number of cells found in the header row indicates the number of columns (sets cols implicitly).
    4 The cells in a row can be entered on separate lines.
    5 The cells in a row can be entered on the same line.

    Renders as:

    Name of Column 1 Name of Column 2

    Cell in column 1, row 1

    Cell in column 2, row 1

    Cell in column 1, row 2

    Cell in column 2, row 2

    Since tables are AsciiDoc block elements they can have titles, roles, IDs, as well as table-specific attributes.

    Table with title, ID, cols, and options="header"
    .Optional title
    [#optional-id,cols="1,1,2",options="header"] (1) (2) (3) (4)
    |===
    
    |Name of Column 1
    |Name of Column 2
    |Name of Column 3
    
    |Cell in column 1, row 1
    |Cell in column 2, row 1
    |Cell in column 3, row 1
    
    |Cell in column 1, row 2
    |Cell in column 2, row 2
    |Cell in column 3, row 2
    |===
    1 If assigned, an ID must be set first in the table’s attribute list.
    2 The number of values assigned to cols indicates the number of columns, in this case, the table has three columns.
    3 The proportion of each value assigned to cols relative to its other values indicates the width of each column. In this example, column 1 and column 2 will be half the width of column 3.
    4 To make the first row a header row, assign header to the options attribute.

    Renders as:

    Table 1. Optional title
    Name of Column 1 Name of Column 2 Name of Column 3

    Cell in column 1, row 1

    Cell in column 2, row 1

    Cell in column 3, row 1

    Cell in column 1, row 2

    Cell in column 2, row 2

    Cell in column 3, row 2

    Here’s an example of a table with a title, implicit header row, and the proportional width of the two columns set.

    .CLI parameters for adding a node
    [cols="1,2"]
    |===
    |Parameter |Description
    
    |`--cluster`
    |The IP address of a node in the existing cluster.
    
    |`--user`
    |The username for the existing cluster.
    
    |`--password`
    |The password for the existing cluster.
    |===

    Renders as:

    Table 2. CLI parameters for adding a node
    Parameter Description

    --cluster

    The IP address of a node in the existing cluster.

    --user

    The username for the existing cluster.

    --password

    The password for the existing cluster.

    Block Elements in Tables

    Any block-level elements, such as code blocks, lists, admonitions, etc., can be entered into a cell. However, the specifier a (which stands for AsciiDoc) must be placed on the cell, row, or column in order for them to be processed as AsciiDoc blocks. In the following example, the a specifier is placed on the cells containing block elements.

    .cbq Shell Commands
    [#table-cbq-shell-commands,cols="1,2,4"]
    |===
    |Shell Command |Arguments |Description and Examples
    
    |`\SET`
    |`parameter=prefix:variable name`
    a|
    Sets the top most value of the stack for the given variable with the specified value.
    
    Variables can be of the following types:
    
    [#set-var-types]
    * Query parameters
    * Session variables
    * User-defined
    * Pre-defined and named parameters.
    
    |`\PUSH`
    |`parameter value`
    a|
    Pushes the specified value on to the given parameter stack.
    
    ----
    cbq> \PUSH -args  [8];
    ----
    
    .Resulting variable stack
    ----
    cbq> \SET;
     Query Parameters :
     Parameter name : args
     Value : [[6,7] [8] [8]]
    ...
    cbq>
    ----
    |===

    Renders as:

    Table 3. cbq Shell Commands
    Shell Command Arguments Description and Examples

    \SET

    parameter=prefix:variable name

    Sets the top most value of the stack for the given variable with the specified value.

    Variables can be of the following types:

    • Query parameters

    • Session variables

    • User-defined

    • Pre-defined and named parameters.

    \PUSH

    parameter value

    Pushes the specified value on to the given parameter stack.

    cbq> \PUSH -args  [8];
    Resulting variable stack
    cbq> \SET;
     Query Parameters :
     Parameter name : args
     Value : [[6,7] [8] [8]]
    ...
    cbq>

    Column and Row Spans

    The span factor is the number of columns or rows, including the starting row or column, the cell should span.

    • To have a cell span multiple columns, place the span factor and + operator directly before the | of the starting cell.

    • To span multiple rows, place a dot (.) directly before the span factor and + operator.

    |===
    
    |Cell in column 1, row 1 |Cell in column 2, row 1 |Cell in column 3, row 1
    
    3+|Content in a single cell that spans columns 1, 2, and 3
    
    |Cell in column 1, row 3
    |Cell in column 2, row 3
    |Cell in column 3, row 3
    
    .2+|Content in a single cell that spans rows 4 and 5
    |Cell in column 2, row 4
    |Cell in column 3, row 4
    
    |Cell in column 2, row 5
    |Cell in column 3, row 5
    |===

    Renders as:

    Cell in column 1, row 1

    Cell in column 2, row 1

    Cell in column 3, row 1

    Content in a single cell that spans columns 1, 2, and 3

    Cell in column 1, row 3

    Cell in column 2, row 3

    Cell in column 3, row 3

    Content in a single cell that spans rows 4 and 5

    Cell in column 2, row 4

    Cell in column 3, row 4

    Cell in column 2, row 5

    Cell in column 3, row 5

    Table Widths

    The default width for a table is set to 100%. There are three ways to override this default:

    • Set the width explicitly (in percentage) using the width attribute (e.g., width=50%)

    • Set the autowidth option so that table only expands to accommodate the contents (e.g., %autowidth)

    • Assign a role to the table to allow the width to be controlled by CSS using presets (e.g., .narrow)

    For more information, see the Asciidoctor table width documentation.

    Table Attributes and Options

    There are a lot of AsciiDoc table attributes, options, and specifiers. For more examples and information, see the Asciidoctor table documentation.

    Additional Resources

    You can find more AsciiDoc examples in the Pages category of the Antora documentation.


    1. This is the footnote text.