Changelog of @hackage/knit-haskell 0.8.0.0

v0.8.0.0

  • BREAKING: moved config arguments to knit-html and knit-htmls into a data structure KnitConfig. This breaks all existing uses of those functions but is designed to future-proof against additions to the knit configuration. A breaking change was more-or-less necessitated by the addition of a cache directory parameter for the persistent caching effect. See below.

  • New persistent caching effect. Anything which has an instance of Serialize (from the cereal package) may be cached, in memory and backed by a disk-based cache (cache effect will attempt to create directories as required). When knit-html(s) is next run, the cached version can be used in place of running an expensive computation. This comes with some built-in dependency management, via modification times of the files in cache or user-provided time for dependencies on non-cached assets. For more information, see the Readme. For an example, see examples/CacheExample.hs.

  • Added Async into knit-haskell effects. For an example, see examples/AsyncExample.hs.

  • Logging changes:

  1. Added a Debug Int level below Diagnostic with an integer argument to allow various and unlimited debug levels
  2. Changed the previous [LogSeverity] argument given to run functions to (LogSeverity -> Bool) to accomdate the non-Boundedness of the new Debug Int levels.
  3. Made logging thread-aware by making prefixes thread-local
    and doing IO output of logs via the Say library
  4. Added type synonyms PrefixedLogEffects and PrefixedLogEffectsLE for type-level-lists of logging effects
  • Added functions to handle the failure branch of Maybe and Either Text as errors.
  • Added knitMapError to absorb other types of errors.
  • Updated some dependency bounds (NB: tests now depend on random-fu >= 2.7.3 since previous versions had bad log-domain bounds)
  • Updated for Pandoc >= 2.8. String to Text and template handling changes. All conditional (via CPP) so should work with < 2.8 as well.

v0.7.0.0

  • Updated vega versions in pandoc templates
  • removed (internal) datadir function because we now use the function from the autogenerated Paths_knit-haskell module. Which has its own complications but the other version didn't work at all.
  • Added more constraints to Knit.Report.KnitEffects to simplify things.
    If you use them to constrain a function to procuce something that can be knitted you will have all the knit effects available.
  • Where possible changed package bounds to >= A.B.C && < D.E. Most were already and some were easy to change. There are some lower bounds that are more specific and I won't generalize those unless I test them.
  • Changed bounds for hvega, polysemy and polysemy-zoo. Downstream changes to account for this.
  • SimpleExample now uses default template so that it also serves as a test that default templates are found.

v 0.6.0.1 - (Released 2019-06-21)

  • Moved the Pandoc default templates so they will be installed where Pandoc expects them. This is hard to test!

v 0.6.0.0 - (Released: 2019-06-19)

  • updated to use polysemy-zoo version of constraint absorbers in PandocMonad.
  • Hackage download should now include templates and associated css
  • Added mkPandocWriterConfig and addCss function in Knit.Report.Output to handle loading things in the included directory, which may be installed in a platform independent way.
  • Added two more html templates, pandoc-bootstrap-KH.html and pandoc-adaptive-bootstrap-KH.html with pandoc-bootstrap.css and used them in some of the examples.
  • Added the default html templates into the pandoc-templates directory where Pandoc will expect them if the given template fails.
  • Reorganized data directory with "pandoc-data" "knit-haskell-templates" and "knit-haskell-css"
  • Added output helpers for Pandoc results which are lazy text (html). These create the required parent directories if necessary. See examples for details.
  • Removed Knit.Effect.RandomFu and modified the example which uses it to use the "polysemy-RandomFu" package instead.

v 0.5.0.0

  • Added plots example back since there is a version of plots on hackage with a relaxed upper bound on containers.
  • Changed the Doc effect so that instead of Text name, it carries a polymorphic info type.
    This is then specified in the Pandoc case to be a Text name and set of template var overrides. This creates several other changes and will break any multi-doc examples since now "newPandoc" takes a first argument of the type PandocInfo (which is just a product of a Text and a Map String String).
  • raised lower bound and relaxed upper bound on polysemy

v 0.4.0.0

  • Added
    absorbPandocMonad :: PandocEffects r => (forall m. PandocMonad m => m a) -> Sem r a to Knit.Effect.PandocMonad
  • Removed (orphan) instances: PandocMonad (Sem r) and MonadError PandocError (Sem r) in favor of using absorbPandocMonad when required.
  • Deprecated name "Random" in favor of "RandomFu" for clarity and eventual consistency with Polysemy
  • Added absorbMonadRandom :: Member RandomFu r => (forall m. MonadRandom m => m a) -> Sem r a to allow some interoperation with actions constrained by MonadRandom
  • Removed orphan Random.MonadRandom instance from Knit.Effect.RandomFu because orphan instances are bad.
  • Changed return type of Knit.Report.knitError to Sem r a (from Sem r ())
  • Bumped lower bound on polysemy-plugin (because of a buggy version)
  • Bumped lower bound on polysemy
  • Removed plots example in "SimpleExample" and added a diagrams one.
    Will add plots back once a version issue with containers is resolved.

v 0.3.0.1

  • Examples were "executables" and are now "tests" so that depending on knit-haskell does not pull in the dependencies of the examples.

v 0.3.0.0

  • Added exports of "Colonnade" and "Text.Blaze.Colonnade" to "Knit.Report.Input.Table.Colonnade"
  • Added "knitError" function to Knit.Report to allow user throwing of errors.
    These will become PandocSomeError and handled as a PandocError.
  • Lowered bound on containers (to 0.5.0) to accomodate use of Plots.
  • Added Knit.Report.Input.Visualization.Diagrams.
    Adds Diagrams from diagrams-lib via SVG backend.
  • Added some more re-exports (Colonnade, Diagrams.Prelude) from Knit.Report to simplify imports on use.
  • Added an optional figure caption argument to Hvega and Diagrams inputs. (this is a breaking change since it requires another argument).
  • Added a state effect wrapper to facilitate getting unused ids for figures, etc.
  • Changed id argument for Hvega and Diagrams visualizations to "Maybe Text" from Text.
    Will use built-in facilities for unique ids when set to Nothing.
  • Visualization "addXXX" functions now return the figure id (as "Sem r Text") so it can be referred to elsewhere.
  • Added KnitOne and KnitMany constraint-type-aliases to Knit.Report to simplify constraining doc producing functions.
  • Updated examples. Added a diagrams example to SimpleExample and fixed id and caption arguments throughout.
  • Bumped upper bounds (network)

v 0.2.0.0

  • Documentation Fixes
  • Added export of newPandoc and NamedDoc to Knit.Report to facilitate multi-doc use.
  • Removed redundant imports from Knit.Report.Input.Table.Colonnade
  • Added a multi-doc example
  • (internal) Removed odd, and no longer necessary, "LastMember" constraint from knit functions.
  • Updated effects for polysemy 1.2

v 0.1.0.0

  • Initial version