SitePreviewer
Learn how to build custom site previewer plugins.
SitePreviewer plugins are responsible for rendering the preview for an entity type.
Implement a `@SitePreviewer` plugin to provide your own custom previewer.
Example
A plugin that renders a link to preview.
<?php
namespace Drupal\next\Plugin\Next\SitePreviewer;
use Drupal\Core\Entity\EntityInterface;use Drupal\next\Plugin\SitePreviewerBase;
/** * Provides a link to the preview page. * * @SitePreviewer( *  id = "link", *  label = "Link to preview", *  description = "Displays a link to the preview page." * ) */class Link extends SitePreviewerBase {
  /**   * {@inheritdoc}   */  public function render(EntityInterface $entity, array $sites) {    $build = [];
    foreach ($sites as $site) {      $build[] = [        '#type' => 'link',        '#title' => $this->t('Open preview'),        '#url' => $site->getPreviewUrlForEntity($entity),      ];    }
    return $build;  }
}Configuration
SitePreviewer plugins can provide their own configuration. See `\Drupal\next\Plugin\ConfigurableSitePreviewerInterface`.