lua-filters.md: add documentation for pandoc.List

This commit is contained in:
Albert Krewinkel 2017-12-01 17:14:28 +01:00
parent 8473a151c5
commit 5026dfaedf
No known key found for this signature in database
GPG key ID: 388DC0B21F631124
2 changed files with 128 additions and 10 deletions

View file

@ -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.

View file

@ -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