Asciidoctor allows you to preprocess the entire source document. This is the opportunity to look for and process any preprocessor directives.
For an example, see the following extensions from the lab:
When we talk about the preprocessor, we should refer to these as directives instead of macros. That helps avoid confusion from syntax that is processed during parsing.