resources/asciidoctor/lib/cramped_include/extension.rb (9 lines of code) (raw):

# frozen_string_literal: true require 'asciidoctor/extensions' ## # Preprocessor to support more "cramped" include statements. Usually something # like # include::resources/1.adoc[] # include::resources/2.adoc[] # will result in syntax errors if 1.adoc ends in only a single new line. Things # like callout lists require that they be followed by an empty line or else # the thing below them will get sucked into the callout list. This isn't a # problem with asciidoc, and to be better compatible with it try and work around # this problem by adding an extra new line after every sequence of lines we # include. In theory this *shouldn't* bother us because we don't include things # that are sensitive to the extra line. # class CrampedInclude < Asciidoctor::Extensions::Preprocessor def process(_document, reader) def reader.prepare_lines(data, opts = {}) # The + here is important because it makes the string mutable which is # required by asciidoctor's reader in general and our compatibility # preprocessor specifically. super << +'' end reader end end