column-layout
Pretty-print JSON data in columns.
Synopsis
Say you have some data:
[
{
"column 1": "The Kingdom of Scotland was a state in north-west Europe traditionally said to have been founded in 843, which joined with the Kingdom of England to form a unified Kingdom of Great Britain in 1707. Its territories expanded and shrank, but it came to occupy the northern third of the island of Great Britain, sharing a land border to the south with the Kingdom of England. ",
"column 2": "Operation Barbarossa (German: Unternehmen Barbarossa) was the code name for Nazi Germany's invasion of the Soviet Union during World War II, which began on 22 June 1941. Over the course of the operation, about four million soldiers of the Axis powers invaded Soviet Russia along a 2,900 kilometer front, the largest invasion force in the history of warfare. In addition to troops, the Germans employed some 600,000 motor vehicles and between 600–700,000 horses."
}
]
pipe it through column-layout
:
$ cat example/two-columns.json | column-layout
to get this:
The Kingdom of Scotland was a state in Operation Barbarossa (German: Unternehmen
north-west Europe traditionally said to Barbarossa) was the code name for Nazi
have been founded in 843, which joined Germany's invasion of the Soviet Union
with the Kingdom of England to form a during World War II, which began on 22
unified Kingdom of Great Britain in 1707. June 1941. Over the course of the
Its territories expanded and shrank, but operation, about four million soldiers of
it came to occupy the northern third of the Axis powers invaded Soviet Russia
the island of Great Britain, sharing a along a 2,900 kilometer front, the
land border to the south with the Kingdom largest invasion force in the history of
of England. warfare. In addition to troops, the
Germans employed some 600,000 motor
vehicles and between 600–700,000 horses.
Columns containing wrappable data are auto-sized by default to fit the available space. You can set specific widths using --width
$ cat example/two-columns.json | column-layout --width "column 2: 55"
The Kingdom of Scotland was a Operation Barbarossa (German: Unternehmen Barbarossa)
state in north-west Europe was the code name for Nazi Germany's invasion of the
traditionally said to have Soviet Union during World War II, which began on 22
been founded in 843, which June 1941. Over the course of the operation, about
joined with the Kingdom of four million soldiers of the Axis powers invaded
England to form a unified Soviet Russia along a 2,900 kilometer front, the
Kingdom of Great Britain in largest invasion force in the history of warfare. In
1707. Its territories addition to troops, the Germans employed some 600,000
expanded and shrank, but it motor vehicles and between 600–700,000 horses.
came to occupy the northern
third of the island of Great
Britain, sharing a land
border to the south with the
Kingdom of England.
More Examples
Read the latest npm issues:
$ curl -s https://api.github.com/repos/npm/npm/issues \
| array-tools pick number title updated_at user.login comments \
| column-layout
8738 install: Run the "install" 2015-06-27T22:19:33Z iarna
lifecycle in the toplevel module
8737 npm install (-g) (everything) 2015-06-27T22:15:52Z DerekFoulk 2
completely broken after upgrade
to 2.12.0 [Windows]
8736 node-gyp not executed on npm@3 2015-06-27T22:19:19Z piranna 2
8735 Graceful fs 4 2015-06-27T21:12:57Z isaacs
8734 npm start failed dont get why its 2015-06-27T21:12:36Z kashikhan1
happened error windows_nt
6.3.9600 error on npm start
8733 npm install error "elliptic curve 2015-06-27T21:07:15Z MF-Bra
routines"
8732 No clue what do 2015-06-27T20:05:26Z worldlynx
8731 npm does not work on IPv6 2015-06-27T17:33:10Z hobarrera
8730 Pass module version on preversion 2015-06-27T17:11:57Z zanona
and postversion scripts.
8729 problem installing cordova on 2015-06-27T14:28:35Z axtens
Windows
8728 npm error 2015-06-27T14:20:42Z hyguyz
8727 npm install error 2015-06-27T13:40:56Z wfgenius
8726 Why can't I install the npm? 2015-06-27T17:37:51Z PleasantPro 2
etc.
etc.
Install
As a library:
$ npm install column-layout --save
As a command-line tool:
$ npm install -g column-layout
API Reference
columnLayout(data, [options]) ⇒ string
⏏
Returns JSON data formatted in columns.
Kind: Exported function
Param | Type | Description |
---|
data | array | input data |
[options] | object | optional settings |
[options.viewWidth] | number | maximum width of layout |
[options.nowrap] | boolean | disable wrapping on all columns |
[options.break] | boolean | enable breaking on all columns |
[options.columns] | columnOption | array of column options |
[options.padding] | object | Padding values to set on each column. Per-column overrides can be set in the options.columns array. |
[options.padding.left] | string | |
[options.padding.right] | string | |
Example
> columnFormat = require("column-format")
> jsonData = [{
col1: "Some text you wish to read in column layout",
col2: "And some more text in column two. "
}]
> columnFormat(jsonData, { viewWidth: 30 })
' Some text you And some more \n wish to read text in \n in column column two. \n layout \n'
columnLayout.lines() ⇒ Array
Identical to column-layout with the exception of the rendered result being returned as an array of lines, rather that a single string.
Kind: static method of columnLayout
Example
> columnFormat = require("column-format")
> jsonData = [{
col1: "Some text you wish to read in column layout",
col2: "And some more text in column two. "
}]
> columnFormat.lines(jsonData, { viewWidth: 30 })
[ ' Some text you And some more ',
' wish to read text in ',
' in column column two. ',
' layout ' ]
columnLayout~columnOption
Kind: inner typedef of columnLayout
Properties
Name | Type | Description |
---|
width | number | column width |
maxWidth | number | column max width |
nowrap | boolean | disable wrapping for this column |
break | boolean | enable breaking on all columns |
padding | object | padding options |
padding.left | string | a string to pad the left of each cell (default: " " ) |
padding.right | string | a string to pad the right of each cell (default: " " ) |
© 2015 Lloyd Brookes <75pound@gmail.com>. Documented by jsdoc-to-markdown.