Skip to content

Latest commit

 

History

History
301 lines (193 loc) · 7.83 KB

CHANGELOG.md

File metadata and controls

301 lines (193 loc) · 7.83 KB

Changelog

pandoc-lua-marshal uses PVP Versioning.

0.2.9

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.

0.2.8

Released 2024-09-21.

  • Update list module, thereby introducing a new method at and an extended constructor for List types.

0.2.7.1

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.

0.2.7

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

0.2.6

Released 2024-03-29.

  • Fixed a bug that caused problems with empty Block lists in the content attributes of Div, Figure, and BlockQuote elements.

0.2.5

Released 2024-03-04.

  • The clone method on Blocks and Inlines elements now creates deep copies of the lists.

0.2.4

Released 2024-01-19.

  • Relaxed upper bound for aeson, allowing aeson-2.2.*.

0.2.3

Released 2024-01-19.

  • Relaxed upper bound for text, containers, and bytestring, allowing text-2.1, containers-0.7, and bytestring-0.12.

0.2.2

Released 2023-03-15.

  • Add __tostring metamethods to Blocks and Inlines.

0.2.1.1

Released 2023-03-13.

  • The version constraints for hslua packages have been relaxed; other changes in hslua 2.3.* do not affect this package.

0.2.1

Released 2023-02-11.

  • All userdata types have been given a __tojson metamethod. The methods return the default JSON representations of AST objects.

0.2.0

Released 2023-01-18.

  • Depend on pandoc-types 1.23: the Null Block constructor has been removed, and a Figure 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 separate hslua-list module. This module no longer contains C code.

0.1.7

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.

0.1.6.1

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.

0.1.6

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.

0.1.5.1

Released 2022-02-19.

  • Relax upper bound for lua and hslua.

0.1.5

Released 2022-02-17.

  • Allow any type of callable object as argument to List functions filter, map, and find_if. These previously required the argument to be of type function, which was too restrictive.

  • Inline: the type of Image captions is now Inlines instead of List.

0.1.4

Released 2022-01-29.

  • Export AttributeList type and marshaling functions from Text.Pandoc.Marshal.Attr, namely typeAttributeList, peekAttributeList, and pushAttributeList.

  • Update to hslua 2.1, making use of the new utility functions.

0.1.3.1

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.

0.1.3

Released 2021-12-23.

Lua changes

  • 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 and List:find_if are negative the start index is relative to the list length.

  • TableFoot, TableHead, and Row values are marshaled as userdata objects.

Haskell code

  • Text.Pandoc.Lua.Marshal.Filter exports the new type WalkingOrder. The type Filter 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.

0.1.2

Released 2021-12-10.

  • Restored backward compatible retrieval of Rows. Cells can be either a userdata value or a table.

0.1.1

Released 2021-12-10.

Behavior of Lua objects

  • 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, and Pandoc now all have a method walk 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.

Haskell code

  • Module Text.Pandoc.Lua.Marshal.Cell exports the constructor function mkCell, the type definition typeCell and the fuzzy peeker peekCellFuzzy.

  • 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 the Blocks 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 the Inlines 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.

0.1.0.1

Released 2021-11-28.

  • Added test-simpletable.lua to the list of extra-source-files.

0.1.0

Released 2021-11-28.

  • Released into the wild. May it live long and prosper.