public static function AmpProcessedText::preRenderAmpText in Accelerated Mobile Pages (AMP) 8.3
Same name and namespace in other branches
- 8 src/Element/AmpProcessedText.php \Drupal\amp\Element\AmpProcessedText::preRenderAmpText()
- 8.2 src/Element/AmpProcessedText.php \Drupal\amp\Element\AmpProcessedText::preRenderAmpText()
Pre-render callback: Processes the amp markup and attaches libraries.
File
- src/
Element/ AmpProcessedText.php, line 39
Class
- AmpProcessedText
- Provides an amp-processed text render element.
Namespace
Drupal\amp\ElementCode
public static function preRenderAmpText($element) {
/** @var \Drupal\amp\Service\AMPService $amp_service */
$amp_service = \Drupal::service('amp.utilities');
/** @var \Lullabot\AMP\AMP $amp */
$amp = $amp_service
->createAMPConverter();
$amp
->loadHtml($element['#markup']);
$element['#markup'] = $amp
->convertToAmpHtml();
$element['#allowed_tags'] = array_merge(Xss::getAdminTagList(), [
'amp-img',
]);
$js = $amp
->getComponentJs();
if (!empty($js)) {
$element['#attached']['library'] = $amp_service
->addComponentLibraries($js);
$element['#allowed_tags'] = array_merge($amp_service
->getComponentTags($js), $element['#allowed_tags']);
}
return $element;
}