You are here

public function BaseParser::parseUrl in Markdown 3.0.x

Parses markdown from an external URL into HTML.

Parameters

string|\Drupal\Core\Url|\Psr\Http\Message\UriInterface $url: An external URL of a markdown file to parse.

\Drupal\Core\Language\LanguageInterface $language: Optional. The language of the markdown that is being parsed.

Return value

\Drupal\markdown\ParsedMarkdownInterface A ParsedMarkdownInterface object.

Throws

\Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException When the provided $url does not exist or is not reachable.

Overrides MarkdownParserInterface::parseUrl

File

src/Plugin/Markdown/BaseParser.php, line 426

Class

BaseParser
Plugin annotation @MarkdownParser( id = "_broken", label = @Translation("Missing Parser"), )

Namespace

Drupal\markdown\Plugin\Markdown

Code

public function parseUrl($url, LanguageInterface $language = NULL) {
  if ($url instanceof Url) {
    $url = $url
      ->setAbsolute()
      ->toString();
  }
  $response = \Drupal::httpClient()
    ->get($url);
  if ($response
    ->getStatusCode() >= 200 && $response
    ->getStatusCode() < 400) {
    $contents = $response
      ->getBody()
      ->getContents();
  }
  else {
    throw new FileNotFoundException((string) $url);
  }
  return $this
    ->parse($contents, $language);
}