$ curl 'http://localhost:8080/' -i
diff --git a/spring-restdocs-asciidoctor-support/src/main/resources/extensions/operation_block_macro.rb b/spring-restdocs-asciidoctor-support/src/main/resources/extensions/operation_block_macro.rb index a15ee805..8b37bc63 100644 --- a/spring-restdocs-asciidoctor-support/src/main/resources/extensions/operation_block_macro.rb +++ b/spring-restdocs-asciidoctor-support/src/main/resources/extensions/operation_block_macro.rb @@ -48,9 +48,15 @@ class OperationBlockMacro < Asciidoctor::Extensions::BlockMacroProcessor def add_blocks(content, doc, parent) options = { safe: doc.options[:safe], attributes: doc.attributes } fragment = Asciidoctor.load content, options + # use a template to get the correct sectname and level for blocks to append + template = create_section(parent, '', {}) fragment.blocks.each do |b| b.parent = parent - b.level += parent.level + # might be a standard block and no section in case of 'No snippets were found for operation' + if b.respond_to?(:sectname) + b.sectname = template.sectname + end + b.level = template.level parent << b end parent.find_by.each do |b| diff --git a/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/AbstractOperationBlockMacroTests.java b/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/AbstractOperationBlockMacroTests.java index 31bbda40..369c8266 100644 --- a/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/AbstractOperationBlockMacroTests.java +++ b/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/AbstractOperationBlockMacroTests.java @@ -117,9 +117,8 @@ public abstract class AbstractOperationBlockMacroTests { @Test public void includeSnippetInSection() throws Exception { - String result = this.asciidoctor.convert( - "= A\n\nAlpha\n\n== B\n\nBravo\n\n" + "operation::some-operation[snippets='curl-request']", - this.options); + String result = this.asciidoctor.convert("= A\n:doctype: book\n:sectnums:\n\nAlpha\n\n== B\n\nBravo\n\n" + + "operation::some-operation[snippets='curl-request']\n\n== C\n", this.options); assertThat(result).isEqualTo(getExpectedContentFromFile("snippet-in-section")); } diff --git a/spring-restdocs-asciidoctor/src/test/resources/operations/snippet-in-section.html b/spring-restdocs-asciidoctor/src/test/resources/operations/snippet-in-section.html index 0bc6f272..a8ec3f47 100644 --- a/spring-restdocs-asciidoctor/src/test/resources/operations/snippet-in-section.html +++ b/spring-restdocs-asciidoctor/src/test/resources/operations/snippet-in-section.html @@ -6,18 +6,24 @@
Bravo
$ curl 'http://localhost:8080/' -i