aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/league/html-to-markdown/src/Converter/LinkConverter.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/league/html-to-markdown/src/Converter/LinkConverter.php')
-rw-r--r--vendor/league/html-to-markdown/src/Converter/LinkConverter.php64
1 files changed, 29 insertions, 35 deletions
diff --git a/vendor/league/html-to-markdown/src/Converter/LinkConverter.php b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php
index ed52619d2..25a3540fe 100644
--- a/vendor/league/html-to-markdown/src/Converter/LinkConverter.php
+++ b/vendor/league/html-to-markdown/src/Converter/LinkConverter.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
namespace League\HTMLToMarkdown\Converter;
use League\HTMLToMarkdown\Configuration;
@@ -8,28 +10,19 @@ use League\HTMLToMarkdown\ElementInterface;
class LinkConverter implements ConverterInterface, ConfigurationAwareInterface
{
- /**
- * @var Configuration
- */
+ /** @var Configuration */
protected $config;
- /**
- * @param Configuration $config
- */
- public function setConfig(Configuration $config) {
+ public function setConfig(Configuration $config): void
+ {
$this->config = $config;
}
- /**
- * @param ElementInterface $element
- *
- * @return string
- */
- public function convert(ElementInterface $element)
+ public function convert(ElementInterface $element): string
{
- $href = $element->getAttribute('href');
+ $href = $element->getAttribute('href');
$title = $element->getAttribute('title');
- $text = trim($element->getValue(), "\t\n\r\0\x0B");
+ $text = \trim($element->getValue(), "\t\n\r\0\x0B");
if ($title !== '') {
$markdown = '[' . $text . '](' . $href . ' "' . $title . '")';
@@ -38,14 +31,19 @@ class LinkConverter implements ConverterInterface, ConfigurationAwareInterface
} elseif ($href === 'mailto:' . $text && $this->isValidEmail($text)) {
$markdown = '<' . $text . '>';
} else {
- if (stristr($href, ' ')) {
- $href = '<'.$href.'>';
+ if (\stristr($href, ' ')) {
+ $href = '<' . $href . '>';
}
+
$markdown = '[' . $text . '](' . $href . ')';
}
- if (!$href) {
- $markdown = html_entity_decode($element->getChildrenAsString());
+ if (! $href) {
+ if ($this->shouldStrip()) {
+ $markdown = $text;
+ } else {
+ $markdown = \html_entity_decode($element->getChildrenAsString());
+ }
}
return $markdown;
@@ -54,30 +52,26 @@ class LinkConverter implements ConverterInterface, ConfigurationAwareInterface
/**
* @return string[]
*/
- public function getSupportedTags()
+ public function getSupportedTags(): array
{
- return array('a');
+ return ['a'];
}
- /**
- * @param string $href
- *
- * @return bool
- */
- private function isValidAutolink($href)
+ private function isValidAutolink(string $href): bool
{
$useAutolinks = $this->config->getOption('use_autolinks');
- return $useAutolinks && (preg_match('/^[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*/i', $href) === 1);
+
+ return $useAutolinks && (\preg_match('/^[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*/i', $href) === 1);
}
- /**
- * @param string $email
- *
- * @return bool
- */
- private function isValidEmail($email)
+ private function isValidEmail(string $email): bool
{
// Email validation is messy business, but this should cover most cases
- return filter_var($email, FILTER_VALIDATE_EMAIL);
+ return \filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
+ }
+
+ private function shouldStrip(): bool
+ {
+ return $this->config->getOption('strip_placeholder_links') ?? false;
}
}