Обсуждение шаблона:H

Содержимое страницы недоступно на других языках.
Материал из Викитеки — свободной библиотеки

Базирование на теге h[править]

@Lozman Похоже, что если базировать шаблон на теге h, то придётся отказаться от многострочных заголовков (1—3 безымянные параметры) и параметра subtitle. Проблема в том, что викидвижок в тег h добавляет подтег span. Со своим атрибутом id. На практике получаются вот такие оглавления.

Вот так рендерится пример {{h2|Заголовок параметр1|Заголовок параметр2}} на Шаблон:H/test:

<h2 class="header2" id="Заголовок_параметр1._Заголовок_параметр2">
   <span id=".D0.97.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BE.D0.BA_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.801.D0.97.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BE.D0.BA_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.802"></span>
   <span class="mw-headline" id="Заголовок_параметр1Заголовок_параметр2">Заголовок_параметр1<br>Заголовок_параметр2</span>
</h2>

Видно, что шаблон добавляет в h2 атрибут id="Заголовок_параметр1._Заголовок_параметр2" с точкой и пробелом, разделяющими заголовки. Так и должно было отображаться в оглавлении.

Но движок добавляет тег span без этих разделителей, и именно его используется, создавая оглавление с этим испорченным id. Если пробовать создать свой span с теми же атрибутами, то движок уже в нём создаёт ещё один span и использует его. --Vladis13 (обсуждение) 08:55, 3 февраля 2021 (UTC)[ответить]

Параметр id нерабочий.
Как вариант, можно сделать этот шаблон только с одним параметром - для заголовков в одну строку. А для декоративных целей использовать ш:heading, который не переводить на тег h. А поддерживает ли тот параметры этого шаблона - многострочные заголовки и id? --Vladis13 (обсуждение) 18:46, 3 февраля 2021 (UTC)[ответить]
До перехода на HTML заголовки шаблон не создавал оглавлений. Может, вернуться к этой практике и отключить автоматические оглавления с помощью NOTOC? А если оглавления нужны, использовать обычные вики-заголовки. Потому что без многострочных заголовков и подзаголовков в этом шаблоне особого смысла нет, проще настроить стили заголовков для класса text с помощью CSS. Шаблон heading поддерживает id, многострочные заголовки — нет. Переводить его на h не стоит, т.к. он часто используется для надписей, которые по сути не являются заголовками. По сути, это не столько заголовок, сколько именно надпись. — Lozman (talk) 19:35, 5 февраля 2021 (UTC)[ответить]
«проще настроить стили заголовков для класса text с помощью CSS» — хорошая идея! В текущем варианте ещё проблема, что теперь нельзя указывать в заголовке какие-то шаблоны и теги — например <big> или {{lang}}. Поскольку шаблон вставляет всю строку в атрибут «id» тега h, который по идее необходим для создания оглавления, и это ломает шаблон. (Пример вверху страницы). Тогда надо откатывать шаблон к версии до перехода на h… --Vladis13 (обсуждение) 00:34, 6 февраля 2021 (UTC)[ответить]