Module:ShaderDoc
Appearance
Documentation for this module may be created at Module:ShaderDoc/doc
--[[
This module provides several functions used in the "Shader_Documentation" template
]]
local shader_doc = {}
--[[
shader_link_list
This function produces a bullet list of links to shaders
Usage:
{{#invoke:ShaderDoc|shader_link_list|game=game_name|shaders=shader_a,shader_b,shader_c,etc}}
parameters:
game: The shader link prefix
shaders: A comma separated list of shaders to list
]]
function shader_doc.shader_link_list( frame )
local game = frame.args['game'];
local shaders = frame.args['shaders'];
if game == nil then
return shader_doc._error( 'Game not specified' );
end
if shaders == nil then
return shader_doc._error( 'Shaders not specified' );
end
local shader_list = mw.text.split( shaders, ',' );
local result = '';
for _, shader in ipairs( shader_list ) do
result = result .. '* ' .. shader .. '\n';
end
return result;
end
--[[
Helper function to handle error messages.
]]
function shader_doc._error( error_str )
local frame = mw.getCurrentFrame();
local error_category = frame.args.error_category or 'Errors reported by Module String';
local ignore_errors = frame.args.ignore_errors or false;
local no_category = frame.args.no_category or false;
if shader_doc._getBoolean(ignore_errors) then
return '';
end
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>';
if error_category ~= '' and not shader_doc._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str;
end
return error_str;
end
--[[
Helper Function to interpret boolean strings
]]
function shader_doc._getBoolean( boolean_str )
local boolean_value;
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower();
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false;
else
boolean_value = true;
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str;
else
error( 'No boolean value found' );
end
return boolean_value
end
return shader_doc;