Block Processor Extension Example
- Purpose
 - 
Register a custom block style named
shoutthat uppercases all the words and converts periods to exclamation points. 
ShoutBlock
class ShoutBlock < Asciidoctor::Extensions::BlockProcessor
  PeriodRx = /\.(?= |$)/
  use_dsl
  named :shout
  on_context :paragraph
  name_positional_attributes 'vol'
  parse_content_as :simple
  def process parent, reader, attrs
    volume = ((attrs.delete 'vol') || 1).to_i
    create_paragraph parent, (reader.lines.map {|l| l.upcase.gsub PeriodRx, '!' * volume }), attrs
  end
end