Шаблон:Escape
Цей шаблон використовує Lua: |
Цей шаблон працює на однойменному модулі, що розроблений з метою забезпечення екранування рядків налаштовувальним і ефективним способом. Він працює за допомогою заміни символів, що передують вашому символу (або фразі) екранування
Використання
[ред. код]Для виклику функцій модуля, потрібно використати параметр mode, в якому вказати назву функції. Наприклад: {{Escape|mode=функція|char=символ (або послідовність символів) екранування|текст}}
Нижче наведено опис функції, який взято з документації модуля. Повний опис функції може переглянути на сторінці модуля.
|mode=text
|
Ця функція приймає лише один аргумент: Рядок. Усі символи в цьому рядку, що передують набору послідовності в |char= , будуть замінені на символи-заповнювачі (placeholders), що можуть бути перетворені назад в ті символи функцією |mode=undo
|
---|---|
|mode=undo
|
Приймає два аргументи:
|
|mode=kill
|
Це, в основному, відповідає виклику string.gsub() над рядком, який повернула функція escape:text(), та передача цього результату в функцію |mode=undo в один етап. Приймає три аргументи:
|
|char=
|
Основне використання цієї функції є ініціалізація шаблонів для пошуку рядка на наявність послідовності екранування. Вона приймає два аргументи, першим є символ екранування, а другий — таблиця аргументів (додатково). Стандартно, цей модуль використовує \ як символ екранування. Щоб замінити символ екранування на { , ви можете зробити {{Escape<code>|char={</code> .
У більшості випадків рідко є необхідність встановлювати
|
Застереження
[ред. код]- Коли використовується послідовність екранування, що складається з кількох символів, то цей модуль лише позначає їх, використовуючи байтове значення першого символу. Тому,
|mode=undo
виведе з екранування, наприклад, всі символи, що екрановані через «e» та «esc», якщо використано обидві послідовності. На практиці, однак це не є проблемою, бо кілька послідовностей екранування є дуже рідкісним випадком, окрім, коли ви переходите між кількома мовними кодами. (У будь-якому разі, кілька послідовностей екранування з кількох символів, що починаються з одного символу, є просто поганою практикою .) - Через те, що байтові значення зберігаються як числа, то не рекомендуються використовувати числа як послідовність екранування (хоча вони можуть нормально працювати).
- Байтові значення заповнювачів розділяються символами повернення ('\r'), які вибрані, тому, що вони взагалі рідко використовуються, та практично ніколи не використовують окремо від '\n'; до того ж він відрізняється від маркерів, що створюються
<nowiki>...</nowiki>
абоmw.text.nowiki()
(які використовують символ видалення).
Приклади
[ред. код]Оригінал:
[ред. код]test { test {\{ test, \test, \{,test\ \ \ {\
Використовуючи внутрішній метод для видалення {
:
[ред. код]{{escape|mode=kill|test { test {\{ test, \test, \{,test\ \ \ {\|{}}
test test { test, test, {,test \
{{escape|mode=undo|{{replace|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}|{|}}}}
test test { test, test, {,test \
Без видалення {
між екранованою/неекранованою (символ екранування не відновлено) частиною:
[ред. код]{{escape|mode=undo
|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}
}}
test { test {{ test, test, {,test {\
Відновлення до оринігалу пілся екранування
[ред. код]{{escape|mode=undo
|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}
|\
}}
test { test {\{ test, \test, \{,test\ \ \ {\
Видалення слова test
, якщо воно не екрановане, а потім розміщення іншого символу екранування на місці старого символу екранування (для використання чогось іншого):
[ред. код]Зверніть увагу: Символ '%' є спеціальним в Lua, тому використовуйте '%%', якщо хочете його використати як символ екранування. В інших випадках, достатньо одного символа (чи слова).
{{escape|mode=kill
|test { test {\{ test, \test, \{,test\ \ \ {\
|test
|%%
}}
{ {%{ , %test, %{,% % % {\
Документація вище включена з Шаблон:Escape/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього шаблону. Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цього шаблону. |