Update example for Imba 1.3
This commit is contained in:
parent
6b567a6160
commit
3a957df975
|
@ -1,6 +1,8 @@
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
.DS_Store
|
||||||
|
dist/client.js
|
||||||
|
|
||||||
# Runtime data
|
# Runtime data
|
||||||
pids
|
pids
|
||||||
|
@ -24,6 +26,4 @@ build/Release
|
||||||
|
|
||||||
# Dependency directory
|
# Dependency directory
|
||||||
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
|
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
bundle.js
|
|
10
README.md
10
README.md
|
@ -1,14 +1,12 @@
|
||||||
# hello-world-imba
|
# hello-world-imba
|
||||||
|
|
||||||
Tiny template for testing out Imba in the browser.
|
Tiny template for testing out Imba
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/somebee/hello-world-imba.git
|
# install dependencies
|
||||||
cd hello-world-imba
|
|
||||||
npm install
|
npm install
|
||||||
npm run watch
|
# start webpack-dev-server and compiler
|
||||||
|
npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Open `index.html` in your browser (you should not need a webserver).
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
html,body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0px;
|
||||||
|
font-family: Arial;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
display: flex;
|
||||||
|
font-size: 14px;
|
||||||
|
align-items: stretch;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
background: whitesmoke;
|
||||||
|
padding: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:focus { outline: none !important; }
|
||||||
|
|
||||||
|
.App {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vbox {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
body,div,form,header,footer,section,input,button,nav,aside,article {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
div,section,input,ul,main,article,.grow {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
display: block;
|
||||||
|
padding: 0px 12px;
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
font-size: inherit;
|
||||||
|
width: 50px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background: #4a95eb;
|
||||||
|
font-size: 13px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: 0px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
border-radius: 2px;
|
||||||
|
color: white;
|
||||||
|
margin: 0px 4px;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background: #3a8eef;
|
||||||
|
}
|
||||||
|
|
||||||
|
header,footer {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px 6px;
|
||||||
|
background: #e8e8e8;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none inside none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
padding: 8px 12px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1px solid whitesmoke;
|
||||||
|
}
|
|
@ -3,9 +3,9 @@
|
||||||
<head>
|
<head>
|
||||||
<title>Hello World</title>
|
<title>Hello World</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" href="index.css" media="screen">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- include your compiled bundle -->
|
<script src="client.js"></script>
|
||||||
<script src="bundle.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
12
index.imba
12
index.imba
|
@ -1,12 +0,0 @@
|
||||||
|
|
||||||
tag HelloWorld
|
|
||||||
|
|
||||||
def render
|
|
||||||
<self>
|
|
||||||
<header>
|
|
||||||
<h1> "Hello World"
|
|
||||||
<section>
|
|
||||||
<footer>
|
|
||||||
|
|
||||||
# mount an instance of HelloWorld in root
|
|
||||||
Imba.mount <HelloWorld>
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"name": "hello-world-imba",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 1,
|
|
||||||
"requires": true,
|
|
||||||
"dependencies": {
|
|
||||||
"imba": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/imba/-/imba-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-qR8/5cfhMyLDpIKZce8kPdyYLTeFkEPPeAmFQtXxrfii87sOqpx7P5oGiTewKdnZ7s5oeU9aHTEFBV5ctsoIIA=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
13
package.json
13
package.json
|
@ -8,11 +8,13 @@
|
||||||
"bugs": "https://github.com/somebee/hello-world-imba/issues",
|
"bugs": "https://github.com/somebee/hello-world-imba/issues",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.8.0"
|
"node": ">=6.0.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "imbapack",
|
"start": "imba src/server.imba",
|
||||||
"watch": "imbapack -w"
|
"dev": "webpack-dev-server --content-base dist/",
|
||||||
|
"build": "webpack",
|
||||||
|
"watch": "webpack --watch --progress --colors --display-modules"
|
||||||
},
|
},
|
||||||
"files": [],
|
"files": [],
|
||||||
"directories": {},
|
"directories": {},
|
||||||
|
@ -23,6 +25,9 @@
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"imba": "^1.0.0"
|
"express": "^4.16.2",
|
||||||
|
"imba": "1.3.0-beta.6",
|
||||||
|
"webpack": "^3.10.0",
|
||||||
|
"webpack-dev-server": "^2.11.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
var store = {
|
||||||
|
title: ""
|
||||||
|
items: [
|
||||||
|
{title: "git clone hello-world-imba"}
|
||||||
|
{title: "npm install"}
|
||||||
|
{title: "npm run dev"}
|
||||||
|
{title: "play around"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tag App
|
||||||
|
def addItem
|
||||||
|
data:items.push(title: data:title)
|
||||||
|
data:title = ""
|
||||||
|
|
||||||
|
|
||||||
|
Imba.mount <App[store].vbox ->
|
||||||
|
<header>
|
||||||
|
<input model='title' placeholder="New..." :keyup.enter.addItem>
|
||||||
|
<button :tap.addItem> 'Add item'
|
||||||
|
<ul> for item in data:items
|
||||||
|
<li> item:title
|
|
@ -0,0 +1,20 @@
|
||||||
|
var express = require 'express'
|
||||||
|
var server = express()
|
||||||
|
|
||||||
|
server.use(express.static('./dist'))
|
||||||
|
|
||||||
|
server.get '/' do |req,res|
|
||||||
|
var html = <html>
|
||||||
|
<head>
|
||||||
|
<title> "Imba - Hello World"
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" href="/dist/index.css" media="screen">
|
||||||
|
<body>
|
||||||
|
<script src="/client.js">
|
||||||
|
|
||||||
|
return res.send html.toString
|
||||||
|
|
||||||
|
var port = process:env.PORT or 8080
|
||||||
|
|
||||||
|
var server = server.listen(port) do
|
||||||
|
console.log 'server is running on port ' + port
|
|
@ -1,4 +1,15 @@
|
||||||
module.exports = [{
|
module.exports = {
|
||||||
entry: "./index.imba",
|
module: {
|
||||||
output: { filename: "./bundle.js" }
|
rules: [
|
||||||
}]
|
{
|
||||||
|
test: /.imba$/,
|
||||||
|
loader: 'imba/loader',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: [".imba",".js", ".json"]
|
||||||
|
},
|
||||||
|
entry: "./src/client.imba",
|
||||||
|
output: { path: __dirname + '/dist', filename: "client.js" }
|
||||||
|
}
|
Loading…
Reference in New Issue