Merge branch 'master' of github.com:pragmagic/karax
This commit is contained in:
commit
9396b3e69d
14 changed files with 22 additions and 20 deletions
|
|
@ -10,17 +10,17 @@ and some extensions that allow for an efficient component system.
|
|||
These extensions are:
|
||||
|
||||
``VNodeKind.int``
|
||||
The node havs a single integer field.
|
||||
The node has a single integer field.
|
||||
|
||||
``VNodeKind.bool``
|
||||
The node has a single boolean field.
|
||||
|
||||
``VNodeKint.vthunk``
|
||||
``VNodeKind.vthunk``
|
||||
The node is a `virtual thunk`:idx:. This means there is a
|
||||
function attached to it that produces the ``VNode`` structure
|
||||
on demand.
|
||||
|
||||
``VNodeKint.dthunk``
|
||||
``VNodeKind.dthunk``
|
||||
The node is a `DOM thunk`:idx:. This means there is a
|
||||
function attached to it that produces the ``Node`` DOM structure
|
||||
on demand.
|
||||
|
|
@ -53,6 +53,6 @@ Event system
|
|||
|
||||
Karax does not abstract over the event system the DOM offers much: The same
|
||||
``Event`` structure is used. Every callback has the
|
||||
signature ``proc (ev: Event; n: VNode)``.
|
||||
signature ``proc (ev: Event; n: VNode)`` or empty ``proc ()``.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/carousel.js"></script>
|
||||
<script type="text/javascript" src="carousel.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/playerapp.js"></script>
|
||||
<script type="text/javascript" src="playerapp.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/scrollapp.js"></script>
|
||||
<script type="text/javascript" src="scrollapp.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/todoapp.js"></script>
|
||||
<script type="text/javascript" src="todoapp.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -9,5 +9,5 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/ajaxtest.js"></script>
|
||||
<script type="text/javascript" src="ajaxtest.js"></script>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -10,5 +10,5 @@
|
|||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.0.2/echarts-en.js"></script>
|
||||
<script type="text/javascript" src="nimcache/echartstest.js"></script>
|
||||
<script type="text/javascript" src="echartstest.js"></script>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
<body id="body">
|
||||
<div id="ROOT"></div>
|
||||
<script type="text/javascript" src="nimcache/demo.js"></script>
|
||||
<script type="text/javascript" src="demo.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/scrollapp.js"></script>
|
||||
<script type="text/javascript" src="scrollapp.js"></script>
|
||||
<script type="text/javascript">
|
||||
onload(window.location.pathname.split('/')[1])
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -254,7 +254,10 @@ proc eq(a, b: VNode; recursive: bool): EqResult =
|
|||
for i in 0..<a.len:
|
||||
if eq(a[i], b[i], recursive) == different: return different
|
||||
elif a.kind == VNodeKind.dthunk:
|
||||
return identical
|
||||
if a.dom == b.dom:
|
||||
return identical
|
||||
else: # fix #119
|
||||
return different
|
||||
elif a.kind == VNodeKind.verbatim:
|
||||
if a.text != b.text:
|
||||
return different
|
||||
|
|
|
|||
|
|
@ -35,9 +35,8 @@ proc exec(cmd: string) =
|
|||
|
||||
proc build(name: string, rest: string, selectedCss: string, run: bool) =
|
||||
echo("Building...")
|
||||
createDir("nimcache")
|
||||
exec("nim js --out:nimcache/" & name & ".js " & rest)
|
||||
let dest = "nimcache" / name & ".html"
|
||||
exec("nim js --out:" & name & ".js " & rest)
|
||||
let dest = name & ".html"
|
||||
writeFile(dest, html % [name, selectedCss])
|
||||
if run: openDefaultBrowser(dest)
|
||||
|
||||
|
|
|
|||
|
|
@ -89,9 +89,9 @@ type
|
|||
onanimationiteration,
|
||||
|
||||
onkeyupenter, ## vdom extension: an input field received the ENTER key press
|
||||
onkeyuplater ## vdom extension: a key was pressed and some time
|
||||
onkeyuplater, ## vdom extension: a key was pressed and some time
|
||||
## passed (useful for on-the-fly text completions)
|
||||
|
||||
onload, # img
|
||||
|
||||
macro buildLookupTables(): untyped =
|
||||
var a = newTree(nnkBracket)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<div id="ROOT" />
|
||||
|
||||
<script type="text/javascript" src="nimcache/diffDomTests.js"></script>
|
||||
<script type="text/javascript" src="diffDomTests.js"></script>
|
||||
<script type="text/javascript">
|
||||
onload(window.location.pathname.split('/')[1])
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@
|
|||
</head>
|
||||
<body id="body">
|
||||
<div id="ROOT"></div>
|
||||
<script src="nimcache/domEventTests.js" type="text/javascript"></script>
|
||||
<script src="domEventTests.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue