<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.aprelteam.by/index.php?action=history&amp;feed=atom&amp;title=Aprel_Wiki%3A%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8</id>
	<title>Aprel Wiki:Модули - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aprelteam.by/index.php?action=history&amp;feed=atom&amp;title=Aprel_Wiki%3A%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=Aprel_Wiki:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8&amp;action=history"/>
	<updated>2026-08-02T07:02:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.6</generator>
	<entry>
		<id>https://wiki.aprelteam.by/index.php?title=Aprel_Wiki:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8&amp;diff=3208&amp;oldid=prev</id>
		<title>APRELKUN: Новая страница: «{{руководство|ВП:МОДУЛЬ}}{{оглавление справа}} &#039;&#039;&#039;Модули&#039;&#039;&#039; — это специальные страницы Aprel Wiki, содержащие код на языке Lua, который может быть запущен для генерации содержимого других страниц. Назначение модулей — расширение функций движка Aprel Wiki...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.aprelteam.by/index.php?title=Aprel_Wiki:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8&amp;diff=3208&amp;oldid=prev"/>
		<updated>2023-12-09T08:56:54Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{руководство|ВП:МОДУЛЬ}}{{оглавление справа}} &amp;#039;&amp;#039;&amp;#039;Модули&amp;#039;&amp;#039;&amp;#039; — это специальные страницы Aprel Wiki, содержащие код на языке &lt;a href=&quot;/index.php?title=Lua&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Lua (страница не существует)&quot;&gt;Lua&lt;/a&gt;, который может быть запущен для генерации содержимого других страниц. Назначение модулей — расширение функций &lt;a href=&quot;/index.php?title=MediaWiki&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki (страница не существует)&quot;&gt;движка Aprel Wiki&lt;/a&gt;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{руководство|ВП:МОДУЛЬ}}{{оглавление справа}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Модули&amp;#039;&amp;#039;&amp;#039; — это специальные страницы Aprel Wiki, содержащие код на языке [[Lua]], который может быть запущен для генерации содержимого других страниц. Назначение модулей — расширение функций [[MediaWiki|движка Aprel Wiki]] за счёт относительно сложных функций, написанных пользователями. Модули размещаются в [[ВП:Пространства имён|пространстве имён]] «[[Special:PrefixIndex/Module:|Модуль]]» ({{mwmw|ns|828}}). Кроме них, в данном пространстве размещаются документация модулей на подстраницах вида &amp;#039;&amp;#039;{{MediaWiki:Scribunto-doc-page-name}}&amp;#039;&amp;#039;, страницы JSON-данных и [[Aprel Wiki:TemplateStyles|стилей шаблонов]]. На текущий момент все незаблокированные участники русской Aprel Wikiимеют возможность создавать и редактировать модули, кроме [[ВП:Защита страниц|защищённых]].&lt;br /&gt;
