Мазмунга өтүү

Модуль:зат атооч

Wiktionary долбоорунан

Documentation for this module may be created at Модуль:зат атооч/doc

local p = {}

local function get_clean_word(frame)
    local args = frame.args
    if frame:getParent() then
        for k,v in pairs(frame:getParent().args) do
            if args[k] == nil or args[k] == "" then args[k] = v end
        end
    end

    local word = args['сөз'] or args['word']
    if not word or word == "" then word = mw.title.getCurrentTitle().text end
    word = mw.ustring.gsub(word, "^.-:", "")
    word = mw.ustring.gsub(word, "^.*/", "")
    return word, args
end

function p.render_wiki_nav(frame)
    local args = frame.args
    if frame:getParent() then
        for k,v in pairs(frame:getParent().args) do
            if args[k] == nil or args[k] == "" then args[k] = v end
        end
    end

    local word = args['сөз'] or args['word']
    if not word or word == "" then
        word = mw.title.getCurrentTitle().text
    end

    word = mw.ustring.gsub(word, "^.-:", "")
    word = mw.ustring.gsub(word, "^.*/", "")

    local pagename = (args['шилтеме'] and mw.text.trim(args['шилтеме']) ~= "")
        and mw.text.trim(args['шилтеме'])
        or word

    return '<div style="border:1px solid #a2a9b1; background-color:#f8f9ff; padding:5px; margin-bottom:10px; font-size:100%; clear:both; width:100%; box-sizing:border-box;">' ..
           '[[File:Wikipedia-logo-v2.svg|20px|link=w:ky:' .. pagename .. ']] ' ..
           "'''Уикипедия''' — " ..
           '[[w:ky:' .. pagename .. '|' .. word .. ']]' ..
           '</div>'
end

function p.render_header(frame)
    local word, args = get_clean_word(frame)

    local syll_fmt = mw.ustring.gsub(args['муундар'] or "", "|", "-")

    local res = '<div style="flex: 1 1 280px; box-sizing:border-box; margin-bottom:15px; font-size: 100%;">'

    if args['сүрөт'] and mw.text.trim(args['сүрөт']) ~= "" then
        res = res .. '<div style="float: right; margin-left: 10px;">[[File:' .. mw.text.trim(args['сүрөт']) .. '|thumb|180px|' .. (args['сүрөт мааниси'] or "") .. ']]</div>'
    end

    res = res .. "<h3>[[зат атооч|Зат атооч]]</h3>\n"

    if syll_fmt ~= "" then res = res .. "* Муундарга бөлүнүшү: '''" .. syll_fmt .. "'''\n" end
    if args['уңгу'] and mw.text.trim(args['уңгу']) ~= "" then res = res .. "* Уңгу: '''-" .. mw.text.trim(args['уңгу']) .. "-'''\n" end

    -- [[ ӨЗГӨРТҮЛДҮ: ЭФА кол менен жазылса гана чыгат ]]
    local ipa_part = ""
    if args['эфа'] and mw.text.trim(args['эфа']) ~= "" then
        ipa_part = frame:preprocess('{{#invoke:эфа|render|' .. mw.text.trim(args['эфа']) .. '}}')
    end

    local audio_part = ""
    if args['аудио'] and mw.text.trim(args['аудио']) ~= "" then
        audio_part = frame:preprocess('{{аудио/ky|' .. mw.text.trim(args['аудио']) .. '}}')
    end

    if ipa_part ~= "" then
        res = res .. "* " .. ipa_part
        if audio_part ~= "" then
            res = res .. "<br/><span style=\"display: inline-block; padding-left: 0.5em; margin-top: 0.3em; font-size: 100%;\">" .. audio_part .. "</span>"
        end
        res = res .. "\n"
    elseif audio_part ~= "" then
        res = res .. "* Айтылышы: " .. audio_part .. "\n"
    end

    -- [[ ӨЗГӨРТҮЛДҮ: Жек жана Көп сан кол менен жазылса гана чыгат ]]
    if args['жек'] and mw.text.trim(args['жек']) ~= "" then
        res = res .. "* жек. с. [" .. mw.text.trim(args['жек']) .. "]\n"
    end
    if args['көп'] and mw.text.trim(args['көп']) ~= "" then
        res = res .. "* көп. с. [" .. mw.text.trim(args['көп']) .. "]\n"
    end

    res = res .. '</div>'

    return res
end

function p.render(frame)
    local word, args = get_clean_word(frame)

    local decl = require("Module:ky-decl")
    local poss = require("Module:ky-poss")

    local res = ""

    res = res .. p.render_header(frame)

    res = res .. decl.render_table(frame)

    if args['таандык'] == "1" or args['таандык'] == "yes" then
        res = res .. poss.render_possessive(frame)
    end

    res = res .. "[[Категория:Кыргыз тили]]\n"
    res = res .. "[[Категория:Кыргыз зат атоочтор]]\n"

    return res
end

return p