Extension:Labeled Section Transclusion/uk

Це розширення дозволяє селективне включення помічених секцій тексту. Ця функціональність подібна до розширеної версії теґу з нормальними включеннями у вікі, обираючи секції до включення. Його ввімкнено у всіх вікі Фонду Вікімедіа.

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

Однак, є певні відмінності. У звичайному включенні шаблонів, секції помічено за поведінкою, таким чином Ви можете включити або пропустити лише одну (можливо неприлягаючу) секцію.

Тут, секції помічено за назвою, і поведінка обирається викликачем, який може включати або пропускати секції як потрібно. Різні сторінки можуть включати або виключати обрані секції, може бути довільне число секцій, які також можна довільно перекриватись.

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

Крок 1: помітьте секції
Помітьте секції у тексті використовуючи теґи таким чином:

&lt;translate>this is a chapter&lt;/translate>

Врахуйте, що використовуються два індивідуальні маркери, аніж нормальні XML-теґи закриття/відкриття, що спрощує вкладення або перекриття секцій. Це дозволяє Вам включати теґи секцій без турботи про можливу заваду іншим секціям.

Крок 2а: Включіть секцію
Зробіть виклик парсерної функції #lst для включення її, наприклад, для включення секції під назвою chapter1 зі сторінки названої articleX:

Цільова стаття визначає розташування секції; її поведінка визначається парсерною функцією.

Крок 2б: Включіть сторінку але виключіть секцію
Для того, щоб включити сторінку, але виключити певну секцію, використовуйте функцію #lstx:

Опціонально, Ви можете додати текст, який замістить виключену секцію.

Приклад:

Текст заміщення з'явиться на місці, де секцію пропущено (виключено).

Несуміжні секції
Можливо дати кільком секціям те саме ім'я. У цьому випадку, кожна секція з таким ім'ям буде включена/виключена. Це особливо корисно для помітки різних обговорень.

Діапазони секцій
Ці функції мають додатковий, опціональний аргумент для вказання діапазону секцій. Наприклад,, для включення усього від початку першої глави до кінці треьої глави. Це дозволяє використовувати порожні пари маркерів для помітки одного кінця секції, можливо у шаблоні. Схожий механізм наразі використовують у французькомовних Вікіджерелах.

Підстановка
Це також працює із підстановкою. Навіть можливо, щоб стаття підставила власну секцію. Одне із використань цього забезпечує акуратний спосіб архівувати сторінки обговорення: помітьте текст, який слід заархівувати використовуючи і т.д. Далі, створіть сторінку архіву із текстом, використовуючи archive, яка скопіює заархівовані секції. І наостанок, замініть вміст сторінки обговорення з archive для вилучення цих секцій.

Включення секцій за заголовками
Існує опціональна підтримка включення секцій тексту помічених нормальними заголовками, як то. Якщо інстальовано, то це здійснюється за допомогою функції lsth.

Включення вступу
Для включення вступу сторінки (тобто вмісту до першого заголовку), використовуйте

Включення цілої секції
Ви також можете включити весь вміст sectionX (який також включає усі її підсекції але виключає заголовок самої sectionX).

На замітку:


 * 1) Лише перша поява секції sectionX включається у випадку, якщо у Вас є понад одна секція із однаковою назвою.
 * 2) Упевніться, що Ви вводити заголовок sectionX таким, яким він є у вікі-коді, а не так, як його відображено.  Наприклад, якщо заголовок секції —  , то Вам слід ввести « » а не « ».
 * 3) Співпадіння є регістро незалежним, для запобігання поломці посилань через зміну регістру.

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

Зауваження щодо пропущених секцій
Оскільки традиційне включення у Медіавікі не призначено для включення секцій, воно не враховує пропущені секції. У результаті, якщо Ви збираєтесь включити шаблон із кількома заголовками, та пропустити перший заголовок, то усі посилання на редагування секцій будуть вказувати на неправильні секції у шаблоні.

Коли використовується це розширення (з Медіавікі 1.9 або пізнішим), функції #lst та #lsth рахують розділи у «пропущеній» початковій частині, та зміщення включених розділів належним чином. Це дозволяє цим посиланням вказувати на правильні секції у простих випадках.

Зауважте, що #lstx не рахує пропущені заголовки, і що пропущені заголовки в межах несуміжних секцій не зміщуються. '''Але схоже, що це тепер було виправлено (ймовірно при переході на новий препроцесор Медіавікі). Включені заголовки можуть бути пов'язані із правильними секціями.'''.

Локалізація
Внутрішньо, всі парсерні функції використовують префікс lst, що послідновно із назвою розширення. Оскільки цей акронім може збивати з пантелику не-розробників, було введено читабельні англомовні варіанти, тож функції наразі можуть бути викликані будь-якою з назв.

Додатково, теґ відтепер може бути локалізовано (наразі наявні варіанти англійською, німецькою та івритом), наприклад:


 * англійська: ...
 * німецька:  ... 
 * іврит (RTL): <קטע התחלה=א> ... <קטע סוף=א> (код «початку» праворуч, та код «кінця» ліворуч.)
 * португальська:  ...

Обмеження

 * У той час як можливо використовувати розширення крізь простори назв, інтервікі-посилання не вирішуються. Наразі не є можливим, наприклад, включити частину сторінки Вікіджерел у віддалену інсталяцію Медіавікі.
 * Теґи секцій не можуть бути включені самі по собі для того щоб працювати на інших сторінках. Це означає, наприклад, що ці теґи не можуть бути включені до шаблонів використовуючи параметри шаблонів та парсерні функції. Магічне слово  не працює із теґами секцій.   призводить до парних теґів, у той час, як теґи секцій є одинарними. Див..
 * As of 2014, section tags don't have any effect when used inside a template parameter. If page A contains a text, there's no way  can access X on page C.

Вимоги
This extension requires a MediaWiki installation with support for parser functions. This support was mature in the 1.7 series, although some 1.6 versions may also be made to work.

MediaWiki parser enhancements
Support for regression testing parser functions was added in MediaWiki 1.9alpha (17410) in order to test this extension; if you want to run the regression tests in an older installation, you'll need to apply the patch for maintenance/ParserTests.inc from 7801

Support for offsetting edit section links (so that it can detect sections that aren't transcluded, and skip them) was added in MediaWiki 1.9alpha (18218).

How to install
Copy the files of the extension from Subversion, and put it in your extensions directory. Then, include it in the LocalSettings.php:

To enable transcluding visual sections, also add

Since the code is still undergoing some restructuring in preparation for deployment on the official projects, the internal functions may change from time to time. Although there is currently no public API to call these functions, DynamicPageList2 calls some of the internal functions directly. To make this more stable, the file compat.php has been added, in order to provide a more consistent API. This file is not used by LST, and is only provided for compatibility with DPL2.

If you are using DPL2, you should also add

Приклади

 * wikisource:user:sanbeg/Includer — рання демонстрація яка показує кілька основних функцій.
 * Bible/2_John/1/1 — одна із перших контентових сторінок, що використовує розширення.

Див. також

 * Subversion download
 * Brion's comments on the application of the extension at Wikisource
 * The original proposal (at en.wikisource)
 * 5881 contains older versions of the extension as attachments.
 * 7995 is a Wikimedia site request to have this extension installed at Wikisource.
 * 6563 describes a limitation in template transclusion that is addressed by this extension.
 * DynamicPageList (third-party) includes a slightly modified built-in version of Labeled Section Transclusion