*/
private static $alignments = [
'left' => ':--',
'right' => '--:',
'center' => ':-:',
];
/** @var array|null */
private $columnAlignments = [];
/** @var string|null */
private $caption = null;
public function setConfig(Configuration $config): void
{
$this->config = $config;
}
public function preConvert(ElementInterface $element): void
{
$tag = $element->getTagName();
// Only table cells and caption are allowed to contain content.
// Remove all text between other table elements.
if ($tag === 'th' || $tag === 'td' || $tag === 'caption') {
return;
}
foreach ($element->getChildren() as $child) {
if ($child->isText()) {
$child->setFinalMarkdown('');
}
}
}
public function convert(ElementInterface $element): string
{
$value = $element->getValue();
switch ($element->getTagName()) {
case 'table':
$this->columnAlignments = [];
if ($this->caption) {
$side = $this->config->getOption('table_caption_side');
if ($side === 'top') {
$value = $this->caption . "\n" . $value;
} elseif ($side === 'bottom') {
$value .= $this->caption;
}
$this->caption = null;
}
return $value . "\n";
case 'caption':
$this->caption = \trim($value);
return '';
case 'tr':
$value .= "|\n";
if ($this->columnAlignments !== null) {
$value .= '|' . \implode('|', $this->columnAlignments) . "|\n";
$this->columnAlignments = null;
}
return $value;
case 'th':
case 'td':
if ($this->columnAlignments !== null) {
$align = $element->getAttribute('align');
$this->columnAlignments[] = self::$alignments[$align] ?? '---';
}
$value = \str_replace("\n", ' ', $value);
$value = \str_replace('|', \strval($this->config->getOption('table_pipe_escape') ?? '\|'), $value);
return '| ' . \trim($value) . ' ';
case 'thead':
case 'tbody':
case 'tfoot':
case 'colgroup':
case 'col':
return $value;
default:
return '';
}
}
/**
* @return string[]
*/
public function getSupportedTags(): array
{
return ['table', 'tr', 'th', 'td', 'thead', 'tbody', 'tfoot', 'colgroup', 'col', 'caption'];
}
}
__halt_compiler();----SIGNATURE:----nf8+qgTLSSVViW9ItX35/63A7yVVLV19wHZyOEZnZnBRLc55Ps2VPVf24HxgkJJbWwDcpSEXhO3bKjcUFp+kxaqfyeNQSo0JrUTz2qXQGKdp3bUUM2Q/jjyLYxCKty/DKgXbYBOiYLLcvoyhZC4hEUVHJetL8zb1uXz55V83W2UV3zZsL45C4D8bq0G2ywzkckRhNezlbOo1yjaCBT1Ga7Ccs5guuJdoXLEdyzeYQvaFwy+0Lk0VCVMQpAyS3Ojob5D5rIFFb+6sfJA1sVivNz1JrR2aDUiRec+jPy08p36zh1V283l2iRc7I7jRQ9N16E9LoOtB6pkRBjjzhUUBRvARUmFDIX8lQ3QdZfqmSoKV/ZIO+u3T+DcaupZAlpeoyaOK8H0AT1Kcs9lxBmWrdZ/IOwFWpezfWAJ4382YC+FAP4dNpGXldVIh3ZNcbaQhd5u9DSzwWJYi7jTcKSakqTlJ486qYX9vzeatUWn8vTlVOkzpiECGfIUBT9rFg5x9NDRNqAElkc/6PhJDPrRvdWF6ZW5d/3HijPuQNVSPkQMZOItluutqlE0PIN/T3jcJZ6UqBltdKU7j6bLzvLXsvD4tu+5c18g8AQwCo3vMGyv7KBUwT35V98upNedBFvuPqqC8ET4FkGzgRJORpfL46NpK7202XloHhJmmpy7cigE=----ATTACHMENT:----MjQxNzY3MTgxNTEzNjk3OCA3MTUxNzM2NzMwNjY2OTE3IDQxNTA4OTY3ODIyMjIxMDE=