Module:Sprite: Difference between revisions

Improve speed by only lowercasing each name once
mw.html seems to use a lot of memory. Converting elements to wikitext string where possible before inserting them into an existing HtmlBuilder significantly reduces that memory usage for some reason, even though that just happens later anyway on output.
Line 104: Line 104:
end
end
return root
return tostring( root )
end
end


Line 221: Line 221:
local box = section.boxes:tag( 'li' ):addClass( 'spritedoc-box' ):attr( 'data-pos', pos )
local box = section.boxes:tag( 'li' ):addClass( 'spritedoc-box' ):attr( 'data-pos', pos )
box:tag( 'div' ):addClass( 'spritedoc-image' )
box:tag( 'div' ):addClass( 'spritedoc-image' )
:node( p.base{ pos = pos, settings = settingsPage } )
:wikitext( p.base{ pos = pos, settings = settingsPage } )
names = box:tag( 'ul' ):addClass( 'spritedoc-names' )
names = box:tag( 'ul' ):addClass( 'spritedoc-names' )
section[pos] = names
section[pos] = names
end
end
local codeElem = names
local nameElem = mw.html.create( 'li' ):addClass( 'spritedoc-name' )
:tag( 'li' ):addClass( 'spritedoc-name' )
local codeElem = nameElem:tag( 'code' ):wikitext( data.name )
:tag( 'code' ):wikitext( data.name )
if idData.deprecated then
if idData.deprecated then
codeElem:addClass( 'spritedoc-deprecated' )
codeElem:addClass( 'spritedoc-deprecated' )
end
end
names:wikitext( tostring( nameElem ) )
end
end
Line 238: Line 238:
return tostring( body )
return tostring( body )
end
end
return f:callParserFunction( '#widget:Stylesheet', { page = 'SpriteDoc' } ) .. tostring( body )
return f:callParserFunction( '#widget:Stylesheet', { page = 'SpriteDoc' } ), tostring( body )
end
end
return p
return p