|
|
# RenderKid
[](http://travis-ci.org/AriaMinaei/RenderKid)
RenderKid allows you to use HTML and CSS to style your CLI output, making it easy to create a beautiful, readable, and consistent look for your nodejs tool.
## Installation
Install with npm: ``` $ npm install renderkid ```
## Usage
```coffeescript RenderKid = require('renderkid')
r = new RenderKid()
r.style({ "ul": { display: "block" margin: "2 0 2" }
"li": { display: "block" marginBottom: "1" }
"key": { color: "grey" marginRight: "1" }
"value": { color: "bright-white" } })
output = r.render(" <ul> <li> <key>Name:</key> <value>RenderKid</value> </li> <li> <key>Version:</key> <value>0.2</value> </li> <li> <key>Last Update:</key> <value>Jan 2015</value> </li> </ul> ")
console.log(output) ```

## Stylesheet properties
### Display mode
Elements can have a `display` of either `inline`, `block`, or `none`: ```coffeescript r.style({ "div": { display: "block" }
"span": { display: "inline" # default }
"hidden": { display: "none" } })
output = r.render(" <div>This will fill one or more rows.</div> <span>These</span> <span>will</span> <span>be</span> in the same <span>line.</span> <hidden>This won't be displayed.</hidden> ")
console.log(output) ```

### Margin
Margins work just like they do in browsers: ```coffeescript r.style({ "li": { display: "block"
marginTop: "1" marginRight: "2" marginBottom: "3" marginLeft: "4"
# or the shorthand version: "margin": "1 2 3 4" },
"highlight": { display: "inline" marginLeft: "2" marginRight: "2" } })
r.render(" <ul> <li>Item <highlgiht>1</highlight></li> <li>Item <highlgiht>2</highlight></li> <li>Item <highlgiht>3</highlight></li> </ul> ") ```
### Padding
See margins above. Paddings work the same way, only inward.
### Width and Height
Block elements can have explicit width and height: ```coffeescript r.style({ "box": { display: "block" "width": "4" "height": "2" } })
r.render("<box>This is a box and some of its text will be truncated.</box>") ```
### Colors
You can set a custom color and background color for each element:
```coffeescript r.style({ "error": { color: "black" background: "red" } }) ```
List of colors currently supported are `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`, `grey`, `bright-red`, `bright-green`, `bright-yellow`, `bright-blue`, `bright-magenta`, `bright-cyan`, `bright-white`.
### Bullet points
Block elements can have bullet points on their margins. Let's start with an example: ```coffeescript r.style({ "li": { # To add bullet points to an element, first you # should make some room for the bullet point by # giving your element some margin to the left: marginLeft: "4",
# Now we can add a bullet point to our margin: bullet: '"-"' } })
# The four hyphens are there for visual reference
r.render(" ---- <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> ---- ") ``` And here is the result:

|