Difference between revisions of "Module:File link"
From BESA® Wiki
m (1 revision) |
(beginnings of an image library) |
||
(20 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | local image = {} | |
− | + | function image.new() | |
− | local | + | local obj, data = {}, {} |
− | + | ||
− | + | function data:name(s) | |
− | + | self.theName = s | |
− | function | + | end |
− | + | ||
− | + | function data:format(s, filename) | |
− | + | local validFormats = { | |
− | + | thumb = true, | |
− | + | thumbnail = true, | |
− | if | + | frame = true, |
− | + | framed = true, | |
− | + | frameless = true | |
− | + | } | |
− | + | if validFormats[s] then | |
+ | self.theFormat = s | ||
+ | self.theFormatFilename = filename | ||
+ | else | ||
+ | error('invalid format') | ||
end | end | ||
end | end | ||
− | + | ||
− | + | function data:width(px) | |
− | + | self.theWidth = px | |
− | + | end | |
− | + | ||
− | + | function data:height(px) | |
− | + | self.theHeight = px | |
− | + | end | |
+ | |||
+ | function data:upright(factor) | ||
+ | self.isUpright = true | ||
+ | self.uprightFactor = factor | ||
+ | end | ||
+ | |||
+ | function data:resetSize() | ||
+ | for i, field in ipairs{'theWidth', 'theHeight', 'isUpright', 'uprightFactor'} do | ||
+ | self[field] = nil | ||
end | end | ||
− | |||
− | |||
end | end | ||
− | + | ||
− | + | function data:location(s) | |
− | + | local validLocations = { | |
− | + | right = true, | |
− | local | + | left = true, |
− | if | + | center = true, |
− | + | none = true | |
+ | } | ||
+ | if s and validLocations[s] then | ||
+ | self.theLocation = s | ||
+ | else | ||
+ | error(string.format( | ||
+ | "bad argument #1 to 'image:location'" | ||
+ | .. " (must be one of 'right', 'left', 'center' or 'none'; got '%s').", | ||
+ | tostring(s) | ||
+ | )) | ||
end | end | ||
− | |||
− | |||
end | end | ||
− | + | ||
− | + | function data:alignment(s) | |
− | + | local validAlignments = { | |
− | + | baseline = true, | |
− | + | middle = true, | |
− | + | sub = true, | |
− | + | super = true, | |
− | + | ['text-top'] = true, | |
− | + | ['text-bottom'] = true, | |
− | + | top = true, | |
− | + | bottom = true | |
+ | } | ||
+ | if s and validAlignments[s] then | ||
+ | self.theAlignment = s | ||
else | else | ||
− | + | error(string.format( | |
+ | "bad argument #1 to 'data:alignment'" | ||
+ | )) | ||
end | end | ||
end | end | ||
− | + | ||
− | + | function data:border() | |
− | + | self.hasBorder = true | |
− | + | ||
end | end | ||
− | + | ||
− | + | function data:link(s) | |
− | + | self.theLink = s | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
end | end | ||
− | + | ||
− | + | function data:alt(s) | |
− | + | self.theAlt = s | |
− | + | end | |
− | + | ||
− | + | function data:caption(s) | |
− | + | self.theCaption = s | |
− | + | end | |
− | + | ||
− | + | function data:render() | |
− | + | ||
− | + | ||
− | + | ||
end | end | ||
− | return | + | |
+ | return obj | ||
end | end | ||
− | return | + | return image |
Revision as of 01:45, 30 May 2014
Documentation for this module may be created at Module:File link/doc
Script error: Lua error: Internal error: The interpreter exited with status 126.
local image = {} function image.new() local obj, data = {}, {} function data:name(s) self.theName = s end function data:format(s, filename) local validFormats = { thumb = true, thumbnail = true, frame = true, framed = true, frameless = true } if validFormats[s] then self.theFormat = s self.theFormatFilename = filename else error('invalid format') end end function data:width(px) self.theWidth = px end function data:height(px) self.theHeight = px end function data:upright(factor) self.isUpright = true self.uprightFactor = factor end function data:resetSize() for i, field in ipairs{'theWidth', 'theHeight', 'isUpright', 'uprightFactor'} do self[field] = nil end end function data:location(s) local validLocations = { right = true, left = true, center = true, none = true } if s and validLocations[s] then self.theLocation = s else error(string.format( "bad argument #1 to 'image:location'" .. " (must be one of 'right', 'left', 'center' or 'none'; got '%s').", tostring(s) )) end end function data:alignment(s) local validAlignments = { baseline = true, middle = true, sub = true, super = true, ['text-top'] = true, ['text-bottom'] = true, top = true, bottom = true } if s and validAlignments[s] then self.theAlignment = s else error(string.format( "bad argument #1 to 'data:alignment'" )) end end function data:border() self.hasBorder = true end function data:link(s) self.theLink = s end function data:alt(s) self.theAlt = s end function data:caption(s) self.theCaption = s end function data:render() end return obj end return image