Module:Sandbox/Was a bee/Dump

Documentation for this module may be created at Module:Sandbox/Was a bee/Dump/doc

-- Copied from [[Module:Wikidata]]. Main developer is [[User:RexxS]].

local p = {}

-- internationalisation
local i18n =
{
	["warnDump"] = "[[Category:Called function 'Dump' from module Wikidata]]",
}

function p.Dump(frame)
	local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()
	local data = mw.wikibase.getEntityObject(f.args.id)
	local width = f.args.width or "100%"
	local height = f.args.height or ""
	local overflowY
	if (height ~= nil) and (height ~= "") then
		overflowY = "scroll"
	else
		overflowY = ""
	end
	--mw.logObject(height)
	--mw.logObject(overflowY)
	if not data then
		return i18n.warnDump
	end

	local pathText = frame:expandTemplate{ title = 'Q', args = { f.args.id } } .. " > "
	local i = 1
	while true do
		local index = f.args[i]
		if (not index) or (index == "") then
			return pathText .. f:extensionTag{ name = 'syntaxhighlight', content = mw.dumpObject(data), args = {lang = "javascript", style = "width: " .. width .. ";"  .. "height: " .. height .. ";" .. "overflow-y: " .. overflowY .. ";" .. "overflow-x: hidden;" } } .. i18n.warnDump
		end

		pathText  = pathText .. index .. " > "
		data = data[index] or data[tonumber(index)]
		if not data then
			return i18n.warnDump
		end

		i = i + 1
	end
end

return p