Jump to content

Расширение:Labeled Section Transclusion

From mediawiki.org
This page is a translated version of the page Extension:Labeled Section Transclusion and the translation is 100% complete.
Справка по расширениям MediaWiki
Labeled Section Transclusion
Статус релиза: стабильно
Реализация Тег , Функция парсера
Описание Разрешает включение (трансклюдинг) маркированных фрагментов текста.
Автор(ы) Steve Sanbeg
Политика совместимости Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости.
MediaWiki 1.19+
Изменения в БД Нет
Лицензия GNU General Public License 2.0 или позднее
Скачать
Использование общедоступными вики 6,919 (Ranked 26th)
Переведите расширение Labeled Section Transclusion, если оно доступно на translatewiki.net
Проблемы Открытые задачи · Сообщить об ошибке

Расширение Labeled Section Transclusion («Включение именованных разделов») позволяет выборочно включать отмеченные фрагменты текста, стандартно обрабатывая вики-текст. Возможности данного тега подобны расширенной версии тега ‎<onlyinclude> с обычным включением в вики, позволяющим выбирать включаемые секции. Расширение включено во всех проектах Фонда Викимедиа.

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

Однако, есть определённые различия. В обычном включении шаблонов, фрагменты в зависимости от предполагаемого поведения, таким образом возможно включить или пропустить лишь один (возможно, несмежный) фрагмент.

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

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

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием LabeledSectionTransclusion в вашей папке extensions/.
    Вместо этого разработчикам и соавторам кода следует установить расширение из Git, используя:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion
  • Добавьте следующий код в конце вашего файла LocalSettings.php :
    wfLoadExtension( 'LabeledSectionTransclusion' );
    
  • Yes Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Также существует специальный гаджет, использующийся в разделах Wikisource.org, позволяющий определять секции с помощью упрощённого синтаксиса ## label ##. Его код может быть найден на странице Wikisource:MediaWiki:Gadget-Easy_LST.js.

Функции

Использование любой отмеченной части

Шаг 1: Выбор разделов

Отметьте разделы текста, используя теги ‎<section> следующим образом:

<section begin="chapter1" />this is chapter 1<section end="chapter1" />

Обратите внимание, что эти теги не HTML/XML, и также не использует обычный синтаксис атрибутов. Учтите, что используются два индивидуальных маркера вместо нормальных XML-тегов begin и end, что упрощает вложения или перекрытия секций. Это позволяет вставлять метки разделов, не беспокоясь о возможных воздействиях на другие разделы.


Шаг 2а: Включение раздела

Вызовите функцию парсера #lst для включения раздела; например, включите раздел под названием chapter1 со страницы, названной articleX:

