1
0
mirror of https://github.com/erusev/parsedown.git synced 2023-08-10 21:13:06 +03:00

Permit 1 column tables with less delimiters

This commit is contained in:
Aidan Woods 2018-03-26 20:37:21 +01:00
parent ae13290221
commit 00e51ee424
No known key found for this signature in database
GPG Key ID: 9A6A8EFAA512BBB9
3 changed files with 163 additions and 100 deletions

View File

@ -835,8 +835,19 @@ class Parsedown
return; return;
} }
if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') if (
strpos($Block['element']['text'], '|') === false
and strpos($Line['text'], '|') === false
and strpos($Line['text'], ':') === false
) {
return;
}
if (chop($Line['text'], ' -:|') !== '')
{ {
return;
}
$alignments = array(); $alignments = array();
$divider = $Line['text']; $divider = $Line['text'];
@ -852,7 +863,7 @@ class Parsedown
if ($dividerCell === '') if ($dividerCell === '')
{ {
continue; return;
} }
$alignment = null; $alignment = null;
@ -881,6 +892,11 @@ class Parsedown
$headerCells = explode('|', $header); $headerCells = explode('|', $header);
if (count($headerCells) !== count($alignments))
{
return;
}
foreach ($headerCells as $index => $headerCell) foreach ($headerCells as $index => $headerCell)
{ {
$headerCell = trim($headerCell); $headerCell = trim($headerCell);
@ -933,7 +949,6 @@ class Parsedown
return $Block; return $Block;
} }
}
protected function blockTableContinue($Line, array $Block) protected function blockTableContinue($Line, array $Block)
{ {
@ -942,7 +957,7 @@ class Parsedown
return; return;
} }
if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) if (count($Block['alignments']) === 1 or $Line['text'][0] === '|' or strpos($Line['text'], '|'))
{ {
$Elements = array(); $Elements = array();
@ -953,7 +968,9 @@ class Parsedown
preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches);
foreach ($matches[0] as $index => $cell) $cells = array_slice($matches[0], 0, count($Block['alignments']));
foreach ($cells as $index => $cell)
{ {
$cell = trim($cell); $cell = trim($cell);

View File

@ -35,3 +35,35 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<hr />
<table>
<thead>
<tr>
<th style="text-align: left;">header 1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">cell 1.1</td>
</tr>
<tr>
<td style="text-align: left;">cell 2.1</td>
</tr>
</tbody>
</table>
<hr />
<table>
<thead>
<tr>
<th>header 1</th>
</tr>
</thead>
<tbody>
<tr>
<td>cell 1.1</td>
</tr>
<tr>
<td>cell 2.1</td>
</tr>
</tbody>
</table>

View File

@ -9,3 +9,17 @@ header 1 | header 2
:------- | -------- :------- | --------
cell 1.1 | cell 1.2 cell 1.1 | cell 1.2
cell 2.1 | cell 2.2 cell 2.1 | cell 2.2
---
header 1
:-------
cell 1.1
cell 2.1
---
header 1
-------|
cell 1.1
cell 2.1