Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
Модуль:Индекс категории
Модуль
Обсуждение
English
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
local p = {} local yesno = require('Module:Yesno') local getArgs = require('Module:Arguments').getArgs local lists = { {list = {'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ы', 'Э', 'Ю', 'Я'}, depth = 0}, {list = {'Абу', 'Бар', 'Ван', 'Гам', 'Дар', 'Евл', 'Жан', 'Зай', 'Иве', 'Йем', 'Кан', 'Лал', 'Мак', 'Най', 'Обу', 'Пас', 'Рай', 'Сан', 'Так', 'Уде', 'Фак', 'Хак', 'Цар', 'Чар', 'Шап', 'Щед', 'Ыгд', 'Эвр', 'Юди', 'Ягу'}, depth = 3}, {list = {'Ада', 'Без', 'Вве', 'Гек', 'Дел', 'Его', 'Жев', 'Зан', 'Идо', 'Йес', 'Кас', 'Лас', 'Мар', 'Нат', 'Ожи', 'Пер', 'Рац', 'Сев', 'Тва', 'Уим', 'Фед', 'Хар', 'Цви', 'Чел', 'Шва', 'Щеп', 'Ыйв', 'Эйф', 'Юли', 'Яко'}, depth = 2}, {list = {'Акт', 'Бер', 'Вес', 'Геф', 'Дец', 'Ежо', 'Жен', 'Зах', 'Ико', 'Йис', 'Ким', 'Лег', 'Мау', 'Ней', 'Оку', 'Пис', 'Рел', 'Сет', 'Тер', 'Улм', 'Фид', 'Хат', 'Цен', 'Чер', 'Шен', 'Щер', 'Ыйр', 'Экт', 'Юнг', 'Яку'}, depth = 3}, {list = {'Алт', 'Бит', 'Вин', 'Гно', 'Дин', 'Ели', 'Жиг', 'Зее', 'Имп', 'Йон', 'Кож', 'Леп', 'Мер', 'Нет', 'Опо', 'Плу', 'Рич', 'Ско', 'Тих', 'Уни', 'Фин', 'Хим', 'Цер', 'Чес', 'Шин', 'Щит', 'Ылг', 'Эли', 'Юри', 'Ямб'}, depth = 1}, {list = {'Анд', 'Бол', 'Вла', 'Гон', 'Дов', 'Епи', 'Жир', 'Зен', 'Инт', 'Йоп', 'Кон', 'Лин', 'Мим', 'Нил', 'Орн', 'Пор', 'Рой', 'Сод', 'Топ', 'Урб', 'Фок', 'Хок', 'Циг', 'Чиж', 'Шма', 'Щук', 'Ымс', 'Энг', 'Юрк', 'Яно'}, depth = 3}, {list = {'Апп', 'Боя', 'Вок', 'Гра', 'Дор', 'Еро', 'Жуа', 'Зин', 'Иос', 'Йос', 'Кра', 'Лов', 'Мож', 'Нов', 'Осл', 'Пре', 'Рот', 'Спе', 'Три', 'Урю', 'Фоф', 'Хоп', 'Цин', 'Чка', 'Шта', 'Щуч', 'Ысп', 'Эпо', 'Юрь', 'Яро'}, depth = 2}, {list = {'Арх', 'Бул', 'Вос', 'Гру', 'Дув', 'Ест', 'Жуп', 'Зом', 'Исм', 'Йот', 'Кря', 'Лук', 'Мот', 'Ном', 'Отк', 'Пуг', 'Рут', 'Стр', 'Тум', 'Утр', 'Фро', 'Хре', 'Цна', 'Чум', 'Шув', 'Щёг', 'Ыты', 'Эсс', 'Юсу', 'Яст'}, depth = 3}, } local digraphs = { {'Ав', 'Бв', 'Вв', 'Гв', 'Дв', 'Ев', 'Жв', 'Зв', 'Ив', 'Йв', 'Кв', 'Лв', 'Мв', 'Нв', 'Ов', 'Пв', 'Рв', 'Св', 'Тв', 'Ув', 'Фв', 'Хв', 'Цв', 'Чв', 'Шв', 'Щв', 'Ыв', 'Эв', 'Юв', 'Яв'}, {'Ад', 'Бд', 'Вд', 'Гд', 'Дд', 'Ед', 'Жд', 'Зд', 'Ид', 'Йд', 'Кд', 'Лд', 'Мд', 'Нд', 'Од', 'Пд', 'Рд', 'Сд', 'Тд', 'Уд', 'Фд', 'Хд', 'Цд', 'Чд', 'Шд', 'Щд', 'Ыд', 'Эд', 'Юд', 'Яд'}, {'Аж', 'Бж', 'Вж', 'Гж', 'Дж', 'Еж', 'Жж', 'Зж', 'Иж', 'Йж', 'Кж', 'Лж', 'Мж', 'Нж', 'Ож', 'Пж', 'Рж', 'Сж', 'Тж', 'Уж', 'Фж', 'Хж', 'Цж', 'Чж', 'Шж', 'Щж', 'Ыж', 'Эж', 'Юж', 'Яж'}, {'Аи', 'Би', 'Ви', 'Ги', 'Ди', 'Еи', 'Жи', 'Зи', 'Ии', 'Йи', 'Ки', 'Ли', 'Ми', 'Ни', 'Ои', 'Пи', 'Ри', 'Си', 'Ти', 'Уи', 'Фи', 'Хи', 'Ци', 'Чи', 'Ши', 'Щи', 'Ыж', 'Эи', 'Юи', 'Яи'}, {'Ал', 'Бл', 'Вл', 'Гл', 'Дл', 'Ел', 'Жл', 'Зл', 'Ил', 'Йл', 'Кл', 'Лл', 'Мл', 'Нл', 'Ол', 'Пл', 'Рл', 'Сл', 'Тл', 'Ул', 'Фл', 'Хл', 'Цл', 'Чл', 'Шл', 'Щл', 'Ыл', 'Эл', 'Юл', 'Ял'}, {'Ан', 'Бн', 'Вн', 'Гн', 'Дн', 'Ен', 'Жн', 'Зн', 'Ин', 'Йн', 'Кн', 'Лн', 'Мн', 'Нн', 'Он', 'Пн', 'Рн', 'Сн', 'Тн', 'Ун', 'Фн', 'Хн', 'Цн', 'Чн', 'Шн', 'Щн', 'Ын', 'Эн', 'Юн', 'Ян'}, {'Ап', 'Бп', 'Вп', 'Гп', 'Дп', 'Еп', 'Жп', 'Зп', 'Ип', 'Йп', 'Кп', 'Лп', 'Мп', 'Нп', 'Оп', 'Пп', 'Рп', 'Сп', 'Тп', 'Уп', 'Фп', 'Хп', 'Цп', 'Чп', 'Шп', 'Щп', 'Ып', 'Эп', 'Юп', 'Яп'}, {'Ас', 'Бс', 'Вс', 'Гс', 'Дс', 'Ес', 'Жс', 'Зс', 'Ис', 'Йс', 'Кс', 'Лс', 'Мс', 'Нс', 'Ос', 'Пс', 'Рс', 'Сс', 'Тс', 'Ус', 'Фс', 'Хс', 'Цс', 'Чс', 'Шс', 'Щс', 'Ыс', 'Эс', 'Юс', 'Яс'}, {'Ау', 'Бу', 'Ву', 'Гу', 'Ду', 'Еу', 'Жу', 'Зу', 'Иу', 'Йу', 'Ку', 'Лу', 'Му', 'Ну', 'Оу', 'Пу', 'Ру', 'Су', 'Ту', 'Уу', 'Фу', 'Ху', 'Цу', 'Чу', 'Шу', 'Щу', 'Ыу', 'Эу', 'Юу', 'Яу'}, {'Ах', 'Бх', 'Вх', 'Гх', 'Дх', 'Ех', 'Жх', 'Зх', 'Их', 'Йх', 'Кх', 'Лх', 'Мх', 'Нх', 'Ох', 'Пх', 'Рх', 'Сх', 'Тх', 'Ух', 'Фх', 'Хх', 'Цх', 'Чх', 'Шх', 'Щх', 'Ых', 'Эх', 'Юх', 'Ях'}, {'Ач', 'Бч', 'Вч', 'Гч', 'Дч', 'Еч', 'Жч', 'Зч', 'Ич', 'Йч', 'Кч', 'Лч', 'Мч', 'Нч', 'Оч', 'Пч', 'Рч', 'Сч', 'Тч', 'Уч', 'Фч', 'Хч', 'Цч', 'Чч', 'Шч', 'Щч', 'Ыч', 'Эч', 'Юч', 'Яч'}, {'Ащ', 'Бщ', 'Вщ', 'Гщ', 'Дщ', 'Ещ', 'Жщ', 'Зщ', 'Ищ', 'Йщ', 'Кщ', 'Лщ', 'Мщ', 'Нщ', 'Ощ', 'Пщ', 'Рщ', 'Сщ', 'Тщ', 'Ущ', 'Фщ', 'Хщ', 'Цщ', 'Чщ', 'Шщ', 'Щщ', 'Ыщ', 'Эщ', 'Ющ', 'Ящ'}, {'Аю', 'Бю', 'Вю', 'Гю', 'Дю', 'Ею', 'Жю', 'Зю', 'Ию', 'Йю', 'Кю', 'Лю', 'Мю', 'Ню', 'Ою', 'Пю', 'Рю', 'Сю', 'Тю', 'Ую', 'Фю', 'Хю', 'Цю', 'Чю', 'Шю', 'Щю', 'Ыю', 'Эю', 'Юю', 'Яю'}, } local NS_CAT = mw.site.namespaces[14].name local CONTENT = 'Оглавление:' local TO_START = '…в начало' local START = 'Начало' local BULL = '•' local function bold(t) return "'''" .. t .. "'''" end local function italic(t) return "''" .. t .. "''" end local function link(name, text, par) return '[' .. tostring(mw.uri.fullUrl(NS_CAT .. ':' .. name, par)) .. ' ' .. text .. ']' end local function check_i_template(i, letter_10, letter_27) if i == 10 then return letter_10 end if i == 27 then return letter_27 end return true end local function td_link_template(pagename, td, v, text) td:wikitext(link(pagename, text or v, {from = v})) end function p.three_letters(frame) local args = getArgs(frame) local wt = mw.html.create('table'):addClass('plainlinks'):css('border', '1px solid #a2a9b1'):css('background-color', '#f8f9fa'):css('padding', '5px'):css('font-size', '95%'):css('margin-left', 'auto'):css('margin-right', 'auto') local letter_10 = yesno(args['Й']) local letter_27 = yesno(args['Ы']) local depth = tonumber(args.depth or 0) local nocyr = yesno(args.nocyr) local lat = (yesno(args.lat) or depth >=3) and not yesno(args.nolat) local smallat = yesno(args.smallat) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local row = wt:tag('tr') local td = row:tag('td'):css('text-align', 'left') td:attr('colspan', 14 + (letter_10 and 1 or 0)) td:wikitext(bold(CONTENT)) td = row:tag('td'):css('text-align', 'right') td:attr('colspan', 14 + (letter_27 and 1 or 0)) td:wikitext(italic(link(pagename, TO_START, {}))) local function check_i(i) return check_i_template(i, letter_10, letter_27) end local function td_link(td, v) td_link_template(pagename, td, v) end if not nocyr then for _, data in ipairs(lists) do if data.depth <= depth then row = wt:tag('tr') for i, v in ipairs(data.list) do if check_i(i) then td_link(row:tag('td'), v) end end end end end local function latin_row(a, z) local upA = mw.ustring.codepoint(a) local upZ = mw.ustring.codepoint(z) row = wt:tag('tr') row:tag('td') -- 26 букв против 28+ букв кириллицы if letter_10 then row:tag('td') end for i = upA, upZ do td_link(row:tag('td'), mw.ustring.char(i)) end row:tag('td') if letter_27 then row:tag('td') end end if lat then latin_row('A','Z') end if smallat then latin_row('a', 'z') end return tostring(wt) end function p.two_letters(frame) local args = getArgs(frame) local wt = mw.html.create('table'):addClass('plainlinks'):css('border', '1px solid #aaa'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):css('margin-left', 'auto'):css('margin-right', 'auto') local letter_10 = yesno(args['Й']) local letter_27 = yesno(args['Ы']) local use_digits = yesno(args['NN']) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local row = wt:tag('tr') local td = row:tag('td'):css('text-align', 'left') td:attr('colspan', 14 + (letter_10 and 1 or 0) + (use_digits and 1 or 0)) td:wikitext(bold(CONTENT)) td = row:tag('td'):css('text-align', 'right') td:attr('colspan', 14 + (letter_27 and 1 or 0)) td:wikitext(italic(link(pagename, TO_START, {}))) local function check_i(i) return check_i_template(i, letter_10, letter_27) end local function td_link(td, v) td_link_template(pagename, td, v) end row = wt:tag('tr') if use_digits then row:tag('td'):wikitext(bold(link(pagename, '0—9', {from='0'}))) end for i, v in ipairs(lists[1].list) do if check_i(i) then td = row:tag('td') td_link(td, v) td:css('font-weight', 'bold') end end for j, list in ipairs(digraphs) do row = wt:tag('tr') if use_digits then td = row:tag('td') if j <= 10 then td_link(td, tostring(j-1)) end end for i, v in ipairs(list) do if check_i(i) then td_link(row:tag('td'), v) end end end return tostring(wt) end function p.only_cyrillic(frame) local args = getArgs(frame) local wt = mw.html.create('table'):addClass('plainlinks'):css('border', '1px solid #aaaaaa'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):attr('align', 'center') -- в отличие от двух предыдущих реализаций здесь используется Ё, поэтому приходится отдельно задавать алфавит для наглядности local letter_28 = yesno(args['Ы']) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local row = wt:tag('tr') row:tag('td'):css('text-align', 'left'):wikitext(bold(CONTENT)) row:tag('td'):wikitext(link(pagename, '*', {})) local cyr_letters = {'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я'} if letter_28 then table.insert(cyr_letters, 28, 'Ы') end for _, v in ipairs(cyr_letters) do td_link_template(pagename, row:tag('td'), v) end return tostring(wt) end function p.only_numbers(frame) local args = getArgs(frame) local wt = mw.html.create('table'):addClass('plainlinks'):css('border', '1px solid #aaaaaa'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):attr('align', 'center') local step = tonumber(args.step or args['шаг'] or 100) local max_val = tonumber(args.max or args['макс'] or 1000) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local use_letters = yesno(args.letters or args['А']) --русская А local row = wt:tag('tr') row:tag('td'):wikitext(link(pagename, START, {})) local i = 0 repeat td_link_template(pagename, row:tag('td'), tostring(i)) i = i + step until i > max_val if use_letters then td_link_template(pagename, row:tag('td'), 'А') end return tostring(wt) end local function yesno_from_arg_or_true(args, en, ru) local raw = args[en] or args[ru] if raw then return yesno(raw) else return true end end function p.single_line(frame) local args = getArgs(frame) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local num = mw.site.stats.pagesInCategory(pagename) local force = yesno(args.force or args['всегда']) if num > 200 or force then local wt = mw.html.create('table'):addClass('plainlinks'):css('border', '1px solid #aaaaaa'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):attr('align', 'center') local row = wt:tag('tr') row:tag('td'):wikitext(link(pagename, START, {})) if yesno_from_arg_or_true(args, 'numerals', 'числа') then row:tag('td'):wikitext(BULL) td_link_template(pagename, row:tag('td'), '0', '0–9') end -- латинские имена параметров из совместимости, рекомендуется использовать кириллические if yesno_from_arg_or_true(args, 'up', 'кир') then row:tag('td'):wikitext(BULL) local cyr_letters = {'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я'} for _, v in ipairs(cyr_letters) do td_link_template(pagename, row:tag('td'), v) end end if yesno_from_arg_or_true(args, 'up-lat', 'лат') then row:tag('td'):wikitext(BULL) local upA = mw.ustring.codepoint('A') local upZ = mw.ustring.codepoint('Z') for i = upA, upZ do td_link_template(pagename, row:tag('td'), mw.ustring.char(i)) end end return tostring(wt) else -- 200 страниц и так умещаются на одном экране return '' end end function p.custom(frame) local args = getArgs(frame) local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text local num = mw.site.stats.pagesInCategory( 'Незавершённые статьи по химии') local div = mw.html.create('div'):addClass('plainlinks'):css('border', '1px solid #aaaaaa'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):attr('align', 'center') local class = args.class or 'hlist' div:addClass(class) local n = require('Module:TableTools').length(args) local res = {'\n*' .. link(pagename, START, {})} local function add_link(v) table.insert(res, link(pagename, v, {from = v})) end for i = 1, n do add_link(args[i]) end if yesno(args.cyr or args['кир']) then local cyr_letters = {'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Э', 'Ю', 'Я'} for _, v in ipairs(cyr_letters) do add_link(v) end end if yesno(args.lat or args['лат']) then local upA = mw.ustring.codepoint('A') local upZ = mw.ustring.codepoint('Z') for i = upA, upZ do add_link(mw.ustring.char(i)) end end div:wikitext(table.concat(res, '\n*')) return tostring(div) end return p
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого