Extension:Labeled Section Transclusion/uk
Labeled Section Transclusion Статус релізу: стабільний |
|
---|---|
Реалізація | Тег , Функція парсера |
Опис | Вмикає можливість включати помічені секції тексту |
Автор(и) | Steve Sanbeg |
Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
MediaWiki | 1.19+ |
Зміни в БД | Ні |
Ліцензія | GNU General Public License 2.0 or later |
Завантажити | |
Public wikis using | 6,919 (Ranked 26th) |
Translate the Labeled Section Transclusion extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
Це розширення дозволяє селективне включення помічених секцій тексту. Ця функціональність подібна до розширеної версії теґу <onlyinclude>
з нормальними включеннями у вікі, обираючи секції до включення. Його ввімкнено у всіх вікі Фонду Вікімедіа.
У той час як звичайні включення перш за все призначено для включення великих частин маленьких шаблонів, включення помічених секцій призначено для малих частин великих сторінок.
Однак, є певні відмінності. У звичайному включенні шаблонів, секції помічено за поведінкою, таким чином Ви можете включити або пропустити лише одну (можливо неприлягаючу) секцію.
Тут, секції помічено за назвою, і поведінка обирається викликачем, який може включати або пропускати секції як потрібно. Різні сторінки можуть включати або виключати обрані секції, може бути довільне число секцій, які також можна довільно перекриватись.
Помітка секцій за назвою аніж за поведінкою дозволяє посиланням редагування секцій бути представленими більш придатна для отримання витягів із більших текстів, оскільки розширення тепер може брати до уваги секції які було пропущено на початку сторінки, дозволяючи включеним секціям бути зміщеним потрібним чином.
Встановлення
- Завантажте і розмістіть файли в каталозі з назвою
LabeledSectionTransclusion
у вашійextensions/
папці.
Розробники та автори коду повинні замість цього встановити розширення з Git, використовуючи:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion - Додайте такий код унизу вашого файлу LocalSettings.php :
wfLoadExtension( 'LabeledSectionTransclusion' );
- Готово – Перейдіть до Special:Version вашої вікі, щоб переконатися, що розширення встановлено успішно.
There is also a Gadget in use on Wikisource.org wikis that makes it possible to define sections with a simplified ## label ##
syntax.
Its code can be found at Wikisource:MediaWiki:Gadget-Easy_LST.js.
Functions
Transclude any marked part
Крок 1: помітьте секції
Помітьте секції у тексті використовуючи теги <section>
таким чином:
<section begin="chapter1" />this is chapter 1<section end="chapter1" />
Note that these tags are not HTML/XML, and do not use the normal attribute syntax.
З цієї причини, і через те, що токени begin
і end
індивідуальні, на відміну від звичайних XML-теґів закриття/відкриття, це спрощує вкладення або перекриття секцій. Це дозволяє Вам включати теги секцій без турботи про можливу заваду іншим секціям.
Крок 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}}, яка скопіює заархівовані секції. І наостанок, замініть вміст сторінки обговорення з {{subst:#lstx:talk_page|archive}} для вилучення цих секцій.
Існує опціональна підтримка включення секцій тексту помічених нормальними заголовками, як то ==this section==
. Якщо інстальовано, то це здійснюється за допомогою функції lsth.
Включення вступу
Для включення вступу сторінки (тобто вмісту до першого заголовку), використовуйте
{{#lsth:pagename}}
Включення цілої секції
Ви також можете включити весь вміст sectionX (який також включає усі її підсекції але виключає заголовок самої sectionX).
{{#lsth:pagename|sectionX}}
На замітку:
- Лише перша поява секції sectionX включається у випадку, якщо у Вас є понад одна секція із однаковою назвою.
- Упевніться, що Ви вводити заголовок sectionX таким, яким він є у вікі-коді, а не так, як його відображено. Наприклад, якщо заголовок секції —
==List of [[Extension]]==
, то Вам слід ввести «List of [[Extension]]
» а не «List of Extension
».
- When transcluding a section from a page marked for translation using the translate extension, transclude from the language-specific version.
E.g. from pagename/en rather than from pagename.
- Співпадіння є регістром незалежним, для запобігання поломці посилань через зміну регістру.
Включення кількох секцій
Ви також можете включати від першої появи 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 |
Додатково, теґ відтепер може бути локалізовано; наприклад: англійська, німецька, іврит, португальська; i.e.:
- англійська
<section begin=x/> ... <section end=x/>
- німецька
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
- іврит (RTL)
<קטע התחלה=א> ... <קטע סוף=א>
(код «початку» праворуч, та код «кінця» ліворуч.)- португальська
<trecho começo=x/> ... <trecho fim=x/>
Each localization is enabled only if the page matches the respective content language.
Обмеження
- {{#lsth:pagename|sectionX}} only works on the first section if multiple sections have name sectionX. Only the first occurrence of sectionX is transcluded if an article has more than one section with the same name.
- While it is possible to use this extension across namespaces, interwiki references are not resolved. It is not yet possible, for example, to include part of a Wikisource page into a remote MediaWiki installation.
- Теги секцій не можуть бути включені самі по собі для того щоб працювати на інших сторінках. Це означає, наприклад, що ці теги не можуть бути включені до шаблонів використовуючи параметри шаблонів та парсерні функції. Магічне слово
#tag
не працює із тегами секцій.
- As of 2014, section tags don't have any effect when used inside a template parameter. If page A contains a text {{B|X}}, there's no way {{#lst:A|...}} can access X.
Приклади
- wikisource:user:sanbeg/Includer - * wikisource:user:sanbeg/Includer — рання демонстрація яка показує кілька основних функцій.
Див. також
- DynamicPageList (third-party) includes a slightly modified built-in version of Labeled Section Transclusion
Це розширення використовується в одному або декількох проєктах Вікімедіа. Це, мабуть, означає, що розширення стабільне і працює досить добре, щоб його могли використовувати веб-сайти з великим трафіком. Шукайте назву цього розширення у файлах конфігурації Wikimedia CommonSettings.php та InitialiseSettings.php, щоб побачити, де це встановлене. Повний перелік розширень, встановлених на певній вікі, можна переглянути на сторінці Special:Version вікі. |
Це розширення включено до таких вікі-ферм/хостів та/або пакетів: Це не авторитетний список. Деякі вікі-ферми/хости та/або пакунки можуть містити це розширення, навіть якщо вони не вказані тут. Завжди звертайтеся до своїх вікі-ферм/хостів або комплекту для підтвердження. |
- Stable extensions/uk
- Tag extensions/uk
- Parser function extensions/uk
- GPL licensed extensions/uk
- Extensions in Wikimedia version control/uk
- ParserFirstCallInit extensions/uk
- All extensions/uk
- Extensions used on Wikimedia/uk
- Extensions included in Canasta/uk
- Extensions included in Fandom/uk
- Extensions included in Miraheze/uk
- Extensions included in MyWikis/uk
- Extensions included in wiki.gg/uk
- Extensions included in WikiForge/uk