Сегодня 7 мая, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Хабрахабр: Коллективные / Блоги / Захабренные
Хабрахабр: Коллективные / Блоги / Захабренные
Голосов: 10
Адрес блога: http://habrahabr.ru/blog/
Добавлен: 2007-10-24 18:05:40 блограйдером Robin_Bad
 

Node.JS / Native JavaScript Templates (nJSt). Шаблонизатор, построенный на нативном JavaScript

2011-06-06 22:16:25 (читать в оригинале)

Приветствую тебя, читатель. Гоняясь за идеей сделать шаблонизатор, основанный на нативном JavaScript — я кое к чему пришёл. В Node.JS для реализации этой задачи нашлось всё, что я мог пожелать, и выполнить задачу получилось настолько же нативными средствами. Например, главным инструментом послужил модуль VM для выполнения изолированного от внешней среды JavaScript-кода. Шаблонные вставки — это чистый JS, но туда не попадают всяческие опасные инструменты вроде скальпеля, require, global и др.

Перед тем как приступить к подробному разбору полётов, сразу взглянем на пример использования, который скорей нагляднее отразит суть, чем что-либо ещё. Код создания сервера приводить не буду, просто опишу сам шаблон и парсинг под определённым контекстом.

HTML-шабон:
<html>
<head>
    <title>#{PageTitle}</title>
</head>

<body>
    <h1>#{PageTitle}</h1>

    <# for (var i=0; i
<List.length; i++) {
        #
><li><#
            if (typeof List[i] !== 'object') {
                show(List[i]);
            } else {
                show(List[i].name +' - '+ List[i].note);
            }
        #>
</li><#
    } #>
</body>
</html>
Этот исходный код отформатирован с помощью FractalizeR's HabraSyntax Source Code Highlighter.


Контекст:
var context = {
    PageTitle
: 'jJSt test',
    List
: ['First', {name:'Second', note:'2th'}, 'Third'],
};
var result = njst.parse(html, context, {debug:1});
Этот исходный код отформатирован с помощью FractalizeR's HabraSyntax Source Code Highlighter.

Читать дальше →

Тэги: html, javascript, native, njst, node, nodejs, template

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Авто/Мото»
Взлеты Топ 5
+265
299
MicheL1102
+238
257
Темы_дня
+230
258
Bisdiv.com
+220
259
Дневник
+177
284
Пофигист
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.