1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-01-18 04:58:51 +02:00

Add table render for Markdown format.

Contributed by Cynthia Shang.
This commit is contained in:
Cynthia Shang 2018-02-16 14:55:48 -05:00 committed by David Steele
parent ca52a0485e
commit 0e27060952
2 changed files with 63 additions and 2 deletions

View File

@ -302,7 +302,7 @@ sub sectionProcess
# Add descriptive text
elsif ($oChild->nameGet() eq 'p')
{
if (defined($strLastChild) && $strLastChild ne 'code-block')
if (defined($strLastChild) && $strLastChild ne 'code-block' && $strLastChild ne 'table')
{
$strMarkdown .= "\n";
}
@ -357,7 +357,60 @@ sub sectionProcess
{
$strMarkdown = trim($strMarkdown) . "\n\n" . $self->sectionProcess($oChild, $iDepth + 1);
}
# Check if the child can be processed by a parent
elsif ($oChild->nameGet() eq 'table')
{
my $oTableTitle;
if ($oChild->nodeTest('title'))
{
$oTableTitle = $oChild->nodeGet('title');
}
my $oHeader = $oChild->nodeGet('table-header');
my @oyColumn = $oHeader->nodeList('table-column');
if (defined($oTableTitle))
{
# Print the label (e.g. Table 1:) in front of the title if one exists
$strMarkdown .= "\n\n**" . ($oTableTitle->paramTest('label') ?
($oTableTitle->paramGet('label') . $self->processText($oTableTitle->textGet())) :
$self->processText($oTableTitle->textGet())) . "**\n\n";
}
else
{
$strMarkdown .= "\n\n";
}
my ($strHeaderText, $strHeaderIndicator);
for (my $iColCellIdx = 0; $iColCellIdx < @oyColumn; $iColCellIdx++)
{
my $strAlign = $oyColumn[$iColCellIdx]->paramGet("align", false, 'left');
$strHeaderText .= $self->processText($oyColumn[$iColCellIdx]->textGet()) .
(($iColCellIdx < @oyColumn - 1) ? " | " : "\n");
$strHeaderIndicator .= ($strAlign eq 'left' || $strAlign eq 'center') ? ":---" : "---";
$strHeaderIndicator .= ($strAlign eq 'right' || $strAlign eq 'center') ? "---:" : "";
$strHeaderIndicator .= ($iColCellIdx < @oyColumn - 1) ? " | " : "\n";
}
$strMarkdown .= $strHeaderText .$strHeaderIndicator;
# Build the rows
foreach my $oRow ($oChild->nodeGet('table-data')->nodeList('table-row'))
{
my @oRowCellList = $oRow->nodeList('table-cell');
for (my $iRowCellIdx = 0; $iRowCellIdx < @oRowCellList; $iRowCellIdx++)
{
my $oRowCell = $oRowCellList[$iRowCellIdx];
$strMarkdown .= $self->processText($oRowCell->textGet()) .
(($iRowCellIdx < @oRowCellList -1) ? " | " : "");
}
$strMarkdown .= "\n";
}
}
# Check if the child can be processed by a parent
else
{
# $self->sectionChildProcess($oSection, $oChild, $iDepth + 1);

View File

@ -153,6 +153,14 @@
<p>Allow code blocks to have a type. Currently this is only rendered in Markdown.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="shang.cynthia"/>
</release-item-contributor-list>
<p>Add table render for Markdown format.</p>
</release-item>
<release-item>
<p>Deploy historical documentation to <path>prior</path> rather than the root directory.</p>
</release-item>