Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Рассмотрим как очистить вёрстку Drupal убрав из шаблона все ненужные теги и прочие символы. При этом сохраним основной функционал модуля Quick Edit и подобных модулей для администратора сайта. Очистку вёрстки рассмотрим на примере поля: "Title". Изначальная вёрстка данного поля после создания новой темы, выглядит следующим образом:

<div class="block block-core block-page-title-block" id="block-semanticui-admin-theme-page-title">
  <h1 class="js-quickedit-page-title">
    <span class="field field--name-title field--type-string field--label-hidden quickedit-field" data-quickedit-field-id="node/2/title/ru/full" property="schema:name">
      Alfa Romeo Giulia
    </span>
  </h1>
</div>

Приведём её к следующему виду (где ui и header - необходимые для установки классы):

<h1 class="ui header">Alfa Romeo Giulia</h1>

Для этого необходимо переопределить три шаблона и написать две функции в файле: admin_theme.theme (где admin_theme - машинное имя темы оформления для Drupal 8). Шаблона три, так как заголовок ("Title") выводится в шаблоне с его оформлением, который выводится внутри шаблона поля, который выводится внутри шаблона блока. Шаблоны блоков с контентом выводятся в шаблоне страницы (в данном примере мы не будем изменять шаблон страницы).

Первым шагом избавимся от <div> обёртки, для этого необходимо переопределить шаблон блока для: "Title". Скопируем файл: block.html.twig из папки: ./core/modules/block/templates в папку разрабатываемой темы. Скорректируем код шаблона оставив в нём только вывод шаблона поля:

{% block content %}
  {{ content }}
{% endblock %} 

После сброса кэша на странице сайта: http://.../admin/config/development/performance новый шаблон будет применён ко всем блокам на странице. Так как имеется потребность применять шаблон только в качестве шаблона блока поля: "Title", то переименуем его. Для выяснения какое имя дать шаблону, в файле admin_theme.theme временно разместим код (после символов: <?php) выводящий имена всех шаблонов блоков на странице:

/**
 * Implements hook_preprocess_HOOK() for block.html.twig.
 */
function admin_theme_preprocess_block(&$variables) {  
  print '<pre>';
  print_r($variables['elements']['#plugin_id']);
  print '</pre>';
}

После сброса кэша откроем любую ноду сайта и увидим список шаблонов блоков выводимых на странице, на подобии: system_breadcrumb_block, system_main_block и page_title_block. Получив суффикс для имени шаблона блока поля: "Title" (суффикс: page_title_block), переименовываем block.html.twig в block--page-title-block.html.twig. Осталось удалить функцию admin_theme_preprocess_block из admin_theme.theme и сбросить кэш для завершения первого шага.

Вторым шагом добавим необходимые классы в тег: <h1> заголовка. Это можно сделать двумя способами, первый - добавить классы в файле admin_theme.theme разместив там следующую функцию:

/**
 * Implements hook_preprocess_HOOK() for page templates.
 */
function admin_theme_preprocess_page_title(&$variables) {
  if (isset($variables['title_attributes'])) {
    $variables['title_attributes']['class'] = array();
    $variables['title_attributes']['class'][] = 'ui';  
    $variables['title_attributes']['class'][] = 'header';
  }
} 

Другой способ - скопировать файл: page-title.html.twig из папки: ./core/modules/system/templates в папку разрабатываемой темы. После чего необходимо внести правки в код шаблона:

{{ title_prefix }}
  {% if title %}
    <h1{{ title_attributes.addClass('ui').addClass('header') }}>{{ title }}</h1>
  {% endif %}
{{ title_suffix }} 

Последний шаг - исправить шаблон оформления заголовка ("Title") так, что бы для большинства пользователей заголовок выводился без обёртки (необходимой для модуля: Quick Edit), а для администратора сайта с обёрткой. Для этого добавим в admin_theme.theme функцию которая на основе наличия у пользователя разрешения на изменения контента ("Просмотр, правка и удаление всех материалов": bypass node access) передаёт в шаблон дополнительную переменную с этими данными.

 /**
 * Implements hook_preprocess_HOOK() for field templates.
 */
function semanticui_admin_theme_preprocess_field(&$variables) {
  if (isset($variables['element']) && isset($variables['element']['#field_name']) && $variables['element']['#field_name'] == 'title') {
    $user = \Drupal::currentUser();
    if ($user->hasPermission('bypass node access')) {
	  $variables['quick_edit'] = TRUE;	
	}
  }
} 

После чего необходимо скопировать файл: field--node--title.html.twig из папки: ./core/modules/node/templates в папку разрабатываемой темы и внести правки в код шаблона:

{% if quick_edit is empty %}
  {%- for item in items -%}
    {{ item.content }}
  {%- endfor -%}
{% else %}
  <span{{ attributes }}>
    {%- for item in items -%}
      {{ item.content }}
    {%- endfor -%}
  </span>
{% endif %}

Осталось лишь сбросить кэш.