Skip to content

MadcapJake/earl-hyperscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Earl Hyperscript

Earl Grey npm package

Converts Earl Grey's document building syntax to vtree that works with Cycle.js.

Example

Here's a rewrite in Earl Grey of the increment/decrement counter from Cycle.js's basic examples.

require:
   "@cycle/core" as cycle
   "@cycle/dom"  -> makeDOMDriver
   earl-hyperscript -> h

main = {=> DOM} ->
   chain cycle.Rx.observable:
      @merge with
         chain DOM:
            @get(".decrement") with .click
            @map: ev -> -1
         chain DOM:
            @get(".increment") with .click
            @map: ev -> +1
      @start-with: 0
      @scan: (x, y) -> x + y
      @map: count ->
         h: div %
            button.decrement % .Decrement
            button.increment % .Increment
            p % 'Counter: {count}'

cycle.run(main) with {
   DOM = makeDOMDriver("#app")
}

With the % operator macro, you can avoid using h at all:

require-macros:
  earl-hyperscript -> [%]

node =
  div %
    button.decrement % .Decrement
    button.increment % .Increment
    p % 'Counter: {count}'

License

MIT © Jake Russo et al

About

Earl Grey wrapper for Cycle.js/virtual-dom hyperscript DSL

Resources

Stars

Watchers

Forks

Packages

No packages published