From 7efbabc4b2867f37e37b5e0656fa3000e3860dd4 Mon Sep 17 00:00:00 2001 From: Thomas Schraitle Date: Thu, 27 Sep 2018 08:19:31 +0200 Subject: [PATCH] Fix #58: Enforce para as first child in step This fix is needed to avoid non-para elements as a first child in step. Related issue for the styleguide: SUSE/doc-styleguide#84 --- geekodoc/rng/geekodoc5-flat.rnc | 69 ++++++++++--------- geekodoc/rng/geekodoc5.rnc | 15 ++-- .../tests/bad/article-procedure-step-para.xml | 11 +++ .../bad/procedure-informalfigure-in-step.xml | 15 ++++ geekodoc/tests/good/book.storage.admin.xml | 6 +- geekodoc/tests/good/procedure-step.xml | 42 +++++++++++ 6 files changed, 119 insertions(+), 39 deletions(-) create mode 100644 geekodoc/tests/bad/article-procedure-step-para.xml create mode 100644 geekodoc/tests/bad/procedure-informalfigure-in-step.xml create mode 100644 geekodoc/tests/good/procedure-step.xml diff --git a/geekodoc/rng/geekodoc5-flat.rnc b/geekodoc/rng/geekodoc5-flat.rnc index 665b618..e6824b6 100644 --- a/geekodoc/rng/geekodoc5-flat.rnc +++ b/geekodoc/rng/geekodoc5-flat.rnc @@ -162,38 +162,39 @@ div { | db.extension.blocks | db.admonition.blocks)* db.step.blocks = - db.para.blocks - | db.remark - | db.indexterm - | # TODO: Remove that (currently we have too much of that) - db.example - | db.figure - | db.informalexample - | db.informalfigure - | db.informaltable - | db.admonition.blocks - | db.graphic.blocks - | db.verbatim.blocks - | db.extension.blocks - | db.itemizedlist - | db.orderedlist - | db.simplelist - | db.variablelist - | db.calloutlist - | db.calloutlist - | db.annotation - | db.xi.include - | db.table - # no db.publishing.blocks, db.technical.blocks - # | db.formal.blocks - db.table - db.equation - # | db.informal.blocks - db.informaltable - db.informalequation - # | db.procedure - # | db.segmentedlist - # | db.glosslist - # | db.bibliolist - # | db.qandaset - # - - - - - + (db.para.blocks + | db.remark + | db.indexterm + | # TODO: Remove that (currently we have too much of that) + db.example + | db.figure + | db.informalexample + | db.informalfigure + | db.informaltable + | db.admonition.blocks + | db.graphic.blocks + | db.verbatim.blocks + | db.extension.blocks + | db.itemizedlist + | db.orderedlist + | db.simplelist + | db.variablelist + | db.calloutlist + | db.calloutlist + | db.annotation + | db.xi.include + | db.table + | db.screen) + # no db.publishing.blocks, db.technical.blocks + # | db.formal.blocks - db.table - db.equation + # | db.informal.blocks - db.informaltable - db.informalequation + # | db.procedure + # | db.segmentedlist + # | db.glosslist + # | db.bibliolist + # | db.qandaset + # - - - - + * } div { db.xlink.hrefreq.simple.link.attributes = @@ -10876,7 +10877,9 @@ div { element step { db.step.attlist, # db.step.info?, - ((db.step.blocks+, + db.remark?, + db.para, + ((db.step.blocks?, ((db.substeps | db.stepalternatives), db.step.blocks*)?, db.result?) | ((db.substeps | db.stepalternatives), diff --git a/geekodoc/rng/geekodoc5.rnc b/geekodoc/rng/geekodoc5.rnc index 612fb89..a100608 100644 --- a/geekodoc/rng/geekodoc5.rnc +++ b/geekodoc/rng/geekodoc5.rnc @@ -117,7 +117,7 @@ db.entry.model = db.step.blocks = - db.para.blocks + ( db.para.blocks | db.remark | db.indexterm # TODO: Remove that (currently we have too much of that) | db.example @@ -138,6 +138,7 @@ db.step.blocks = | db.annotation | db.xi.include | db.table + | db.screen # no db.publishing.blocks, db.technical.blocks #| db.formal.blocks - db.table - db.equation #| db.informal.blocks - db.informaltable - db.informalequation @@ -147,6 +148,7 @@ db.step.blocks = #| db.bibliolist #| db.qandaset # ---- + )* } div { @@ -1507,12 +1509,17 @@ include "docbookxi.rnc" element step { db.step.attlist, # db.step.info?, - ((db.step.blocks+, + db.remark?, + db.para, + ( + (db.step.blocks?, ((db.substeps | db.stepalternatives), db.step.blocks*)?, db.result?) - | ((db.substeps | db.stepalternatives), + | + ((db.substeps | db.stepalternatives), db.step.blocks*, - db.result?)) + db.result?) + ) } } diff --git a/geekodoc/tests/bad/article-procedure-step-para.xml b/geekodoc/tests/bad/article-procedure-step-para.xml new file mode 100644 index 0000000..45c3bf7 --- /dev/null +++ b/geekodoc/tests/bad/article-procedure-step-para.xml @@ -0,0 +1,11 @@ + + +
+ Procedure: para as first child of step + + + + + +
diff --git a/geekodoc/tests/bad/procedure-informalfigure-in-step.xml b/geekodoc/tests/bad/procedure-informalfigure-in-step.xml new file mode 100644 index 0000000..85efa4f --- /dev/null +++ b/geekodoc/tests/bad/procedure-informalfigure-in-step.xml @@ -0,0 +1,15 @@ + + + + A procedure with an invalid step + + + + + + + + + + diff --git a/geekodoc/tests/good/book.storage.admin.xml b/geekodoc/tests/good/book.storage.admin.xml index 5b94980..df63ce6 100644 --- a/geekodoc/tests/good/book.storage.admin.xml +++ b/geekodoc/tests/good/book.storage.admin.xml @@ -1,4 +1,5 @@ + Administration and Deployment GuideSUSE Enterprise StorageSES @@ -2892,8 +2893,7 @@ screen install-ses-admin - - + Do Not Run <command>zypper dup</command> or Reboot the Node After you prepare for the upgrade to SUSE Linux Enterprise Server 12 SP2 as suggested later in @@ -2902,6 +2902,7 @@ screen install-ses-admin correctly. + Upgrade the current SUSE Linux Enterprise Server to version 12 SP2. Refer to @@ -11018,6 +11019,7 @@ Superuser created successfully. + In order for Calamari to work correctly, the admin keyring needs to be diff --git a/geekodoc/tests/good/procedure-step.xml b/geekodoc/tests/good/procedure-step.xml new file mode 100644 index 0000000..e8df6d9 --- /dev/null +++ b/geekodoc/tests/good/procedure-step.xml @@ -0,0 +1,42 @@ + + + + A procedure with valid steps + + Just a remark before a para + A + + + B + A remark after the para + + + C + + + + + + D + + + + + + + + + + + + + E + + + + + + +