kvitable-1.0.3.0: Key/Value Indexed Table container and formatting library

Safe Haskell | Safe-Inferred
Language | Haskell2010

Data.KVITable.Render

Description

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

Synopsis

- data RenderConfig = RenderConfig {
  - hideBlankRows :: Bool
  - hideBlankCols :: Bool
  - equisizedCols :: Bool
  - sortKeyVals :: Bool
  - colStackAt :: Maybe Key
  - rowRepeat :: Bool
  - rowGroup :: [Key]
  - caption :: Maybe Text
  }
- defaultRenderConfig :: RenderConfig
- sortWithNums :: [KeyVal] -> [KeyVal]

# 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.