<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://new.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ACiteWeb%2F%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0</id>
	<title>Модуль:CiteWeb/песочница - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://new.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ACiteWeb%2F%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0"/>
	<link rel="alternate" type="text/html" href="http://new.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CiteWeb/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;action=history"/>
	<updated>2026-04-22T17:41:57Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://new.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CiteWeb/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=1418&amp;oldid=prev</id>
		<title>Andras: Новая страница: «local p = {};  require(&#039;strict&#039;); local listRef = require(&#039;Module:Languages&#039;).list_ref; local boxDate = require(&#039;Module:Calendar&#039;).bxDate;  local error_cats = {     [&#039;noname_param&#039;] = &#039;К:Википедия:Cite web (некорректное использование: непустой неименованный параметр)&#039;,     [&#039;empty_title&#039;] = &#039;К:Википедия:Cite web (некорректное использование: не указан ti...»</title>
		<link rel="alternate" type="text/html" href="http://new.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:CiteWeb/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=1418&amp;oldid=prev"/>
		<updated>2023-05-17T08:32:49Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local p = {};  require(&amp;#039;strict&amp;#039;); local listRef = require(&amp;#039;Module:Languages&amp;#039;).list_ref; local boxDate = require(&amp;#039;Module:Calendar&amp;#039;).bxDate;  local error_cats = {     [&amp;#039;noname_param&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: непустой неименованный параметр)&amp;#039;,     [&amp;#039;empty_title&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: не указан ti...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
&lt;br /&gt;
require(&amp;#039;strict&amp;#039;);&lt;br /&gt;
local listRef = require(&amp;#039;Module:Languages&amp;#039;).list_ref;&lt;br /&gt;
local boxDate = require(&amp;#039;Module:Calendar&amp;#039;).bxDate;&lt;br /&gt;
&lt;br /&gt;
local error_cats = {&lt;br /&gt;
    [&amp;#039;noname_param&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: непустой неименованный параметр)&amp;#039;,&lt;br /&gt;
    [&amp;#039;empty_title&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: не указан title)&amp;#039;,&lt;br /&gt;
    [&amp;#039;empty_url&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: не указан url)&amp;#039;,&lt;br /&gt;
    [&amp;#039;bad_archive&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректное использование: параметры архивации)&amp;#039;,&lt;br /&gt;
    [&amp;#039;deadlink&amp;#039;] = &amp;#039;К:Википедия:Cite web (недоступные ссылки без архивной копии)&amp;#039;,&lt;br /&gt;
    -- [&amp;#039;bad_lang&amp;#039;] = &amp;#039;К:Википедия:Cite web (неверный код языка)&amp;#039;,&lt;br /&gt;
    [&amp;#039;deadlink_old&amp;#039;] = &amp;#039;К:Википедия:Cite web (устаревшие параметры мёртвых ссылок)&amp;#039;,&lt;br /&gt;
    [&amp;#039;empty_lang&amp;#039;] = &amp;#039;К:Википедия:Cite web (не указан язык)&amp;#039;,&lt;br /&gt;
    [&amp;#039;bad_url&amp;#039;] = &amp;#039;К:Википедия:Cite web (некорректный url)&amp;#039;,&lt;br /&gt;
    [&amp;#039;webcitation_no&amp;#039;] = &amp;#039;К:Википедия:Cite web (заменить webcitation-архив: deadlink no)&amp;#039;,&lt;br /&gt;
    [&amp;#039;webcitation_yes&amp;#039;] = &amp;#039;К:Википедия:Cite web (заменить webcitation-архив: deadlink yes)&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
local errors = {&lt;br /&gt;
    [&amp;#039;noname_param&amp;#039;] = &amp;#039;{{error|Все параметры шаблона {{tl|cite web}} должны [[T:cite web#Неименованные_параметры|иметь имя]].}}&amp;#039;,&lt;br /&gt;
    [&amp;#039;empty_title&amp;#039;] = &amp;#039;{{error|Необходимо задать параметр {{code|title{{=}}}} в шаблоне {{tl|cite web}}.}}&amp;#039;,&lt;br /&gt;
    [&amp;#039;empty_url&amp;#039;] = &amp;#039;{{error|Необходимо задать параметр {{code|url{{=}}}} в шаблоне {{tl|cite web}}.}}&amp;#039;,&lt;br /&gt;
    [&amp;#039;bad_archive&amp;#039;] = &amp;#039;{{error|Если в шаблоне {{tl|cite web}} задаётся параметр {{code|archive-url{{=}}}}, должен задаваться и параметр {{code|archive-date{{=}}}}, и наоборот.}}&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
local replace_params = {&lt;br /&gt;
    [&amp;#039;accessdate&amp;#039;] = &amp;#039;access-date&amp;#039;,&lt;br /&gt;
    [&amp;#039;archivedate&amp;#039;] = &amp;#039;archive-date&amp;#039;,&lt;br /&gt;
    [&amp;#039;archiveurl&amp;#039;] = &amp;#039;archive-url&amp;#039;,&lt;br /&gt;
    [&amp;#039;authorlink&amp;#039;] = &amp;#039;author-link&amp;#039;,&lt;br /&gt;
    [&amp;#039;first1&amp;#039;] = &amp;#039;first&amp;#039;,&lt;br /&gt;
    [&amp;#039;last1&amp;#039;] = &amp;#039;last&amp;#039;,&lt;br /&gt;
    [&amp;#039;deadurl&amp;#039;] = &amp;#039;deadlink&amp;#039;,&lt;br /&gt;
    [&amp;#039;dead-url&amp;#039;] = &amp;#039;deadlink&amp;#039;,&lt;br /&gt;
    [&amp;#039;language&amp;#039;] = &amp;#039;lang&amp;#039;,&lt;br /&gt;
    [&amp;#039;datepublished&amp;#039;] = &amp;#039;date&amp;#039;,&lt;br /&gt;
    [&amp;#039;work&amp;#039;] = &amp;#039;website&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- проверка существования переменной. возврат её, или nil если пустая&lt;br /&gt;
local function is(var)&lt;br /&gt;
    if (var == &amp;#039;&amp;#039; or var == nil) then return nil else return var end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- замена устаревших аргументов на их аналоги&lt;br /&gt;
local function prepareArgs(args)&lt;br /&gt;
    local bad_args = {};&lt;br /&gt;
    local new_args = {};&lt;br /&gt;
    for param, value in pairs(args) do&lt;br /&gt;
        if is(replace_params[param]) and not is(args[replace_params[param]]) then&lt;br /&gt;
            param = replace_params[param];&lt;br /&gt;
        end&lt;br /&gt;
        new_args[param] = value;&lt;br /&gt;
    end&lt;br /&gt;
    return new_args, bad_args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- добавление скрытого языка&lt;br /&gt;
local function hiddenRef(code)&lt;br /&gt;
    return &amp;#039;&amp;lt;span class=&amp;quot;hidden-ref&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;#039; .. code .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function insertDot(str, small, insert)&lt;br /&gt;
    if insert == false then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    if small then&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;lt;small&amp;gt;.&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(str, &amp;#039;.&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function needDot(source_str)&lt;br /&gt;
    if mw.ustring.find(source_str, &amp;#039;[.?!:…]»?$&amp;#039;) ~= nil then&lt;br /&gt;
        return false&lt;br /&gt;
    else&lt;br /&gt;
        return true&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function nowiki(text)&lt;br /&gt;
    local frame = mw.getCurrentFrame();&lt;br /&gt;
    return frame:callParserFunction(&amp;#039;#tag&amp;#039;, { &amp;#039;nowiki&amp;#039;, text })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function replace(source_str, pattern, replace)&lt;br /&gt;
    return mw.ustring.gsub(source_str, pattern, replace)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- форматирование даты; в случае ошибки - возврат переданного значения без изменений&lt;br /&gt;
local function formatDate(strFormat, txtDateIn, params)&lt;br /&gt;
    local txtDateOut, date, status = boxDate(txtDateIn, strFormat, params)&lt;br /&gt;
    if status.brk then&lt;br /&gt;
        return txtDateIn&lt;br /&gt;
    else&lt;br /&gt;
        return txtDateOut&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- отрисовка ошибки по коду&lt;br /&gt;
local function expandError(code)&lt;br /&gt;
    return mw.getCurrentFrame():preprocess(errors[code]) .. &amp;#039; &amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- отрисовка всех категорий по их кодам&lt;br /&gt;
local function expandCats(cats)&lt;br /&gt;
    local str = {};&lt;br /&gt;
    local frame = mw.getCurrentFrame();&lt;br /&gt;
    for _, cat in pairs(cats) do&lt;br /&gt;
        table.insert(str, &amp;#039;[[&amp;#039; .. error_cats[cat] .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    return frame:preprocess(table.concat(str))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- разделение их&lt;br /&gt;
local function splitBySlash(string)&lt;br /&gt;
    local args = {};&lt;br /&gt;
    local iterator = mw.ustring.gmatch(string, &amp;quot;[^/]+&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    for w in iterator do&lt;br /&gt;
        table.insert(args, w)&lt;br /&gt;
    end&lt;br /&gt;
    return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- оборачиваем главную ссылку в span с указанным языком (может быть полезно для rtl)&lt;br /&gt;
local function wrapLang(link, langs)&lt;br /&gt;
    local lang_code = &amp;#039;und&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    if is(langs) then&lt;br /&gt;
        local args = splitBySlash(langs);&lt;br /&gt;
        if #args ~= 0 then&lt;br /&gt;
            lang_code = args[1];&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return &amp;#039;&amp;lt;span lang=&amp;quot;&amp;#039; .. lang_code .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. link .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- обёртка в тег цитирования&lt;br /&gt;
local function wrapCite(str, args)&lt;br /&gt;
    if is(args[&amp;#039;ref&amp;#039;]) then&lt;br /&gt;
        table.insert(str, 1, &amp;#039;&amp;lt;span class=&amp;quot;citation&amp;quot; id=&amp;quot;CITEREF&amp;#039; .. mw.uri.anchorEncode(args[&amp;#039;ref&amp;#039;]) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
        if is(args[&amp;#039;date&amp;#039;]) then&lt;br /&gt;
            table.insert(str, 2,&lt;br /&gt;
                &amp;#039;&amp;lt;span class=&amp;quot;citation&amp;quot; id=&amp;quot;CITEREF&amp;#039; ..&lt;br /&gt;
                mw.uri.anchorEncode(args[&amp;#039;ref&amp;#039;] .. formatDate(&amp;#039;Y&amp;#039;, args[&amp;#039;date&amp;#039;])) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
            table.insert(str, &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;);&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(str, 1, &amp;#039;&amp;lt;span class=&amp;quot;citation&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    table.insert(str, &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- генерирум список языков (аргумент - список языков через слеш)&lt;br /&gt;
local function refLang(lang)&lt;br /&gt;
    local args = splitBySlash(lang);&lt;br /&gt;
&lt;br /&gt;
    local frame = mw.getCurrentFrame();&lt;br /&gt;
    frame.args = args&lt;br /&gt;
&lt;br /&gt;
    local lang_result = listRef(frame)&lt;br /&gt;
    local hidden = false;&lt;br /&gt;
&lt;br /&gt;
    if #args == 1 and args[1] == &amp;#039;ru&amp;#039; then&lt;br /&gt;
        hidden = true;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return lang_result, hidden&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.render(frame)&lt;br /&gt;
    local str = {}&lt;br /&gt;
    local cats = {}&lt;br /&gt;
&lt;br /&gt;
    local pFrame = frame:getParent();&lt;br /&gt;
    local args = mw.clone(pFrame.args);&lt;br /&gt;
    setmetatable(args, nil);&lt;br /&gt;
&lt;br /&gt;
    args = prepareArgs(args);&lt;br /&gt;
&lt;br /&gt;
    -- Проверки&lt;br /&gt;
    -- Проверка отсутствия неименованных параметров&lt;br /&gt;
    if is(args[1]) or is(args[2]) or is(args[3]) or is(args[4]) or is(args[5]) or is(args[6]) then&lt;br /&gt;
        table.insert(str, expandError(&amp;#039;noname_param&amp;#039;));&lt;br /&gt;
        table.insert(cats, &amp;#039;noname_param&amp;#039;);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Проверка корректности заполнения параметров archiveurl и archivedate&lt;br /&gt;
    if (is(args[&amp;#039;archive-date&amp;#039;]) ~= nil and is(args[&amp;#039;archive-url&amp;#039;]) == nil) or&lt;br /&gt;
        (is(args[&amp;#039;archive-date&amp;#039;]) == nil and is(args[&amp;#039;archive-url&amp;#039;]) ~= nil) then&lt;br /&gt;
        table.insert(str, expandError(&amp;#039;bad_archive&amp;#039;));&lt;br /&gt;
        table.insert(cats, &amp;#039;bad_archive&amp;#039;);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Проверка устаревших параметров мёртвых ссылок&lt;br /&gt;
    if is(args[&amp;#039;dead-url&amp;#039;]) or is(args[&amp;#039;deadurl&amp;#039;]) then&lt;br /&gt;
        table.insert(cats, error_cats[&amp;#039;deadlink_old&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local urlstatus = &amp;#039;live&amp;#039;;&lt;br /&gt;
    if args[&amp;#039;url-status&amp;#039;] == &amp;#039;live&amp;#039; or args[&amp;#039;url-status&amp;#039;] == &amp;#039;dead&amp;#039; or args[&amp;#039;url-status&amp;#039;] == &amp;#039;unfit&amp;#039; then&lt;br /&gt;
        urlstatus = args[&amp;#039;url-status&amp;#039;]&lt;br /&gt;
    elseif args[&amp;#039;deadlink&amp;#039;] == &amp;#039;yes&amp;#039; then&lt;br /&gt;
        urlstatus = &amp;#039;dead&amp;#039;;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local is_webcitation_archive = false;&lt;br /&gt;
    if is(args[&amp;#039;archive-url&amp;#039;]) then&lt;br /&gt;
        if mw.ustring.find(args[&amp;#039;archive-url&amp;#039;], &amp;#039;webcitation.org&amp;#039;, 1, true) then&lt;br /&gt;
            is_webcitation_archive = true&lt;br /&gt;
            if urlstatus == &amp;#039;dead&amp;#039; or urlstatus == &amp;#039;unfit&amp;#039; then&lt;br /&gt;
                table.insert(cats, &amp;#039;webcitation_yes&amp;#039;)&lt;br /&gt;
            else&lt;br /&gt;
                table.insert(cats, &amp;#039;webcitation_no&amp;#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        if urlstatus == &amp;#039;dead&amp;#039; then&lt;br /&gt;
            table.insert(cats, &amp;#039;deadlink&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Проверка заполнения параметра url&lt;br /&gt;
    if is(args[&amp;#039;url&amp;#039;]) then&lt;br /&gt;
        if mw.ustring.find(args[&amp;#039;url&amp;#039;], &amp;#039;^https?://&amp;#039;, 1, false) ~= 1 and&lt;br /&gt;
            mw.ustring.find(args[&amp;#039;url&amp;#039;], &amp;#039;^ftp://&amp;#039;, 1, false) ~= 1 or mw.ustring.find(args[&amp;#039;url&amp;#039;], &amp;#039; &amp;#039;, 1, true) ~= nil then&lt;br /&gt;
            table.insert(cats, &amp;#039;bad_url&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        table.insert(str, expandError(&amp;#039;empty_url&amp;#039;));&lt;br /&gt;
        table.insert(cats, &amp;#039;empty_url&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Проверка заполнения параметра title&lt;br /&gt;
    if not is(args[&amp;#039;title&amp;#039;]) then&lt;br /&gt;
        table.insert(str, expandError(&amp;#039;empty_title&amp;#039;));&lt;br /&gt;
        table.insert(cats, &amp;#039;empty_title&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not is(args[&amp;#039;lang&amp;#039;]) then&lt;br /&gt;
        table.insert(cats, &amp;#039;empty_lang&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Формирование вывода&lt;br /&gt;
    -- Автор&lt;br /&gt;
    if is(args[&amp;#039;author&amp;#039;]) or is(args[&amp;#039;last&amp;#039;]) then&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;lt;i&amp;gt;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
        local author = args[&amp;#039;author&amp;#039;];&lt;br /&gt;
        if is(args[&amp;#039;last&amp;#039;]) then&lt;br /&gt;
            author = args[&amp;#039;last&amp;#039;]&lt;br /&gt;
            if is(args[&amp;#039;first&amp;#039;]) then&lt;br /&gt;
                author = author .. &amp;#039;, &amp;#039; .. args[&amp;#039;first&amp;#039;]&lt;br /&gt;
            end&lt;br /&gt;
        elseif not is(args[&amp;#039;last2&amp;#039;]) and not is(args[&amp;#039;coauthors&amp;#039;]) then&lt;br /&gt;
            author = replace(author, &amp;#039;^(%[*)(.-[^%.%]])(%]*)$&amp;#039;, &amp;#039;%1%2%3.&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if is(args[&amp;#039;author-link&amp;#039;]) then&lt;br /&gt;
            table.insert(str, &amp;#039;[[&amp;#039; .. args[&amp;#039;author-link&amp;#039;] .. &amp;#039;|&amp;#039; .. author .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(str, author)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Дополнительные сведения об авторах&lt;br /&gt;
        for i = 2, 5 do&lt;br /&gt;
            if is(args[&amp;#039;last&amp;#039; .. i]) then&lt;br /&gt;
                local author = nowiki(&amp;#039;;&amp;#039;) .. &amp;#039;&amp;amp;#32;&amp;#039; .. args[&amp;#039;last&amp;#039; .. i];&lt;br /&gt;
                if is(args[&amp;#039;first&amp;#039; .. i]) then&lt;br /&gt;
                    author = author .. &amp;#039;, &amp;#039; .. args[&amp;#039;first&amp;#039; .. i]&lt;br /&gt;
                end&lt;br /&gt;
                table.insert(str, author)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if is(args[&amp;#039;coauthors&amp;#039;]) then&lt;br /&gt;
            table.insert(str, nowiki(&amp;#039;;&amp;#039;) .. &amp;#039;&amp;amp;#32;&amp;#039; .. replace(args[&amp;#039;coauthors&amp;#039;], &amp;#039;^(.-)%.?$&amp;#039;, &amp;#039;%1.&amp;#039;) .. &amp;#039;:&amp;amp;#32;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;lt;/i&amp;gt;&amp;amp;#32;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Редактор&lt;br /&gt;
    if is(args[&amp;#039;editor&amp;#039;]) then&lt;br /&gt;
        table.insert(str, &amp;#039; &amp;#039; .. args[&amp;#039;editor&amp;#039;] .. &amp;#039;:&amp;amp;#32;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- URL, заголовок&lt;br /&gt;
    local link;&lt;br /&gt;
    local title = replace(replace(args[&amp;#039;title&amp;#039;] or &amp;#039;&amp;#039;, &amp;#039;%[&amp;#039;, &amp;#039;&amp;amp;#91;&amp;#039;), &amp;#039;%]&amp;#039;, &amp;#039;&amp;amp;#93;&amp;#039;);&lt;br /&gt;
    local dot = needDot(title);&lt;br /&gt;
&lt;br /&gt;
    if (urlstatus == &amp;#039;dead&amp;#039; or urlstatus == &amp;#039;unfit&amp;#039;) and is(args[&amp;#039;archive-url&amp;#039;]) and not is_webcitation_archive then&lt;br /&gt;
        link = &amp;#039;[&amp;#039; .. (args[&amp;#039;archive-url&amp;#039;] or &amp;#039;&amp;#039;) .. &amp;#039; &amp;#039; .. title .. &amp;#039;]&amp;#039;&lt;br /&gt;
    elseif urlstatus == &amp;#039;unfit&amp;#039; then&lt;br /&gt;
        link = title&lt;br /&gt;
    else&lt;br /&gt;
        link = &amp;#039;[&amp;#039; .. (args[&amp;#039;url&amp;#039;] or &amp;#039;&amp;#039;) .. &amp;#039; &amp;#039; .. title .. &amp;#039;]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    table.insert(str, wrapLang(link, args[&amp;#039;lang&amp;#039;]))&lt;br /&gt;
&lt;br /&gt;
    -- Подзаголовок&lt;br /&gt;
    if is(args[&amp;#039;subtitle&amp;#039;]) then&lt;br /&gt;
        insertDot(str, false, dot)&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;lt;small&amp;gt;&amp;#039; .. args[&amp;#039;subtitle&amp;#039;] .. &amp;#039;&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
        dot = needDot(args[&amp;#039;subtitle&amp;#039;]);&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Отображение названия языка источника&lt;br /&gt;
    local langs;&lt;br /&gt;
    local hidden = false;&lt;br /&gt;
    if is(args[&amp;#039;lang&amp;#039;]) then&lt;br /&gt;
        langs, hidden = refLang(args[&amp;#039;lang&amp;#039;]);&lt;br /&gt;
    else&lt;br /&gt;
        langs = frame:expandTemplate { title = &amp;#039;ref-und&amp;#039; };&lt;br /&gt;
        hidden = true;&lt;br /&gt;
    end&lt;br /&gt;
    if hidden == true then&lt;br /&gt;
        langs = hiddenRef(langs);&lt;br /&gt;
    else&lt;br /&gt;
        dot = true;&lt;br /&gt;
    end&lt;br /&gt;
    table.insert(str, langs)&lt;br /&gt;
&lt;br /&gt;
    -- Формат источника&lt;br /&gt;
    if is(args[&amp;#039;format&amp;#039;]) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;(&amp;#039; .. args[&amp;#039;format&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Пометка о недоступности&lt;br /&gt;
    if (urlstatus == &amp;#039;dead&amp;#039; or urlstatus == &amp;#039;unfit&amp;#039;) and (not is(args[&amp;#039;archive-url&amp;#039;]) or is_webcitation_archive) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str,&lt;br /&gt;
            frame:expandTemplate { title = &amp;#039;ref-info&amp;#039;,&lt;br /&gt;
                args = { &amp;#039;недоступная ссылка&amp;amp;nbsp;— [//web.archive.org/web/*/&amp;#039; ..&lt;br /&gt;
                args[&amp;#039;url&amp;#039;] .. &amp;#039; &amp;lt;i&amp;gt;история&amp;lt;/i&amp;gt;]&amp;#039; } })&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Название сайта или проекта&lt;br /&gt;
    if is(args[&amp;#039;website&amp;#039;]) then&lt;br /&gt;
        insertDot(str, is(args[&amp;#039;subtitle&amp;#039;]), dot)&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;lt;i&amp;gt;&amp;#039; .. args[&amp;#039;website&amp;#039;] .. &amp;#039;&amp;lt;/i&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Страницы&lt;br /&gt;
    if is(args[&amp;#039;pages&amp;#039;]) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;#039; .. args[&amp;#039;pages&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Страница&lt;br /&gt;
    if is(args[&amp;#039;page&amp;#039;]) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;#039; .. args[&amp;#039;page&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Место, издательство&lt;br /&gt;
    if is(args[&amp;#039;publisher&amp;#039;]) then&lt;br /&gt;
        insertDot(str, is(args[&amp;#039;subtitle&amp;#039;]), dot)&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;#039;);&lt;br /&gt;
        if is(args[&amp;#039;location&amp;#039;]) then&lt;br /&gt;
            table.insert(str, args[&amp;#039;location&amp;#039;] .. &amp;#039;:&amp;amp;#32;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
        table.insert(str, args[&amp;#039;publisher&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Дата&lt;br /&gt;
    if is(args[&amp;#039;date&amp;#039;]) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;(&amp;#039; .. formatDate(&amp;#039;j xg Y&amp;#039;, args[&amp;#039;date&amp;#039;]) .. &amp;#039;)&amp;#039;)&lt;br /&gt;
    elseif is(args[&amp;#039;year&amp;#039;]) then&lt;br /&gt;
        dot = true;&lt;br /&gt;
        if is(args[&amp;#039;month&amp;#039;]) then&lt;br /&gt;
            table.insert(str, &amp;#039;&amp;amp;#32;(&amp;#039; .. args[&amp;#039;month&amp;#039;] .. &amp;#039; &amp;#039; .. args[&amp;#039;year&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(str, &amp;#039;&amp;amp;#32;(&amp;#039; .. args[&amp;#039;year&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Точка&lt;br /&gt;
    insertDot(str, is(args[&amp;#039;subtitle&amp;#039;]), dot)&lt;br /&gt;
&lt;br /&gt;
    -- DOI&lt;br /&gt;
    if is(args[&amp;#039;doi&amp;#039;]) then&lt;br /&gt;
        table.insert(str,&lt;br /&gt;
            &amp;#039;&amp;amp;#32;[[Идентификатор цифрового объекта|doi]]:[http://dx.doi.org/&amp;#039; ..&lt;br /&gt;
            args[&amp;#039;doi&amp;#039;] .. &amp;#039; &amp;#039; .. args[&amp;#039;doi&amp;#039;] .. &amp;#039;].&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Описание&lt;br /&gt;
    if is(args[&amp;#039;description&amp;#039;]) then&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;nbsp;— &amp;#039; .. args[&amp;#039;description&amp;#039;])&lt;br /&gt;
        insertDot(str, true, needDot(args[&amp;#039;description&amp;#039;]))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Цитата&lt;br /&gt;
    if is(args[&amp;#039;quote&amp;#039;]) then&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;nbsp;— «&amp;#039; .. args[&amp;#039;quote&amp;#039;] .. &amp;#039;»&amp;#039;)&lt;br /&gt;
        insertDot(str, true, needDot(args[&amp;#039;quote&amp;#039;]))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Дата обращения&lt;br /&gt;
    if is(args[&amp;#039;access-date&amp;#039;]) then&lt;br /&gt;
        table.insert(str, &amp;#039;&amp;amp;#32;&amp;lt;small&amp;gt;Дата обращения: &amp;#039; ..&lt;br /&gt;
            formatDate(&amp;#039;j xg Y&amp;#039;, args[&amp;#039;access-date&amp;#039;]) .. &amp;#039;.&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Дата архивирования&lt;br /&gt;
    if is(args[&amp;#039;archive-date&amp;#039;]) and is(args[&amp;#039;archive-url&amp;#039;]) then&lt;br /&gt;
        if urlstatus == &amp;#039;live&amp;#039; or is_webcitation_archive then&lt;br /&gt;
            table.insert(str,&lt;br /&gt;
                &amp;#039;&amp;amp;#32;&amp;lt;small&amp;gt;[&amp;#039; ..&lt;br /&gt;
                args[&amp;#039;archive-url&amp;#039;] ..&lt;br /&gt;
                &amp;#039; Архивировано] &amp;#039; ..&lt;br /&gt;
                formatDate(&amp;#039;j xg Y&amp;#039;, args[&amp;#039;archive-date&amp;#039;]) .. &amp;#039; года.&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
        elseif urlstatus == &amp;#039;unfit&amp;#039; then&lt;br /&gt;
            table.insert(str,&lt;br /&gt;
                &amp;#039;&amp;amp;#32;&amp;lt;small&amp;gt;Архивировано &amp;#039; ..&lt;br /&gt;
                formatDate(&amp;#039;j xg Y&amp;#039;, args[&amp;#039;archive-date&amp;#039;]) .. &amp;#039; года.&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            table.insert(str,&lt;br /&gt;
                &amp;#039;&amp;amp;#32;&amp;lt;small&amp;gt;Архивировано из [&amp;#039; ..&lt;br /&gt;
                args[&amp;#039;url&amp;#039;] ..&lt;br /&gt;
                &amp;#039; оригинала] &amp;#039; ..&lt;br /&gt;
                formatDate(&amp;#039;j xg Y&amp;#039;, args[&amp;#039;archive-date&amp;#039;]) .. &amp;#039; года.&amp;lt;/small&amp;gt;&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    wrapCite(str, args);&lt;br /&gt;
&lt;br /&gt;
    if #cats ~= 0 and mw.title.getCurrentTitle():inNamespace(0) then&lt;br /&gt;
        table.insert(str, expandCats(cats));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat(str)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Andras</name></author>
	</entry>
</feed>