One-liner для компиляции шаблонов на Lua

Синтаксис Lua позволяет реализовать шаблоны в стиле PHP буквально несколькими регулярными выражениями.Для начала посмотрим, что из этого выйдет.Подстановка переменных …        require 'tracking' ?>И любые другие конструкции на Lua Вы совершаете уголовно наказуемое деяние! Больше нечего скрывать И это все собирается одной командой в обычный модуль Lua: (echo «return function (_)_[=[»; sed -e «s/<%/]=]_(/g; s/%>/)_[=[/g; s/<[?]/]=] /g; s/[?]>/ _[=[/g»; echo »]=] end») < template.tpl > template.lua На самом деле, для запуска потребуется написать еще одну короткую функцию: function template.print (data, args, callback) local callback = callback or print local function exec (data) if type (data) == «function» then local args = args or {} setmetatable (args, { __index = _G }) setfenv (data, args) data (exec) else callback (tostring (data)) end end exec (data) end Маленькая библиотека из трех функций доступна в Moon Rocks: luarocks install template luarocks, в свою очередь, имеется в репозиториях Ubuntu: sudo apt-get install luarocks Проект на GitHub.

© Habrahabr.ru