Включение помеченного раздела (LST) — это функция синтаксического анализатора , которая предоставляет два способа обозначения «раздела» страницы для включения . Первый метод идентифицирует раздел, используя имя страницы и заголовок ( заголовок раздела , как он отображается на исходной странице). Второй метод позволяет выбрать произвольный «раздел» для включения, но этот подход требует добавления специальной разметки для предварительного обозначения нужного раздела.
Три функции могут транслировать раздел из заданного имени страницы.
Обратите внимание, что для этих функций существуют также эквивалентные имена, базовыми именами являются #lst
, #lstx
и #lsth
.
Чтобы подготовить произвольный «раздел» для включения маркированного раздела, отметьте его атрибутами begin и end внутри <section />
тегов, содержащих вашу метку :
<section begin=label />
и<section end=label />
По сравнению с трансклюзией LST, разметка частичной трансклюзии не может быть помечена , и, таким образом, исходная страница не может иметь один набор своих разделов, трансклюзировавшихся на одну страницу, имея также другой набор для другой страницы. Страница, размеченная только с помощью тегов частичной трансклюзии, всегда будет трансклюзивировать одно и то же. Но LST и частичная трансклюзия могут работать вместе на одной странице.
Эти функции LST принимают дополнительные параметры, как описано ниже. § Примеры страниц содержат ссылки для поиска статей, которые в настоящее время используют LST, чтобы вы могли увидеть, как они его используют.
В этом разделе обобщены три функции синтаксического анализатора в расширении Labeled Section Transclusion.
Синтаксис: {{ функция : полное_имя_страницы | раздел | диапазон / изменение }}
Невозможно передать параметры шаблона во включенный раздел или страницу, но код страницы может использовать магические слова, например, {{PAGENAME}}
для проверки своего местоположения и поведения по-другому.
<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) заменяющее содержимое для именованного раздела.
{{#section:articleX|chapter1|chapter3}}
включает в себя все от начала главы 1 до конца главы 3. Это позволяет использовать пустые пары маркеров для обозначения одного конца раздела, возможно, в шаблоне.{{#section-h:articleX|chapter1|chapter3}}
включает содержание главы 1, заголовок и содержание главы 2.{{#section-x:articleX|chapter1|chapter3}}
заменяет заголовок и содержание главы1 словом «глава3».Вместо того, чтобы транслировать каждый раз, чтобы «транслировать» один раз (скопировать), используйте подстановку :
Например, чтобы заархивировать старую беседу на своей странице обсуждений, вы можете скопировать ее на страницу архива, а затем удалить, используя LST:
<section begin=archive />
в начало раздела, который вы хотите архивировать, и <section end=archive />
в конец. (Мы используем «архив» для метки, но подойдет любая метка.) Этот раздел может быть где угодно, и он может состоять из нескольких разделов.При использовании замены для включения контента в Википедии, пожалуйста, используйте сводку правок для применения прав и обязанностей повторных пользователей . Это относится к любому существенному контенту, а не только к контенту статьи.
В настоящее время ни один шаблон не может обеспечить эту LST-разметку, поскольку необходимо использовать #tag для "preSaveTransform" магических слов внутри тега любого вида. Для надлежащей попытки см. (нефункционирующий) {{ section }} .
Единственный способ оценки аргументов шаблона внутри тега (из-за порядка разбора) — это #tag . LST потребуется (шаблонная) оценка метки, поскольку генерируется тег раздела:
{{ #тег : раздел | {{{ 1 }}} }}
Но #tag создает только XML -подобные (сбалансированные, открытые-закрытые, начало-конец, пары) теги, тогда как LST будет использовать единственный, явно самозакрывающийся тег. Поэтому теги LST не могут быть сгенерированы никаким шаблоном. Сравните фактический (только в действии) вывод:
{{#tag:section| content |begin= label }} → < section begin= label > content </ section>
с требуемым результатом:
<начало раздела= метка /> содержимое <конец раздела= метка />
Это поисковые запросы, сохраненные в ссылке: