Модуль:Loc/Marking: различия между версиями
Pok (обсуждение | вклад) Нет описания правки Метка: отменено |
Pok (обсуждение | вклад) Нет описания правки |
||
| (не показано 7 промежуточных версий этого же участника) | |||
| Строка 90: | Строка 90: | ||
if not s or s == "" then return s end | if not s or s == "" then return s end | ||
local lines = mw.text.split(s, "\n") | local lines = mw.text.split(s, "\n") | ||
local enable_numeric = false | |||
for _, line in ipairs(lines) do | |||
local line_unescaped = mw.ustring.gsub(line, " ", " ") | |||
if mw.ustring.match(line_unescaped, "^%s*%d+%.") then | |||
enable_numeric = true | |||
break | |||
end | |||
end | |||
local out_lines = {} | local out_lines = {} | ||
for _, line in ipairs(lines) do | for _, line in ipairs(lines) do | ||
local processed = line | |||
local handled = false | local handled = false | ||
local line_unescaped = mw.ustring.gsub(line, " ", " ") | local line_unescaped = mw.ustring.gsub(line, " ", " ") | ||
local leading, num, rest = mw.ustring.match(line_unescaped, "^(%s*)(%d+)%.%s*(.*)$") | if enable_numeric then | ||
local leading, num, rest = mw.ustring.match(line_unescaped, "^(%s*)(%d+)%.%s*(.*)$") | |||
if num then | |||
local indent = mw.ustring.len(leading or "") | |||
local level = math.floor(indent / 2) | |||
local hashes = string.rep('#', 1 + level) | |||
processed = hashes .. (rest ~= "" and (" " .. rest) or "") | |||
table.insert(out_lines, processed) | |||
handled = true | |||
end | |||
end | end | ||
if not handled then | if not handled then | ||
local | local leading, rest = mw.ustring.match(line_unescaped, "^(%s*)%-%s+(.*)$") | ||
if | if rest then | ||
local indent = mw.ustring.len( | local indent = mw.ustring.len(leading or "") | ||
local level = math.floor(indent / 2) | local level = math.floor(indent / 2) | ||
local hashes = string.rep('#', 1 + level) | local hashes = string.rep('#', 1 + level) | ||
processed = hashes .. (rest ~= "" and (" " .. rest) or "") | |||
table.insert(out_lines, processed) | table.insert(out_lines, processed) | ||
handled = true | handled = true | ||
| Строка 119: | Строка 131: | ||
if not handled then | if not handled then | ||
table.insert(out_lines, | table.insert(out_lines, processed) | ||
end | end | ||
end | end | ||
| Строка 138: | Строка 150: | ||
if tip == "" and params._value and visible ~= params._value then tip = params._value end | if tip == "" and params._value and visible ~= params._value then tip = params._value end | ||
end | end | ||
return "{{altTooltip|1=" .. (visible or "") .. "|2={{#invoke:Loc|GetRawString|" .. (tip or "") .. "}}}}" | |||
return "{{altTooltip|" .. (visible or "") .. "|{{#invoke:Loc| | |||
end) | end) | ||
while true do | while true do | ||
| Строка 188: | Строка 198: | ||
text = process_nowiki_equals(text) | text = process_nowiki_equals(text) | ||
return frame:preprocess(transform(text)) | return frame:preprocess('<div class="list-reset-margin">\n' .. transform(text) .. '</div>') | ||
end | end | ||
return p | return p | ||