Module:Infobox song

local p = {}

function p._track_listing(song, album) local cargo = mw.ext.cargo local results = cargo.query(		'track_listings',		'track, song, song_page_title',		{			where = 'work = "' .. album .. '" AND main_listing = 1',			orderBy = 'track_listings._ID ASC'		}	)

local root = mw.html.create local olRoot = root:tag('ol') local has_match = false

for r = 1, #results do		local result = results[r] local page = mw.title.new(result['song_page_title'])

wikitext = result['song'] if page.exists then wikitext =  .. result['song'] ..  end

olRoot:tag('li') :attr('value', result['track']) :wikitext(wikitext)

if result['song'] == song then has_match = true end end if has_match then return tostring(root) end return ''

-- local tableRoot = root:tag('table')

-- for r = 1, #results do	-- 	local row = tableRoot:tag('tr') -- 	local result = results[r] -- 	row:tag('td') -- 		:css('padding-right', '5px') -- 		:wikitext(result['track'] .. '.') -- 	row:tag('td'):wikitext( .. result['song'] .. ) -- end end

function p.track_listing(frame) local song = frame.args[1] local album = frame.args[2] return p._track_listing(song, album) end

return p