anchor.diff:  . Parsing: the raw sources content is read and analyzed to generate the internal representation, the AST (_abstract syntax tree_).
   . Processing: the AST is processed. For example to detect possible errors, add automatically generated content (toc), etc.
   . Output generation: once the final AST is set, it's again processed to generate the desired output.
  -For example, a sub-section of the AST representing a title with a paragraf will be converted into it's correspondent HTML or PDF output.
  +For example, a sub-section of the AST representing a title with a paragraph will be converted into it's correspondent HTML or PDF output.
   
   NOTE: Some liberty is taken to make the process easier to understand.
  -In truth, Asciidoctor has implementation details that divert from the 3 steps above.
  +In reality, Asciidoctor has implementation details that divert from the 3 steps above.
   
   The different extension types are called in different steps of the conversion process in the order shown in the table.
   Within each type:
  
positive.code: With the SHORT format, the attributes are not parsed, and the 'target' that is passed to your macro is the value between the brackets ("brown79").
  
  [[blockprocessor]]
  ===== Block Processors
  
  A block processor is very similar to a block macro processor.
  But in contrast to a block macro a block processor is called for a block having a certain name instead of a macro invocation.
  
negative.code: . Register your class to make Asciidoctorj converter aware of it.
  There several options depending on the use case.
  
  Asciidoctor provides eight types of extension points.
  Each extension point has an abstract class in Java that maps to the extension API in Ruby.
  
  // #31
  