{{#lst:articleX|chapter1}}

Целевая статья определяет расположение раздела; его поведение определяется функцией парсера.

Шаг 2б: Включиение страниц, но исключение разделов

Для того, чтобы включить страницу, но исключить определённый раздел, используйте функцию #lstx:

{{#lstx:articleX|chapter1}}

Опционально можно добавить замещающий текст для исключённого раздела.

{{#lstx:articleX|chapter1|replacement_text}}

Пример:

{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}

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

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

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

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

Эти функции имеют дополнительный, опциональный аргумент для указания диапазона разделов. Например, {{#lst:articleX|chapter1|chapter3}} , для включения всего текста от начала первой главы до конца третьей главы. Это позволяет использовать пустые пары маркеров для пометки одного конца секции, возможно в шаблоне. Похожий механизм используется во французской Викитеке.

Подстановка

Всё это также работает и с подстановкой. Даже возможно, чтобы статья подставила свой собственный раздел. Одно из применений этого — обеспечить аккуратный способ архивировать страницы обсуждения: отметьте текст, который следует заархивировать, используя <section begin=archive /> и т.д. Далее, создайте страницу архива с текстом, используя {{subst:#lst:talk_page|archive}}, которая скопирует заархивированные разделы. И напоследок, замените содержимое talk_page с {{subst:#lstx:talk_page|archive}} для удаления этих разделов.

Существует опциональная поддержка включения разделов, помеченных обычными заголовками, такими как ==this section==. Если установлена, то это осуществляется при помощи функции lsth.

Добавление вводного раздела

Для включения вводного текста (т.е. содержания страницы до первого заголовка), используйте

{{#lsth:pagename}}

Включение конкретного раздела

Вы также можете включить всё содержимое sectionX (что включает все его подразделы, за исключением заголовка самого раздела sectionX).

{{#lsth:pagename|sectionX}}

На заметку:

  1. Если у вас есть более одного раздела с одинаковым названием sectionX, включается только самый первый раздел с таким названием.
  2. Убедитесь, что вы вводите заголовок sectionX таким, какой он есть в вики-коде, а не таким, как он отображается. Например, если заголовок раздела — ==List of [[Extension]]==, то вы должны ввести «List of [[Extension]]», а не «List of Extension».
  3. При включении раздела со страницы, помеченной для перевода с помощью расширения translate, включайте из версии для конкретного языка. напр. с название страницы/англ. нежели с название страницы.
  4. Соответствие является регистронезависимым, для предотвращения поломки ссылок из-за изменения регистра.

Включение нескольких разделов

Вы также можете включать от первого появления sectionX (исключая заголовок самой sectionX) до тех пор, пока не достигается следующее появление sectionY. Заметьте, что sectionY играет роль точки остановки, поэтому включение не содержит текста sectionY.

{{#lsth:pagename|sectionX|sectionY}}

Замечания относительно пропущенных заголовков

Поскольку традиционный механизм включения (трансклюдинга) в MediaWiki не предназначен для включения секций, он не учитывает пропущенные заголовки. В результате, если вы собираетесь включить шаблон с несколькими заголовками, и пропустите первый заголовок, то все ссылки на редактирование секций будут указывать на неправильные разделы в шаблоне.

Когда используется это расширение (с MediaWiki 1.9 или более поздним), функции #lst и #lsth считают разделы в «пропущенной» начальной части и смещают включённые разделы должным образом. Это позволяет этой ссылке указывать на корректные разделы в простых случаях.

Заметьте, что #lstx не считает пропущенные заголовки, и пропущенные заголовки в пределах несмежных секций не смещаются. Но похоже, что это теперь было исправлено (вероятно при переходе на новый препроцессор MediaWiki). Включённые заголовки могут быть связаны с правильными разделами..

Локализация

Внутренне, все функции парсера используют префикс lst, что схоже с названием расширения. Поскольку этот акроним может сбивать с толку не-разработчиков, были введены читабельные англоязычные варианты, поэтому функции пока могут быть вызваны любым из названий.

функция английский немецкий иврит (RTL) португальский
#lst #section #Abschnitt
#קטע
#trecho
#lstx #section-x #Abschnitt-x
#בלי קטע
#trecho-x
#lsth #section-h

Дополнительно, тег отныне может быть локализован; на данный момент: английский, немецкий, иврит, португальский; т.е.:

английский
<section begin=x/> ... <section end=x/>
немецкий
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
иврит (RTL)
<קטע התחלה=א> ... <קטע סוף=א> (код «начала» справа, код «конца» слева.)
португальский
<trecho começo=x/> ... <trecho fim=x/>

Каждая локализация включается только в том случае, если страница соответствует языку данного контента.

Ограничения

  • {{#lsth:pagename|sectionX}} работает только с первым разделом, если несколько разделов имеют имя sectionX. Только первый вводящий раздела X будет использован, если статья имеет более одного раздела с одинаковым названием.
  • Хотя это расширение можно использовать в разных пространствах имен, интервики-ссылки не разрешены. Например, пока невозможно включить часть страницы Wikisource в удаленную установку MediaWiki.
  • Теги разделов не могут быть включены сами по себе для того, чтобы работать на других страницах. {{#lst:}} and {{#lstx:}} работает только в том случае, если теги разделов появляются непосредственно в викитексте включенной страницы. Это означает, например, что эти теги не могут быть включены в шаблоны, использующие параметры шаблонов и функции парсера. Волшебное слово #tag не работает с тегами разделов.
  • По состоянию на 2014 год, теги разделов не действуют, когда используются в параметрах шаблонов. Если страница A содержит текст {{B|X}}, у {{#lst:A|...}} нет доступа к X.

Примеры

  • wikisource:user:sanbeg/Includer - ранняя демонстрация, показывающая некоторые из базовых возможностей.

См. также

  • DynamicPageList (third-party) включает встроенную немного модифицированную версию Labeled Section Transclusion