Line 7: |
Line 7: |
| local args = nil | | local args = nil |
| local ship = nil | | local ship = nil |
| + | local frame = nil |
| | | |
| local enumerating_functions = { | | local enumerating_functions = { |
− | | + | |
| + | args = function() |
| + | return mw.text.split(args.args, "%s*,%s*") |
| + | end, |
| + | |
| base_names = function() | | base_names = function() |
| return ShipIterator.baseForms | | return ShipIterator.baseForms |
Line 102: |
Line 107: |
| return "|-\n" | | return "|-\n" |
| elseif prefix == "?" then | | elseif prefix == "?" then |
− | local key = string.sub(arg, 2) | + | prefix = string.sub(prefix, 1, 1) |
− | local value = format_value(key)
| + | if prefix == "?" then |
− | if args.format == "table" then | + | local key = string.sub(arg, 3) |
− | return "|" .. value .. "\n" | + | return frame:preprocess(format{ key, ship = ship:name('/') }) |
| else | | else |
− | return value | + | local key = string.sub(arg, 2) |
| + | local value = format_value(key) |
| + | if args.format == "table" then |
| + | return "|" .. value .. "\n" |
| + | else |
| + | return value |
| + | end |
| end | | end |
| else | | else |
Line 130: |
Line 141: |
| local Calc = {} | | local Calc = {} |
| | | |
− | function Calc.format(frame, args_) | + | function Calc.format(frame_, args_) |
− | return interpret_args(args_ or Utils.getTemplateArgs(frame).explicit) | + | frame = frame_ |
| + | return interpret_args(args_ or Utils.getTemplateArgs(frame_).explicit) |
| end | | end |
| | | |
| function Calc.test() | | function Calc.test() |
| + | --[[ |
| mw.log(Calc.format(nil, { | | mw.log(Calc.format(nil, { |
| format = "table", | | format = "table", |
Line 140: |
Line 153: |
| "#", "!@", "?id", "?link", "?implementation_date" | | "#", "!@", "?id", "?link", "?implementation_date" |
| })) | | })) |
| + | ]]-- |
| end | | end |
| | | |
| return Calc | | return Calc |