|
|
| Line 95: |
Line 95: |
| | | |
| return notes_source_page | | return notes_source_page |
| end
| |
|
| |
| -- Generic function to traverse the table
| |
| -- A parameter can be passed that is numerical, like 2; and the function will
| |
| -- first try to access the key "2", otherwise it will look for the value at index=2 (3rd value)
| |
| function p.get_value(frame)
| |
| local args = frame.args
| |
| local value = item_data
| |
|
| |
| for i = 1, #args do
| |
| local key = args[i]
| |
|
| |
| -- First try string key
| |
| if type(value) == "table" and value[key] ~= nil then
| |
| value = value[key]
| |
|
| |
| -- Then try numeric key if string didn't work
| |
| elseif type(value) == "table" then
| |
| local num_key = tonumber(key)
| |
| if num_key and value[num_key] ~= nil then
| |
| value = value[num_key]
| |
| else
| |
| return ""
| |
| end
| |
| else
| |
| return ""
| |
| end
| |
| end
| |
|
| |
| -- Return final value, convert to string if not nil
| |
| if value == nil then
| |
| return ""
| |
| else
| |
| return tostring(value)
| |
| end
| |
| end | | end |
|
| |
|
| return p | | return p |