<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWDFormat%2Fdoc</id>
	<title>Модуль:WDFormat/doc - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWDFormat%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WDFormat/doc&amp;action=history"/>
	<updated>2026-04-24T19:50:08Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WDFormat/doc&amp;diff=238719&amp;oldid=prev</id>
		<title>Karaby: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WDFormat/doc&amp;diff=238719&amp;oldid=prev"/>
		<updated>2025-07-27T15:38:08Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 15:38, 27 июля 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff:1.41:old-238718:rev-238719 --&gt;
&lt;/table&gt;</summary>
		<author><name>Karaby</name></author>
	</entry>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WDFormat/doc&amp;diff=238718&amp;oldid=prev</id>
		<title>Буквица&gt;D6194c-1cc: /* План разработки */ Вроде всё хорошо</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WDFormat/doc&amp;diff=238718&amp;oldid=prev"/>
		<updated>2023-09-03T05:47:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;План разработки: &lt;/span&gt; Вроде всё хорошо&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Модуль предназначен для форматирования набора данных, полученных из Викиданных посредством модуля [[Модуль:WDBackend|WDBackend]] или заданных вручную. Форматирование может осуществляться в произвольной форме, как в строчку, так и в табличном виде.&lt;br /&gt;
&lt;br /&gt;
Конечное представление информации задаётся профилем, который описывает, какими тегами оформлять данные, группы полей и отдельные поля, а также какие преобразования над данными необходимо сделать.&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
Модуль является библиотечным и предназначен для использования в других модулях. Данный модуль &amp;#039;&amp;#039;&amp;#039;не предназначен&amp;#039;&amp;#039;&amp;#039; для использования в статьях или других шаблонах напрямую через вызов &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#invoke&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Требуемое форматирование описывается профилем, представляющим собой таблицу Lua. Профиль описывает представление отдельных полей, то есть то, как они должны отображаться. Недостающий функционал реализуется указанием в профиле собственных функций, принимающих определённый набор аргументов и возвращающих определённый результат.&lt;br /&gt;
&lt;br /&gt;
Для форматирования профиля в совокупности с передаваемым набором данных необходимо использовать функцию &amp;lt;code&amp;gt;format()&amp;lt;/code&amp;gt;. В качестве результата возвращается отформатированный викитекст.&lt;br /&gt;
&lt;br /&gt;
Для примера использования см. модуль [[Модуль:CiteGost]].&lt;br /&gt;
&lt;br /&gt;
=== Формат профиля в общем виде ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Lua&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    -- Корневой тег:&lt;br /&gt;
    tag = {&lt;br /&gt;
        name = &amp;#039;Имя тега&amp;#039;,&lt;br /&gt;
        classes = { &amp;#039;class1&amp;#039;, &amp;#039;class2&amp;#039;, ... },&lt;br /&gt;
        attr = { атрибут1=&amp;#039;значение1&amp;#039;, атрибут2=&amp;#039;значение2&amp;#039;, ... },&lt;br /&gt;
        tag = Вложенный тег,&lt;br /&gt;
    },&lt;br /&gt;
    -- Группы:&lt;br /&gt;
    -- Начало 1-й группы:&lt;br /&gt;
    {&lt;br /&gt;
        -- Тег группы:&lt;br /&gt;
        tag = {&lt;br /&gt;
            name = &amp;#039;Имя тега&amp;#039;,&lt;br /&gt;
            classes = { &amp;#039;class1&amp;#039;, &amp;#039;class2&amp;#039;, ... },&lt;br /&gt;
            attr = { атрибут1=&amp;#039;значение1&amp;#039;, атрибут2=&amp;#039;значение2&amp;#039;, ... },&lt;br /&gt;
            css = { свойство1=&amp;#039;значение1&amp;#039;, свойство2=&amp;#039;значение2&amp;#039;, ... },&lt;br /&gt;
            tag = Вложенный тег&lt;br /&gt;
        },&lt;br /&gt;
        ensureEnds = &amp;#039;Символ/текст, которым должно заканчиваться предыдущее поле&amp;#039;,&lt;br /&gt;
        delimiter = &amp;#039;Разделитель, добавляемый по отношению к предыдущему полю&amp;#039;,&lt;br /&gt;
        childEnsureEnds = &amp;#039;Символ/текст, которым должны заканчиваться поля группы&amp;#039;,&lt;br /&gt;
        childDelimiter = &amp;#039;Разделитель полей в группе&amp;#039;,&lt;br /&gt;
        -- Дочерние элементы текущей группы по факту продолжают предыдущие элементы (влияет на повышение первой буквы до заглавной):&lt;br /&gt;
        passthrough = true,&lt;br /&gt;
        prefix = &amp;#039;Текст до начала группы&amp;#039;,&lt;br /&gt;
        -- Поля группы (подгруппы):&lt;br /&gt;
        -- 1-е поле группы:&lt;br /&gt;
        {&lt;br /&gt;
            -- Тег поля:&lt;br /&gt;
            tag = {&lt;br /&gt;
                name = &amp;#039;Имя тега&amp;#039;,&lt;br /&gt;
                classes = { &amp;#039;class1&amp;#039;, &amp;#039;class2&amp;#039;, ... },&lt;br /&gt;
                attr = { атрибут1=&amp;#039;значение1&amp;#039;, атрибут2=&amp;#039;значение2&amp;#039;, ... },&lt;br /&gt;
                tag = Вложенный тег&lt;br /&gt;
                css = { свойство1=&amp;#039;значение1&amp;#039;, свойство2=&amp;#039;значение2&amp;#039;, ... },&lt;br /&gt;
            },&lt;br /&gt;
            ensureEnds = &amp;#039;Символ/текст, которым должен заканчиваться предшествующий текст&amp;#039;,&lt;br /&gt;
            delimiter = &amp;#039;Разделитель, отделяющий текущий элемент от предыдущего&amp;#039;,&lt;br /&gt;
            -- Функция, разрешающая отображение поля:&lt;br /&gt;
            cond = функция,&lt;br /&gt;
            prefix = &amp;#039;Текст до поля&amp;#039;,&lt;br /&gt;
            field = &amp;#039;Название поля&amp;#039;,&lt;br /&gt;
            -- Менять ли первую букву поля на заглавную&lt;br /&gt;
            capitalize = true/false&lt;br /&gt;
            urlMaskProp = &amp;#039;P-идентификатор свойства, отвечающего за маску ссылки&amp;#039;,&lt;br /&gt;
            -- Функции, через которые поле будет отформатировано:&lt;br /&gt;
            format = { функция1, функция2, ... },&lt;br /&gt;
            suffix = &amp;#039;Текст после поля&amp;#039;,&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        -- Второе поле:&lt;br /&gt;
        {&lt;br /&gt;
            value = &amp;#039;Отображаемое значение&amp;#039;,&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        -- Остальные группы:&lt;br /&gt;
        ...&lt;br /&gt;
&lt;br /&gt;
        suffix = &amp;#039;Текст в конце группы&amp;#039;,&lt;br /&gt;
    },&lt;br /&gt;
    -- Остальные группы:&lt;br /&gt;
    ...&lt;br /&gt;
    ensureEnds = &amp;#039;Окончение форматированных данных, например, точка.&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Функции форматирования полей ===&lt;br /&gt;
Форматирование поля задаётся через команду &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; с указанием функции форматирования, принимающей определённый набор аргументов. Доступны следующие встроенные функции:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;numericalRanges&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — форматирование диапазона чисел (корректирует знак диапазона);&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;dash&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформление тире в тексте;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;unit&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — получение единицы измерения у элемента Викиданных;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — получить сокращённое обозначение (есть ограничения) у элемента Викиданных;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;short&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — получить короткое название у элемента Викиданных;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;abbrWithHint&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — получить сокращённое обозначение (есть ограничения) у элемента Викиданных с расшифровкой в подсказке;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — форматирование даты;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;quantity&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — форматирование количества с указанной в нём единицей измерения;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — получить значение идентификатора элемента Викиданных;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;wikilink&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформить поле Викиссылкой, если это возможно;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;wikisource&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформить поле ссылкой на Викитеку, если в элементе Викиданных указана соответствующая статья;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;link&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформить поле внешней ссылкой, если это возможно;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;wikidata&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — добавление к полю надстрочной ссылки на элемент Викиданных, если хотя бы в одном языковом разделе есть статья по теме;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;wikidataLink&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформить поле ссылкой на элемент Викиданных, который с полем связан.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;forceWikidataLink&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — оформить поле ссылкой на элемент Викиданных, который с полем связан. Формирует ссылку, даже если ранее по тексту ссылка на такой элемент была дана.&lt;br /&gt;
&lt;br /&gt;
== Внесение изменений ==&lt;br /&gt;
При исправлении ошибки, пожалуйста, сначала добавьте &amp;#039;&amp;#039;&amp;#039;тест&amp;#039;&amp;#039;&amp;#039;, который будет проваливаться из-за обнаруженной &amp;#039;&amp;#039;&amp;#039;ошибки&amp;#039;&amp;#039;&amp;#039;, и только затем вносите исправление. При внесении исправления проверьте, чтобы все тесты проходили. Вносить исправление можно только, если оно не ломает другие тесты.&lt;br /&gt;
&lt;br /&gt;
Добавление нового функционала рекомендуется делать у себя в &amp;#039;&amp;#039;&amp;#039;песочнице&amp;#039;&amp;#039;&amp;#039;, скопировав в неё модуль. В правке копирования необходимо указать тот факт, что делается копирование, и сделать ссылку на оригинальный модуль в виде викитекста. При добавлении нового функционала сначала желательно добавить тест на этот функционал, затем добавить сам функционал, убедившись, что все тесты при этом проходят.&lt;br /&gt;
&lt;br /&gt;
== Тесты ==&lt;br /&gt;
{{См. также|{{replace|{{FULLPAGENAME}}|/doc|}}/testcases}}&lt;br /&gt;
{{#invoke:{{replace|{{PAGENAME}}|/doc|}}/testcases|run|displayMode=table}}&lt;br /&gt;
&lt;br /&gt;
В качестве интеграционных тестов использованы тесты модуля, который работает на основе текущего модуля.&lt;br /&gt;
&lt;br /&gt;
{{TemplateTester|Модуль:CiteGost/testcases|только проваленные=1}}&lt;br /&gt;
&lt;br /&gt;
== План разработки ==&lt;br /&gt;
&lt;br /&gt;
{{To-do&lt;br /&gt;
| содержание = &lt;br /&gt;
* Реализовать форматирование сносок, подтверждающих поля.&lt;br /&gt;
* Возможность отображения только тех утверждений, которые подтверждены сносками.&lt;br /&gt;
* Ограничение количества сносок (по умолчанию 3-мя), подумать о возможности комбинирования сносок в троеточии.&lt;br /&gt;
* Сделать демку шаблона (в песочнице) сноски по QID.&lt;br /&gt;
* Более подробная документация с примерами.&lt;br /&gt;
* Подумать о возможности форматирования группы целиком (объединение полей заглавия и подзаголовка в форматируемую группу, в которую добавится ссылка). По логике, родительская группа будет полем ссылки.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Модуль:WDBackend|WDBackend]] — модуль получения информации из Викиданных по задаваемой схеме.&lt;br /&gt;
* [[Модуль:WDSource|WDSource]] — модуль получения информации об источнике из соответствующего элемента Викиданных.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Категория:Модули:Викиданные]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Буквица&gt;D6194c-1cc</name></author>
	</entry>
</feed>