Module:DPLlua/doc
This is the documentation page for Module:DPLlua
Uses Module:DPLlua/Helper to make it possible to include all parameters of a template while maintaining good performance.
This module is a helper module to be used by other modules; it may not be designed to be invoked directly. See Near-Reality:Lua/Helper modules for a full list and more information.
| Module | Function | Type | Use | 
|---|---|---|---|
| DPLlua | ask( ... ) | tables | asktakes a series of tables each containing the settings for a DPL query; it will return the same number of result tables as input tables. All formatting settings are stripped from the config. If the config does not containsinclude, the result will be a simple list of page names.{
	<pagename#1>,
	<pagename#2>,
	<pagename#3>,
}
A query with an  {
	['include'] = {
		['template#1'] = {
			[1] = val#1,
			[2] = val#2,
			['param1'] = val#3,
			['param2'] = val#4,
		},
		['template#2'] = {
			[3] = val#5,
			['param1'] = val#6,
		},
		['%0'] = val#7
	},
	['title'] = <pagename>
}
You can also do  If the config value  The output contains a  If the DPL throws an error it will be available in the  Differences with normal DPL: 
 |notcategory = val#1 |notcategory = val#2Note of warning, if you include content containing §symbols the result may be unreliable. If you include a whole template (e.g.include = '{some template}'), content inside strip markers (not nowiki) can't be cleaned up inside lua so pipe characters (|) will be replaced with§characters and the{and}characters are replaced by❴(U+2774) and❵(U+2775). Useinclude = '{some template}, {some template}:1:2:3'instead for the problem parameters. | 
Example:
local dpl = require( 'Module:DPLlua' )
local a, b = dpl.ask( {
		namespace = '',
		linksto = 'Treasure trails',
		distinct = 'strict',
		ordermethod = 'title',
		count = 5,
		ignorecase = true
	},{
		namespace = '',
		uses = 'Template:Recipe',
		count = 1,
		include = '{Recipe},{Infobox Item}',
		ignorecase = true
	} )
mw.logObject(a)
mw.logObject(b)
--[=[
table#1 {
  "(beginner)",
  "(easy)",
  "(elite)",
  "(g)",
  "(hard)",
  ["time"] = 0.0541,
}
table#1 {
  table#2 {
    ["include"] = table#3 {
      ["Infobox Item"] = table#4 {
        ["destroy"] = "Drop",
        ["equipable"] = "No",
        ["examine"] = "It's a bar of 'perfect' gold.",
        ["id"] = "2365",
        ["image"] = "[[File:'perfect' gold bar.png]]",
        ["members"] = "Yes",
        ["name"] = "'perfect' gold bar",
        ["noteable"] = "No",
        ["placeholder"] = "Yes",
        ["quest"] = "[[Family Crest]]",
        ["release"] = "[[9 April]] [[2002]]",
        ["stackable"] = "No",
        ["tradeable"] = "No",
        ["update"] = "New members quest online!",
        ["value"] = "300",
        ["weight"] = "1.814",
      },
      ["Recipe"] = table#5 {
        ["facilities"] = "Furnace",
        ["mat1"] = "'perfect' gold ore",
        ["mat1cost"] = "No",
        ["members"] = "Yes",
        ["notes"] = "Partial completion of [[Family Crest]]",
        ["outputcost"] = "No",
        ["outputname"] = "'perfect' gold bar",
        ["skill1"] = "Smithing",
        ["skill1exp"] = "22.5",
        ["skill1lvl"] = "40",
        ["ticks"] = "4",
      },
    },
    ["title"] = "'perfect' gold bar",
  },
  ["time"] = 0.0541,
}
]=]