Редактирование: Модуль:ExampleList
Перейти к навигации
Перейти к поиску
Примечание. Ваши правки будут показаны в статье только после их проверки участником с соответствующими правами.
Правка может быть отменена. Проверьте сравнение версий ниже и нажмите «Записать страницу».
Если отменяемые вами изменения не вандализм, пожалуйста, допишите причину в описании правки.
Текущая версия | Ваш текст | ||
Строка 4: | Строка 4: | ||
local function copy(other) | local function copy(other) | ||
local res = {} | local res = {} | ||
for k, v in pairs(other) do | for k,v in pairs(other) do | ||
res[k] = v | res[k] = v | ||
end | end | ||
Строка 30: | Строка 30: | ||
end | end | ||
yesno = require('Module:Yesno') | yesno = require('Module:Yesno') | ||
local trim = not (yesno(frame:getParent().args.trim or frame:getParent().args._trim, false) == false) | local trim = not (yesno(frame:getParent().args.trim or frame:getParent().args._trim, false) == false) -- по умолчанию true | ||
local args = copy(getArgs(frame, {trim = | local args = copy(getArgs(frame, {trim = trim, removeBlanks = false})) --copy(frame.args) | ||
local tname = args.t or args._t or args.template or args._template | local tname = args.t or args._t or args.template or args._template | ||
local opener = args.opener or args._opener | local opener = args.opener or args._opener | ||
local sep = args.sep or args._sep | local sep = args.sep or args._sep | ||
Строка 66: | Строка 51: | ||
opener = '' | opener = '' | ||
if between == nil and (style == '*pre' or style == '*pre↓') then | if between == nil and (style == '*pre' or style == '*pre↓') then | ||
between = '<div style="margin-top:3em"></div>' -- содержимое шаблона {{^|3em}} | |||
end | end | ||
else | else | ||
Строка 77: | Строка 58: | ||
end | end | ||
if between == nil and (style == 'pre' or style == '*pre' or style == 'pre↓' or style == '*pre↓') then | if between == nil and (style == 'pre' or style == '*pre' or style == 'pre↓' or style == '*pre↓') then | ||
between = '<div style="margin-top:2em"></div>' -- содержимое шаблона {{^|2em}} | |||
end | end | ||
if tname == '' or tname == nil then | if tname == '' or tname == nil then -- при отсутствующем имени шаблона берём его из названия страницы | ||
tname = mw.language.new('ru'):lcfirst(mw.title.getCurrentTitle().rootText) | |||
end | end | ||
local content, are_comments, i = '', false, 0 | |||
local | |||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
local pre_targs, targs = {}, {} | local pre_targs, targs = {}, {} | ||
Строка 127: | Строка 71: | ||
i = i + 1 | i = i + 1 | ||
if v ~= '' then | if v ~= '' then | ||
pre_targs = mw.text.split(v, '\\') | pre_targs = mw.text.split(v, '\\') | ||
for k2, v2 in pairs(pre_targs) do | for k2, v2 in pairs(pre_targs) do | ||
equals_pos = nil | |||
if v2:sub(1, 1) == '_' and v2:find('=') then | if v2:sub(1, 1) == '_' and v2:find('=') then -- параметры настроек шаблона "пример" | ||
equals_pos = v2:find('=') | equals_pos = v2:find('=') | ||
end | end | ||
if equals_pos then | if equals_pos then | ||
param = v2:sub(1, equals_pos-1) | |||
value = v2:sub(equals_pos+1) | |||
targs[param] = value | targs[param] = value | ||
if param == '_comment' then are_comments = true end | |||
else | else | ||
if v2:sub(1, 5) == '_' then | if v2:sub(1, 5) == '_' then | ||
Строка 152: | Строка 94: | ||
table.insert(targs, 1, tname) | table.insert(targs, 1, tname) | ||
targs._sep, targs._style, targs._nobr, targs._nocat, targs._spaced, targs._comment_sep = sep, style, nobr, | targs._sep, targs._style, targs._nobr, targs._nocat, targs._spaced, targs._comment_sep, targs._prefix, targs._postfix | ||
= sep, style, nobr, nocat, spaced, comment_sep, prefix, postfix | |||
local adjusted_opener | local adjusted_opener | ||
if style == 'pre' and opener == '*' and targs._before == nil then | if style == 'pre' and opener == '*' and targs._before == nil then | ||
Строка 165: | Строка 101: | ||
targs._style = '*pre' | targs._style = '*pre' | ||
else | else | ||
adjusted_opener = opener | |||
adjusted_opener = | |||
end | end | ||
--[[if not targs._style then | --[[if not targs._style then | ||
Строка 178: | Строка 107: | ||
end]] | end]] | ||
content = content .. (i ~= 1 and (between and between .. '\n' or '\n') or '') .. adjusted_opener .. tostring(expand(frame, 'пример', targs)) | |||
content = content .. (i ~= 1 and (between and between .. '\n' or '\n') or '') .. adjusted_opener .. | |||
end | end | ||
end | end |