Изменения

Перейти к навигации Перейти к поиску
унификация работы с авторами, + author-link для всех авторов
Строка 28: Строка 28:  
     ['archivedate'] = 'archive-date',
 
     ['archivedate'] = 'archive-date',
 
     ['archiveurl'] = 'archive-url',
 
     ['archiveurl'] = 'archive-url',
     ['authorlink'] = 'author-link',
+
     ['authorlink'] = 'author-link1',
     ['first1'] = 'first',
+
    ['author-link'] = 'author-link1',
     ['last1'] = 'last',
+
     ['author'] = 'author1',
 +
    ['first'] = 'first1',
 +
     ['last'] = 'last1',
 
     ['deadurl'] = 'deadlink',
 
     ['deadurl'] = 'deadlink',
 
     ['dead-url'] = 'deadlink',
 
     ['dead-url'] = 'deadlink',
Строка 239: Строка 241:     
     -- Формирование вывода
 
     -- Формирование вывода
     -- Автор
+
     -- Авторы
     if is(args['author']) or is(args['last']) then
+
     local authors_str = {}
        table.insert(str, '<i>')
+
    for k, v in pairs(args) do
 
+
    if (string.find( k, '^last%d+' ) or string.find( k, '^author%d+' )) and is(v) then
        local author = args['author'];
+
    local i = replace( replace( k, 'last', '' ), 'author', '' )
        if is(args['last']) then
+
    local author = v;
            author = args['last']
+
    if #authors_str > 0 then
             if is(args['first']) then
+
            author = nowiki(';') .. '&#32;' .. author;
                 author = author .. ', ' .. args['first']
+
end
 +
             if is(args['first' .. i]) then
 +
                 author = author .. ', ' .. args['first' .. i]
 
             end
 
             end
        elseif not is(args['last2']) and not is(args['coauthors']) then
+
        if is(args['author-link' .. i]) then
            author = replace(author, '^(%[*)(.-[^%.%]])(%]*)$', '%1%2%3.')
+
            table.insert(authors_str, '[[' .. args['author-link' .. i] .. '|' .. author .. "]]")
        end
+
        else
 
+
            table.insert(authors_str, author)
        if is(args['author-link']) then
+
        end
            table.insert(str, '[[' .. args['author-link'] .. '|' .. author .. "]]")
  −
        else
  −
            table.insert(str, author)
  −
        end
  −
 
  −
        -- Дополнительные сведения об авторах
  −
        for i = 2, 5 do
  −
            if is(args['last' .. i]) then
  −
                local author = nowiki(';') .. '&#32;' .. args['last' .. i];
  −
                if is(args['first' .. i]) then
  −
                    author = author .. ', ' .. args['first' .. i]
  −
                end
  −
                table.insert(str, author)
  −
            end
  −
        end
  −
 
  −
        if is(args['coauthors']) then
  −
            table.insert(str, nowiki(';') .. '&#32;' .. replace(args['coauthors'], '^(.-)%.?$', '%1.') .. ':&#32;')
   
         end
 
         end
 +
    end
   −
         table.insert(str, '</i>&#32;')
+
    if is(args['coauthors']) then
 +
         table.insert(authors_str, nowiki(';') .. '&#32;' .. replace(args['coauthors'], '^(.-)%.?$', '%1.') .. ':&#32;')
 
     end
 
     end
 +
 +
if #authors_str > 0 then
 +
    table.insert(str, '<i>')
 +
for k, v in pairs(authors_str) do
 +
table.insert(str, v)
 +
end
 +
insertDot(str, needDot(str[#str]))
 +
    table.insert(str, '</i>&#32;')
 +
end
    
     -- Редактор
 
     -- Редактор
Анонимный участник

Реклама:

Навигация