kvitable-1.0.0.0: Key/Value Indexed Table container and formatting library
Safe HaskellNone
LanguageHaskell2010

Data.KVITable.Render

Description

Common definitions (and support functions) for rendering a KVITable.

Synopsis

Documentation

data RenderConfig Source #

The RenderConfig specifies the various controls and configurations used when rendering a KVITable in various formats. The RenderConfig is global t oall formats, although some of the fields in the RenderConfig will be ignored as not-applicable by some formats.

Constructors

RenderConfig 

Fields

  • hideBlankRows :: Bool

    True (default) removes rows for which there are no values

  • hideBlankCols :: Bool

    True (default) removes columns for which there are no values

  • equisizedCols :: Bool

    True (default) to maintain a consistent column width, otherwise the columns are shunk to the minimum size needed to display the title and values. Not applicable for some backends (e.g. HTML) where the backend provides table rendering functionality.

  • sortKeyVals :: Bool

    True (default is False) to sort the KeyVal entries when rendering a table.

  • colStackAt :: Maybe Key

    Column key to begin stacking keys in columns and sub-columns rather than creating additional sub-rows.

  • rowRepeat :: Bool

    True (default) if an identical KeyVal is to be repeated in subsequent applicable rows.

  • rowGroup :: [Key]

    List of Key names that should by grouped by inserting horizontal row lines between KeyVals

  • caption :: Maybe Text

    Caption to render for table for backends which support captions; otherwise ignored.

defaultRenderConfig :: RenderConfig Source #

Returns the default rendering configuration, to be used with a format-specific render call.

sortWithNums :: [KeyVal] -> [KeyVal] Source #

Sorting for KeyVals. If the value starts or ends with a digit, then this should do a rough numeric sort on the expectation that the digits represent a version or some other numeric value. As an approximation of a numeric sort, sort by word size and then string value. This will result in [ "1", "2", "10", "50", "400" ], but would fail with [ "v1.0", "v2.0", "v3.0", "v2.0.5", "v1.0.0.3" ], but it's a reasonably fast heuristic and probably better than a straight ascii sort.

This function is used by the KVITable rendering functions.