From 0fb8bcbfb7107b83c345dac1858aab02eeeb4302 Mon Sep 17 00:00:00 2001
From: David Steele
Date: Thu, 26 May 2016 09:34:03 -0400
Subject: [PATCH] Lists can now be used outside of p and text tags.
This allows for more flexible document structuring.
---
doc/lib/BackRestDoc/Common/Doc.pm | 6 +--
doc/lib/BackRestDoc/Common/DocConfig.pm | 2 +-
doc/lib/BackRestDoc/Html/DocHtmlElement.pm | 4 ++
doc/lib/BackRestDoc/Html/DocHtmlPage.pm | 10 +++++
.../BackRestDoc/Markdown/DocMarkdownRender.pm | 10 +++++
doc/resource/html/default.css | 13 ++++++
doc/xml/backlog.xml | 41 ++++++++++++-------
doc/xml/dtd/doc.dtd | 9 ++--
doc/xml/index.xml | 12 +++---
9 files changed, 80 insertions(+), 27 deletions(-)
diff --git a/doc/lib/BackRestDoc/Common/Doc.pm b/doc/lib/BackRestDoc/Common/Doc.pm
index f2cd7a1ef..64233e65d 100644
--- a/doc/lib/BackRestDoc/Common/Doc.pm
+++ b/doc/lib/BackRestDoc/Common/Doc.pm
@@ -7,8 +7,6 @@ use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
-# use Exporter qw(import);
-# our @EXPORT = qw();
use File::Basename qw(dirname);
use Scalar::Util qw(blessed);
@@ -124,7 +122,7 @@ sub parse
my %oOut;
my $iIndex = 0;
my $bText = $strName eq 'text' || $strName eq 'li' || $strName eq 'p' || $strName eq 'title' ||
- $strName eq 'summary' || $strName eq 'table-cell' || $strName eq 'table-column';
+ $strName eq 'summary' || $strName eq 'table-cell' || $strName eq 'table-column' || $strName eq 'list-item';
# Store the node name
$oOut{name} = $strName;
@@ -239,7 +237,7 @@ sub build
}
if ($$oDoc{name} eq 'p' || $$oDoc{name} eq 'title' || $$oDoc{name} eq 'summary' ||
- $$oDoc{name} eq 'table-cell' || $$oDoc{name} eq 'table-column')
+ $$oDoc{name} eq 'table-cell' || $$oDoc{name} eq 'table-column' || $$oDoc{name} eq 'list-item')
{
$$oOut{field}{text} = $oDoc;
}
diff --git a/doc/lib/BackRestDoc/Common/DocConfig.pm b/doc/lib/BackRestDoc/Common/DocConfig.pm
index 45dd5205a..107366f9b 100644
--- a/doc/lib/BackRestDoc/Common/DocConfig.pm
+++ b/doc/lib/BackRestDoc/Common/DocConfig.pm
@@ -584,7 +584,7 @@ sub helpCommandDocGet
$oSectionElement->textSet($$oCommandHash{&CONFIG_HELP_DESCRIPTION});
- # use Data::Dumper;
+ # use Data::doc;
# confess Dumper($oDoc->{oDoc});
if (defined($$oCommandHash{&CONFIG_HELP_OPTION}))
diff --git a/doc/lib/BackRestDoc/Html/DocHtmlElement.pm b/doc/lib/BackRestDoc/Html/DocHtmlElement.pm
index 9c8dcfb7a..0c077c158 100644
--- a/doc/lib/BackRestDoc/Html/DocHtmlElement.pm
+++ b/doc/lib/BackRestDoc/Html/DocHtmlElement.pm
@@ -29,6 +29,10 @@ use constant HTML_DIV => 'div';
push @EXPORT, qw(HTML_DIV);
use constant HTML_SPAN => 'span';
push @EXPORT, qw(HTML_SPAN);
+use constant HTML_UL => 'ul';
+ push @EXPORT, qw(HTML_UL);
+use constant HTML_LI => 'li';
+ push @EXPORT, qw(HTML_LI);
####################################################################################################################################
# CONSTRUCTOR
diff --git a/doc/lib/BackRestDoc/Html/DocHtmlPage.pm b/doc/lib/BackRestDoc/Html/DocHtmlPage.pm
index ecede273b..9faf35fab 100644
--- a/doc/lib/BackRestDoc/Html/DocHtmlPage.pm
+++ b/doc/lib/BackRestDoc/Html/DocHtmlPage.pm
@@ -399,6 +399,16 @@ sub sectionProcess
$oSectionBodyElement->add($oConfigElement);
}
}
+ # Add a list
+ elsif ($oChild->nameGet() eq 'list')
+ {
+ my $oList = $oSectionBodyElement->addNew(HTML_UL, 'list-unordered');
+
+ foreach my $oListItem ($oChild->nodeList())
+ {
+ $oList->addNew(HTML_LI, 'list-unordered', {strContent => $self->processText($oListItem->textGet())});
+ }
+ }
# Add a subsection
elsif ($oChild->nameGet() eq 'section')
{
diff --git a/doc/lib/BackRestDoc/Markdown/DocMarkdownRender.pm b/doc/lib/BackRestDoc/Markdown/DocMarkdownRender.pm
index 53c348fb3..9f14a4ffd 100644
--- a/doc/lib/BackRestDoc/Markdown/DocMarkdownRender.pm
+++ b/doc/lib/BackRestDoc/Markdown/DocMarkdownRender.pm
@@ -331,6 +331,16 @@ sub sectionProcess
# $oSectionBodyElement->add($oConfigElement);
# }
}
+ # Add a list
+ elsif ($oChild->nameGet() eq 'list')
+ {
+ $strMarkdown .= "\n";
+
+ foreach my $oListItem ($oChild->nodeList())
+ {
+ $strMarkdown .= "\n- " . $self->processText($oListItem->textGet());
+ }
+ }
# Add a subsection
elsif ($oChild->nameGet() eq 'section')
{
diff --git a/doc/resource/html/default.css b/doc/resource/html/default.css
index 17c600836..8c62ee77f 100644
--- a/doc/resource/html/default.css
+++ b/doc/resource/html/default.css
@@ -350,6 +350,19 @@ pre
/*.section-body-execute-output*/
+/*******************************************************************************
+Lists
+*******************************************************************************/
+ul.list-unordered
+{
+ margin-top: .5em;
+}
+
+li.list-unordered
+{
+ margin-top: .5em;
+}
+
/*******************************************************************************
Keywords
*******************************************************************************/
diff --git a/doc/xml/backlog.xml b/doc/xml/backlog.xml
index 706828db4..75ff0f100 100644
--- a/doc/xml/backlog.xml
+++ b/doc/xml/backlog.xml
@@ -79,9 +79,12 @@
Github Issue
-
Formalize this process and allow upgrades to new database versions.
-
Make sure that restore and expiration still work - perhaps new unit tests.
-
Add db-id param to restore and archive-get to specify a database.
+
Formalize this process and allow upgrades to new database versions:
+
+
+ Make sure that restore and expiration still work - perhaps new unit tests.
+ Add db-id param to restore and archive-get to specify a database.
+
This should also make it easy to throw a stanza does not exist error.
@@ -99,9 +102,12 @@
Github Issue
-
Two improvements:
-
Make sure recovery.conf has same ownership/mode as base path
-
Make sure base path has original ownership/permissions.
+
Two improvements:
+
+
+ Make sure recovery.conf has same ownership/mode as base path
+ Make sure base path has original ownership/permissions.
+
@@ -117,9 +123,12 @@
Github Issue
-
It's possible to have bogus settings in the configuration file since it is only checked for certain values.
-
Detect options that are placed in the wrong sections.
-
Detect options that do not exist.
+
It's possible to have bogus settings in the configuration file since it is only checked for certain values:
+
+
+ Detect options that are placed in the wrong sections.
+ Detect options that do not exist.
+
@@ -294,11 +303,15 @@
Github Issue
-
There are some use cases where would be valuable to use relative paths. However to avoid confusion it might be best to implement it like so:
-
-
relative paths would need to being with ./
-
--config would always be allowed to be relative
-
In the config file a new option 'relative-path' would enable relative paths for all other path options.
This would avoid strange effects for users who do not need this feature.
+
There are some use cases where would be valuable to use relative paths. However to avoid confusion it might be best to implement it like so:
+
+
+ relative paths would need to being with ./
+ --config would always be allowed to be relative
+ In the config file a new option 'relative-path' would enable relative paths for all other path options.
+
+
+
This would avoid strange effects for users who do not need this feature.