pandoc-lua-marshal
uses PVP Versioning.
Released 2024-10-01.
-
Update list module, thereby introducing a new method
iter
; the function returns an iterator that steps through list values on each call. -
Added support for
__toinline
and__toblock
metamethods. If the metamethods are available on a Lua object and return an appropriate value, then that returned value will be used during unmarshalling.
Released 2024-09-21.
- Update list module, thereby introducing a new method
at
and an extended constructor for List types.
Released 2024-07-02.
-
Relaxed the upper bound of tasty-quickcheck, used in tests. Now allows version 0.11.
-
Update documentation on constructors; the descriptions now match those in the pandoc docs.
Released 2024-05-06.
-
Let the behavior of
content
attributes on BulletList and OrderedList elements match that of the constructor by treating a list of Block elements as a list of single-block items. The following assertion now holds true:local content = {pandoc.Plain "one", pandoc.Plain "two"} local bl = pandoc.BulletList{} bl.content = content assert(bl == pandoc.BulletList(content))
Released 2024-03-29.
- Fixed a bug that caused problems with empty Block lists in
the
content
attributes of Div, Figure, and BlockQuote elements.
Released 2024-03-04.
- The
clone
method on Blocks and Inlines elements now creates deep copies of the lists.
Released 2024-01-19.
- Relaxed upper bound for aeson, allowing aeson-2.2.*.
Released 2024-01-19.
- Relaxed upper bound for text, containers, and bytestring, allowing text-2.1, containers-0.7, and bytestring-0.12.
Released 2023-03-15.
- Add
__tostring
metamethods to Blocks and Inlines.
Released 2023-03-13.
- The version constraints for hslua packages have been relaxed; other changes in hslua 2.3.* do not affect this package.
Released 2023-02-11.
- All userdata types have been given a
__tojson
metamethod. The methods return the default JSON representations of AST objects.
Released 2023-01-18.
-
Depend on pandoc-types 1.23: the
Null
Block constructor has been removed, and aFigure
constructor has been added. -
Support for Lua 5.3 has been dropped; the package now requires hslua 2.2 or later.
-
The implementation for
List
has been moved to the separatehslua-list
module. This module no longer contains C code.
Released 2022-07-16.
-
Allow Blocks to be passed as Caption value. The resulting caption has the Blocks as its long version and no short version.
-
Add
clone
method to Pandoc elements.
Released 2022-06-10.
-
Provide better error messages when fuzzy retrieval of Inlines or Blocks fails.
-
Relax upper bound for text, allow text-2.0.
Released 2022-06-03.
-
Fix
applyFully
: the function always traversed the document type-wise, never topdown. -
Avoid shadowing of a function name that was added in hslua-2.2.
-
Support concatenating of Pandoc values with the
..
operator.
Released 2022-02-19.
- Relax upper bound for lua and hslua.
Released 2022-02-17.
-
Allow any type of callable object as argument to List functions
filter
,map
, andfind_if
. These previously required the argument to be of typefunction
, which was too restrictive. -
Inline: the type of Image captions is now
Inlines
instead ofList
.
Released 2022-01-29.
-
Export AttributeList type and marshaling functions from
Text.Pandoc.Marshal.Attr
, namelytypeAttributeList
,peekAttributeList
, andpushAttributeList
. -
Update to hslua 2.1, making use of the new utility functions.
Released 2022-01-14.
- Fixed a bug in
List.include
that was causing the Lua stack to overflow when the function was applied to long lists.
Released 2021-12-23.
-
The traversal order of filters can now be selected by setting the key
traverse
to either'topdown'
or'typewise'
; the default remains'typewise'
.Topdown traversals can be cut short by returning
false
as a second value from the filter function. No child-element of the returned element is processed in that case. -
All types can be compared. Previously, comparing values of different types would lead to errors in a number of cases.
-
Lists now have an
__eq
metamethod. List equality is checked by comparing both lists element-wise. Two lists are equal if they have the same type and have equal elements. -
If start indices in
List:find
andList:find_if
are negative the start index is relative to the list length. -
TableFoot, TableHead, and Row values are marshaled as userdata objects.
-
Text.Pandoc.Lua.Marshal.Filter exports the new type
WalkingOrder
. The typeFilter
now contains the the traversal specifier as a field. -
New modules for TableFoot, TableHead, and Row, defining the usual marshaling methods and constructor functions for these types.
Released 2021-12-10.
- Restored backward compatible retrieval of Rows. Cells can be either a userdata value or a table.
Released 2021-12-10.
-
Lists of Inline values and lists of Block values are now pushed with their own metatables (named "Inlines" and "Blocks").
-
The types
Block
,Blocks
,Inline
,Inlines
, andPandoc
now all have a methodwalk
that applies a filter to the document subtree. -
Changed behavior for Cell values: these are now pushed as userdata; the old table-based structure is still accepted when retrieving a Cell from the stack.
-
Module Text.Pandoc.Lua.Marshal.Cell exports the constructor function
mkCell
, the type definitiontypeCell
and the fuzzy peekerpeekCellFuzzy
. -
Added a new module
Text.Pandoc.Lua.Marshal.Filter
that handles Lua filters. -
Added functions for filtering:
-
Module Text.Pandoc.Lua.Marshal.Block:
walkBlockSplicing
: walk an AST element, applying a filter on each Block and splicing the result back into the list.walkBlocks
: walk an AST element, modifying lists of Block elements by applying theBlocks
filter function.
-
Module Text.Pandoc.Lua.Marshal.Inline:
walkInlineSplicing
: walk an AST element, applying a filter on each Inline and splicing the result back into the list.walkInlines
: walk an AST element, modifying lists of Inline elements by applying theInlines
filter function.
-
Module Text.Pandoc.Lua.Marshal.Pandoc:
applyFully
: fully apply a filter on a Pandoc document.
-
-
New internal modules:
-
Text.Pandoc.Lua.SpliceList: defines a helper type used to walk a list of elements in a way that replaces the element by splicing the function result back into the list.
The module is a slight rewrite of pandoc’s
SingletonsList
. -
Text.Pandoc.Lua.Walk: handles walking of the document tree while modifying elements via filter functions. This is a re-implementation of large parts of pandoc’s T.P.Lua.Filter module.
-
Text.Pandoc.Lua.Marshal.Shared: provides helper functions used in multiple Lua type definitions.
-
Released 2021-11-28.
- Added test-simpletable.lua to the list of extra-source-files.
Released 2021-11-28.
- Released into the wild. May it live long and prosper.