Модуль:Обавторе: различия между версиями

[досмотренная версия][досмотренная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 7:
c = {}, -- категории
}
function about:result()
self:change_wd_categories()
return table.concat(self.t) .. table.concat(self.c) end
function about:add(s) if type(s) == 'string' then table.insert(self.t, s)
elseif type(s) == 'table' then table.insert(self.t, table.concat(s)) end end
function about:add_div_m5wrap_div_m5(s)
local _s; if type(s) == 'string' then _s = s elseif type(s) == 'table' then _s = table.concat(s) end
self.add(self, {'<div style="margin:5px;">', _s, '</div>'}) end
Строка 16 ⟶ 18 :
function about:add_category_author_wd(s) table.insert(self.c, '[[Категория:Авторы:Ссылка из Викиданных:'..s..']]') end
function about:add_category_manual_link(s) table.insert(self.c, '[[Категория:Авторы:Ручная ссылка:'..s..']]') end
function about:change_wd_categories()
-- Изменение общих категорий устанавливаемых в Модуль:Другие источники и Модуль:Навигация-мини
-- на категории типа 'Авторы:'
-- mw.logObject(self.c, "self.c")
local cats = {}
for _, c in pairs(datasetself.categories_rawc) do
if not mw.ustring.find(c, ':Викиданные$') then
c = c:gsub('Викитека:Ссылка из Викиданных:', 'Авторы:Ссылка из Викиданных:')
c = c:gsub('Викитека:Ручная ссылка:', 'Авторы:Ручная ссылка:')
c = c:gsub('Викитека:Ручная ссылка совпадает со ссылкой из Викиданных:([^%]]+)',
'Авторы:Ручная ссылка:%1:Совпадает со ссылкой из Викиданных')
end
table.insert(cats, c)
end
self.c = cats
end
 
 
Строка 162 ⟶ 180 :
local s_title = s[project.project]
if s_title and s_link then -- ограничение ссылок на проекты
about:add_div_m5wrap_div_m5({
'[[Файл:'..project.logo..'|20px|link='..s_link ..']]&nbsp;',
'[['..s_link..'|'..s_title..']]',
Строка 170 ⟶ 188 :
end
 
-- категории
----
for _, c in pairs(other_sourcesdataset.categories_raw) do about:add_category(c) end -- категории "Ручная ссылка"
-- categories
for _, c in pairs(dataset.categories_raw) do
if not mw.ustring.find(c, ':Викиданные$') then
c = c:gsub('Викитека:Ссылка из Викиданных:', 'Авторы:Ссылка из Викиданных:')
c = c:gsub('Викитека:Ручная ссылка:', 'Авторы:Ручная ссылка:')
about:add_category(c)
end
end
 
-- Изображение и его категория обрабатывается в блоке infobox
Строка 186 ⟶ 197 :
 
-- рендеринг ссылок на словарные персоналии об авторе и соответствующая категоризация
function personalies_linksother_sources_links(d, frame)
local other_sourcesdataset = require( "Модуль:Другие источники" ).scrapeOtherSources( frame )
if #other_sources.categories_raw == 0 or #other_sourcesdataset.wlinks == 0 then return '' end
local x = {}; function add(s) table.insert(x, s) end
 
for _, c in pairs(other_sources.categories_raw) do about:add_category(c) end -- категории "Ручная ссылка"
-- сборка ссылок
if #other_sourcesdataset.wlinks > 0 then
add('[[Файл:Wikisource-logo.svg|20px|link=]] ')
if d.wikisource then add('[['..d.wikisource..'|Материалы об авторе в Викитеке:]]&nbsp;') else add('Биография в ') end
add( table.concat(other_sourcesdataset.wlinks, ' &bull;&nbsp;') ) -- конвертация списка в строку с разделителем
elseif d.wikisource then
add('[['..d.wikisource..'|Материалы об авторе в Викитеке]]')
end
 
about:add_div_m5wrap_div_m5(x)
for _, c in pairs(dataset.categories_raw) do about:add_category(c) end
end
 
Строка 232 ⟶ 243 :
-- ссылки на персоналии в словарях Викитеки
about:add(personalies_linksother_sources_links(d, frame))
if d.google then
about:add_div_m5wrap_div_m5({
'[[Файл:Google free icon.svg|20px|link=w:Google]]',
'[http://books.google.com/books'..d.google..' Книги на сайте books.google.com]'})