Module:Volume
From Pittsburgh Streets
Documentation for this module may be created at Module:Volume/doc
local p = {};
function p.volume(frame)
local v = frame.args[1];
if not v then
return '';
end
local _, prefix_end, prefix = v:find('^%s*%(([^%)]*)%)%s*');
local note_start, _, note = v:find('%s*%(([^%)]*)%)%s*$', (prefix_end or 0) + 1);
local number = v:sub((prefix_end or 0) + 1, (note_start or #v + 1) - 1);
if number == '' then
return '';
end
local result = '';
if prefix then
result = prefix .. ' ';
end
if number:sub(1, 1) == '[' and number:sub(-1) == ']' then
result = result .. '[vol. ' .. number:sub(2, -2) .. ']';
else
result = result .. 'vol. ' .. number;
end
if note then
result = result .. ' (' .. note .. ')';
end
return result;
end
return p;