stringtranslate.com

Помощь: Маркированная секция трансклюзии

Включение помеченного раздела (LST) — это функция синтаксического анализатора , которая предоставляет два способа обозначения «раздела» страницы для включения . Первый метод идентифицирует раздел, используя имя страницы и заголовок ( заголовок раздела , как он отображается на исходной странице). Второй метод позволяет выбрать произвольный «раздел» для включения, но этот подход требует добавления специальной разметки для предварительного обозначения нужного раздела.

Три функции могут транслировать раздел из заданного имени страницы.

Обратите внимание, что для этих функций существуют также эквивалентные имена, базовыми именами являются #lst, #lstxи #lsth.

Чтобы подготовить произвольный «раздел» для включения маркированного раздела, отметьте его атрибутами begin и end внутри <section />тегов, содержащих вашу метку :

<section begin=label />и<section end=label />

По сравнению с трансклюзией LST, разметка частичной трансклюзии не может быть помечена , и, таким образом, исходная страница не может иметь один набор своих разделов, трансклюзировавшихся на одну страницу, имея также другой набор для другой страницы. Страница, размеченная только с помощью тегов частичной трансклюзии, всегда будет трансклюзивировать одно и то же. Но LST и частичная трансклюзия могут работать вместе на одной странице.

Эти функции LST принимают дополнительные параметры, как описано ниже. § Примеры страниц содержат ссылки для поиска статей, которые в настоящее время используют LST, чтобы вы могли увидеть, как они его используют.

Сводка функций

В этом разделе обобщены три функции синтаксического анализатора в расширении Labeled Section Transclusion.


Синтаксис: {{ функция : полное_имя_страницы | раздел | диапазон / изменение }}

Невозможно передать параметры шаблона во включенный раздел или страницу, но код страницы может использовать магические слова, например, {{PAGENAME}}для проверки своего местоположения и поведения по-другому.


† делает свою цель похожей на источник. На странице источника  #section-h
  • <noinclude> отображает свое содержимое
  • <onlyinclude> отображает свое содержимое
  • < includeonly > не отображает свое содержимое
Поэтому #section-hне следует отображать <includeonly>контент на целевой странице.


<section />Поведение тегов LST :

Варианты трансклюзии LST:

Применяется стандартный синтаксис:

Распространенные ошибки использования.

Разметка

Разметка исходной страницы не требуется, если для указания включения используются только заголовки разделов. Это касается #section-h.

Для маркировки раздела для трансклюзии LST используйте следующую разметку.

Маркировка раздела

Разметьте границы разделов на исходной странице, используя два единичных <section />тега; например, чтобы обозначить раздел как «chapter1»:

<section begin=chapter1 />это глава<section end=chapter1 />

Обратите внимание, что это не обычный открывающий тег, закрывающий тег HTML. В HTML <section>...</section>недопустимо. Этот тег парсера, <section />, несовместим с элементом HTML, поскольку разметка MediaWiki использует уникальный тег парсера, добавленный только для расширения Labeled Section Transclusion.

Раздел трансклюзия

Используйте функцию парсера #sectionдля включения раздела. Например, чтобы включить раздел с меткой chapter1 со страницы с именем articleX :

{{#section:СтатьяX|глава1}}

Транслировать страницу, но исключить раздел

Чтобы включить страницу, но исключить указанный раздел, используйте #section-xфункцию парсера:

{{#section-x: полноеимястраницы | метка }}

или

{{#section-x: полноеимястраницы | заголовок }}

При желании вы можете добавить заменяющий текст в исключенный раздел.

{{#section-x: полноеимястраницы | метка | текст замены }}

Пример:

{{ #section-x : articleX | chapter1 | См. главу 1 в [[ articleX ]] . }}

Заменяющий текст появится в области, где раздел пропущен (исключен).

Как справиться с лишними пробелами

По умолчанию, #sectionвключит все пробелы в разделе, что может привести к проблемам, если вы пытаетесь включить раздел в другую статью. Чтобы решить эту проблему, воспользуйтесь тем фактом, что функция парсера {{#if}} обрезает свои входные данные, например

{{#if:1|{{#section:СтатьяX|глава1}}}}

Это позволит избавиться от начальных и конечных пробелов, и статья будет отображаться так, как задумано. Поскольку вы вкладываете шаблоны, это удвоит размер включения после расширения отрывка, что может представлять проблему на более длинных страницах, поэтому вы можете захотеть отредактировать исходную страницу, чтобы обернуть содержимое, которое вы хотите включить, без пробелов, в <onlyinclude>...</onlyinclude>теги. Вы также можете использовать шаблон {{ trim }} вместо {{#if:1}}, но поскольку это всего лишь оболочка для техники {{#if:1}} выше, это приведет к утроению размера включения после расширения.

Другие функции

Несмежные разделы

Можно иметь несколько разделов с одинаковым названием; в этом случае каждый раздел с таким названием будет включен/исключен. Это особенно полезно для обозначения различных обсуждений.

Диапазоны разделов

Эти функции могут транслировать всю страницу, поэтому у них есть два необязательных аргумента для указания поведения: 1) раздел с тегом имени или заголовок-название, 2) диапазон таких именованных тегов раздела или заголовков разделов и 3) заменяющее содержимое для именованного раздела.

Замена

Вместо того, чтобы транслировать каждый раз, чтобы «транслировать» один раз (скопировать), используйте подстановку :

{{subst:#section...}}

Например, чтобы заархивировать старую беседу на своей странице обсуждений, вы можете скопировать ее на страницу архива, а затем удалить, используя LST:

  1. Поместите <section begin=archive />в начало раздела, который вы хотите архивировать, и <section end=archive />в конец. (Мы используем «архив» для метки, но подойдет любая метка.) Этот раздел может быть где угодно, и он может состоять из нескольких разделов.
  2. Сохраните эти изменения на своей странице обсуждения.
  3. Создайте новую страницу архива. Поместите .{{subst:#section:User talk:pagename|archive}}
  4. Сохраните эту страницу архива. Старая беседа скопирована на нее. Трансклюзия исчезает, потому что она была заменена.
  5. Снова отредактируйте страницу обсуждения. Замените весь викитекст на всей странице на . Страница базы данных будет включена, за исключением точно такого же викитекста в сохраненном архиве и за исключением тегов раздела (которые мы обозначили как «архив»).{{subst:#section-x:User talk:username|archive}}

При использовании замены для включения контента в Википедии, пожалуйста, используйте сводку правок для применения прав и обязанностей повторных пользователей . Это относится к любому существенному контенту, а не только к контенту статьи.

Нет шаблона

В настоящее время ни один шаблон не может обеспечить эту LST-разметку, поскольку необходимо использовать #tag для "preSaveTransform" магических слов внутри тега любого вида. Для надлежащей попытки см. (нефункционирующий) {{ section }} .

Единственный способ оценки аргументов шаблона внутри тега (из-за порядка разбора) — это #tag . LST потребуется (шаблонная) оценка метки, поскольку генерируется тег раздела:

{{ #тег : раздел | {{{ 1 }}} }}   

Но #tag создает только XML -подобные (сбалансированные, открытые-закрытые, начало-конец, пары) теги, тогда как LST будет использовать единственный, явно самозакрывающийся тег. Поэтому теги LST не могут быть сгенерированы никаким шаблоном. Сравните фактический (только в действии) вывод:

{{#tag:section| content |begin= label }} → < section begin= label > content  </ section> ☒Н

с требуемым результатом:

<начало раздела= метка  />  содержимое <конец раздела= метка  />

Примеры страниц

Это поисковые запросы, сохраненные в ссылке:

Смотрите также

Шаблоны