Користувач:Nickispeaki/Чернетка/Модулі і шаблони

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Добрий день @Avatar6:!

Перепрошую, що я тут розпочав дискусію - там, в Обговоренні шаблона це перерсло б офтопік, у Вас там на СО агонк промишляє, а він до новачків (і не тільки) ставиться не дуже... А я у програмуванні, можна сказати, новачок (принаймні у медіавікі і луа), то там він може тільки заважати (на жаль, агонка я знаю ;-( )... То я вирішив створити НОВУ сторінку і тут дещо розпитати, якщо Ви не проти. ;-)

Отож у мене кілька запитань. Як я розумію, шаблони і модулі почали писати на Lua (так? ) А частина лишилась... На пхп чи чомусь іншому?

Шаблони написані на вікірозмітці із розширеннями синтаксису (тобто розширеннями рушія MediaWiki Парсерні функції, Магічні слова тощо). Вони можуть викликати скрипти Lua (Scribunto[en], тобто Модулі, цей функціонал також є розширенням MediaWiki). Основа коду MediaWiki, як я розумію, на php.--Avatar6 (обговорення) 03:57, 14 березня 2017 (UTC)

То питання - де можна вивчити мову Луа? Бажано із прикладами (в ідеалі українською, можна російською або англійською) і з самого початку. Є певні знання. Вчив бейсік, паскаль трохи сі. Колись писав програми на них - графічні, обчислювальні, конвертори і ... просто програми. От зараз стоїть фріпаскаль і я його потроху колупаю. В шоці, бо хелп вирізали (бач, місця бааагато займає - кілька мегабайт, при тому, що той же лазарус паскалеподібний 1ГБ займає! ;-0 - щось я тут не розумію - економлять пару мегабайт, щоб втратити зручність! ;-(), а у відповідному місці на сайті, де МАЄ бути хелп - нічого вже не має! ;-( Так що тому і треба ЩОСЬ простою зрозумілою мовою.

Скажемо так, асемблер я так і не осилив, хоча іноді використовував код друзів (включення коду асемблера) на сі і на паскалі - це ще було на таких слабеньких машинах, коли час роботи паскалевих програм вимірювався хвилинами, коли на асемблері було кілька секунд!

Learn Lua in 15 Minutes (Луа за 15 хвилин) (англ.) докладніше Extension:Scribunto/Lua reference manual — сама мова, імхо, тобто синтаксис/токени/твердження/оператори доволі типові, і складнощі основні у виклику її бібліотек, розумінні об'єктно-орієнтованої будови синтаксису (структури даних — див. XML; таблиць даних — див. JSON) і розумінні послідовності обробки вікітексту рушієм.--Avatar6 (обговорення) 03:57, 14 березня 2017 (UTC)

Ок. Тепер ще по шаблону. Ви досить КОРОТКО написали, Тому майже не зрозуміло... ;-( я так і не зрозумів, що міняти і ДЕ шукати. Чому просто не замінити вертикальну риску на похилу? Ну от, в тому ж шаблоні є (ДИВ)

вертикальна риска — пайп "|" — службовий знак вікірозмітки. У виклику шаблонів — розділювач його параметрів. Пряма коса риска "/" — частина назви сторінки (тут — шаблону), яка вказує, що вона є підсторінкою сторінки без частини після косої риски. Наприклад: усі підсторінки Шаблон:Wikidata починаються на Шаблон:Wikidata (див. Special:PrefixIndex/Шаблон:Wikidata)
Просто замінити "|" на "/" неможна і не треба, бо базовий шаблон wikidata оформлює стандартні типи даних Властивостей, а підшаблони — спеціалізуються на оформленні окремих Властивостей або окремих типів даних цих Властивостей, тільки якщо це треба за задумом автора, і увага! підшаблони wikidata/... існують тільки для певних Властивостей, автори коду ru:Модуль:Wikidata виводять їх з обігу, як застарілі коли підтримка типів даних додається безпосередньо в модуль. Для прикладу різниці — в будь-якій сторінці із Властивістю P17: країна спробуйте передперегляд коду

{{wikidata|p17}} {{wikidata/p17}}

|label19 = [[Комп'ютерна платформа|Платформа]]|data19 = {{wikidata |p400|{{{платформа|{{{platform|}}} }}} }} То там міняти {{wikidata |p400| на {{wikidata/p400|? ;-0

НІ! не буде працювати бо {{wikidata/p400}} і не існує, і непотрібен.

Крім того, я так бачу, що шаблон використовує 4 або більше версій назви рядка? типу -

|label4 = Стабільний випуск |data4 = {{ #if:{{{стабільна версія|{{{стабільна_версія|{{{поточна версія|{{{ поточна_версія|{{{версія останнього релізу|{{{версія_останнього_релізу|{{{ latest release version|{{{latest_release_version|

Тобто всі оці назви можна використовувати? Вони ВСІ рівнозначні? Так само можна русифікувати шаблон? (іноді це буває корисно і зручно)

так, усі каскадовані потрійними фігурними дужками із пайпом "|" (в обробці параметрів він виконує функцію умовного оператора) параметри рівнозначні і можуть використовуватися паралельно. Єдине зауваження — при каскадуванні {{{назва параметру1|{{{назва параметру2|{{{назва параметру3|}}} }}} }}}, якщо одночасно додані усі 3 параметри, — мають пріорітет перші використані, увага! навіть, якщо вони порожні. Тобто якщо виклик шаблону містить одночасно порожній |назва параметру1= і непорожній (значимий) |назва параметру2=значення2 буде виведено порожній рядок з <назва параметру1>. Докладніше Wikipedia:Anatomy of a template[en]

|label4 = Стабільний випуск == стабільна версія =стабільна_версія = поточна версія = поточна_версія = версія останнього релізу = версія_останнього_релізу = latest release version = latest_release_version?

Пробачте, що, можливо, нубівські мої питання. Просто реально не знаю, у кого запитати - більшість або БІЛЬШІ нуби, ніж я, або небожителі-програмери, які не спускаються з небес до нубів... А деякі (типу агонка) ще й зацькуюють і засміють. Тому я і на СО і не писав, щоб він не побачив. Звісно, він і сюди може залізти - все ж відкрито, але ймовірність тут менша, що він буде заважати - та й це ж МОЯ сторінка і якщо я його сюди не запрошував, то буду сподіватися, він і не буде заважати. Дякую! Ще раз перепрошую за запитання. Сподіваюся, Ви знайдете час відповісти. :-) --Nickispeaki (обговорення) 16:14, 11 березня 2017 (UTC)

Последняя версия = версія останнього релізу? тоді має бути так -

|label4 = Стабільний випуск |data4 = {{ #if:{{{стабільна версія|{{{стабільна_версія|{{{поточна версія|{{{ поточна_версія|{{{версія останнього релізу|{{{версія_останнього_релізу|{{{ latest release version|{{{latest_release_version|

|label4 = Стабільний випуск |data4 = {{ {{wikidata|p348|{{wikidata|p348|{{{latest release version|}}}{{{latest_release_version|}}}{{{последняя версия|}}} {{{стабільна версія|{{{стабільна_версія|{{{поточна версія|{{{ поточна_версія|{{{версія останнього релізу|{{{версія_останнього_релізу|{{{ {{{latest_release_date|}}}{{{дата последней версии|}}}) }}|type=stable }} }} ? мдя! щось я з дужками і цими включеннями заплутався! І Луа - це ПРОСТО?! Це виворіт кишок! мізків! ;-0 8-) --Nickispeaki (обговорення) 17:10, 11 березня 2017 (UTC)

Ви вибрали складний приклад для вивчення. приблизно так:
|label4 = Стабільний випуск |data4 = {{ #if:{{#property:p348}}{{{стабільна версія|{{{стабільна_версія|{{{поточна версія|{{{ поточна_версія|{{{версія останнього релізу|{{{версія_останнього_релізу|{{{ latest release version|{{{latest_release_version|{{{ последняя версия|}}} }}} }}} }}} }}} }}} }}} }}} }}} |{{{стабільна версія|{{{стабільна_версія|{{{поточна версія|{{{ поточна_версія|{{{версія останнього релізу|{{{версія_останнього_релізу|{{{ latest release version|{{{latest_release_version|{{{последняя версия|}}} }}} }}} }}} }}} }}} }}} }}} }}}{{ #if:{{{дата поточної версії|{{{дата_поточної_версії|{{{дата стабільної версії|{{{ дата_стабільної_версії|{{{дата останнього релізу|{{{дата_останнього_релізу|{{{ latest release date|{{{latest_release_date|{{{дата последней версии|}}} }}} }}} }}} }}} }}} }}} }}} }}} | ({{{дата поточної версії|{{{дата_поточної_версії|{{{ дата стабільної версії|{{{дата_стабільної_версії|{{{дата останнього релізу|{{{ дата_останнього_релізу|{{{latest release date|{{{ latest_release_date|{{{дата последней версии|}}} }}} }}} }}} }}} }}} }}} }}} }}}) }} }}
type=stable — напевно не спрацює — тут треба додавати селектори (поки Вам це буде складно, але див. {{Модуль:WikidataSelectors}} (обг. · викор. · ред.)).
До того ж, саме через те, що в назви параметрів шаблонів тягнуть їх назви з інших вікі та додають усі можливі синоніми їх код стає практично нечитабельним. Значна частина шаблонів змавпована з рувікі із параметрами з великої літери. Тобто стандарту назв параметрів не розроблено, що призводить до зниження ефективності їх створення.

Пісочниця

[ред. | ред. код]

Надибав у тому шаблоні згадку про пісочницю. Це - глюк? Хтось погрався і забув видалити? Це типу як хірург - забув із пацієнта витягти ножиці і так і заживо зашив?! ;-0 Ще надибав таку сторінку - Вікіпедія:Редактори шаблонів. Так у нас навіть заявку немає куди подавати! ;-) --Nickispeaki (обговорення) 17:18, 11 березня 2017 (UTC)

Зазвичай пісочниці не видаляють, вони саме для погратися придумані.
Якщо Ви про {{Модуль:Check for unknown parameters/пісочниця}} (обг. · викор. · ред.) — то я додав, бо модифікована версія в пісочниці краще ніж копія з англовікі, але щоб вивести з пісочниці треба перевірити сумісність.
Цей модуль якраз і призначений слідкувати за правильністю параметрів виклику шаблону, див. попередню репліку.--Avatar6 (обговорення) 05:32, 14 березня 2017 (UTC)