Document Attributes
You can think of a document attribute as a global variable for the AsciiDoc language.
What are document attributes?
Document attributes are a powerful text replacement tool and means of controlling built-in settings and behavior for a whole document or regions of a document.
Document attributes:
- 
Turn on or turn off built-in features
 - 
Configure built-in features
 - 
Declare built-in asset locations
 - 
Hold content for reuse throughout a document
 
Types of document attributes
Document attributes fall into the following groups.
- Built-in attributes
 - 
Built-in attributes add, configure, and control common features in a document. Many built-in attributes only take effect when defined in the document header with an attribute entry.
 - Boolean attributes
 - 
Boolean attributes are a subgroup of the built-in attribute. They don’t have an explicitly assigned value because they act like a toggle. Their sole function is to turn on or turn off a feature.
 - User-defined attributes
 - 
TBA
 
What does defining a document attribute mean?
- 
have default values in the case of built-in attributes
 - 
have no value in the case of boolean attributes and built-in attributes with default values
 - 
have a single line value
 - 
have a value that spans multiple, contiguous lines
 - 
have a value that includes basic inline AsciiDoc syntax, such as:
- 
attribute references
 - 
text formatting (if wrapped in a pass macro)
 - 
inline macros (if wrapped in a pass macro)
 
 - 
 
But there are certain limitations to be aware of. Document attributes cannot:
- 
have a value that includes AsciiDoc block content, such as:
- 
lists
 - 
multiple paragraphs
 - 
blocks (tables, sidebars, examples, etc)
 - 
other whitespace-dependent markup
 
 - 
 
What does unsetting a document attribute mean?
- 
be unset (turned off) with a leading (preferred) or trailing
!added to the name 
Where are document attributes set, defined, and unset?
Document attributes can be declared in the:
- 
document header as an attribute entry
 - 
document body as an attribute entry
 - 
API via the
:attributesoption - 
CLI via the
-aoption - 
override locked attributes assigned from the command line