0.5.1 • Published 9 years ago

rendex v0.5.1

Weekly downloads
5
License
ISC
Repository
github
Last release
9 years ago

rendex

render :: Model -> renderNode -> Template -> renderBranch -> render

Usage

import Immutable from "immutable"
import {patch, elementOpen, elementClose} from "incremental-dom"
import Rendex from "rendex"

const $model = Immutable.Map({
  'root':{
    render:{
      template:'rootTmpl'
    },
    branch:[ {id: 'node1'}, {id: 'node2'} ]
  }, 
  'node1':{
    content:'Hello, ',
    render:{
      template:'nodeTmpl'
    }
  }, 
  'node2':{
    content:'World!',
    render:{
      template:'nodeTmpl'
    }
  }
});

const rootTmpl = data => {
  elementOpen('p')
    Rendex.renderBranch(data)
  elementClose('p')
}

const nodeTmpl = data => {
  elementOpen('span')
    text( data.$node.content )
  elementClose('span')
}

const $templates = { rootTmpl, nodeTmpl }

const data = {$id: 'root', $templates, $model}

const render = () => patch( document.body, Rendex.renderNode, data )

Description

###Model A set of interconnected nodes

###Node Terminal | Branch

###Terminal A node with at least one property render.
May have optional context property.

{
  context: "...", /* optional */
  render: {...}
}

###Branch A node with at least two properties render and branch
May have optional context property.

{
  context: "...", /* optional */
  render: {...},
  branch: [{...}, ...]
}

###render contextless | contextual | complex

###contextless render An object with at least one property template. May contain properties render::branch and/or options.

{
  render: {
    template: "...",
    branch:{ ...}, /* optional */
    options:{ ...}, /* optional */
  }
}

###contextual render An object with at least one property context.
context may contain one or more named contextless render objects.

{
  render: {
    context:{
      "my-context-1":{
        template: "...",
        branch: { ... }, /* optional */
        options:{ ... }  /* optional */
      },
      myContext2:{ ... }
  }
}

###complex render A combination of contextual render and contextless render

{
  render: {
    template: "...",
    branch:{ ...}, /* optional */
    options:{ ...}, /* optional */
    context:{
      "my-context-1":{
        template: "...",
        branch: { ... }, /* optional */
        options:{ ... }  /* optional */
      },
      myContext2:{ ... }
  }
}

###render::branch A fine-tuning of branch rendering.
May contain optional properties render::branch::show, render::branch::hide or render::branch::options.

{
  render: {
    template: "...",
    branch:{
      show: { ... },
      hide: { ... },
      options: { ... }
  }
}

###branch Defines parent-child relation with other nodes.

{
  branch: [
    {
      id: "...",
      options: { ... }, /* optional */
      context: "..."    /* optional */
    },
    {
      id: "..."
    }
  ]
}

###Template

const myTemplate = ({$id, $node, $context, $options, $model, $templates, $index}){
  ...
  Rendex.renderBranch({$id, $node, $context, $options, $model, $templates})
  ...
  Rendex.renderSection({$id, $node, $context, $options, $model, $templates}, start, end )
  ...
}
0.5.1

9 years ago

0.5.0

9 years ago

0.4.6

9 years ago

0.4.5

9 years ago

0.4.4

9 years ago

0.4.3

9 years ago

0.4.2

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.7

9 years ago

0.3.6

10 years ago

0.3.5

10 years ago

0.3.4

10 years ago

0.3.3

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.1.0

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago