0.2.12 • Published 9 years ago

lime-razor v0.2.12

Weekly downloads
3
License
-
Repository
github
Last release
9 years ago

limerun lime-razor

Build Status NPM NPM NPM

NPM

About

This is a simple razor view engine in Node.js javascript for OWIN-JS REST framework. It was created for the limerun project.

Installation

$ npm install lime-razor

Credits

This project, including documentation, was forked under MIT license from andyedinborough/RazorJS with various changes throughout to filename and package handling, and so that it that is easier to consume from OWIN-JS, Connect, Koa, and Express middleware.

To date, the raw parsing routines have not been adjusted materially from the RazorJS implementation.

API

A JavaScript implementation of the Razor view engine that aims to be simple and compatible for use both in the browser and in Node--simple enough for templating:

Razor.compile('hello @model.name')({ name: 'world' }) == 'hello world'

As well as a Node view-engine:

// Dependencies
const lime = require('limerun')
    , razor = require('lime-razor')
    , router = require('lime-router')
    , http = require('http');

// Initiate Factories
var route = router();
var app = new owin.app();

// Run Application
app.use(route);
route.get('/', function(){return  razor.renderViewAsync(this, 'index.js.html');});
http.createServer(app.buildHttp()).listen(8000);

Live Demo (of underlying view engine technology)

Try RazorJS in your browser now: http://jsbin.com/imihov/latest

Syntax

  <tr>
      <td valign="top">Code Block</td>
      <td valign="top">
          <pre>

@{ int x = 123; string y = "because."; }

  <tr>
      <td valign="top">Expression (Html Encoded)</td>
      <td valign="top">
          <pre>

<span>@model.message</span>

  <tr>
      <td valign="top">Expression (Unencoded)</td>

      <td valign="top">
          <pre>

<span> @html.raw(model.message) </span>

  <tr>
      <td valign="top">Combining Text and markup</td>

      <td valign="top">
          <pre>

@@{ model.items.forEach(function(item) { <span>@item.Prop</span> }); }

  <tr>
      <td valign="top">Mixing code and Plain text</td>

      <td valign="top">
          <pre>

@if (foo) { <text>Plain Text</text> }

  <tr>
      <td valign="top">Mixing code and plain text
      (alternate)</td>

      <td valign="top">
          <pre>

@if (foo) { @:Plain Text is @bar }

  <tr>
      <td valign="top">Email Addresses</td>

      <td valign="top">
          <pre>

Hi test@example.com

      <td valign="top">Razor recognizes basic email
      format and is smart enough not to treat the @ as a code
      delimiter</td>
  </tr>

  <tr>
      <td valign="top">Explicit Expression</td>

      <td valign="top">
          <pre>

<span>ISBN@(isbnNumber)</span>

      <td valign="top">In this case, we need to be
      explicit about the expression by using parentheses.</td>
  </tr>

  <tr>
      <td valign="top">Escaping the @ sign</td>

      <td valign="top">
          <pre>

<span>In Razor, you use the @@foo to display the value of foo</span>

      <td valign="top">@@ renders a single @ in the
      response.</td>
  </tr>

  <tr>
      <td valign="top">Server side Comment</td>

      <td valign="top">
          <pre>

@ This is a server side multiline comment @

  <tr>
      <td valign="top">Mixing expressions and text</td>

      <td valign="top">
          <pre>

Hello @title. @name.

  <tr>
    <td valign="top">Partials </td>
    <td>
        <pre>

@html.renderPartial('another-view')

  <tr>
    <td valign="top">Layouts </td>
    <td>
        <strong>View</strong>
        <pre>

@{ this.layout = '_layout'; }

@section my_section(){ @:hi! }

0.2.12

9 years ago

0.2.11

9 years ago

0.2.9

9 years ago

0.2.8

9 years ago

0.2.7

9 years ago

0.2.6

9 years ago

0.2.5

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago