mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Update README.md
This commit is contained in:
parent
90158f175f
commit
997b6377f3
206
README.md
206
README.md
@ -21,110 +21,6 @@ Syntax highlighting available for [Atom](https://atom.io/) by installing the [la
|
|||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
|
|
||||||
# Table of Contents
|
|
||||||
|
|
||||||
- [Installation](#installation)
|
|
||||||
- [Sample Code](#sample-code)
|
|
||||||
- [Another Templating Language?](#another-templating-language)
|
|
||||||
- [Design Philosophy](#design-philosophy)
|
|
||||||
- [Usage](#usage)
|
|
||||||
- [Template Loading](#template-loading)
|
|
||||||
- [Template Rendering](#template-rendering)
|
|
||||||
- [Callback API](#callback-api)
|
|
||||||
- [Streaming API](#streaming-api)
|
|
||||||
- [Synchronous API](#synchronous-api)
|
|
||||||
- [Asynchronous Rendering API](#asynchronous-rendering-api)
|
|
||||||
- [Browser-side Rendering](#browser-side-rendering)
|
|
||||||
- [Using Lasso.js](#using-lassojs)
|
|
||||||
- [Using Browserify](#using-browserify)
|
|
||||||
- [Template Compilation](#template-compilation)
|
|
||||||
- [Sample Compiled Template](#sample-compiled-template)
|
|
||||||
- [Hot reloading templates](#hot-reloading-templates)
|
|
||||||
- [Language Guide](#language-guide)
|
|
||||||
- [Template Directives Overview](#template-directives-overview)
|
|
||||||
- [Text Replacement](#text-replacement)
|
|
||||||
- [Expressions](#expressions)
|
|
||||||
- [Includes](#includes)
|
|
||||||
- [Variables](#variables)
|
|
||||||
- [Conditionals](#conditionals)
|
|
||||||
- [if...else-if...else](#ifelse-ifelse)
|
|
||||||
- [Shorthand Conditionals](#shorthand-conditionals)
|
|
||||||
- [Conditional Attributes](#conditional-attributes)
|
|
||||||
- [Looping](#looping)
|
|
||||||
- [for](#for)
|
|
||||||
- [Loop Status Variable](#loop-status-variable)
|
|
||||||
- [Loop Separator](#loop-separator)
|
|
||||||
- [Range Looping](#range-looping)
|
|
||||||
- [Property Looping](#property-looping)
|
|
||||||
- [Custom Iterator](#custom-iterator)
|
|
||||||
- [Macros](#macros)
|
|
||||||
- [def](#def)
|
|
||||||
- [invoke](#invoke)
|
|
||||||
- [Structure Manipulation](#structure-manipulation)
|
|
||||||
- [attrs](#attrs)
|
|
||||||
- [body-only-if](#body-only-if)
|
|
||||||
- [Comments](#comments)
|
|
||||||
- [Whitespace](#whitespace)
|
|
||||||
- [Helpers](#helpers)
|
|
||||||
- [Global Properties](#global-properties)
|
|
||||||
- [Custom Tags and Attributes](#custom-tags-and-attributes)
|
|
||||||
- [Async Taglib](#async-taglib)
|
|
||||||
- [Layout Taglib](#layout-taglib)
|
|
||||||
- [API](#api)
|
|
||||||
- [require('marko')](#requiremarko)
|
|
||||||
- [Methods](#methods)
|
|
||||||
- [load(templatePath[, options]) : Template](#loadtemplatepath-options--template)
|
|
||||||
- [createWriter([stream]) : AsyncWriter](#createwriterstream--asyncwriter)
|
|
||||||
- [render(templatePath, templateData, stream.Writable)](#rendertemplatepath-templatedata-streamwritable)
|
|
||||||
- [render(templatePath, templateData, callback)](#rendertemplatepath-templatedata-callback)
|
|
||||||
- [stream(templatePath, templateData) : stream.Readable](#streamtemplatepath-templatedata--streamreadable)
|
|
||||||
- [Properties](#properties)
|
|
||||||
- [helpers](#helpers)
|
|
||||||
- [Template](#template)
|
|
||||||
- [Template](#template-1)
|
|
||||||
- [Methods](#methods-1)
|
|
||||||
- [renderSync(templateData) : String](#rendersynctemplatedata--string)
|
|
||||||
- [render(templateData, stream.Writable)](#rendertemplatedata-streamwritable)
|
|
||||||
- [render(templateData, AsyncWriter)](#rendertemplatedata-asyncwriter)
|
|
||||||
- [render(templateData, callback)](#rendertemplatedata-callback)
|
|
||||||
- [stream(templateData) : stream.Readable](#streamtemplatedata--streamreadable)
|
|
||||||
- [Custom Taglibs](#custom-taglibs)
|
|
||||||
- [Tag Renderer](#tag-renderer)
|
|
||||||
- [marko-taglib.json](#marko-taglibjson)
|
|
||||||
- [Sample Taglib](#sample-taglib)
|
|
||||||
- [Defining Tags](#defining-tags)
|
|
||||||
- [Defining Attributes](#defining-attributes)
|
|
||||||
- [Scanning for Tags](#scanning-for-tags)
|
|
||||||
- [Nested Tags](#nested-tags)
|
|
||||||
- [Taglib Discovery](#taglib-discovery)
|
|
||||||
- [FAQ](#faq)
|
|
||||||
- [Additional Resources](#additional-resources)
|
|
||||||
- [Further Reading](#further-reading)
|
|
||||||
- [Screencasts](#screencasts)
|
|
||||||
- [Demo Apps](#demo-apps)
|
|
||||||
- [Tools](#tools)
|
|
||||||
- [Changelog](#changelog)
|
|
||||||
- [Discuss](#discuss)
|
|
||||||
- [Contributors](#contributors)
|
|
||||||
- [Contribute](#contribute)
|
|
||||||
- [License](#license)
|
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
||||||
|
|
||||||
# Installation
|
|
||||||
|
|
||||||
To install the `marko` module into your project you should use the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install marko --save
|
|
||||||
```
|
|
||||||
|
|
||||||
To install the optional `markoc` command line interface to compile templates you can use the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install marko --global
|
|
||||||
```
|
|
||||||
|
|
||||||
# Sample Code
|
# Sample Code
|
||||||
|
|
||||||
A basic template with text replacement, looping and conditionals is shown below:
|
A basic template with text replacement, looping and conditionals is shown below:
|
||||||
@ -248,6 +144,108 @@ The above template is a very simple way to generate the much more complicated HT
|
|||||||
```
|
```
|
||||||
|
|
||||||
The custom tags encapsulate rendering logic and help avoid repeating the same HTML (and potentially the same mistakes).
|
The custom tags encapsulate rendering logic and help avoid repeating the same HTML (and potentially the same mistakes).
|
||||||
|
# Table of Contents
|
||||||
|
|
||||||
|
- [Installation](#installation)
|
||||||
|
- [Another Templating Language?](#another-templating-language)
|
||||||
|
- [Design Philosophy](#design-philosophy)
|
||||||
|
- [Usage](#usage)
|
||||||
|
- [Template Loading](#template-loading)
|
||||||
|
- [Template Rendering](#template-rendering)
|
||||||
|
- [Callback API](#callback-api)
|
||||||
|
- [Streaming API](#streaming-api)
|
||||||
|
- [Synchronous API](#synchronous-api)
|
||||||
|
- [Asynchronous Rendering API](#asynchronous-rendering-api)
|
||||||
|
- [Browser-side Rendering](#browser-side-rendering)
|
||||||
|
- [Using Lasso.js](#using-lassojs)
|
||||||
|
- [Using Browserify](#using-browserify)
|
||||||
|
- [Template Compilation](#template-compilation)
|
||||||
|
- [Sample Compiled Template](#sample-compiled-template)
|
||||||
|
- [Hot reloading templates](#hot-reloading-templates)
|
||||||
|
- [Language Guide](#language-guide)
|
||||||
|
- [Template Directives Overview](#template-directives-overview)
|
||||||
|
- [Text Replacement](#text-replacement)
|
||||||
|
- [Expressions](#expressions)
|
||||||
|
- [Includes](#includes)
|
||||||
|
- [Variables](#variables)
|
||||||
|
- [Conditionals](#conditionals)
|
||||||
|
- [if...else-if...else](#ifelse-ifelse)
|
||||||
|
- [Shorthand Conditionals](#shorthand-conditionals)
|
||||||
|
- [Conditional Attributes](#conditional-attributes)
|
||||||
|
- [Looping](#looping)
|
||||||
|
- [for](#for)
|
||||||
|
- [Loop Status Variable](#loop-status-variable)
|
||||||
|
- [Loop Separator](#loop-separator)
|
||||||
|
- [Range Looping](#range-looping)
|
||||||
|
- [Property Looping](#property-looping)
|
||||||
|
- [Custom Iterator](#custom-iterator)
|
||||||
|
- [Macros](#macros)
|
||||||
|
- [def](#def)
|
||||||
|
- [invoke](#invoke)
|
||||||
|
- [Structure Manipulation](#structure-manipulation)
|
||||||
|
- [attrs](#attrs)
|
||||||
|
- [body-only-if](#body-only-if)
|
||||||
|
- [Comments](#comments)
|
||||||
|
- [Whitespace](#whitespace)
|
||||||
|
- [Helpers](#helpers)
|
||||||
|
- [Global Properties](#global-properties)
|
||||||
|
- [Custom Tags and Attributes](#custom-tags-and-attributes)
|
||||||
|
- [Async Taglib](#async-taglib)
|
||||||
|
- [Layout Taglib](#layout-taglib)
|
||||||
|
- [API](#api)
|
||||||
|
- [require('marko')](#requiremarko)
|
||||||
|
- [Methods](#methods)
|
||||||
|
- [load(templatePath[, options]) : Template](#loadtemplatepath-options--template)
|
||||||
|
- [createWriter([stream]) : AsyncWriter](#createwriterstream--asyncwriter)
|
||||||
|
- [render(templatePath, templateData, stream.Writable)](#rendertemplatepath-templatedata-streamwritable)
|
||||||
|
- [render(templatePath, templateData, callback)](#rendertemplatepath-templatedata-callback)
|
||||||
|
- [stream(templatePath, templateData) : stream.Readable](#streamtemplatepath-templatedata--streamreadable)
|
||||||
|
- [Properties](#properties)
|
||||||
|
- [helpers](#helpers)
|
||||||
|
- [Template](#template)
|
||||||
|
- [Template](#template-1)
|
||||||
|
- [Methods](#methods-1)
|
||||||
|
- [renderSync(templateData) : String](#rendersynctemplatedata--string)
|
||||||
|
- [render(templateData, stream.Writable)](#rendertemplatedata-streamwritable)
|
||||||
|
- [render(templateData, AsyncWriter)](#rendertemplatedata-asyncwriter)
|
||||||
|
- [render(templateData, callback)](#rendertemplatedata-callback)
|
||||||
|
- [stream(templateData) : stream.Readable](#streamtemplatedata--streamreadable)
|
||||||
|
- [Custom Taglibs](#custom-taglibs)
|
||||||
|
- [Tag Renderer](#tag-renderer)
|
||||||
|
- [marko-taglib.json](#marko-taglibjson)
|
||||||
|
- [Sample Taglib](#sample-taglib)
|
||||||
|
- [Defining Tags](#defining-tags)
|
||||||
|
- [Defining Attributes](#defining-attributes)
|
||||||
|
- [Scanning for Tags](#scanning-for-tags)
|
||||||
|
- [Nested Tags](#nested-tags)
|
||||||
|
- [Taglib Discovery](#taglib-discovery)
|
||||||
|
- [FAQ](#faq)
|
||||||
|
- [Additional Resources](#additional-resources)
|
||||||
|
- [Further Reading](#further-reading)
|
||||||
|
- [Screencasts](#screencasts)
|
||||||
|
- [Demo Apps](#demo-apps)
|
||||||
|
- [Tools](#tools)
|
||||||
|
- [Changelog](#changelog)
|
||||||
|
- [Discuss](#discuss)
|
||||||
|
- [Contributors](#contributors)
|
||||||
|
- [Contribute](#contribute)
|
||||||
|
- [License](#license)
|
||||||
|
|
||||||
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
To install the `marko` module into your project you should use the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install marko --save
|
||||||
|
```
|
||||||
|
|
||||||
|
To install the optional `markoc` command line interface to compile templates you can use the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install marko --global
|
||||||
|
```
|
||||||
|
|
||||||
# Another Templating Language?
|
# Another Templating Language?
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user