Реклама →
CMS на стороне клиента
Конечно, полноценную CMS на стороне клиента реализовать невозможно (никто и не пытается). Но если у вас есть сайт на бесплатном хостинге, нет серверных скриптов, но хочется развернуть что-то более сложное, чем сайт-визитка на полутора страницах, то можно попробовать облегчить себе жизнь с помощью SNAC.
SNAC — аббревиатура от SNAC is Not at All a CMS. Это должно как бы намекать, что особого функционала от него ждать не стоит. Практически единственная вещь, которую он позволяет делать — это отделение оформление сайта от его содержания.
Ссылка на демонстрацию — в конце топика.
Если вы используете SNAC, то оформление вашего сайта задается единым шаблоном, а все его содержание хранится в отдельных текстовых файлах. Одна страница — один текстовый файл. Например, вот так может выглядеть шаблон:
А вот так — файл с содержанием одной из страниц:
Также существует файл с «глобальным содержанием», то есть содержанием, одинаковым для всех страниц сайта. Туда можно поместить, например, название сайта и текст футера:
Если автор сайта внезапно решит сменить имя, то обновить футер на всем сайте можно будет, отредактировав только один файл.
Автоматически сгенерировать меню SNAC, конечно, не сможет, но зато если вы самостоятельно добавите меню в шаблон страницы, то ссылке на текущую страницу будет присвоен класс
Можно сделать собственную страницу, отображающуюся при ошибке 404 (обычно на бесплатных хостингах не дают настроить эту возможность).
Можно запускать сайт вообще без веб-сервера! (Из-за политик безопасности получится не во всех браузерах.)
SNAC работает очень просто. Сначала он аяксом загружает шаблон страницы и «компилирует» его с помощью шаблонизатора jQote2. В откомпилированном виде шаблон представляет собой javascript-функцию, которая на вход получает объект с содержанием страницы, а на выход дает код страницы.
Далее (по событию
Поверхностное гугление выявило только Xanjax. Но то ли я такой тупой, то ли действительно с ним что-то не так, но только толком разобраться с ним мне не удалось. На сайте автор пишет, что скорее всего с первого раза сайт на Xanjax не заработает, и что для полноценной работы с ним нужно думать out of the box. Такой подход мне как-то не по душе.
Уверен, что найдется еще не один аналогичный проект. В любом случае SNAC делался в основном для личного использования и just for fun.
Сайт работает на SNAC, оттуда же можно его скачать, там же документация. Исходный код есть на Google Code.
Что он умеет?
SNAC — аббревиатура от SNAC is Not at All a CMS. Это должно как бы намекать, что особого функционала от него ждать не стоит. Практически единственная вещь, которую он позволяет делать — это отделение оформление сайта от его содержания.
Ссылка на демонстрацию — в конце топика.
Если вы используете SNAC, то оформление вашего сайта задается единым шаблоном, а все его содержание хранится в отдельных текстовых файлах. Одна страница — один текстовый файл. Например, вот так может выглядеть шаблон:
<h1><$= this.title $></h1>
<h2><$= this.header $></h2>
<div id="content"><$= this.content $></div>
<div id="footer">© <$= this.author $></div>
А вот так — файл с содержанием одной из страниц:
$ header $
Контакты
$ content $
Почта: example@mail.ru
ICQ: 123456789
Также существует файл с «глобальным содержанием», то есть содержанием, одинаковым для всех страниц сайта. Туда можно поместить, например, название сайта и текст футера:
$ title $
Персональный сайт
$ author $
Василий Пупкин
Если автор сайта внезапно решит сменить имя, то обновить футер на всем сайте можно будет, отредактировав только один файл.
Еще кое-какие возможности
Автоматически сгенерировать меню SNAC, конечно, не сможет, но зато если вы самостоятельно добавите меню в шаблон страницы, то ссылке на текущую страницу будет присвоен класс
snac-current
. Таким образом можно выделить текущую страницу в меню.Можно сделать собственную страницу, отображающуюся при ошибке 404 (обычно на бесплатных хостингах не дают настроить эту возможность).
Можно запускать сайт вообще без веб-сервера! (Из-за политик безопасности получится не во всех браузерах.)
Как работает
SNAC работает очень просто. Сначала он аяксом загружает шаблон страницы и «компилирует» его с помощью шаблонизатора jQote2. В откомпилированном виде шаблон представляет собой javascript-функцию, которая на вход получает объект с содержанием страницы, а на выход дает код страницы.
Далее (по событию
onhashchange
) аяксом получается файл с содержанием страницы, парсится и опять же скармливается шаблонизатору. Полученный код записывается в тег body
.Аналоги
Поверхностное гугление выявило только Xanjax. Но то ли я такой тупой, то ли действительно с ним что-то не так, но только толком разобраться с ним мне не удалось. На сайте автор пишет, что скорее всего с первого раза сайт на Xanjax не заработает, и что для полноценной работы с ним нужно думать out of the box. Такой подход мне как-то не по душе.
Уверен, что найдется еще не один аналогичный проект. В любом случае SNAC делался в основном для личного использования и just for fun.
Демо
Сайт работает на SNAC, оттуда же можно его скачать, там же документация. Исходный код есть на Google Code.
27.08.2011 23:11+0400