From c6e936dec2fc0f0e4d15b7c6f7c4ed6934dd233a Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 30 Oct 2019 16:51:33 +0100 Subject: docbook reader: fix nesting of chapters and sections (#5864) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Set dbBook to true when traversing a chapter too. Currently, a `` in a chapter and in a `<section/>` below that chapter have the same level if they're not inside a `<book/>`. This can happen in a multi-file book project. Also see the example at https://tdg.docbook.org/tdg/4.5/chapter.html Co-authored-by: Félix Baylac-Jacqué <felix@alternativebit.fr> * Add docbook-chapter test This tests nested `<section/>` and makes sure `<title/>` in the first `<section/>` below `<chapter/>` is one level deeper than the `<chapter/>`'s `<title/>`, also when not inside a `<book/>`. Co-authored-by: Félix Baylac-Jacqué <felix@alternativebit.fr> --- test/Tests/Old.hs | 2 ++ test/docbook-chapter.docbook | 30 ++++++++++++++++++++++++++++++ test/docbook-chapter.native | 17 +++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 test/docbook-chapter.docbook create mode 100644 test/docbook-chapter.native (limited to 'test') diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs index d0a1e0e4f..45e40a830 100644 --- a/test/Tests/Old.hs +++ b/test/Tests/Old.hs @@ -85,6 +85,8 @@ tests pandocPath = [ testGroup "writer" $ writerTests' "docbook4" , test' "reader" ["-r", "docbook", "-w", "native", "-s"] "docbook-reader.docbook" "docbook-reader.native" + , test' "reader" ["-r", "docbook", "-w", "native", "-s"] + "docbook-chapter.docbook" "docbook-chapter.native" , test' "reader" ["-r", "docbook", "-w", "native", "-s"] "docbook-xref.docbook" "docbook-xref.native" ] diff --git a/test/docbook-chapter.docbook b/test/docbook-chapter.docbook new file mode 100644 index 000000000..68bb60e02 --- /dev/null +++ b/test/docbook-chapter.docbook @@ -0,0 +1,30 @@ +<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<!-- This matches the example from +https://tdg.docbook.org/tdg/4.5/section.html, sans sectioninfo and subtitle, as +they're currently not supported --> +<chapter><title>Test Chapter +This chapter uses recursive sections. +
+Like a Sect1 +This section is like a Sect1. +
Like a Sect2 +This section is like a Sect2. +
Like a Sect3 +This section is like a Sect3. +
Like a Sect4 +This section is like a Sect4. +
Like a Sect5 +This section is like a Sect5. +
Would be like a Sect6 +This section would be like a Sect6, if there was one. +
Would be like a Sect7 +This section would be like a Sect7, if there was one. +
+
+
+
+
+
+
+ diff --git a/test/docbook-chapter.native b/test/docbook-chapter.native new file mode 100644 index 000000000..396b6a21a --- /dev/null +++ b/test/docbook-chapter.native @@ -0,0 +1,17 @@ +Pandoc (Meta {unMeta = fromList []}) +[Header 1 ("",[],[]) [Str "Test",Space,Str "Chapter"] +,Para [Str "This",Space,Str "chapter",Space,Str "uses",Space,Str "recursive",Space,Str "sections."] +,Header 2 ("",[],[]) [Str "Like",Space,Str "a",Space,Str "Sect1"] +,Para [Str "This",Space,Str "section",Space,Str "is",Space,Str "like",Space,Str "a",Space,Str "Sect1."] +,Header 3 ("",[],[]) [Str "Like",Space,Str "a",Space,Str "Sect2"] +,Para [Str "This",Space,Str "section",Space,Str "is",Space,Str "like",Space,Str "a",Space,Str "Sect2."] +,Header 4 ("",[],[]) [Str "Like",Space,Str "a",Space,Str "Sect3"] +,Para [Str "This",Space,Str "section",Space,Str "is",Space,Str "like",Space,Str "a",Space,Str "Sect3."] +,Header 5 ("",[],[]) [Str "Like",Space,Str "a",Space,Str "Sect4"] +,Para [Str "This",Space,Str "section",Space,Str "is",Space,Str "like",Space,Str "a",Space,Str "Sect4."] +,Header 6 ("",[],[]) [Str "Like",Space,Str "a",Space,Str "Sect5"] +,Para [Str "This",Space,Str "section",Space,Str "is",Space,Str "like",Space,Str "a",Space,Str "Sect5."] +,Header 7 ("",[],[]) [Str "Would",Space,Str "be",Space,Str "like",Space,Str "a",Space,Str "Sect6"] +,Para [Str "This",Space,Str "section",Space,Str "would",Space,Str "be",Space,Str "like",Space,Str "a",Space,Str "Sect6,",Space,Str "if",Space,Str "there",Space,Str "was",Space,Str "one."] +,Header 8 ("",[],[]) [Str "Would",Space,Str "be",Space,Str "like",Space,Str "a",Space,Str "Sect7"] +,Para [Str "This",Space,Str "section",Space,Str "would",Space,Str "be",Space,Str "like",Space,Str "a",Space,Str "Sect7,",Space,Str "if",Space,Str "there",Space,Str "was",Space,Str "one."]] -- cgit v1.2.3