JSPM

marko

4.4.8
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 13862
  • Score
    100M100P100Q128633F
  • License MIT

Marko is an extensible, streaming, asynchronous, high performance, HTML-based templating language that can be used in Node.js or in the browser.

Package Exports

  • marko
  • marko/browser-refresh
  • marko/compiler
  • marko/compiler-browser.marko
  • marko/compiler.js
  • marko/components
  • marko/components-browser.marko
  • marko/components.js
  • marko/dist/components/helpers
  • marko/dist/html
  • marko/dist/runtime/html/helpers
  • marko/dist/taglibs/core/include-tag
  • marko/env
  • marko/express
  • marko/hot-reload
  • marko/hot-reload.js
  • marko/index-browser.marko
  • marko/index.js
  • marko/legacy-components
  • marko/legacy-components-browser.marko
  • marko/legacy-components.js
  • marko/node-require
  • marko/package
  • marko/package.json
  • marko/src/compiler/util/UniqueVars
  • marko/src/components/helpers
  • marko/src/components/legacy/helpers
  • marko/src/components/taglib/component-globals-tag
  • marko/src/components/taglib/helpers/renderComponent
  • marko/src/components/taglib/include-tag
  • marko/src/components/taglib/init-components-tag
  • marko/src/html
  • marko/src/runtime/createOut
  • marko/src/runtime/helper-forEachProperty
  • marko/src/runtime/helper-forRange
  • marko/src/runtime/helper-loadNestedTag
  • marko/src/runtime/helper-loadTemplate
  • marko/src/runtime/helper-merge
  • marko/src/runtime/helper-mergeNestedTags
  • marko/src/runtime/html/AsyncStream
  • marko/src/runtime/html/helpers
  • marko/src/runtime/renderable
  • marko/src/runtime/vdom/helpers
  • marko/src/runtime/vdom/preserve-attrs
  • marko/src/taglibs/async/await-reorderer-tag
  • marko/src/taglibs/async/await-tag
  • marko/src/taglibs/core/include-tag
  • marko/src/vdom

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 (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 logo

Marko is a friendly (and fast!) UI library that makes building web apps fun. Learn more on markojs.com, and even Try Marko Online!

Build Status Coverage Status Gitter NPM Downloads

Get Involved

  • Contributing: Pull requests are welcome!
  • Support: Join our gitter chat to ask questions to get support from the maintainers and other Marko developers
  • 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

License

MIT