Ambrosian, Перечитал свой же вопрос.
Да был не прав. Вопрос получился про экранирование, хотя подразумевал другое. И так получается, про экранирование вы ответили, а я и не этого ответа вовсе ждал... =)
Но тем не менее благодарю за участие.
Вы безусловно правы и я не смог донести свои мысли. Я хотел найти такой способ, чтобы в эту функцию можно было вставить переменную - {{template .переменная}} не выходя из общей обработки шаблона. А то, что вы предлагаете это обработка по сути двух шаблонов в двух разных местах и потом вставка одного в другой.
Я не отрицаю и ни в коем не сомневаюсь в правильности вашего решения, но в голове вся эта структура выглядела иначе. Наверно нужно будет делать примерно подобное:
tmp.Funcs(template.FuncMap{
"load": func(s interface{}) interface{}{
t := tmp.Lookup("content")
var b bytes.Buffer
t.Execute(&b, s)
return b.String()
},
})
Нет вы не правильно поняли. Поиск начинается с начала. И находит первую открывающуюся и первую закрывающуюся. Как только мы заменим этот участок нужно повторить операцию и уже следующие скобки будут первыми.
Я тоже использую самописные костыли. Фреймворк удобен тем что уже содержит все эти, костыли которые вы пишете сами. Для работы в команде наверно стоит использовать, когда работаю один пользуюсь чистым php - так интереснее.
Главное начать. Я раз сто переписываю свои сайты, потому что узнал новую фишку или вижу ошибку. Если хочешь четкие шаблоны выбери фреймворк и пиши на нем. На чистом пшп все лепят свои костыли и от этого никак не избавиться, ведь каждый творец видит по-своему.
Согласен с вами. Но если при прокрутке курсор окажется над каким то элементом, то в принципе, наверно, в тории и можно сделать подобное. А так, да, только js.
Денис Николаев: , В ваших примерах и empty не будет работать т.к. пробел считается символом. Empty проверяет переменную на пустоту, а если это строка, то можно просто напросто посчитать символы и если их ноль или -1 то значит переменная пустая.