*/
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:----hoenLJa1Tv88jicZLU1URTZiMOwyrEQRFbCYvFz7fFtP3byAVWDmMgExIkzoQAYrLnR45Fg9pjFe4e2cKtoE+8EOalBZVG4CMvnE1r/inkGUHt7ECZPmDYTLjL8c9so9F7rUGRbVbMQGaxj0qnDI+xfiho6e29/K82KRAvychUrbNroaA41uSCcQivAXOkm8H+l4apaHgWuqWBj9rJM7pGDsyHPfmvevtIu7XHFe3VUXDeKvG6sBCEr4TfaYY2gk3DZeBgLqYM9JdX2RkYFRP0ezSWwbB/sQPx4X+X1NPRLs5wK1XK75//IKO8XFkoZtElt+rBY5476yl+d/Ed3UKXx97yMGLaVTHnueryGlHBhB47XySgFjIGiOBcoB+zL/dOUyQug7hJFV/Pcvhl8++AaZUviwWI4CXoJIkE6Gmy58p/fvUX3fZDfe91LnrZ26gCQfho43JGrrgeghUiIP27/OeKLMO1shKeUCbXh0It929kgEKdwSU5Jqt+49zq8TQqqwEs2O799zdHIQgo1EJuApek+LaIzLoJTcJmtLSODHHTQfPOYqVU/Iwwg0lb/3mI0lG7YfypPp1kIcvVywCrPYbYA8mYJ7+AbRQaTFA2TVBU536542nX9AsHUwSdyJ1pkpcoCFS05Jy85ZRjMrYQ83yMAtjHvx/V38T7dkHNI=----ATTACHMENT:----ODg1MDQ1NDg5MDYxOTUyNiA5MzYxNzg5ODU1NjAyMzg3IDEzNTY5NTg5NzIwNjg2MDM=