Skip to content
This repository has been archived by the owner on Dec 5, 2019. It is now read-only.

dominictarr/render

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Render#

4 styles

  • comma first: .cf
  • comma trailing : .ct
  • comma fist bracket newline: .cfbn
  • comma trailing bracket newline: .ctbn

3 handy modes

  • return string render.[cf|ct|cfbn|ctbn]
  • log to console render.log.[cf|ct|cfbn|ctbn]
  • return json render.json.[cf|ct|cfbn|ctbn]

#Layout Styles#

this object:

var renderme = 
    { key1: value
    , key2: value
    , child: 
      { key1: value
      , key2: value } }

import render:

var render = require('render')

##indented, comma-first, object-newline

render.ct(renderme)

// render(renderme,{joiner:"\n, ", indent: '  ', padMulti: ['\n','']})

{ key1: 1
, key2: 2
, child: 
  { key1: 3
  , key2: 4 } }

##indented, comma-first, bracket-newline, cl-bracket-newline

render.cfbn(renderme)

// render(renderme,{joiner:"\n, ", indent: '  ', padJoin: ['\n  ','\n']}

{
  key1: 1
, key2: 2
, child: {
    key1: 3
  , key2: 4
  }
}

##indented, comma-trailing, object-newline

render.ct(renderme)

// render(renderme,{joiner:",\n  ", indent: '  ', padJoin: ['\n  ','\n']}

{ key1: value,
  key2: value,
  child: 
  { key1: value,
    key2: value } }

##indented, comma-trailing, bracket-ownline, cl-bracket-newline

render.ctbn(renderme)

// render(renderme,{joiner:",\n  ", indent: '  ', padJoin: ['\n  ','\n']}

{
  key1: 1,
  key2: 2,
  child: {
    key1: 3,
    key2: 4
  }
}

#Heavy Duty Object -> ASCII

render(object,options)

options is a {} of functions which define how a particular type is stringified.

(see render.js and test/*.js for examples)

these functions are:

value // display a primitive value
key // display a key (on an object, but not an array)
join // join a list object key->value strings into one string (default joins with ','s
surround // puts the brackets on {} or [] 
referenced // when a object is repeated later (default: varX={...})
reference // when a object is a repeat (varX

string // stringify string (useful if you want to handle multi line strings a special way

#Renderer function args#

function(value, traverserProperties, default)

value is the item to be renderer, traverserProperties if information about current place in the tree/graph (see https://github.com/dominictarr/traverser) default is the default rendering function for this item.

#Layout Control#

also, padding around certain items can be changed by setting the following values of options:

indent: '' //indentation applied to each line after the first when something renders to a string with multiple lines.
, joiner: ', ' // string to join arrays and objects
, pad: '' 
, padKey: ' ' //padding after the ':'
, padSingle: ['', ''] //padding around a single value
, padJoin: [' ', ' '] //padding around a join (but inside the brackets)
, padMulti: ['', ''] //padding around an object or Array when it goes over multiple lines
, padRoot: ['', ''] //padding around the root object (only applied if it's multi lined)

examples, by adjusting these settings you can display an object in many different styles:

License

MIT

About

js object -> text rendering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •