Siirry sisältöön

Moduuli:Kitarakirja/Sointuluettelo

Wikikirjastosta

Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Kitarakirja/Sointuluettelo/ohje

local p = {}

local chordNameTemplates = {
    "X",
    "X+",
    "X°",
    "X11",
    "X13",
    "X13♭9",
    "X13♯9",
    "X6",
    "X6sus2",
    "X6/9",
    "X6/9♯11",
    "X6/9maj7",
    "X°7",
    "X7",
    "X7♭5",
    "X7♯5",
    "X7♯5♭9",
    "X7♯5♯9",
    "X7(♭9)",
    "X7(♯9)",
    "X7sus2",
    "X7sus4",
    "X7sus4♭9",
    "X9",
    "X9♭5",
    "X9sus4",
    "Xadd9",
    "Xm",
    "Xm11",
    "Xm13",
    "Xm♭6",
    "Xm6",
    "Xm6/9",
    "Xm7",
    "Xm7♭5",
    "Xm9",
    "Xmadd9",
    "Xmaj13",
    "Xmaj7",
    "Xmaj7sus4",
    "Xmaj7♯11",
    "Xmaj7♭5",
    "Xmaj7♯5", 
    "Xmaj7♯9♯5",
    "Xmaj9",
    "Xmaj9♯5",
    "Xmmaj7",
    "Xmmaj9",
    "Xsus2",
    "Xsus4",
    "Xsus4♭9",
}

function p.Sointuluettelo( frame )
    local rootNote = frame.args['juurisävel']
    
    local chordNames = {}
    for i, template in ipairs(chordNameTemplates) do
    	local chordName = mw.ustring.gsub(template, "X", rootNote)
    	if template:sub(1, 2) == "'" then
        	chordNames[i] = chordName
        else
        	chordNames[i] = "[[Kitarakirja/Sointuluettelo:" .. chordName .. "|" .. chordName .. "]]"
        end	
    end

    local div = mw.html.create( 'div' )
        :css('columns', '22em 3')
        :wikitext("\n*" .. table.concat(chordNames, "\n*") .. "\n")
    
    return tostring( div )
end

return p