<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://massarn.com/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources</id>
	<title>Модуль:Sources - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://massarn.com/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3ASources"/>
	<link rel="alternate" type="text/html" href="https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;action=history"/>
	<updated>2026-10-13T04:42:07Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=1885&amp;oldid=prev</id>
		<title>Buto: Новая страница: «---@alias args table ---@alias frame { args: args, extensionTag: function, newChild: ( fun( args: args ): frame ) }  local p = {}  local monthGen = { &#039;января&#039;, &#039;февраля&#039;, &#039;марта&#039;, &#039;апреля&#039;, &#039;мая&#039;, &#039;июня&#039;, &#039;июля&#039;, &#039;августа&#039;, &#039;сентября&#039;, &#039;октября&#039;, &#039;ноября&#039;, &#039;декабря&#039; }  local i18nDefaultLanguage = &#039;ru&#039; p.i18nDefaultLanguage = i18nDefaultLanguage  local i18nEtAl = {     ru  = &#039; и др.&#039;,...»</title>
		<link rel="alternate" type="text/html" href="https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Sources&amp;diff=1885&amp;oldid=prev"/>
		<updated>2026-10-11T15:45:58Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «---@alias args table ---@alias frame { args: args, extensionTag: function, newChild: ( fun( args: args ): frame ) }  local p = {}  local monthGen = { &amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;, &amp;#039;июля&amp;#039;, &amp;#039;августа&amp;#039;, &amp;#039;сентября&amp;#039;, &amp;#039;октября&amp;#039;, &amp;#039;ноября&amp;#039;, &amp;#039;декабря&amp;#039; }  local i18nDefaultLanguage = &amp;#039;ru&amp;#039; p.i18nDefaultLanguage = i18nDefaultLanguage  local i18nEtAl = {     ru  = &amp;#039; и др.&amp;#039;,...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;---@alias args table&lt;br /&gt;
---@alias frame { args: args, extensionTag: function, newChild: ( fun( args: args ): frame ) }&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local monthGen = { &amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;, &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;
local i18nDefaultLanguage = &amp;#039;ru&amp;#039;&lt;br /&gt;
p.i18nDefaultLanguage = i18nDefaultLanguage&lt;br /&gt;
&lt;br /&gt;
local i18nEtAl = {&lt;br /&gt;
    ru  = &amp;#039; и др.&amp;#039;,&lt;br /&gt;
    en  = &amp;#039; et al.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nEditors = {&lt;br /&gt;
    ru  = &amp;#039;под ред. &amp;#039;,&lt;br /&gt;
    en  = &amp;#039;ed. by &amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nTranslators = {&lt;br /&gt;
    ru  = &amp;#039;пер. &amp;#039;,&lt;br /&gt;
    en  = &amp;#039;transl. &amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nVolume = {&lt;br /&gt;
    ru  = &amp;#039;Т.&amp;#039;,&lt;br /&gt;
    en  = &amp;#039;Vol.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nIssue = {&lt;br /&gt;
    ru  = &amp;#039;вып.&amp;#039;,&lt;br /&gt;
    en  = &amp;#039;Iss.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nPages = {&lt;br /&gt;
    ru  = &amp;#039;С.&amp;#039;,&lt;br /&gt;
    en  = &amp;#039;P.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nNumberOfPages = {&lt;br /&gt;
    ru  = &amp;#039;с.&amp;#039;,&lt;br /&gt;
    en  = &amp;#039;p.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--- Получение и очистка аргументов&lt;br /&gt;
local function getFilledArgs( args )&lt;br /&gt;
    local data = {}&lt;br /&gt;
    for key, value in pairs( args ) do&lt;br /&gt;
        if type(value) == &amp;#039;string&amp;#039; and mw.text.trim( value ) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            data[ key ] = mw.text.trim( value )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Форматирование имени автора (разбор на Фамилию и Инициалы)&lt;br /&gt;
local function tokenizeName( fullName )&lt;br /&gt;
    local space = &amp;#039;%s+&amp;#039;&lt;br /&gt;
    local name = &amp;quot;(%a[%a%-&amp;#039;]*)%.?&amp;quot;&lt;br /&gt;
    local surname = &amp;quot;(%a[%a%-&amp;#039;]*)&amp;quot;&lt;br /&gt;
    local surnamePrefixes = { &amp;#039;ван&amp;#039;, &amp;#039;van&amp;#039;, &amp;#039;де&amp;#039;, &amp;#039;de&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
    local nm, nm2, srn, pref&lt;br /&gt;
&lt;br /&gt;
    fullName = &amp;#039; &amp;#039; .. fullName .. &amp;#039; &amp;#039;&lt;br /&gt;
    fullName = mw.ustring.gsub( fullName, &amp;#039; оглы &amp;#039;, &amp;#039; &amp;#039; )&lt;br /&gt;
    fullName = mw.text.trim( fullName )&lt;br /&gt;
&lt;br /&gt;
    -- Surname, Name&lt;br /&gt;
    local pattern = &amp;#039;^&amp;#039; .. surname .. &amp;#039;,&amp;#039; .. space .. name .. &amp;#039;$&amp;#039;&lt;br /&gt;
    srn, nm = mw.ustring.match( fullName, pattern )&lt;br /&gt;
    if srn then return { srn, mw.ustring.sub( nm, 1, 1 ) .. &amp;#039;.&amp;#039; } end&lt;br /&gt;
&lt;br /&gt;
    -- Name Name Surname&lt;br /&gt;
    pattern = &amp;#039;^&amp;#039; .. name .. space .. name .. space .. surname .. &amp;#039;$&amp;#039;&lt;br /&gt;
    nm, nm2, srn = mw.ustring.match( fullName, pattern )&lt;br /&gt;
    if srn then return { srn, mw.ustring.sub( nm, 1, 1 ) .. &amp;#039;. &amp;#039; .. mw.ustring.sub( nm2, 1, 1 ) .. &amp;#039;.&amp;#039; } end&lt;br /&gt;
&lt;br /&gt;
    return { fullName }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function personNameToAuthorName( fullName )&lt;br /&gt;
    if not fullName then return nil end&lt;br /&gt;
    local tokenized = tokenizeName( fullName )&lt;br /&gt;
    if #tokenized == 1 then return tokenized[ 1 ] end&lt;br /&gt;
    return tokenized[ 1 ] .. &amp;#039; &amp;#039; .. tokenized[ 2 ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function personNameToResponsibleName( fullName )&lt;br /&gt;
    if not fullName then return nil end&lt;br /&gt;
    local tokenized = tokenizeName( fullName )&lt;br /&gt;
    if #tokenized == 1 then return tokenized[ 1 ] end&lt;br /&gt;
    return tokenized[ 2 ] .. &amp;#039; &amp;#039; .. tokenized[ 1 ]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Базовые обертки и добавления свойств&lt;br /&gt;
local function wrapInUrl( url, text )&lt;br /&gt;
    if not url or url == &amp;#039;&amp;#039; then return text end&lt;br /&gt;
    return &amp;#039;[&amp;#039; .. url .. &amp;#039; &amp;#039; .. text .. &amp;#039;]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendProperty( data, conjunction, propertyName, urlPropertyName )&lt;br /&gt;
    if not data[ propertyName ] or data[ propertyName ] == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local text = data[ propertyName ]&lt;br /&gt;
    &lt;br /&gt;
    if urlPropertyName and data[ urlPropertyName ] and data[ urlPropertyName ] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        text = wrapInUrl( data[ urlPropertyName ], text )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return conjunction .. text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendTitle( data )&lt;br /&gt;
    local conjunction = &amp;#039;&amp;#039;&lt;br /&gt;
    local result = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    if data.part then&lt;br /&gt;
        result = result .. appendProperty( data, &amp;#039;&amp;#039;, &amp;#039;part&amp;#039;, &amp;#039;parturl&amp;#039; )&lt;br /&gt;
        conjunction = &amp;#039; // &amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local title = data.title or &amp;#039;Без названия&amp;#039;&lt;br /&gt;
    if data.url then&lt;br /&gt;
        title = wrapInUrl( data.url, title )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result .. conjunction .. title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendLanguage( lang )&lt;br /&gt;
    if not lang or lang == i18nDefaultLanguage then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;#039; &amp;lt;span style=&amp;quot;color:#555; font-size:0.9em;&amp;quot;&amp;gt;(на &amp;#039; .. lang .. &amp;#039; яз.)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendSubtitle( data )&lt;br /&gt;
    return appendProperty( data, &amp;#039;: &amp;#039;, &amp;#039;subtitle&amp;#039;, nil )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendOriginalTitle( data )&lt;br /&gt;
    return appendProperty( data, &amp;#039; = &amp;#039;, &amp;#039;originaltitle&amp;#039;, nil )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendEditor( lang, data )&lt;br /&gt;
    if not data.editor and not data.translator then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    local result = &amp;#039; / &amp;#039;&lt;br /&gt;
    if data.editor then&lt;br /&gt;
        local prefix = i18nEditors[ lang ] or i18nEditors[ i18nDefaultLanguage ]&lt;br /&gt;
        result = result .. prefix .. personNameToResponsibleName( data.editor )&lt;br /&gt;
        if data.translator then result = result .. &amp;#039;, &amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
    if data.translator then&lt;br /&gt;
        local prefix = i18nTranslators[ lang ] or i18nTranslators[ i18nDefaultLanguage ]&lt;br /&gt;
        result = result .. prefix .. personNameToResponsibleName( data.translator )&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendEdition( data )&lt;br /&gt;
    return appendProperty( data, &amp;#039; — &amp;#039;, &amp;#039;edition&amp;#039;, nil )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendPublicationData( data )&lt;br /&gt;
    if not data.place and not data.publisher and not data.year then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    local result = &amp;#039; — &amp;#039;&lt;br /&gt;
    if data.place then&lt;br /&gt;
        result = result .. data.place&lt;br /&gt;
        if data.publisher or data.year then result = result .. &amp;#039;: &amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
    if data.publisher then&lt;br /&gt;
        result = result .. data.publisher&lt;br /&gt;
        if data.year then result = result .. &amp;#039;, &amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
    if data.year then&lt;br /&gt;
        result = result .. data.year&lt;br /&gt;
    end&lt;br /&gt;
    result = result .. &amp;#039;.&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendVolumeAndIssue( lang, data )&lt;br /&gt;
    if not data.volume and not data.issue then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    local result = &amp;#039; — &amp;#039;&lt;br /&gt;
    local letter_vol = i18nVolume[ lang ] or i18nVolume[ i18nDefaultLanguage ]&lt;br /&gt;
    local letter_iss = i18nIssue[ lang ] or i18nIssue[ i18nDefaultLanguage ]&lt;br /&gt;
    &lt;br /&gt;
    if data.volume then&lt;br /&gt;
        result = result .. letter_vol .. &amp;#039; &amp;#039; .. data.volume&lt;br /&gt;
        if data.issue then result = result .. &amp;#039;, &amp;#039; .. letter_iss .. &amp;#039; &amp;#039; .. data.issue end&lt;br /&gt;
    else&lt;br /&gt;
        result = result .. letter_iss .. &amp;#039; &amp;#039; .. data.issue&lt;br /&gt;
    end&lt;br /&gt;
    result = result .. &amp;#039;.&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendPages( lang, data )&lt;br /&gt;
    if not data.pages then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local letter = i18nPages[ lang ] or i18nPages[ i18nDefaultLanguage ]&lt;br /&gt;
    local strPages = mw.ustring.gsub( data.pages, &amp;#039;[-—]&amp;#039;, &amp;#039;—&amp;#039; )&lt;br /&gt;
    return &amp;#039; — &amp;#039; .. letter .. &amp;#039; &amp;#039; .. strPages .. &amp;#039;.&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendNumberOfPages( lang, data )&lt;br /&gt;
    if not data.numberOfPages then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local letter = i18nNumberOfPages[ lang ] or i18nNumberOfPages[ i18nDefaultLanguage ]&lt;br /&gt;
    return &amp;#039; — &amp;#039; .. data.numberOfPages .. &amp;#039; &amp;#039; .. letter .. &amp;#039;.&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendIdentifier( data, key, prefix, urlPrefix )&lt;br /&gt;
    if not data[key] then return &amp;#039;&amp;#039; end&lt;br /&gt;
    local value = data[key]&lt;br /&gt;
    if urlPrefix then&lt;br /&gt;
        value = wrapInUrl( urlPrefix .. value, value )&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;#039; — &amp;#039; .. prefix .. value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function appendAccessDate( data )&lt;br /&gt;
    if not data.accessdate then return &amp;#039;&amp;#039; end&lt;br /&gt;
    return &amp;quot; &amp;lt;small&amp;gt;Проверено &amp;quot; .. data.accessdate .. &amp;quot;.&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessPlace( data )&lt;br /&gt;
    if not data.place then return end&lt;br /&gt;
    -- Сокращения для крупных городов&lt;br /&gt;
    if data.place == &amp;#039;Москва&amp;#039; then &lt;br /&gt;
        data.place = &amp;#039;&amp;lt;span title=&amp;quot;Москва&amp;quot; style=&amp;quot;border-bottom: 1px dotted; cursor: help;&amp;quot;&amp;gt;М.&amp;lt;/span&amp;gt;&amp;#039; &lt;br /&gt;
    elseif data.place == &amp;#039;Санкт-Петербург&amp;#039; then &lt;br /&gt;
        data.place = &amp;#039;&amp;lt;span title=&amp;quot;Санкт-Петербург&amp;quot; style=&amp;quot;border-bottom: 1px dotted; cursor: help;&amp;quot;&amp;gt;СПб.&amp;lt;/span&amp;gt;&amp;#039; &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Главная функция сборки строки источника&lt;br /&gt;
local function renderSource( data )&lt;br /&gt;
    local lang = data.lang or i18nDefaultLanguage&lt;br /&gt;
    preprocessPlace( data )&lt;br /&gt;
&lt;br /&gt;
    if not data.title and not data.url then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    local result = &amp;#039;&amp;#039;&lt;br /&gt;
    if data.author then&lt;br /&gt;
        result = &amp;#039;&amp;lt;i class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;#039; .. personNameToAuthorName( data.author ) .. &amp;#039;&amp;lt;/i&amp;gt; &amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    result = result .. appendTitle( data )&lt;br /&gt;
    result = result .. appendLanguage( lang )&lt;br /&gt;
    result = result .. appendSubtitle( data )&lt;br /&gt;
    result = result .. appendOriginalTitle( data )&lt;br /&gt;
&lt;br /&gt;
    result = result .. &amp;#039;&amp;lt;span class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
    result = result .. appendEditor( lang, data )&lt;br /&gt;
    result = result .. appendEdition( data )&lt;br /&gt;
    result = result .. appendPublicationData( data )&lt;br /&gt;
    result = result .. appendVolumeAndIssue( lang, data )&lt;br /&gt;
    result = result .. appendPages( lang, data )&lt;br /&gt;
    result = result .. appendNumberOfPages( lang, data )&lt;br /&gt;
&lt;br /&gt;
    result = result .. appendIdentifier( data, &amp;#039;isbn&amp;#039;, &amp;#039;ISBN &amp;#039; )&lt;br /&gt;
    result = result .. appendIdentifier( data, &amp;#039;issn&amp;#039;, &amp;#039;ISSN &amp;#039;, &amp;#039;https://www.worldcat.org/issn/&amp;#039; )&lt;br /&gt;
    result = result .. appendIdentifier( data, &amp;#039;doi&amp;#039;, &amp;#039;doi:&amp;#039;, &amp;#039;https://dx.doi.org/&amp;#039; )&lt;br /&gt;
    result = result .. appendIdentifier( data, &amp;#039;pmid&amp;#039;, &amp;#039;PMID:&amp;#039;, &amp;#039;https://www.ncbi.nlm.nih.gov/pubmed/?term=&amp;#039; )&lt;br /&gt;
    result = result .. appendIdentifier( data, &amp;#039;arxiv&amp;#039;, &amp;#039;arXiv:&amp;#039;, &amp;#039;https://arxiv.org/abs/&amp;#039; )&lt;br /&gt;
    &lt;br /&gt;
    result = result .. appendAccessDate( data )&lt;br /&gt;
    result = result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Точка входа для обычного вывода&lt;br /&gt;
function p.renderSource( frame )&lt;br /&gt;
    p.currentFrame = frame&lt;br /&gt;
    local data = getFilledArgs( frame.args or {} )&lt;br /&gt;
    &lt;br /&gt;
    local rendered = renderSource( data )&lt;br /&gt;
    if not rendered or rendered == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    if data.ref then&lt;br /&gt;
        local anchorValue = &amp;#039;CITEREF&amp;#039; .. data.ref .. ( data.year or &amp;#039;&amp;#039; )&lt;br /&gt;
        rendered = &amp;#039;&amp;lt;span class=&amp;quot;citation&amp;quot; id=&amp;quot;&amp;#039; .. mw.uri.anchorEncode( anchorValue ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. rendered .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return rendered&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Точка входа для генерации тега &amp;lt;ref&amp;gt; (сноски)&lt;br /&gt;
function p.renderReference( frame )&lt;br /&gt;
    local rendered = p.renderSource( frame )&lt;br /&gt;
    if not rendered or rendered == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    -- Используем стандартный хеш MediaWiki для уникального имени сноски&lt;br /&gt;
    local hash = mw.hash.hashValue( &amp;#039;fnv164&amp;#039;, rendered )&lt;br /&gt;
    return frame:extensionTag( &amp;#039;ref&amp;#039;, rendered, { name = &amp;#039;_&amp;#039; .. hash } )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Buto</name></author>
	</entry>
</feed>