<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5</id>
	<title>Модуль:Источники по теме - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5"/>
	<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5&amp;action=history"/>
	<updated>2026-04-12T18:19:11Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=4351&amp;oldid=prev</id>
		<title>Импортёр: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=4351&amp;oldid=prev"/>
		<updated>2024-05-01T09:53:41Z</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;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:53, 1 мая 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&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;/table&gt;</summary>
		<author><name>Импортёр</name></author>
	</entry>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=4350&amp;oldid=prev</id>
		<title>ru&gt;Andras: Новая страница: «local RU = &#039;ru&#039; local WIKISOURCE = &#039;wikisource&#039; local RUWIKISOURCE = &#039;ruwikisource&#039;  -- Приоритет выбора ссылок на интервики. Расставлены примерно по величине размера проекта и числу админов, с приоритетом для европ., и en-de/pl-uk языков. &#039;*&#039; — любая другая другая интервика local preferredLanguages = { RU, &#039;en&#039;, &#039;de&#039;...»</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=4350&amp;oldid=prev"/>
		<updated>2023-10-22T18:26:20Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local RU = &amp;#039;ru&amp;#039; local WIKISOURCE = &amp;#039;wikisource&amp;#039; local RUWIKISOURCE = &amp;#039;ruwikisource&amp;#039;  -- Приоритет выбора ссылок на интервики. Расставлены примерно по величине размера проекта и числу админов, с приоритетом для европ., и en-de/pl-uk языков. &amp;#039;*&amp;#039; — любая другая другая интервика local preferredLanguages = { RU, &amp;#039;en&amp;#039;, &amp;#039;de&amp;#039;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local RU = &amp;#039;ru&amp;#039;&lt;br /&gt;
