Skip to main content

Provide handlebars templating capability to moban.

Project description

https://api.travis-ci.org/moremoban/moban-handlebars.svg https://codecov.io/github/moremoban/moban-handlebars/coverage.png https://badge.fury.io/py/moban-handlebars.svg https://pepy.tech/badge/moban-handlebars/month https://img.shields.io/github/stars/moremoban/moban-handlebars.svg?style=social&maxAge=3600&label=Star

Introduction

With pybars3, this library allow moban users to have handlebars template in their next documentation endeavour.

Quick start

$ moban "<p>{{firstname}} {{lastname}}</p>" --template-type handlebars -d firstname=hello lastname=world

Nested input objects

Given a data.json file with the following content

{
  "person": {
    "firstname": "Yehuda",
    "lastname": "Katz",
  },
}
$ moban --template-type handlebars -c data.json  "{{person.firstname}} {{person.lastname}}"
Handlebars-ing <p>{{first... to moban.output
Handlebarsed 1 file.
$ cat moban.output
Yehuda Katz

For handlebars.js users, yes, the example was copied from handlebarjs.com. The aim is to show off what we can do.

Let’s continue with a bit more fancy feature:

$ moban --template-type handlebars -c data.json "{{#with person}}{{firstname}} {{lastname}} {{/with}}"

Moban’s way of pybar3 usage:

Let’s save the following file a script.py under helper_and_partial folder:

from moban_handlebars.api import Helper, register_partial

register_partial('header', '<h1>People</h1>')


@Helper('list')
def _list(this, options, items):
    result = [u'<ul>']
    for thing in items:
        result.append(u'<li>')
        result.extend(options['fn'](thing))
        result.append(u'</li>')
    result.append(u'</ul>')
    return result

And given data.json reads as the following:

{
    "people":[
        {"name": "Bill", "age": 100},
        {"name": "Bob", "age": 90},
        {"name": "Mark", "age": 25}
    ]
}

Let’s invoke handlebar template:

$ moban --template-type hbs -pd helper_and_partial -c data.json "{{>header}}{{#list people}}{{name}} {{age}}{{/list}}"
Handlebars-ing {{>header}... to moban.output
Handlebarsed 1 file.
$ cat moban.output
<h1>People</h1><ul><li>Bill 100</li><li>Bob 90</li><li>Mark 25</li></ul>

Installation

You can install moban-handlebars via pip:

$ pip install moban-handlebars

or clone it and install it:

$ git clone https://github.com/moremoban/moban-handlebars.git
$ cd moban-handlebars
$ python setup.py install

Author

Charlie Liu

Contributors

In alphabetical order:

Change log

0.0.5 - 07.06.2020

Updated

  1. Name the moban actions when this template is used
  2. #12: provide apis for end user to use their own block helper and partials

0.0.4 - 14.10.2019

Updated

  1. #10: support moban v6.5

0.0.3 - 10.09.2019

Updated

  1. #7: support moban v4.1
  2. #9: support moban v6

0.0.2 - 22-01-2019

Updated

  1. #1: support moban v0.3.8
  2. #2: add license file
  3. #3: support moban v0.3.9

0.0.1 - 18-11-2018

First release

  1. render .hbr .handlebars files for moban

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for moban-handlebars, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size moban_handlebars-0.0.5-py2.py3-none-any.whl (6.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size moban-handlebars-0.0.5.tar.gz (11.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page