Программы для веб дизайна

22 June 2011 #design #web #ruby

В последнее время активно занимаюсь веб-разработкой, создаю темы для Wordpress, изучаю jquery. Все это требует наличия локального веб-сервера, так как работать на удаленном сервере не очень удобно, тем более на сервере, находящемся в работе. Естественно возник вопрос о том, что выбрать в качестве локального веб-сервера.

Можно, конечно, установить весь набор LAMP на локальную машину и при необходимости запускать нужные сервисы. Но в моем случае это несколько обременительно, так как работаю в основном со статическими сайтами. И недавно нашел простое, но очень эффективное решение!

Подготовка

Как не странно, но все необходимые для разработки программы были написаны на Ruby. Поэтому на машине устанавливаем все необходимое (у меня Debian stable, примеры буду приводить для данной операционной системы):

$ sudo aptitude install ruby libzlib-ruby rdoc irb rubygems

База готова, теперь все последующие операции будут проходить через пакетный менеджер Rubygems.

Serve

Serve – это локальный веб-сервер, очень быстрый и с возможностью запуска в любой директории компьютера. Но если быть совсем точным, то это не сам веб-сервер, а обертка к существующим серверам.

По умолчанию Serve использует для своей работы Webrick, который довольно медленно запускается, поэтому сразу же установим и Thin:

$ sudo gem install serve thin

В Ruby есть три веб-сервера, которые можно использовать в своей работе:

  1. Webrick
  2. Thin
  3. Mongrel

Что выбирать, зависит только от нас. Я предпочитаю использовать Thin. После установки его даже не нужно настраивать, Serve автоматически определит его наличие в системе и будет использовать именно его.

Для того, чтобы запустить локальный веб-сервер достаточно перейти в директорию, содержащую файлы и затем дать команду:

$ serve

Если используется Webrick, то придется подождать пару секунд, в случае же использования Thin он сразу становиться активным. И достаточно в браузере перейти по адресу:

http://localhost:4000

Есть возможность изменять используемый порт и ip сервера, но на локальной машине не думаю, что возникнет такая необходимость. При запуске просто после команды указывается либо порт, либо ip-адрес, либо и то и другое сразу:

$ serve 4000               # a custom port

$ serve 192.168.1.6        # a custom IP

$ serve 192.168.1.6:4000   # a custom IP and port

Более подробную информацию можно получить на официальной странице Serve.

Jammit

Для минимизации и комбинирования css и js файлов я долгое время использовал juicer, о чем не так давно писал в своей статье Juicer - комбинируем CSS и JavaScript файлы. Однако после перехода на Debian столкнулся с проблемой ее установки. Пришлось искать альтернативу.

Довольно быстро нашел упоминание на проект Jammit.

Устанавливается так же просто, как и все, что связанно с Ruby:

$ sudo gem install jammit

Теперь в директории нашего проекта достаточно будет создать файл конфигурации assets.yml, в котором указываем ряд параметров:

package_assets:         off         # (on, off, always)
embed_assets:           off         # (on, off, datauri)
compress_assets:        on          # (on, off)
gzip_assets:            off         # (on, off)
template_function:      _.template  # (defaults to the built-in micro-templating)
package_path:           packages    # (defaults to assets)
javascript_compressor:  closure     # (yui, closure)

stylesheets:
master:
    - _css/style.css
    - _css/jquery.fancybox-1.3.4.css
    - _css/ui.totop.css
    - _css/highlight.css

javascripts:
master:
    - _js/jquery.fancybox-1.3.4.js
    - _js/jquery.ui.totop.js
    - _js/main.js

Первые 7 строк описывают, что будет использовать и как будет использоваться, какие пакеты при этом будут использоваться. Самое интересное это блоки stylesheets и javascripts, в которых указывается, какие файлы будут созданы и какие файлы будет использоваться для их генерации.

В приведенном примере используется только компрессия данных и в случае с js для компрессии используется closure. Создается один результирующий css-файл с именем master.css и один результирующий js-файл с именем master.js. Используемые для генерации файлы прописаны в соответствующих блоках, причем важен и порядок их указания. В данном случае файлы стилей и файлы скриптов располагаются в своих отдельных директориях.

Результирующие файлы располагаются в директории assets. Однако все настройки можно изменять путем вызова jammit из командной строки с соответствующими параметрами.

Например:

$ jammit -c _assets.yml -u http://www.juev.ru -o assets

В данном случае используются следующие параметры:

  1. -c указывает на используемый файл конфигурации.
  2. -u используется для указания на текущий домен сайта
  3. -o служит для указания директории в которой будут располагаться результирующие файлы.

Программа не настолько функциональна, как juicer, но работает очень стабильно и хорошо.

Вывод

Таким образом, установив на свой компьютер Ruby мы получаем в свои руки инструменты, на порядок упрощающие работу по созданию веб-сайтов. Здесь и веб-сервера и программы оптимизации файлов стилей и используемых скриптов.

К тому же, именно на Ruby написан Jekyll, который я использую для генерации своего сайта. Все что необходимо веб-разработчику, все это есть. Почему бы не использовать данную возможность?