Модуль:Сущность: различия между версиями

Нет описания правки
Метка: отменено
Нет описания правки
Метка: ручная отмена
Строка 758: Строка 758:
         sep = ""
         sep = ""
     end
     end
     local keyPattern   = mw.text.unstripNoWiki((args.key_pattern == nil and "(.*)" or args.key_pattern))
     local keyPattern = mw.text.unstripNoWiki(args.key_pattern or "(.*)")
     local keyReplace   = mw.text.unstripNoWiki((args.key_replace == nil and "" or args.key_replace))
     local keyReplace = mw.text.unstripNoWiki(args.key_replace or "\\1")
     local valuePattern = mw.text.unstripNoWiki((args.value_pattern == nil and "(.*)" or args.value_pattern))
     local valuePattern = mw.text.unstripNoWiki(args.value_pattern or "(.*)")
     local valueReplace = mw.text.unstripNoWiki((args.value_replace == nil and "\\1" or args.value_replace))
     local valueReplace = mw.text.unstripNoWiki(args.value_replace or "\\1")
   
 
     local pairPattern = mw.text.unstripNoWiki((args.pattern == nil and "(.*)" or args.pattern))
     local pairPattern = mw.text.unstripNoWiki(args.pattern or "(.*)")
     local pairReplace = mw.text.unstripNoWiki((args.replace == nil and "\\1" or args.replace))
     local pairReplace = mw.text.unstripNoWiki(args.replace or "\\1")


     local out = {}
     local out = {}
Строка 829: Строка 829:


             local MARK_KEY = "\31KEY\31"
             local MARK_KEY = "\31KEY\31"
             local vReplBase = (valueReplace == nil) and "\\1" or valueReplace
             local vRepl = (valueReplace or "\\1"):gsub("\\2", MARK_KEY)
            local vRepl = vReplBase:gsub("\\2", MARK_KEY)
             local vStr0 = apply_pattern(vStr, valuePattern, vRepl)
             local vStr0 = apply_pattern(vStr, valuePattern, vRepl)
             vStr0 = tostring(vStr0):gsub(MARK_KEY, baseKey)
             vStr0 = tostring(vStr0):gsub(MARK_KEY, baseKey)
Строка 841: Строка 840:
             vStr = vStr0
             vStr = vStr0


if vStr ~= "" then
            if vStr ~= "" then
    local ks = tostring(keyStr or "")
                local line
                if outputType == "enum" then
                    line = vStr .. " " .. keyStr
                else
                    line = bullet .. keyStr .. sep .. vStr
                end


    local line
                if pairPattern ~= "" then
    if outputType == "enum" then
                    line = apply_pattern(line, pairPattern, pairReplace)
        if ks ~= "" then
                end
            line = vStr .. " " .. ks
        else
            line = vStr
        end
    else
        if ks ~= "" then
            line = bullet .. ks .. sep .. vStr
        else
            line = bullet .. vStr
        end
    end


    if pairPattern ~= "" then
                table.insert(out, line)
        line = apply_pattern(line, pairPattern, pairReplace)
            end
    end
 
    table.insert(out, line)
end
         end
         end
     end
     end