&lt;br /&gt;
== Технические особенности ==&lt;br /&gt;
* Страницы с исполнимым кодом на Lua — это страницы в пространстве имён модулей, кроме тех, название которых соответствует шаблону документации модуля. Технически нельзя [[ВП:Переименование страниц|переименовать]] в модуль страницу, содержащую вики-код, и наоборот.&lt;br /&gt;
* На страницах модулей не действуют никакие конструкции [[ВП:Викиразметка|вики-кода]], включая тэги категоризации, включения шаблонов, комментарии. Перед кодом модуля автоматически [[ВП:Механизм шаблонов|включается]] страница документации (или выводится приглашение создать её, если её нет), на которой могут быть все подобные элементы.&lt;br /&gt;
* Вызов модуля с других страниц может осуществляться:&lt;br /&gt;
** Непосредственным использованием конструкции {{mwmw|invoke|Имя модуля|функция|…}};&lt;br /&gt;
** Включением данной конструкции через [[ВП:Шаблоны|шаблон]] (любую включаемую страницу), при этом модулю доступны параметры непосредственно вызывающего &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt; шаблона;&lt;br /&gt;
** Вызовом из другого модуля (см. [[mw:Extension:Scribunto/Lua reference manual/ru|документацию Lua]]).&lt;br /&gt;
: Во всех случаях результат аналогичен появлению в статье на месте раскрытия &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt; некоторого вики-кода.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Страницы модулей для пользователей, у которых включён в браузере [[JavaScript]], открываются для редактирования в специальном удобном редакторе. Редактор включает в себя средства для отладки модуля без сохранения. Также по умолчанию движок не даёт сохранить модуль с синтаксической ошибкой.&lt;br /&gt;
* Обычно модуль вычисляется в каждой конструкции &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;, которая его вызывает; его значением должна быть {{luaman|Таблицы|таблица}}, содержащая функции. Есть {{luaman|f=mw.loadData|text=возможность}} вычислять некоторые данные, вызывая модуль однократно при обновлении страницы.&lt;br /&gt;
* Для кода на Lua действуют определённые {{comment|технические [[ВП:пределы шаблонов|ограничения]]|требуется дописать туда}}, при превышении которых возникают ошибки.&lt;br /&gt;
&lt;br /&gt;
== Организационные особенности ==&lt;br /&gt;
# Модули, их документация и обсуждения являются страницами [[ВП:Aprel Wiki|Aprel Wiki]]. Все базовые [[ВП:ПИУ|правила Aprel Wiki]] (например, [[ВП:АП]], [[ВП:НТЗ]], [[ВП:СОВР]]) должны соблюдаться также и в них. Содержимое, генерируемое модулем при корректном использовании, также должно удовлетворять всем правилам для содержимого соответствующих страниц (например, [[ВП:КДИ]]).&lt;br /&gt;
# Модули во многом аналогичны [[ВП:Шаблоны|шаблонам]], и в большинстве случаев положения правил для шаблонов автоматически распространяются на них (например, [[ВП:ПАТ]], [[ВП:ЗС]]).&lt;br /&gt;
# Не следует использовать конструкцию {{mwmw|invoke}} непосредственно [https://ru.wikipedia.org/w/index.php?search=insource:invoke&amp;amp;title=Special:Search&amp;amp;ns0=1 на страницах основного пространства имён], категорий, документации проекта и т. п. Сколько-нибудь широко применяемые модули следует использовать через специальные [[ВП:шаблоны|шаблоны]].&lt;br /&gt;
# Для модулей, как правило, обязательно наличие страниц документации, содержащих, как минимум, категорию [[:Категория:Aprel Wiki:Модули]] или одну из её подкатегорий (иначе модуль не может быть [[ВП:КАТ|категоризован]]). Крайне желательно также объяснить там, где, как и для чего должен применяться модуль и его отдельные функции.&lt;br /&gt;
# Настоятельно рекомендуется отлаживать модуль сперва в консоли, а после сохранения и перед практическим применением за пределами личного пространства — с помощью [[Модуль:UnitTests]] (см. документацию). При отладке новых функций в уже используемых модулях рекомендуется создавать для экспериментов временную версию (например, [[Модуль:Math/песочница]]). В особенности эти положения относятся к [[ВП:МНОГОЕ|активно используемым]] и близким к пределам ограничений модулям.&lt;br /&gt;
# В пространстве модулей размещаются страницы [[ВП:ЛСУ|пользователей]], [[ВП:Проекты|проектов]], [[ВП:Порталы|порталов]] и т. п., для которых необходимо исполнение кода. Они должны иметь псевдопрефикс вида &amp;lt;code&amp;gt;Участник:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Проект:&amp;lt;/code&amp;gt; (например, [[Модуль:Участник:%username%/песочница]]) либо располагаться на подстраницах [[Модуль:Песочница]] ([[Модуль:Песочница/%username%]], [[Модуль:Песочница/%username%/какая-то заготовка]]). Содержимое таких страниц должно отвечать критериям для данного пространства имён.&lt;br /&gt;
# Код модулей желательно [[Комментарии (программирование)|комментировать]], чтобы другим участникам проще было вносить в него изменения.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
{{проект}}&lt;br /&gt;
* [[:Категория:Aprel Wiki:Модули]]&lt;br /&gt;
* [[Aprel Wiki:Использование Lua]] — краткое руководство программиста&lt;br /&gt;
* [[mw:Extension:Scribunto/Lua reference manual/ru|Русскоязычная документация Lua]] (может обновляться медленнее [[mw:Extension:Scribunto/Lua reference manual|английской версии]])&lt;br /&gt;
** {{tl|Luaman}} — шаблон для ссылок на эту документацию&lt;br /&gt;
* [[mw:Manual:Coding conventions/Lua]] — [[ВП:эссе|эссе]], вариант рекомендаций по оформлению кода&lt;br /&gt;
* [[mw:Extension:Scribunto]] — расширение, позволяющее запускать Lua на вики-сайтах&lt;br /&gt;
&lt;br /&gt;
[[Категория:Aprel Wiki:Модули|!]]&lt;br /&gt;
[[Категория:Aprel Wiki:Справка по шаблонам]]&lt;/div&gt;</summary>
		<author><name>APRELKUN</name></author>
	</entry>
</feed>