lua-filters.md: add documentation for pandoc.List
This commit is contained in:
parent
8473a151c5
commit
5026dfaedf
2 changed files with 128 additions and 10 deletions
|
@ -1479,3 +1479,106 @@ storage. The "media bag" is used when pandoc is called with the
|
|||
|
||||
local diagram_url = "https://pandoc.org/diagram.jpg"
|
||||
local contents = pandoc.mediabag.fetch(diagram_url, ".")
|
||||
|
||||
# Module pandoc.List
|
||||
|
||||
Pandoc\'s List type and helper methods
|
||||
|
||||
## Metamethods
|
||||
|
||||
[`pandoc.List:__concat (list)`]{#pandoc.List:__concat}
|
||||
|
||||
: Concatenates two lists.
|
||||
|
||||
Parameters:
|
||||
|
||||
`list`:
|
||||
: second list concatenated to the first
|
||||
|
||||
Returns: a new list containing all elements from list1 and
|
||||
list2
|
||||
|
||||
## Methods
|
||||
|
||||
[`pandoc.List:clone ()`]{#pandoc.List:clone}
|
||||
|
||||
: Returns a (shallow) copy of the list.
|
||||
|
||||
[`pandoc.List:includes (needle, init)`]{#pandoc.List:includes}
|
||||
|
||||
: Checks if the list has an item equal to the given needle.
|
||||
|
||||
Parameters:
|
||||
|
||||
`needle`:
|
||||
: item to search for
|
||||
|
||||
`init`:
|
||||
: index at which the search is started
|
||||
|
||||
Returns: true if a list item is equal to the needle, false
|
||||
otherwise
|
||||
|
||||
[`pandoc.List:find (needle, init)`]{#pandoc.List:find}
|
||||
|
||||
: Returns the value and index of the first occurrence of the
|
||||
given item.
|
||||
|
||||
Parameters:
|
||||
|
||||
`needle`:
|
||||
: item to search for
|
||||
|
||||
`init`:
|
||||
: index at which the search is started
|
||||
|
||||
Returns: first item equal to the needle, or nil if no such
|
||||
item exists.
|
||||
|
||||
[`pandoc.List:find_if (pred, init)`]{#pandoc.List:find_if}
|
||||
|
||||
: Returns the value and index of the first element for which
|
||||
the predicate holds true.
|
||||
|
||||
Parameters:
|
||||
|
||||
`pred`:
|
||||
: the predicate function
|
||||
|
||||
`init`:
|
||||
: index at which the search is started
|
||||
|
||||
Returns: first item for which \`test\` succeeds, or nil if
|
||||
no such item exists.
|
||||
|
||||
[`pandoc.List:extend (list)`]{#pandoc.List:extend}
|
||||
|
||||
: Adds the given list to the end of this list.
|
||||
|
||||
Parameters:
|
||||
|
||||
`list`:
|
||||
: list to appended
|
||||
|
||||
[`pandoc.List:map (fn)`]{#pandoc.List:map}
|
||||
|
||||
: Returns a copy of the current list by applying the given
|
||||
function to all elements.
|
||||
|
||||
Parameters:
|
||||
|
||||
`fn`:
|
||||
: function which is applied to all list items.
|
||||
|
||||
[`pandoc.List:filter (pred)`]{#pandoc.List:filter}
|
||||
|
||||
: Returns a new list containing all items satisfying a given
|
||||
condition.
|
||||
|
||||
Parameters:
|
||||
|
||||
`pred`:
|
||||
: condition items must satisfy.
|
||||
|
||||
Returns: a new list containing all items for which \`test\`
|
||||
was true.
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
local in_module_section = false
|
||||
|
||||
function pandoc_module_blocks()
|
||||
local tmp_folder = os.tmpname()
|
||||
os.remove(tmp_folder)
|
||||
os.execute("mkdir -p " .. tmp_folder)
|
||||
os.execute("ldoc -q -l tools -d " .. tmp_folder .. " data/pandoc.lua")
|
||||
local module_file = io.open(tmp_folder .. "/index.html")
|
||||
local module_html = module_file:read("*a")
|
||||
local module_doc = pandoc.read(module_html, "html")
|
||||
return module_doc.blocks
|
||||
-- Generate tmp folder
|
||||
local tmp_folder = os.tmpname()
|
||||
os.remove(tmp_folder)
|
||||
os.execute("mkdir -p " .. tmp_folder)
|
||||
|
||||
function extend(list1, list2)
|
||||
for i = 1, #list2 do
|
||||
list1[#list1 + 1] = list2[i]
|
||||
end
|
||||
end
|
||||
|
||||
function module_blocks(module_filenames)
|
||||
local blocks = {}
|
||||
for _, filename in pairs(module_filenames) do
|
||||
os.execute("ldoc -q -l tools -d " .. tmp_folder .. " " .. filename)
|
||||
local module_file = io.open(tmp_folder .. "/index.html")
|
||||
local module_html = module_file:read("*a")
|
||||
local module_doc = pandoc.read(module_html, "html")
|
||||
extend(blocks, module_doc.blocks)
|
||||
end
|
||||
return blocks
|
||||
end
|
||||
|
||||
function Header (el)
|
||||
|
@ -21,7 +33,10 @@ function Header (el)
|
|||
end
|
||||
elseif el.identifier == "module-pandoc" then
|
||||
in_module_section = true
|
||||
return pandoc_module_blocks()
|
||||
return module_blocks{'data/pandoc.lua'}
|
||||
elseif el.identifier == "module-pandoc.list" then
|
||||
in_module_section = true
|
||||
return module_blocks{'data/List.lua'}
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue