# File lib/asciidoctor/substitutors.rb, line 1178 def parse_attributes(attrline, posattrs = ['role'], opts = {}) return unless attrline return {} if attrline.empty? attrline = @document.sub_attributes(attrline) if opts[:sub_input] && (attrline.include? ATTR_REF_HEAD) attrline = unescape_bracketed_text(attrline) if opts[:unescape_input] # substitutions are only performed on attribute values if block is not nil block = opts.fetch(:sub_result, true) ? self : nil if (into = opts[:into]) AttributeList.new(attrline, block).parse_into(into, posattrs) else AttributeList.new(attrline, block).parse(posattrs) end end