<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Fdoc</id>
	<title>Модуль:Sources/doc - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/doc&amp;action=history"/>
	<updated>2026-05-05T23:59:08Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/doc&amp;diff=7485&amp;oldid=prev</id>
		<title>Dzmuh: Новая страница: «&lt;includeonly&gt; {{Модуль из википедии|Sources}} &lt;/includeonly&gt;  == Принцип работы модуля == Данный модуль генер...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources/doc&amp;diff=7485&amp;oldid=prev"/>
		<updated>2022-03-20T13:19:52Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;lt;includeonly&amp;gt; {{Модуль из википедии|Sources}} &amp;lt;/includeonly&amp;gt;  == Принцип работы модуля == Данный модуль генер...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Модуль из википедии|Sources}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Принцип работы модуля ==&lt;br /&gt;
Данный модуль генерирует текст, используемый в сносках, ссылающихся на элемент викиданных.&lt;br /&gt;
&lt;br /&gt;
== Тесты [ [//ru.wikipedia.org/w/index.php?title=Модуль:Sources/тесты&amp;amp;action=edit править] ] ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#invoke: Sources/тесты | run_tests}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Служебные подмодули ==&lt;br /&gt;
&lt;br /&gt;
* [[Модуль:Sources/utils]]&lt;br /&gt;
&lt;br /&gt;
== Используемые параметры Викиданных ==&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
! Свойство !! Комментарий&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P50}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P2093}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P407}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P364}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P958}} || используется для указания названия статьи в энциклопедии&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1476}} || если требуется переопределить название из метки элемента&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1680}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P953}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1065}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P854}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1433}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P393}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P123}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P291}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P98}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P304}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1104}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P478}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P433}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P571}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P577}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P212}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P957}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P236}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P1545}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P818}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{WD property|P888}} ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Функции ==&lt;br /&gt;
&lt;br /&gt;
=== Внешние ===&lt;br /&gt;
Внешние функции принимают объекты типа [[mw:Extension:Scribunto/Lua reference manual#Frame%20object|фрейм]] и предназначены для вызова из других модулей или через функцию парсера {{Code|&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
''Прямое обращение к функциям модулей в статьях крайне нежелательно! Используйте для этих целей подходящие шаблоны.''&lt;br /&gt;
&lt;br /&gt;
==== '''p.renderSource('''''frame''''')''' ====&lt;br /&gt;
Выдаёт вики-текст ссылки на заданный источник для подстановки внутрь сноски или списка литературы. См. шаблоны {{tl|source}} и {{tl|ВД-Источник}}, использующие данную функцию''.'' Поддерживает следующие аргументы:&lt;br /&gt;
&lt;br /&gt;
*{{Code|frame.args[1]}} — анонимный аргумент, задающий идентификатор объекта на викиданных, по которому нужно сгенерировать ссылку. Например, [[d:Q20750516|Q20750516]].&lt;br /&gt;
*{{Code|frame.args['ref']}} — задаёт метку ''ref'', которую в дальнейшем можно будет использовать в шаблонах типа {{Tl|sfn}}.&lt;br /&gt;
*{{Code|frame.args['ref-year']}} — задаёт метку ''ref-year'', которая используется аналогично метке ''ref''.&lt;br /&gt;
*{{Code|frame.args['part']}} — дополнительный аргумент, позволяющий уточнить часть источника, на которую идёт ссылка (например, главу в книге).&lt;br /&gt;
*{{Code|frame.args['parturl']}} — ссылка, которую следует поставить на часть, описанную предыдущим аргументом.&lt;br /&gt;
*{{Code|frame.args['pages']}} — конкретные страницы в источнике, на которые ведётся ссылка.&lt;br /&gt;
*{{Code|frame.args['url']}} — позволяет явно указать, какую ссылку нужно будет проставить на источник.&lt;br /&gt;
*{{Code|frame.args['volume']}} — позволяет явно указать том источника, на который идёт ссылка.&lt;br /&gt;
*{{Code|frame.args['issue']}} — позволяет явно указать выпуск источника, на который идёт ссылка.&lt;br /&gt;
&lt;br /&gt;
Пробрасывание большей части аргументов происходит в ''[[Модуль:Sources/utils|utils.copyArgsToSnaks]]''. Сам переданный фрейм сохраняется в ''p.currentFrame'' для дальнейшего использования, а на основе переданных аргументов функцией ''artificialSnaks'' создаются искусственные [[d:Wikidata:Glossary|снеки]],  которые ссылаются на источник, указанный в {{Code|frame.args[1]}}, через свойства [[d:Property:P248|P248]] (''stated in'') и [[d:Property:P805|P805]] (''statement is subject of''). Затем данные передаются в ''renderReferenceImpl'' для дальнейшей обработки.&lt;br /&gt;
&lt;br /&gt;
==== '''p.renderReference('''''frame, currentEntity, reference''''')''' ====&lt;br /&gt;
Выдаёт вики-текст готовой сноски на заданный источник. Поддерживает те же аргументы, что и ''p.renderSource'', кроме ''ref'' и ''ref-year''. См. шаблоны {{tl|source-ref}} и {{tl|ВД-Сноска}}, использующие данную функцию''.'' Также используется в [[Модуль:Wikidata]] для отображения ссылок, указанных возле утверждений на викиданных. Если ''currentEntity'' и ''reference'' отсутствуют, создаются искусственные снеки с помощью функции ''artificialSnaks,'' после чего они передаются в ''renderReferenceImpl''. Если вики-текст для сноски был успешно сгенерирован, он оборачивается в тэг {{Code|&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;&amp;lt;/nowiki&amp;gt;}} с помощью [[mw:Extension:Scribunto/Lua reference manual#frame:extensionTag|frame:extensionTag]], при этом имя для сноски генерируется путём хеширования её вики-текста через [[mw:Extension:Scribunto/Lua reference manual#mw.hash.hashValue|mw.hash.hashValue]]. Статьи, с такими сносками помещаются в [[:Категория:Википедия:Статьи с источниками из Викиданных]].&lt;br /&gt;
&lt;br /&gt;
=== Внутренние ===&lt;br /&gt;
&lt;br /&gt;
==== '''tokenizeName('''''fullName''''')''' ====&lt;br /&gt;
Преобразует полное имя в пару ''{фамилии через пробел, инициалы имён через пробел}''. Реализована в виде разбора случаев, которые можно встретить на викиданных:&lt;br /&gt;
&lt;br /&gt;
# ''Фамилия, Имя''&lt;br /&gt;
# ''Фамилия, Имя Имя''&lt;br /&gt;
# ''Фамилия Фамилия, Имя''&lt;br /&gt;
# ''Имя Имя [[оглы]] Фамилия''&lt;br /&gt;
# ''Имя Имя де Фамилия''&lt;br /&gt;
# ''Имя … Имя Фамилия'' (хотя бы одно и не более четырёх единичных имён)&lt;br /&gt;
&lt;br /&gt;
Здесь имя, в отличие от фамилии, может являться инициалом. Если ни один из форматов выше не выполнен, возвращает полное имя без изменений.&lt;br /&gt;
&lt;br /&gt;
==== '''personNameToAuthorName('''''fullName''''')''' ====&lt;br /&gt;
Преобразует полное имя в формат ''Фамилия И. О.'' с помощью ''tokenizeName''.&lt;br /&gt;
&lt;br /&gt;
==== '''personNameToResponsibleName('''''fullName''''')''' ====&lt;br /&gt;
Преобразует полное имя в формат ''И. О. Фамилия'' с помощью ''tokenizeName''.&lt;br /&gt;
&lt;br /&gt;
==== '''getPeopleAsWikitext('''''context, value, options''''')''' ====&lt;br /&gt;
Преобразует список имён ''value'' в викитекст в соответствии со списком опций ''options''. В опциях должны быть проставлены следующие поля:&lt;br /&gt;
&lt;br /&gt;
# ''separator'' — разделитель в списке;&lt;br /&gt;
# ''conjunction'' — разделитель перед последним элементом списка;&lt;br /&gt;
# ''format'' — функция, преобразующая имена к некоторому нормализованному виду (например, ''personNameToAuthorName'');&lt;br /&gt;
# ''nolinks'' — логическое значение, должно быть истинным если проставление ссылок нежелательно;&lt;br /&gt;
#''preferids'' — логическое значение, должно быть истинным если нужно вернуть id с викиданных, а не имена.&lt;br /&gt;
&lt;br /&gt;
Если в списке больше ''maxAuthors'' (на текущий момент 10) людей, заменяет остальных на ''и др.'' или его аналоги (если в контексте указан язык, то используется ''i18nEtAl[context.lang]'', иначе используется ''i18nEtAlDefault'').&lt;br /&gt;
&lt;br /&gt;
==== '''appendProperty('''''result, context, src, conjunctor, property, url''''')''' ====&lt;br /&gt;
Приписывает ''src[property]'' к ''result'', разделяя их строкой, записанной в ''conjunctor''. Если возможно, оформляет его ссылкой на ''src[url].''&lt;br /&gt;
&lt;br /&gt;
==== '''generateAuthorLinks('''''context, src''''')''' ====&lt;br /&gt;
Возвращает список авторов ''src.author'', оформленный через ''getPeopleAsWikitext'' и обрамлённый в {{Code|&amp;lt;nowiki&amp;gt;&amp;lt;i class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/nowiki&amp;gt;}}''.''&lt;br /&gt;
&lt;br /&gt;
==== '''appendTitle('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|src.part // src.title}} либо только {{Code|src.title}}  если ''src.part'' не указан. Если возможно, обрамляет ''src.part'' (или ''src.title'' если ''src.part'' не указан) в ''src.url''.&lt;br /&gt;
&lt;br /&gt;
==== '''appendLanguage('''''result, context, src''''')''' ====&lt;br /&gt;
Если ''context.lang'' отличается от ''i18nDefaultLanguage'' (в нашем разделе русский), то указание об этом приписывается к ''result'' с помощью [[Модуль:Languages]] в формате {{Tl|ref-lang}}.&lt;br /&gt;
&lt;br /&gt;
==== '''appendSubtitle('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|: src.subtitle}} если ''src.subtitle'' определён.&lt;br /&gt;
&lt;br /&gt;
==== '''appendOriginalTitle('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|1=&amp;amp;nbsp;= src.originaltitle}} если ''src.originaltitle'' определён.&lt;br /&gt;
&lt;br /&gt;
==== '''appendPublication('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|&amp;amp;nbsp;// src.publication: src.publication.subtitle}} если определён ''src.publication.subtitle'', либо {{Code|&amp;amp;nbsp;// src.publication}} если определён только ''src.publication''.&lt;br /&gt;
&lt;br /&gt;
==== '''appendEditor('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|&amp;amp;nbsp;/ prefix src.editor}} если определён ''src.editor'', где ''prefix'' определяется по ''context.lang'' (по умолчанию, {{Code|под ред.}}).&lt;br /&gt;
&lt;br /&gt;
==== '''appendEdition('''''result, context, src''''')''' ====&lt;br /&gt;
Дописывает к ''result'' строку {{Code|&amp;amp;nbsp;— src.edition}} если ''src.edition'' определён.&lt;br /&gt;
&lt;br /&gt;
==== '''appendPublicationData('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку вида {{Code|&amp;amp;nbsp;— src.place: src.publisher, src.year.}} если хотя бы один из указанных параметров определён. Неуказанная часть опускается вместе с соответствующей пунктуацией. В частности, двоеточие ставится только если указано ''src.place'' и хотя бы что-то из ''src.publisher'' и ''src.year'', запятая ставится только если указаны и ''src.publisher'', и ''src.year''. Тире и точка ставятся если указан хотя бы один из параметров.&lt;br /&gt;
&lt;br /&gt;
==== '''appendVolumeAndIssue('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку виду {{Code|&amp;amp;nbsp;— letter_vol src.volume, letter_iss src.issue.}} если хотя бы один из указанных параметров определён. Запятая ставится если указаны оба параметра. ''letter_vol'' и ''letter_iss'' определяются по ''context.lang'' (например, {{Code|Т.}} и {{Code|вып.}} для русских текстов, {{Code|Vol.}} и {{Code|Iss.}} для английских).&lt;br /&gt;
&lt;br /&gt;
==== '''appendPages('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку вида {{Code|&amp;amp;nbsp;— letter src.pages.}} если ''src.pages'' определён, при этом в качестве разделителя в ''src.pages'', если это диапозон страниц, используется символ «—», а ''letter'' определяется исходя из ''context.lang'' (например, {{code|P.}} для английского и {{code|С.}} для русского).&lt;br /&gt;
&lt;br /&gt;
==== '''appendNumberOfPages('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку вида {{Code|&amp;amp;nbsp;— src.numberOfPages letter}} если ''src.numberOfPages'' определён. При этом ''letter'' определяется из ''context.lang'' ({{Code|p.}} для английского и {{Code|с.}} для русского).&lt;br /&gt;
&lt;br /&gt;
==== '''appendBookSeries('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку вида {{Code|&amp;amp;nbsp;— (src.bookSeries; letter_vol src.bookSeriesVolume, letter_iss src.bookSeriesIssue)}} если ''src.bookSeries'' определено. Точка с запятой ставится только если определено ''src.bookSeriesVolume'' или ''src.bookSeriesIssue'', запятая ставится если определены оба параметра. ''letter_vol'' и ''letter_iss'' определяются из ''context.lang'', аналогично тому, как это делается в ''appendVolumeAndIssue''.&lt;br /&gt;
&lt;br /&gt;
==== '''appendBookSeries('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' информацию из ''src.tirage'' если тот определён. Формат определяется из ''context.lang'', для английского это {{code|&amp;amp;nbsp;— ed. size: src.tirage}}, а для русского {{code|&amp;amp;nbsp;— src.tirage экз.}}.&lt;br /&gt;
&lt;br /&gt;
==== '''appendIdentifiers('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' идентификаторы [[ISBN]], [[ISSN]], [[Doi|DOI]], [[PMID]] и [[ArXiv.org|arXiv]] если те определены. Идентификаторы приписываются через тире, более точный формат определён в таблицах ''options_commas'', ''options_issn'', ''options_doi'', ''options_pmid'' и ''options_arxiv''.&lt;br /&gt;
&lt;br /&gt;
==== '''appendSourceId('''''result, context, src''''')''' ====&lt;br /&gt;
Оборачивает ''result'' в {{Code|&amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;wikidata_cite citetype&amp;quot; data-entity-id=&amp;quot;src.sourceId&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;}}, где ''citetyle'' это ''src.type'' если это поле определено и ''citetype_unknown'' в противном случае.&lt;br /&gt;
&lt;br /&gt;
==== '''appendAccessDate('''''result, context, src''''')''' ====&lt;br /&gt;
Добавляет к ''result'' строку виду {{Code|&amp;lt;small&amp;gt;Проверено dd month yyyy.&amp;lt;/small&amp;gt;}}, где ''dd'', ''month'' и ''yyyy'' берутся из ''src.accessdate'' если данное поле определено.&lt;br /&gt;
&lt;br /&gt;
==== '''populateUrl('''''context, src''''')''' ====&lt;br /&gt;
Если ''src.url'' не определено, но ''src.sourceId'' известен, пытается присвоить в ''src.url'' ссылку на [[Викитека|викитеку]].&lt;br /&gt;
&lt;br /&gt;
==== '''populateYear('''''src''''')''' ====&lt;br /&gt;
Если ''src.year'' не определён, пытается заполнить его из ''src.dateOfPublication'' и ''src.dateOfCreation''.&lt;br /&gt;
&lt;br /&gt;
==== '''populateTitle('''''src''''')''' ====&lt;br /&gt;
Если ''src.title'' не определён, пытается присвоить ему ''src.url'', если и это не получается, то присваивает {{Code|''(unspecified title)''}}.&lt;br /&gt;
&lt;br /&gt;
==== '''renderSource('''''context, src''''')''' ====&lt;br /&gt;
Внутренняя функция, генерирующая текст, который будет отображаться в сноске. Действует следующим образом:&lt;br /&gt;
&lt;br /&gt;
# Записывает ''src.lang'' в ''context.lang'' (или ''i18nDefaultLanguage'' если ''src.lang'' записать не получилось).&lt;br /&gt;
#Вызывает ''populateUrl'', ''populateTitle'' и ''populateYear''.&lt;br /&gt;
# Заводит переменную ''result'', изначально равную ''generateAuthorLinks(context, src)''.&lt;br /&gt;
# .Последовательно применяет к ''result'' функции ''appendTitle—appendAccessDate'', при этом блок ''appendEditor—appendAccessDate'' дополнительно обрамляется в {{Code|&amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== '''artificialSnaks('''''args''''')''' ====&lt;br /&gt;
Создаёт искусственные [[d:Wikidata:Glossary|снеки]], которые ссылаются на источник с идентификатором ''frame.args[1]'' через свойства [[d:Property:P248|P248]] (''stated in'') и [[d:Property:P805|P805]] (''statement is subject of''), а также пробрасывает в них аргументы (том, выпуск и т. д.).&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Категория:Модули:Документация]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dzmuh</name></author>
	</entry>
</feed>