Вёрстка веб-страниц без геморроя §

Как-то давно я наткнулся на страдания одного благородного господина и тут же подумал: а ведь действительно, что-то в цепочке "сохранить->переключить окно->обновить" лишнее. Достаточно оставить лишь первое действия, ведь средства операционной системы вполне позволяют отслеживать состояние файлов в отдельно взятой директории, даже рекурсивно. Осталось лишь придумать, как прикрутить к браузеру какое-нибудь вменяемое средство Inter-Process Communication. Итак, приступим.

Плагин для Firefox с TCP-сокетом §

Устанавливаем в Firefox дополнение Remote Control. На панели аддонов появится кнопочка . Нажимаем кнопочку и Firefox начинает слушать 32000 порт(или любой другой порт, заданный в настройках дополнения) и ожидать входящих команд. Можно зайти в эмулятор терминала, нажать telnet localhost 32000 и посылать браузеру Javascript-команды. Хотя, можно и просто reload.

Watchdog для директории с проектом §

Telnet - это, конечно, хорошо, но нам нужна автоматизация. Для этого мы напишем простой watchdog:

#!/usr/bin/env bash
watchdir=$1

while inotifywait -r -e close_write $watchdir; do
    sleep 0.5
    echo "reload" | nc -q 1 localhost 32000
done

и положим его куда-нибудь в $PATH для удобства.

Запуск всего и вместе §

Настало время применить к делу добытые инструменты. Открываем vim или любой другой редактор, открываем в нём и в браузере нужную нам страничку, нажимаем кнопочку на панели аддонов, натравливаем watchdog на директорию с проектом(webwatchdog /path/to/project/), верстаем, сохраняем и тут же видим результат в окне браузера.

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