local WIKISOURCE = &amp;#039;wikisource&amp;#039;&lt;br /&gt;
local RUWIKISOURCE = &amp;#039;ruwikisource&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- Приоритет выбора ссылок на интервики. Расставлены примерно по величине размера проекта и числу админов, с приоритетом для европ., и en-de/pl-uk языков. &amp;#039;*&amp;#039; — любая другая другая интервика&lt;br /&gt;
local preferredLanguages = { RU, &amp;#039;en&amp;#039;, &amp;#039;de&amp;#039;, &amp;#039;pl&amp;#039;, &amp;#039;uk&amp;#039;, &amp;#039;fr&amp;#039;, &amp;#039;it&amp;#039;, &amp;#039;es&amp;#039;, &amp;#039;cs&amp;#039;, &amp;#039;pt&amp;#039;, &amp;#039;da&amp;#039;, &amp;#039;sv&amp;#039;, &amp;#039;fi&amp;#039;, &amp;#039;ja&amp;#039;, &amp;#039;zh&amp;#039;, &amp;#039;he&amp;#039;, &amp;#039;ar&amp;#039;, &amp;#039;*&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local util = require(&amp;quot;Module:Util&amp;quot;)&lt;br /&gt;
local wikidata = require(&amp;quot;Модуль:Источники по теме/wikidata&amp;quot;)&lt;br /&gt;
local projects_cfg = util.get_json(&amp;#039;MediaWiki:Wikiprojects settings.json&amp;#039;)&lt;br /&gt;
local encyclopediasData = util.get_json(&amp;quot;MediaWiki:Encyclopedias settings.json&amp;quot;) -- настройки заголовков энциклопедий и их id в ВД&lt;br /&gt;
-- local encyclopedias_sites_cfg = util.get_json(&amp;quot;MediaWiki:Encyclopedias sites.json&amp;quot;) -- настройки энциклопедий на внеших сайтах&lt;br /&gt;
&lt;br /&gt;
local page = require(&amp;quot;Модуль:Данные страницы&amp;quot;).page&lt;br /&gt;
function page:add_project(project, manual, wd, index)&lt;br /&gt;
	local d = p.set_priority_links(manual, wd)&lt;br /&gt;
	if not self.projects[index] then self.projects[index] = { label = self.sitelinks[index].label, id = self.sitelinks[index].id, links = {} } end&lt;br /&gt;
	table.insert(self.projects[index].links, { project = project, title = d.title, link = d.link, lang = d.lang, manual_link = manual.link, manual_lang = manual.lang, wd_link = wd.link, wd_lang = wd.lang })&lt;br /&gt;
end&lt;br /&gt;
function page:add_enc(s) table.insert(self.enc_wikilinks, s) end&lt;br /&gt;
page.enc_links_raw = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Приоритет ссылок на википроекты: ручных ссылок или из ВД&lt;br /&gt;
function p.set_priority_links(manual, wd)&lt;br /&gt;
	local data = {}&lt;br /&gt;
	if manual.link and wd.link then&lt;br /&gt;
		-- RU ссылки приоритетней из ВД&lt;br /&gt;
		-- Ручные обычно устарели на 5-10 лет, часто ведут на ошибочные, удалённые статьи или переделанные в неоднозначности&lt;br /&gt;
		-- Ссылка на интервики из ВД только если нет ручной ссылки. Поскольку ручная ссылка обычно точнее общей, указанной в preferredLanguages&lt;br /&gt;
		if wd.lang == RU then&lt;br /&gt;
			data = wd&lt;br /&gt;
&lt;br /&gt;
		else&lt;br /&gt;
			for _, preflang in pairs(preferredLanguages) do&lt;br /&gt;
				if preflang ~= RU and preflang ~= &amp;#039;*&amp;#039; then&lt;br /&gt;
					if preflang == wd.link then&lt;br /&gt;
						data = wd&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if data.link == nil then data = manual end&lt;br /&gt;
	elseif manual.link then&lt;br /&gt;
		data = manual&lt;br /&gt;
	elseif wd.link then&lt;br /&gt;
		data = wd&lt;br /&gt;
	end&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- сортировка интервик в формате [проект.язык.страница]. Без monolanguage-проектов.&lt;br /&gt;
local function reshape_interwiki_by_projects(wikidataInterwiki)&lt;br /&gt;
	local interwiki_by_projects = {}&lt;br /&gt;
	for langprojectcode, title in pairs(wikidataInterwiki) do&lt;br /&gt;
		if title and langprojectcode ~= &amp;#039;commonswiki&amp;#039; and langprojectcode ~= &amp;#039;specieswiki&amp;#039; then&lt;br /&gt;
			for _, project in pairs(projects_cfg) do&lt;br /&gt;
				if not project.monolanguage then&lt;br /&gt;
					local project_code = project.project&lt;br /&gt;
					local lang = string.match(langprojectcode, &amp;#039;^(.*)&amp;#039; .. project_code .. &amp;#039;$&amp;#039;)&lt;br /&gt;
					if is(lang) then&lt;br /&gt;
						if not interwiki_by_projects[project_code] then interwiki_by_projects[project_code] = {} end&lt;br /&gt;
						interwiki_by_projects[project_code][lang] = title&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return interwiki_by_projects&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- заполняет список `page.projects`&lt;br /&gt;
local function make_list_projects_links()&lt;br /&gt;
	local args = page.args&lt;br /&gt;
	for index, section in ipairs(page.sitelinks) do&lt;br /&gt;
		local sitelinks = section.data&lt;br /&gt;
		--mw.logObject(sitelinks,&amp;quot;sitelinks&amp;quot;)&lt;br /&gt;
		local sitelinks_by_projects = reshape_interwiki_by_projects(sitelinks)&lt;br /&gt;
	&lt;br /&gt;
		for _, project in pairs(projects_cfg) do&lt;br /&gt;
			local projectCode = project.project -- like &amp;#039;wikisource&amp;#039;&lt;br /&gt;
			local prj_code = project.code&lt;br /&gt;
			local prj_sitelinks = sitelinks_by_projects[projectCode]&lt;br /&gt;
	&lt;br /&gt;
			local manual = { lang = nil, link = nil, title = nil } -- ссылки из аргумента шаблона&lt;br /&gt;
			local wd = { lang = nil, link = nil, title = nil } -- ссылка из Викиданных&lt;br /&gt;
	&lt;br /&gt;
			-- ручная ссылка в параметре шаблона&lt;br /&gt;
			local value = args[project.arg] -- значение параметра&lt;br /&gt;
			if is(value) then&lt;br /&gt;
				local lang, title = string.match(value, &amp;#039;^:?([a-z]+):(.+)&amp;#039;) -- ссылка формата &amp;#039;:код_языка:Название&amp;#039; в параметрах&lt;br /&gt;
				if not title then&lt;br /&gt;
					lang, title = RU, value&lt;br /&gt;
				end&lt;br /&gt;
				if project.monolanguage then&lt;br /&gt;
					manual.lang, manual.title, manual.link = nil, title, util.make_interlink(prj_code, nil, title)&lt;br /&gt;
				else&lt;br /&gt;
					manual.lang, manual.title, manual.link = lang, title, util.make_interlink(prj_code, lang, title)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			-- поиск ссылки в Викиданных&lt;br /&gt;
			-- моноязычные проекты (Викисклад, Викивиды, Викиданные)&lt;br /&gt;
			if project.monolanguage then&lt;br /&gt;
				local title = sitelinks[projectCode]&lt;br /&gt;
				if projectCode == &amp;#039;commons&amp;#039; and not title then&lt;br /&gt;
					title = sitelinks[&amp;#039;commonswiki&amp;#039;]&lt;br /&gt;
				end&lt;br /&gt;
				if title then&lt;br /&gt;
					wd.title, wd.link = title, util.make_interlink(prj_code, nil, title)&lt;br /&gt;
				end&lt;br /&gt;
	&lt;br /&gt;
			-- мультиязычные проекты&lt;br /&gt;
			elseif prj_sitelinks then&lt;br /&gt;
				local foundProjectLink = false&lt;br /&gt;
	&lt;br /&gt;
				-- перебор предпочтительных языков preferredLanguages&lt;br /&gt;
				for _, preflang in pairs(preferredLanguages) do&lt;br /&gt;
	&lt;br /&gt;
					if preflang == &amp;#039;*&amp;#039; then&lt;br /&gt;
						-- языки под &amp;#039;*&amp;#039; в preferredLanguages&lt;br /&gt;
						for lang, title in pairs(prj_sitelinks) do&lt;br /&gt;
							if lang then --  and projectCode ~= WIKISOURCE -- ссылки на малоразвитые интерВикитеки не нужны&lt;br /&gt;
								wd.lang, wd.title, wd.link = lang, title, util.make_interlink(prj_code, lang, title)&lt;br /&gt;
								foundProjectLink = true&lt;br /&gt;
								break&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
	&lt;br /&gt;
					else&lt;br /&gt;
						-- языки не под &amp;#039;*&amp;#039; в preferredLanguages&lt;br /&gt;
						local lang = preflang&lt;br /&gt;
						local title = prj_sitelinks[lang]&lt;br /&gt;
						if title then&lt;br /&gt;
							wd.lang, wd.title, wd.link = lang, title, util.make_interlink(prj_code, lang, title)&lt;br /&gt;
							foundProjectLink = true&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
	&lt;br /&gt;
					if foundProjectLink then break end&lt;br /&gt;
				end&lt;br /&gt;
	&lt;br /&gt;
				if manual.link and manual.title then&lt;br /&gt;
					manual.title = mw.ustring.gsub(manual.title, &amp;#039;_&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			if manual.link or wd.link then&lt;br /&gt;
				page:add_project(project, manual, wd, index)&lt;br /&gt;
				&lt;br /&gt;
			elseif projectCode == &amp;#039;wiki&amp;#039; then&lt;br /&gt;
				-- если нет ссылок на Википедию, то ссылка на Википедию по параметру ПОИСК&lt;br /&gt;
				local searchString = args[&amp;#039;ПОИСК&amp;#039;] or page.frame1.args.search&lt;br /&gt;
				-- mw.logObject(page.projects, &amp;quot;page.projects&amp;quot;)&lt;br /&gt;
				-- mw.logObject(index, &amp;quot;index&amp;quot;)&lt;br /&gt;
				if searchString and #searchString &amp;gt; 0 then&lt;br /&gt;
					manual.link = &amp;#039;:w:Special:Search/&amp;#039; .. searchString&lt;br /&gt;
					manual.lang = RU&lt;br /&gt;
					page:add_project(project, manual, wd, index)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- mw.logObject(page, &amp;quot;page&amp;quot;)&lt;br /&gt;
	return page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getPageTitleFromArgument(enc, title, isPRS)&lt;br /&gt;
	if enc.project ~= RUWIKISOURCE then&lt;br /&gt;
		return &amp;#039;:&amp;#039; .. enc.projectCode .. enc.prefix .. title .. enc.suffix&lt;br /&gt;
	end&lt;br /&gt;
	local linkVT = nil&lt;br /&gt;
	local linkDO = nil&lt;br /&gt;
	if enc.id == &amp;quot;Q1970746&amp;quot; then -- workaround для ручного параметра ТСД=&lt;br /&gt;
		linkVT = &amp;quot;ТСД/&amp;quot; .. title&lt;br /&gt;
		linkDO = linkVT .. &amp;quot;/ДО&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		linkVT = string.gsub(enc.titleVT, &amp;quot;$1&amp;quot;, title)&lt;br /&gt;
		if enc.titleDO then&lt;br /&gt;
			linkDO = string.gsub(enc.titleDO, &amp;quot;$1&amp;quot;, title)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if isPRS then&lt;br /&gt;
		if mw.title.new(linkDO, 0).exists then&lt;br /&gt;
			return linkDO&lt;br /&gt;
		elseif mw.title.new(linkVT, 0).exists then&lt;br /&gt;
			return linkVT&lt;br /&gt;
		else&lt;br /&gt;
			return linkDO&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if mw.title.new(linkVT, 0).exists then&lt;br /&gt;
			return linkVT&lt;br /&gt;
		elseif mw.title.new(linkDO, 0).exists then&lt;br /&gt;
			return linkDO&lt;br /&gt;
		else&lt;br /&gt;
			return linkVT&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- заполняет список `page.enc_wikilinks` викиссылками на энциклопедии&lt;br /&gt;
local function make_list_encyclopedias_links(frame)&lt;br /&gt;
	local args = page.args&lt;br /&gt;
	local enc_links_raw = page.enc_links_raw&lt;br /&gt;
&lt;br /&gt;
	for _, enc in pairs(encyclopediasData) do&lt;br /&gt;
		local dictArgName = enc.argument&lt;br /&gt;
		local id = enc.id&lt;br /&gt;
		local is_title_matches_enc_link = (enc.project == RUWIKISOURCE and (wikidata.is_match_pagenames(page.title, enc.titleVT) or (enc.titleDO and wikidata.is_match_pagenames(page.title, enc.titleDO))))&lt;br /&gt;
		if not is_title_matches_enc_link then -- исключение страниц энциклопедий идентичных ссылке. TODO: Возможно это дублирует схожий метод из подмодуля ../wikidata : sitlinks[entity.id] = nil  -- исключить id базовой энциклопедии&lt;br /&gt;
			local manual_links, wd_links = {}, {}&lt;br /&gt;
&lt;br /&gt;
			-- ссылки из Викиданных&lt;br /&gt;
			local ids = page.encyclopedias_ids[dictArgName]&lt;br /&gt;
			if ids then&lt;br /&gt;
				for _, eid in pairs(ids) do&lt;br /&gt;
					local link = wikidata.getLink(enc, eid, page.isPRS)&lt;br /&gt;
					if link then&lt;br /&gt;
						table.insert(wd_links, link)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- ссылки из параметров шаблона&lt;br /&gt;
			local value = args[dictArgName]&lt;br /&gt;
			if is(value) then&lt;br /&gt;
				for elem in mw.text.gsplit(value, &amp;#039;%s*~%s*&amp;#039;) do -- несколько значений в одном параметре&lt;br /&gt;
					local link = getPageTitleFromArgument(enc, elem, page.isPRS)&lt;br /&gt;
					table.insert(manual_links, link)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- добавление ссылок&lt;br /&gt;
			if #manual_links &amp;gt; 0 or #wd_links &amp;gt; 0 then&lt;br /&gt;
				-- сырые ссылки, разделённые по источникам, используются ниже и для категоризации&lt;br /&gt;
				enc_links_raw[dictArgName] = { manual_links = manual_links, wd_links = wd_links, enc = enc }&lt;br /&gt;
&lt;br /&gt;
				-- викификация и фильтрация ссылок&lt;br /&gt;
&lt;br /&gt;
				-- любые из шаблона, могут включать ссылки с якорями #&lt;br /&gt;
				for _, mlink in pairs(manual_links) do&lt;br /&gt;
					page:add_enc(util.make_wikilink(mlink, enc.title))&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- из Викиданных, исключая дубли шаблонных ссылок и содержащие #&lt;br /&gt;
				for _, wlink in pairs(wd_links) do&lt;br /&gt;
					local wlink_eq_mlink = false&lt;br /&gt;
					for _, mlink in pairs(manual_links) do&lt;br /&gt;
						if mlink == wlink or mw.ustring.match(mlink, &amp;#039;^(.+)#&amp;#039;) then&lt;br /&gt;
							wlink_eq_mlink = true&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if not wlink_eq_mlink then&lt;br /&gt;
						page:add_enc(util.make_wikilink(wlink, enc.title))&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- внешние сайты&lt;br /&gt;
	for enc_name, site in pairs(page.external_sites) do&lt;br /&gt;
		page:add_enc(site.wikilink)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- mw.logObject(page, &amp;quot;page&amp;quot;)&lt;br /&gt;
	return page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.get_data(frame)&lt;br /&gt;
	page:init(frame)&lt;br /&gt;
&lt;br /&gt;
	page = wikidata.get_links(page)&lt;br /&gt;
	-- mw.logObject(page, &amp;quot;page&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	make_list_projects_links()&lt;br /&gt;
	p.render_projects_links()&lt;br /&gt;
&lt;br /&gt;
	make_list_encyclopedias_links()&lt;br /&gt;
	if page.is_author_page then&lt;br /&gt;
		-- рендеринг тега для отображения размещён в [[Модуль:Обавторе]]&lt;br /&gt;
	else&lt;br /&gt;
		p.renderEncyclopedias_aboutText()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	page = require(&amp;quot;Модуль:Источники по теме/Категоризация&amp;quot;).get_categories(page)&lt;br /&gt;
	&lt;br /&gt;
	--mw.logObject(page.projects, &amp;quot;page.projects&amp;quot;)&lt;br /&gt;
	return page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- оформление меню со ссылками, как html в виде строки, для {{отексте}} и Модуль:Отексте&lt;br /&gt;
function p.render_projects_links()&lt;br /&gt;
	local sources = page.projects&lt;br /&gt;
	-- mw.logObject(page.projects, &amp;quot;page.projects&amp;quot;)&lt;br /&gt;
	local menu = &amp;#039;&amp;#039;&lt;br /&gt;
	if #sources &amp;gt; 0 then&lt;br /&gt;
		for i, w in ipairs(sources) do&lt;br /&gt;
			local links = {}&lt;br /&gt;
			local prefix = &amp;#039;&amp;lt;li class=&amp;quot;submenu-label&amp;quot;&amp;gt;&amp;#039; .. w.label .. &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;&lt;br /&gt;
			local suffix = &amp;#039;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;&lt;br /&gt;
			if #sources == 1 then prefix, suffix = &amp;#039;&amp;#039;, &amp;#039;&amp;#039; end&lt;br /&gt;
			for _, v in pairs(w.links) do&lt;br /&gt;
				local project, link, lang, title = v.project, v.link, v.lang, v.title&lt;br /&gt;
				local is_recursive_link = page.title == title and lang == RU and project.project == WIKISOURCE&lt;br /&gt;
				if link and not is_recursive_link then&lt;br /&gt;
					local b = &amp;quot;&amp;quot;; if project.project == &amp;quot;wikidata&amp;quot; then b = &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; end&lt;br /&gt;
					local prj_title = &amp;#039;&amp;#039;; if page.isPRS then prj_title = project.titlePRS else prj_title = project.title end&lt;br /&gt;
					local lang_label = &amp;#039;&amp;#039;; if lang and lang ~= RU then lang_label = &amp;quot;&amp;amp;thinsp;&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;(&amp;quot; .. lang .. &amp;quot;)&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&amp;quot; end&lt;br /&gt;
					table.insert(links, &amp;#039;&amp;lt;li id=&amp;quot;menu-wiki-&amp;#039;..project.project..&amp;#039;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;about-extlink&amp;quot;&amp;gt;&amp;#039; .. b .. &amp;quot;[[Файл:&amp;quot; .. project.logo .. &amp;quot;|13px|link=]]&amp;amp;nbsp;[[&amp;quot; .. link .. &amp;quot;|&amp;quot; .. prj_title .. &amp;quot;]]&amp;quot; .. b .. lang_label .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if #links &amp;gt; 0 then&lt;br /&gt;
				menu = menu .. prefix .. table.concat(links, &amp;#039;\n&amp;#039;) .. suffix&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- mw.logObject(menu, &amp;quot;menu&amp;quot;)&lt;br /&gt;
	if is(menu) then menu = &amp;#039;&amp;lt;li id=&amp;quot;menu-wiki&amp;quot;&amp;gt;&amp;#039; .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;Википроекты&amp;#039;&amp;#039;&amp;#039;&amp;lt;ul&amp;gt;&amp;quot; .. menu .. &amp;#039;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;#039; end&lt;br /&gt;
	page.projects_links_rendered = menu&lt;br /&gt;
	return menu&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- оформление меню со ссылками, как html в виде строки, для шапки {{отексте}}, вызывается из Модуль:Отексте&lt;br /&gt;
function p.renderEncyclopedias_aboutText()&lt;br /&gt;
	local menu = &amp;#039;&amp;#039;&lt;br /&gt;
	local wikilinks = page.enc_wikilinks&lt;br /&gt;
	&lt;br /&gt;
	if #wikilinks &amp;gt; 0 then&lt;br /&gt;
		local _links = {}; for _, v in pairs(wikilinks) do table.insert(_links, &amp;quot;&amp;lt;li&amp;gt;&amp;quot; .. v .. &amp;quot;&amp;lt;/li&amp;gt;&amp;quot;) end&lt;br /&gt;
		local links = table.concat(_links, &amp;#039;\n&amp;#039;)&lt;br /&gt;
		-- разделители&lt;br /&gt;
		local hr = &amp;quot;&amp;lt;hr style=&amp;#039;width:100%%&amp;#039;&amp;gt;&amp;quot;&lt;br /&gt;
		local pre = &amp;quot;&amp;lt;div class=flexsep style=&amp;#039;display:flex;justify-content:center;align-items:center;user-select:none&amp;#039;&amp;gt;&amp;quot; .. hr .. &amp;quot;&amp;lt;span style=&amp;#039;font-size:smaller;padding:0 5px&amp;#039;&amp;gt;&amp;quot;&lt;br /&gt;
		local post = &amp;quot;&amp;lt;/span&amp;gt;&amp;quot; .. hr .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		local otherlang, external = pre .. &amp;quot;на других языках&amp;quot; .. post, pre .. &amp;quot;внешние ссылки&amp;quot; .. post&lt;br /&gt;
		links = links:gsub( &amp;quot;(&amp;lt;li&amp;gt;%[%[:)&amp;quot;, &amp;quot;&amp;lt;li class=lisep&amp;gt;&amp;quot; .. otherlang .. &amp;quot;&amp;lt;/li&amp;gt;\n%1&amp;quot;, 1 )&lt;br /&gt;
		links = links:gsub( &amp;quot;(&amp;lt;li&amp;gt;%[http)&amp;quot;, &amp;quot;&amp;lt;li class=lisep&amp;gt;&amp;quot; .. external .. &amp;quot;&amp;lt;/li&amp;gt;\n%1&amp;quot;, 1 )&lt;br /&gt;
		local desc; if page.isPRS then desc = &amp;#039;Энциклопедіи&amp;#039; else desc = &amp;#039;Энциклопедии&amp;#039; end&lt;br /&gt;
		menu = &amp;#039;&amp;lt;li id=&amp;quot;menu-dicts&amp;quot;&amp;gt;&amp;#039; .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. desc .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;lt;ul&amp;gt;&amp;quot; .. links .. &amp;#039;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	page.enc_links_rendered = menu&lt;br /&gt;
	-- mw.logObject(menu,&amp;quot;menu&amp;quot;)&lt;br /&gt;
	return menu&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- проверка переменной, возврат её или nil если пустая&lt;br /&gt;
function is(var) if (var == &amp;#039;&amp;#039; or var == nil) then return nil else return var end end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ru&gt;Andras</name></author>
	</entry>
</feed>