diff options
author | zotlabs <mike@macgirvin.com> | 2017-05-23 16:14:41 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-05-23 16:14:41 -0700 |
commit | bf580fcc0651663031d74072ee17a8f6becb49fc (patch) | |
tree | aaf0ac6129053c728f29559381f521395494f0b8 /vendor/league/html-to-markdown/src/Converter/LinkConverter.php | |
parent | 357e7af6adb303aa12f6506585e7d59a1250da99 (diff) | |
parent | 31d920817264552cece5a57c2390411af4d7a3a1 (diff) | |
download | volse-hubzilla-bf580fcc0651663031d74072ee17a8f6becb49fc.tar.gz volse-hubzilla-bf580fcc0651663031d74072ee17a8f6becb49fc.tar.bz2 volse-hubzilla-bf580fcc0651663031d74072ee17a8f6becb49fc.zip |
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge
Diffstat (limited to 'vendor/league/html-to-markdown/src/Converter/LinkConverter.php')
-rw-r--r-- | vendor/league/html-to-markdown/src/Converter/LinkConverter.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/league/html-to-markdown/src/Converter/LinkConverter.php b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php new file mode 100644 index 000000000..f0765f38b --- /dev/null +++ b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php @@ -0,0 +1,52 @@ +<?php + +namespace League\HTMLToMarkdown\Converter; + +use League\HTMLToMarkdown\ElementInterface; + +class LinkConverter implements ConverterInterface +{ + /** + * @param ElementInterface $element + * + * @return string + */ + public function convert(ElementInterface $element) + { + $href = $element->getAttribute('href'); + $title = $element->getAttribute('title'); + $text = trim($element->getValue()); + + if ($title !== '') { + $markdown = '[' . $text . '](' . $href . ' "' . $title . '")'; + } elseif ($href === $text && $this->isValidAutolink($href)) { + $markdown = '<' . $href . '>'; + } else { + $markdown = '[' . $text . '](' . $href . ')'; + } + + if (!$href) { + $markdown = html_entity_decode($element->getChildrenAsString()); + } + + return $markdown; + } + + /** + * @return string[] + */ + public function getSupportedTags() + { + return array('a'); + } + + /** + * @param string $href + * + * @return bool + */ + private function isValidAutolink($href) + { + return preg_match('/^[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*/i', $href) === 1; + } +} |