Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Темы
Урбанистика
Физическая география
Транспорт
Примите участие!
Поддержите нас
Портал сообщества
Справка
Свежие правки
Янтарная ноосфера
Поиск
Найти
русский
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
Модуль:Публикация
Модуль
Обсуждение
English
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
local s = {} function s.parts(p) -- Запись параметров вызова в массив. Формат индексов: "массив['параметр'][номер части/заглавия/автора]", например: "ws['wsource'][2]" (p.args[9]) это "часть2 викитека". local ws = { wsource = {p.args[1], p.args[9], p.args[17], p.args[25], p.args[33]}, -- викитека / часть№ викитека wSource = {p.args[2], p.args[10], p.args[18], p.args[26], p.args[34]}, -- Викитека / часть№ Викитека } local h = { title = {p.args[3], p.args[11], p.args[19], p.args[27], p.args[35]}, -- заглавие№ / часть№ link = {p.args[4], p.args[12], p.args[20], p.args[28], p.args[36]}, -- ссылка / часть№ ссылка arcdate = {p.args[5], p.args[13], p.args[21], p.args[29], p.args[37]}, -- архив дата / часть№ архив дата arclink = {p.args[6], p.args[14], p.args[22], p.args[30], p.args[38]}, -- архив / часть№ архив utitle = {p.args[7], p.args[15], p.args[23], p.args[31], p.args[39]}, -- подзаголовок / часть№ подзаголовок info = {p.args[8], p.args[16], p.args[24], p.args[32], p.args[40]}, -- инфо / часть№ инфо lang = p.args[42], -- язык / часть язык lang_ = p.args[43], -- -язык / -часть язык material = p.args[41], -- материал / часть материал } local oh = { title = {p.args[44], p.args[50], p.args[56], p.args[62], p.args[68]}, -- оригинал / часть№ оригинал link = {p.args[45], p.args[51], p.args[57], p.args[63], p.args[69]}, -- оригинал ссылка / часть№ оригинал ссылка arcdate = {p.args[46], p.args[52], p.args[58], p.args[64], p.args[70]}, -- архив дата / часть№ оригинал архив дата arclink = {p.args[47], p.args[53], p.args[59], p.args[65], p.args[71]}, -- оригинал архив / часть№ оригинал архив utitle = {p.args[48], p.args[54], p.args[60], p.args[66], p.args[72]}, -- оригинал подзаголовок / часть№ оригинал подзаголовок info = {p.args[49], p.args[55], p.args[61], p.args[67], p.args[73]}, -- оригинал инфо / часть№ оригинал инфо lang = p.args[74], -- оригинал язык / часть оригинал язык lang_ = p.args[75], -- -оригинал язык / -часть оригинал язык } local vid = p.args[76] -- вид / часть вид local volumes = p.args[77] -- томов / часть томов local a = { authormain = p.args[78], -- основной автор / часть основной автор soauthors = p.args[80], -- соавторы / часть соавторы author = {p.args[82], p.args[79], p.args[86], p.args[89], p.args[91]}, -- автор№ / часть автор№ authorname = {p.args[83], p.args[84], p.args[88], p.args[90], p.args[92]}, -- автор№ имя / часть автор№ имя otvetstv = {p.args[81], p.args[93], p.args[94], p.args[95], p.args[96]}, -- ответственный№ / часть ответственный№ authorlink = {'', p.args[85], p.args[87]}, -- автор2 линк, автор3 линк / часть автор2 линк, часть автор3 линк } local lng = onevar(h['lang'], h['lang_']) h.lngstr, oh.lngstr = lngstr(h, oh) -- строки вывода языка и языка оригинала -- Форматирование основных значений ---------------------------------------------- -- заглавия с доп. инфой и названиями на языке оригинала, до 5 шт. частей local headers = '' if is(h['title'][1]) then headers=header(1, h, ws) if is(oh['title'][1]) then headers=headers.. ' = '..header(1, oh) end -- oh - оригинальные названия if is(h['title'][2]) then headers=headers.. ' ; '..header(2, h, ws) if is(oh['title'][2]) then headers=headers.. ' = '..header(2, oh) end if is(h['title'][3]) then headers=headers.. ' ; '..header(3, h, ws) if is(oh['title'][3]) then headers=headers.. ' = '..header(3, oh) end if is(h['title'][4]) then headers=headers.. ' ; '..header(4, h, ws) if is(oh['title'][4]) then headers=headers.. ' = '..header(4, oh) end if is(h['title'][5]) then headers=headers.. ' ; '..header(5, h, ws) if is(oh['title'][5]) then headers=headers.. ' = '..header(5, oh) end end end end end end -- вид if is(vid) then vid = ' : '..vid end -- томов if is(volumes) then volumes = ' : '.._volumes(volumes, lng, a) end -- доп. инфа об авторах local otvetstvennie = ''; if is(a['authormain']) or is(a['author'][2]) or is(a['soauthors']) or is(a['otvetstv'][1]) then otvetstvennie = ' / '..extauthors(a, lng) end -- возврат результата return headers..vid..volumes..otvetstvennie end -------------------------------------------------------------------------------------------- -- Локальные функции ----------------------------- -- проверка существования переменной. возврат её, или nil если пустая function is(var) if (var == '' or var == nil) then return nil else return var end end -- выбор приоритетной переменной из двух. если есть обе - первой. если нет обоих - '' function onevar(var1,var2) if (var1 and var1 ~= '') then return var1 elseif (var2 and var2 ~= '') then return var2 else return '' end end -- создание ссылки на ВП, ВТ, или интернет function link(anchor, wplink, wslink, inetlink) local str = '' if is(anchor) then if is(wplink) then str = '[['..wplink..'|'..anchor..']]' elseif is(wslink) then str = '[[:s:'..wslink..'|'..anchor..']]' elseif is(inetlink) then str = '['..inetlink..' '..anchor..']' else str = anchor end end return str end -- Заглавие со ссылкой, инфа function header(n, h, ws) -- n - номер заглавия; h - массив с заглавиями; ws - ссылка на викитеку local title, ilink = h['title'][n], h['link'][n] local material, arcdate, arclink, utitle, info, lngstr = h['material'], h['arcdate'][n], h['arclink'][n], h['utitle'][n], h['info'][n], h['lngstr'] local str = {} -- заглавие со ссылкой if is(ws) then ws = onevar(ws['wsource'][n], ws['wSource'][n]) end table.insert(str, link(title, nil, ws, ilink)) -- материал if n == 1 then table.insert(str, mat(material)) end -- подзаголовок, инфо if is(utitle) then table.insert(str, ' : '..utitle) end if is(info) then table.insert(str, ' : '..info) end -- язык if n == 1 and is(h['lang']) then table.insert(str, ' : '..lngstr) end -- ссылка на архив if is(arcdate) and is(arclink) then table.insert(str, ' : [<span title="архивировано из первоисточника">['..arclink..' арх.] '..mw.getContentLanguage():formatDate('j xg Y',arcdate)..'</span>]') end return table.concat(str) end -- язык function lngstr(h, oh) local l, ol = '', '' -- язык if is(h['lang_']) then l = '<span style=display:none>'..h['lang_']..'</span>' elseif is(h['lang']) then l = mw.getCurrentFrame():expandTemplate{title='lg',args={h['lang'],'[]'}} end -- вызов {{lg|lang|[]}} -- оригинал язык if is(oh['lang_']) then ol = '<span style=display:none>'..oh['lang_']..'</span>' elseif is(oh['lang']) then ol = '[пер. с '..mw.getCurrentFrame():expandTemplate{title='lg',args={oh['lang']}}..']' end -- вызов {{lg|lang}} return l, ol end -- материал function mat(str) if not is(str) then return '' end local m = { 'Видеозапись','Videorecording', 'Звукозапись','Sound recording', 'Изоматериал','Graphic', 'Карты','Cartographic material', 'Кинофильм','Motion picture', 'Комплект','Kit', 'Микроформа','Microform', 'Мультимедиа','Multimedia', 'Ноты','Music', 'Предмет','Object', 'Рукопись','Manuscript', 'Текст','Text', 'Шрифт Брайля','Braille', 'Электронный ресурс','Electronic resource' } str = mw.ustring.upper(mw.ustring.sub(str, 1,1))..mw.ustring.lower(mw.ustring.sub(str, 2)) -- Регистр: 1 буква заглавная for _, s in ipairs(m) do if (str == s) then return ' ['..s..']' end end return '' end -- томов function _volumes(volumes, lng, a) if not is(volumes) then return '' end str = mw.getCurrentFrame():expandTemplate{title='бсокр',args={lng, 'в томах', volumes}} return str end -- авторы/ответственные function extauthors(a, lng) -- aвтор2, или aвтор2 + cоавторы if is(a['author'][2]) or (is(a['author'][2]) and is(a['soauthors'])) then return authors(a, lng) -- осн.автор + соавторы + ответственные elseif is(a['authormain']) and is(a['soauthors']) and is(a['otvetstv'][1]) then return a['authormain']..' ; '..a['soauthors']..' ; '..otvetstvennye(a) -- осн.автор + соавторы elseif is(a['authormain']) and is(a['soauthors']) then return a['authormain']..' ; '..a['soauthors'] -- осн.aвтор + ответственные elseif is(a['authormain']) and is(a['otvetstv'][1]) then return a['authormain']..' ; '..otvetstvennye(a) -- осн.автор, или осн.автор + автор2 elseif is(a['authormain']) or (is(a['authormain']) and is(a['author'][2])) then return a['authormain'] -- автор2 + ответственные elseif is(a['author'][2]) and is(a['otvetstv'][1]) then return authors(a, lng)..' ; '..otvetstvennye(a) -- соавторы + ответственные elseif is(a['soauthors']) and is(a['otvetstv'][1]) then return a['soauthors'] ..' ; '..otvetstvennye(a) -- соавторы elseif is(a['soauthors']) then return a['soauthors'] -- ответственные elseif is(a['otvetstv'][1]) then return otvetstvennye(a) end end -- ответственные function otvetstvennye(a) local str = {} if is(a['otvetstv'][1]) then table.insert(str, a['otvetstv'][1]) if is(a['otvetstv'][2]) then table.insert(str, a['otvetstv'][2]) if is(a['otvetstv'][3]) then table.insert(str, a['otvetstv'][3]) if is(a['otvetstv'][4]) then table.insert(str, a['otvetstv'][4]) if is(a['otvetstv'][5]) then table.insert(str, a['otvetstv'][5]) end end end end end return table.concat(str, ' ; ') end -- доп. авторы function authors(a,lng) local str = {} local an = function (n) if is(a['authorname'][n]) then return a['authorname'][n]..' ' else return '' end end if is(a['author'][1]) then table.insert(str, an(1)..a['author'][1]) if is(a['author'][2]) then table.insert(str, ', '..link(an(2)..a['author'][2], a['authorlink'][2])) if is(a['author'][3]) then table.insert(str, ', '..link(an(3)..a['author'][3], a['authorlink'][3])) -- 4-го и 5-го автора в тэг <abbr> 'и другие' if is(a['author'][4]) then local idr = an(4) .. a['author'][4] if is(a['author'][5]) then idr = idr .. ', '..an(5)..a['author'][5] end table.insert(str, mw.getCurrentFrame():expandTemplate{title='бсокр',args={lng, 'и другие', idr}}) -- вызов {{бсокр|lang|и другие}} end end end end return table.concat(str) end return s
Описание изменений:
Обратите внимание, что все изменения в Янтарная ноосфера рассматриваются как выпущенные на условиях лицензии Creative Commons Attribution Share Alike (см.
Проект:Авторские права
). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника в общественном достоянии или под совместимой лицензией.
Не размещайте без разрешения материалы, защищённые авторским правом!
Отменить
Справка по редактированию
(в новом окне)
Шаблон, используемый на этой странице:
Модуль:Публикация/doc
(
посмотреть исходный код
)
Отобразить/Скрыть ограниченную ширину содержимого