Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
Модуль:Основная статья
Модуль
Обсуждение
English
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
local p = {} local get_args = require('Module:Arguments').getArgs local mHatnote = require('Module:Hatnote') local category_ns_number = 14 local function get_property(args) local res = mw.getCurrentFrame():expandTemplate{title = 'Wikidata', args = args} return res ~= '' and res or nil end local function get_link_target(wikitext) local target = wikitext:match('%[%[([^%]%|]+)%]') or wikitext:match('%[%[([^%|]+)%|') return { target = target or wikitext, contains_link = target ~= nil } end local function get_catmain_from_wikidata(properties) local values = {} for _, property in pairs(properties) do values[#values + 1] = get_property{property} values[#values + 1] = get_property{property, plain = true} end if #values > 0 then for _, value in pairs(values) do local link_target = get_link_target(value) local title = mw.title.new(link_target.target) if title and title.exists then return { title = value, exists = true, missed = not link_target.contains_link } end end return {title = values[1], exists = false} end return nil end function p.main(frame) local args = get_args(frame) local current_title = mw.title.getCurrentTitle() local categories = mHatnote.define_categories{ by_wikidata = 'РуСказки:Категории с основной статьёй из Нейрофолка', by_pagename = 'РуСказки:Категории c основной статьёй, которая не указана явно', missed = 'РуСказки:Категории с существующей основной статьёй, не указанной в Нейрофолке' } local hatnote_args = setmetatable({ prefix = 'Основная статья:', prefix_plural = 'Основные статьи:', bold_links = true }, { __index = args }) local overridden_categories = {} local nocat = args.nocat if current_title.namespace == category_ns_number then hatnote_args.id = 'catmore' overridden_categories.red_link = 'РуСказки:Категории без основных статей' local first_title_exists if not hatnote_args[1] then local catmain = get_catmain_from_wikidata{'p301', 'p1753'} local title if catmain then title = catmain.title first_title_exists = catmain.exists categories:add('by_wikidata', nocat) if catmain.missed then categories:add('missed') end else title = current_title.text categories:add('by_pagename', nocat) end hatnote_args[1] = title end if first_title_exists == nil then link = mHatnote.parse_link{hatnote_args[1]} first_title_exists = not link or mw.title.new(link).exists end if not first_title_exists then hatnote_args.prefix = 'У этой категории нет основной статьи —' end end return mHatnote.main(hatnote_args, overridden_categories) .. categories end return p
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого