@hackage wumpus-basic0.13.0

Common drawing utilities built on wumpus-core.

** WARNING ** - this package is sub-alpha, it was released to Hackage prematurely and while its capabilities have improved with subsequent updates it is arguably becoming even less stable and more experimental (unfortunately the only thing consistent about the API is that it consistently changes...).

Version 0.13.0 significantly differs form the previous release as font metrics support has been added and the core graphic types have been redesigned. With these re-workings some modules that were previously fairly stable have changed substantially or are likely to change soon (Basic.PictureLanguage has become Basic.DrawingComposition; Basic.SafeFonts no longer seems very SVG safe so it is marked as pending change).

NOTE - many of the demos now use font metrics. Font metrics for the "Core 14" PostScript fonts are distributed as *.afm files with GhostScript in the fonts directory. Wumpus expects the GhostScript font metrics to be AFM version 2.0 files (this matches GhostScript 8.63). Alternatively, metrics for the Core 14 fonts are available from Adode (AFM version 4.1), see the links below. To run the demos properly you will need one of these sets of metrics.

Adobe Font techinal notes: https://www.adobe.com/devnet/font.html

Core 14 AFM metrics: https://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/Core14_AFMs.tar

WARNING - the font metrics parsing in version 0.13.0 is essentially a proof-of-concept and is not very robust. Generally, if a font cannot be parsed, fallback metrics will be used. At the moment there no error logging, so there is little indication of whether Wumpus has used the correct metrics or the fallback for a requested font.

Changelog:

  1. 12.0 to 0.13.0:

  • Major changes to Basic.Graphic modules. DrawingR is renamed Drawing and is substantially re-worked. Graphic functional types are now encapulated in the Drawing constructor Drawing (ctx -> pt -> prim) rather than partially outside it pt -> Drawing (ctx -> prim). Drawing monad renamed TraceDrawing and DrawingT transformer renamed TraceDrawingT.

  • Rudimentary font loading added, only AFM files are supported.

  • Basic.Shapes.Coordinate re-worked. The Coordinate type is now more like the Shapes types (excepting the intentional difference in drawing style).

  • Basic.Shapes.Plaintext removed.

  • Basic.Text.LRText completely redesigned.