0.5.1 • Published 7 years ago

rendex v0.5.1

Weekly downloads
5
License
ISC
Repository
github
Last release
7 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

7 years ago

0.5.0

8 years ago

0.4.6

8 years ago

0.4.5

8 years ago

0.4.4

8 years ago

0.4.3

8 years ago

0.4.2

8 years ago

0.4.1

8 years ago

0.4.0

8 years ago

0.3.7

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.0

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.1.0

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago