mirror of
https://github.com/friendica/friendica
synced 2024-09-26 00:31:22 +02:00
47 lines
1.1 KiB
PHP
47 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace League\HTMLToMarkdown\Converter;
|
|
|
|
use League\HTMLToMarkdown\ElementInterface;
|
|
|
|
class TextConverter implements ConverterInterface
|
|
{
|
|
/**
|
|
* @param ElementInterface $element
|
|
*
|
|
* @return string
|
|
*/
|
|
public function convert(ElementInterface $element)
|
|
{
|
|
$markdown = $element->getValue();
|
|
|
|
// Remove leftover \n at the beginning of the line
|
|
$markdown = ltrim($markdown, "\n");
|
|
|
|
// Replace sequences of invisible characters with spaces
|
|
$markdown = preg_replace('~\s+~u', ' ', $markdown);
|
|
|
|
// Escape the following characters: '*', '_', '[', ']' and '\'
|
|
$markdown = preg_replace('~([*_\\[\\]\\\\])~u', '\\\\$1', $markdown);
|
|
|
|
$markdown = preg_replace('~^#~u', '\\\\#', $markdown);
|
|
|
|
if ($markdown === ' ') {
|
|
$next = $element->getNext();
|
|
if (!$next || $next->isBlock()) {
|
|
$markdown = '';
|
|
}
|
|
}
|
|
|
|
return $markdown;
|
|
}
|
|
|
|
/**
|
|
* @return string[]
|
|
*/
|
|
public function getSupportedTags()
|
|
{
|
|
return array('#text');
|
|
}
|
|
}
|