Lua
There are 2 ways to use Lua.
1) perform the query directly from Lua, as follows:
local p = {}
function p.main(frame)
-- local args = frame:getParent().args
local ret = mw.visualdata.query( 'Book', '[[title::+]]', {'title'}, {} )
return mw.text.jsonEncode(ret)
end
return p
Template: Template:Test Lua
Module: Module:TestLua
[{"pageid":1806,"title":"Test Book","data":{"authors":[{"first_name":"Test","last_name":"Author","name":"Test Author","email":""}],"title":"Test Book","cover":"File:"}}]
2) perform the query on a wiki article and then process the result using Lua
{{#visualdataquery_: title::+ |schema=Book |?cover |?title |?authors/name |?authors/email |format=lua |module=Handle query }}
| page title | Cover | Title | authors/name | |
|---|---|---|---|---|
| Test Book | File: | Test Book | Test Author |
local p = {}
function p.main(frame)
-- local args = frame:getParent().args
local origArgs = (type(frame.getParent) == "function") and frame:getParent().args or frame
local success, json = pcall(mw.text.jsonDecode, origArgs[0])
-- do more processing here
local ret = json
return mw.text.jsonEncode(ret)
end
return p
See also
- Demo VisualData 1.0
- New task
- Page upload
- CRUD
- Result formats
- Dependent values
- Geolocation
- Queries
- Query cities (join queries)
- Dynamic catalogue
- Datatable cards
- Calendar
- Carousel
- Nested schemas
- Table mode
- Lua
- Official docs
support & questions: support at topway.it