3.0.0 • Published 3 years ago

renderkid v3.0.0

Weekly downloads
7,301,559
License
MIT
Repository
github
Last release
3 years ago

RenderKid

Build Status

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

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)

screenshot of usage

Stylesheet properties

Display mode

Elements can have a display of either inline, block, or none:

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)

screenshot of usage

Margin

Margins work just like they do in browsers:

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:

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:

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:

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:

screenshot of bullet points, 1

pretty-errorcomponennenttvuedragdropuploadimagesbb-chat@l1nyanm1ng/react-picture-viewercthpb-plugin-social@infinitebrahmanuniverse/nolb-renbonny-cli-renderer@saaspe/componentssklif-ui-kitsklif-api@everything-registry/sub-chunk-2650p149-tablesklif-ui@dimcheify/dimuifastlion-picture-viewerfhir2fn-lib-exampleflowable-bpmn-modelerdirgenemily-webpackhot-zone-vueeasyplayer-my@farvater/open-pedigreehello_test_my_webpackh-logger2@itayn-fireberry-org/itayn-test@img-arena/img-ui-mui-theme@img-arena/ui-corejfs-corejesusdemo@iarani/opendatajulien-easy-modalkafirchain-tetriskikdkli@knooks/use-title@junvary/quasar-ui-qcascader@juanaraneta/dept-central-lib-client@jlallement/cookieconsent@darwishdev/dash-devp147-tablep148-table@skeetboothppq/component-librarynovacap-componentsnois-react-toastmy-library-buttonmy-webpack-number-test-demopickupbiz-npm-packageparvan_componentsparvan_reactjs_componentsnka-gantt-task-react@shivarajapple/first-library@mayuriachewad/pickupbiz-npm-packagemavectra@leiyulf/gantt-task-react@lego-js/tests@luciadias/storybook-notimationlitepie-datepicker-gabe@marinaga/bananize@marionebl/redux-cli-logger@lozzychops/dropdown-menum2m-chartjs-plugin-crosshairmd-vditormicroend-component@ngxvoice/ngx-voicelistnernewdemo1@podlubnaja/ui-kitqa_hddprimeng-custompolyglot-component-libraryprasadacmpm-gallery@udooku/react-image-comparison-sliderreact-ang-notifications-honey-comb-setup@vasosolo/multiselectcomboboxreact-otp-input-uptdwebpack_component_fundsequelcomponentap-vue-captchasf-web-componentsappcharge-checkoutappcharge-checkout-reactjs-sdksemcombackgammon_ui_sharedstock-ticker-react-widgetredux-node-loggerresponsis-gantt-task-reactreyhan-project@zhangchongzhi/webpackreact-form-component-libraryreact-misc-toolbox@vitali_shcherbina/styled-libreact-lightbox-pack-18supportreactofy-css-libraryreact-solid-gradient-pickervue-button-test1vue-compment@anonybit-modules/videoreconstructiontohsaka888-use-breakpoint
3.0.0

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.7-dev.1

3 years ago

2.0.7-dev.2

3 years ago

2.0.5

3 years ago

2.0.4

4 years ago

2.0.3

5 years ago

2.0.2

6 years ago

2.0.1

7 years ago

2.0.0

8 years ago

1.0.0

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.2.0-beta.12

9 years ago

0.2.0-beta.11

9 years ago

0.2.0-beta.10

10 years ago

0.2.0-beta.9

10 years ago

0.2.0-beta.8

10 years ago

0.2.0-beta.7

10 years ago

0.2.0-beta.6

10 years ago

0.2.0-beta.5

10 years ago

0.2.0-beta.4

10 years ago

0.2.0-beta3

10 years ago

0.2.0-beta2

10 years ago

0.2.0-beta1

10 years ago