Package Exports
- @awly/marko
- @awly/marko/compiler-browser.marko
- @awly/marko/compiler.js
- @awly/marko/components-browser.marko
- @awly/marko/components.js
- @awly/marko/index-browser.marko
- @awly/marko/index.js
- @awly/marko/legacy-components-browser.marko
- @awly/marko/legacy-components.js
- @awly/marko/node-require
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@awly/marko) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Marko is a friendly (and fast!) UI library that makes building web apps fun. Learn more on markojs.com, and even Try Marko Online!
Get Involved
- Contributing: Pull requests are welcome!
- Read
CONTRIBUTING.md
and check out our bite-sized and help-wanted issues - Submit github issues for any feature enhancements, bugs or documentation problems
- Read
- Support: Join our gitter chat to ask questions to get support from the maintainers and other Marko developers
- Questions/comments can also be posted as github issues
- Discuss: Tweet using the
#MarkoJS
hashtag and follow @MarkoDevTeam
Installation
npm install marko --save
Examples
Marko provides an elegant and readable syntax for both single-file components and components broken into separate files. There are plenty of examples to play with on Marko's Try-Online. Additional component documentation can be found on the Marko.js website.
Single file
The following single-file component renders a button and a counter with the number of times the button has been clicked. Try this example now!
click-count.marko
class {
onCreate() {
this.state = { count:0 };
}
increment() {
this.state.count++;
}
}
style {
.count {
color:#09c;
font-size:3em;
}
.example-button {
font-size:1em;
padding:0.5em;
}
}
<div.count>
${state.count}
</div>
<button.example-button on-click('increment')>
Click me!
</button>
Multi-file
The same component as above split into an index.marko
template file,
component.js
containing your component logic, and style.css
containing your
component style:
index.marko
<div.count>
${state.count}
</div>
<button.example-button on-click('increment')>
Click me!
</button>
component.js
module.exports = {
onCreate() {
this.state = { count: 0 };
},
increment() {
this.state.count++;
}
};
style.css
.count {
color: #09c;
font-size: 3em;
}
.example-button {
font-size: 1em;
padding: 0.5em;
}
Concise Syntax
Marko also support a beautiful concise syntax as an alternative to the HTML syntax. Find out more about the concise syntax here.
<!-- Marko HTML syntax -->
<ul>
<li for(color in ['a', 'b', 'c'])>
${color}
</li>
</ul>
// Marko concise syntax
ul
li for(color in ['a', 'b', 'c'])
-- ${color}
Changelog
See CHANGELOG.md
Maintainers
- Patrick Steele-Idem (Twitter: @psteeleidem)
- Michael Rawlings (Twitter: @mlrawlings)
- Phillip Gates-Idem (Twitter: @philidem)
- Austin Kelleher (Twitter: @AustinKelleher)
- Dylan Piercey (Twitter: @dylan_piercey)
- Martin Aberer (Twitter: @metaCoffee)
Code of Conduct
This project adheres to the eBay Code of Conduct. By participating in this project you agree to abide by its terms.
License
MIT