public function AmpHtmlResponseMarkupProcessor::processMarkupToAmp in Accelerated Mobile Pages (AMP) 8
Same name and namespace in other branches
- 8.2 src/Render/AmpHtmlResponseMarkupProcessor.php \Drupal\amp\Render\AmpHtmlResponseMarkupProcessor::processMarkupToAmp()
Processes the content of a response into amp html.
Parameters
\Drupal\Core\Render\HtmlResponse $response: The response to process.
Return value
\Symfony\Component\HttpFoundation\Response The processed response, with the content updated to amp markup.
Throws
\InvalidArgumentException Thrown when the $response parameter is not the type of response object the processor expects.
File
- src/
Render/ AmpHtmlResponseMarkupProcessor.php, line 93 - Contains \Drupal\amp\Render\AmpHtmlResponseMarkupProcessor.
Class
- AmpHtmlResponseMarkupProcessor
- Processes markup of HTML responses.
Namespace
Drupal\amp\RenderCode
public function processMarkupToAmp(HtmlResponse $response) {
if (!$response instanceof HtmlResponse) {
throw new \InvalidArgumentException('\\Drupal\\Core\\Render\\HtmlResponse instance expected.');
}
// Get a reference to the content.
$this->content = $response
->getContent();
// First check the config if full html warnings are on, if not then exit with unaltered response
if (!$this->ampConfig
->get('amp_library_process_full_html')) {
return $response;
}
$options = [
'scope' => Scope::HTML_SCOPE,
];
if ($this->ampConfig
->get('amp_library_process_statistics')) {
$options += [
'add_stats_html_comment' => true,
];
}
$this->ampConverter = $this->ampService
->createAMPConverter();
$this->ampConverter
->loadHtml($this->content, $options);
$this->ampContent = $this->ampConverter
->convertToAmpHtml();
$request_uri = \Drupal::request()
->getRequestUri();
$heading = "<h3>AMP PHP Library messages for {$request_uri}</h3>" . PHP_EOL;
$heading .= 'To disable these notices goto <a href="/admin/config/content/amp">AMP configuration</a> and uncheck ' . '<em>Debugging: Add a notice in the Drupal log ...</em> in the AMP PHP Library Configuration fieldset' . PHP_EOL;
if ($this->ampConfig
->get('amp_library_process_full_html_warnings')) {
// Add any warnings that were generated
$this->logger
->notice("{$heading} <pre>" . $this->ampConverter
->warningsHumanHtml() . '</pre>');
}
// Return the processed content.
$response
->setContent($this->ampContent);
return $response;
}