One-liner для компиляции шаблонов на Lua
Синтаксис Lua позволяет реализовать шаблоны в стиле PHP буквально несколькими регулярными выражениями.Для начала посмотрим, что из этого выйдет.Подстановка переменных … require 'tracking' ?>И любые другие конструкции на Lua function warn() ?> Вы совершаете уголовно наказуемое деяние! end ?> … warn() ?> … --[[ ?> Больше нечего скрывать --]] ?> И это все собирается одной командой в обычный модуль 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.