class Asciidoctor::Extensions::BlockProcessor
BlockProcessor implementations must extend BlockProcessor.
* …
* :default_attrs - A hash of attribute names and values used to seed the attributes hash (default: nil)
* :positional_attrs - A list of attribute names used to map positional attributes (default: nil)
* :content_model - The structure of the content supported in this block (default: :compound)
* :contexts - The blocks contexts on which this style can be used (default: [:paragraph, :open]
* :named - The name of the block (required: true)
Recognized options:
Get a move on.
[shout]
AsciiDoc example:
the returned block to :simple. Otherwise, set the content model to :compound.
the cloaked-context attribute is :paragraph. If it is, set the content model of
want to preserve the content model of the input, check whether the value of
If your custom block can be applied to a paragraph or delimited block, and you
parse those lines into blocks and append them to the returned block.
Block is :compound, and the Block contains at least one line, the parser will
If the process method returns an instance of Block, the content model of that
method to build a corresponding node in the document tree.
registered to handle this name and, if found, invokes its {Processor#process}
unrecognized name while parsing the document, it looks for a BlockProcessor
When Asciidoctor encounters a delimited block or paragraph with an
that have a custom name.
Public: BlockProcessors are used to handle delimited blocks and paragraphs
def initialize name = nil, config = {}
def initialize name = nil, config = {} super config @name = name || @config[:name] # assign fallbacks case @config[:contexts] when ::NilClass @config[:contexts] ||= [:open, :paragraph].to_set when ::Symbol @config[:contexts] = [@config[:contexts]].to_set else @config[:contexts] = @config[:contexts].to_set end # QUESTION should the default content model be raw?? @config[:content_model] ||= :compound end
def process parent, reader, attributes
def process parent, reader, attributes raise ::NotImplementedError, %(#{BlockProcessor} subclass #{self.class} must implement the ##{__method__} method) end