<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Compass / Drkcore</title><link>http://blog.kzfmix.com/Compass</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Mon, 11 Mar 2013 20:00:51 +0919</lastBuildDate><item><title>LiveReload(Python)で更新検知させてCompassでコンパイル、ついでにブラウザもリロードする</title><link>http://blog.kzfmix.com/entry/1362998788</link><description>&lt;p&gt;compass watchでコンパイルするたびにブラウザリロードするのが面倒になったので、&lt;a href="https://gist.github.com/dvessel/1610551"&gt;Sass+Compass, Guard, LiveReload&lt;/a&gt;のRubyな組み合わせかなぁと思ったら、&lt;a href="http://livereload.readthedocs.org/en/latest/quickstart.html"&gt;PYthon LiveReload&lt;/a&gt;を見つけたので早速使ってみた。&lt;/p&gt;
&lt;p&gt;Emacsでscssファイルを編集してセーブすると、更新を完治してcompassでコンパイルした後、ブラウザを自動リロードするので、かなり楽ちん。ブラウザ用にモニターが欲しくなる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="livereload" src="http://www.kzfmix.com/images/blog/python_livereload.png" /&gt;&lt;/p&gt;
&lt;p&gt;インストールは&lt;a href="http://livereload.readthedocs.org/en/latest/install.html"&gt;ドキュメント&lt;/a&gt;の通りに。chromeの拡張は入れておく。&lt;/p&gt;
&lt;p&gt;GruntfileはPythonスクリプトなのでかなり自由度が高く、なんでもできそう(growl通知とか)。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kshigeru.blogspot.jp/2013/02/sphinx-livereload.html"&gt;Sphinx と LiveReload を組み合わせる&lt;/a&gt;を参考にCompassの設定をしてみた。ソースコード見てたらCommandCompilerを使ったcompassっていう関数でも作っておけばいいんだろうなぁと思いつつあとでやるかも、やらないかも。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c"&gt;#!/usr/bin/env python&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;livereload.task&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;logging&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;compass&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Popen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;PIPE&lt;/span&gt;
    &lt;span class="n"&gt;argv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;compass&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;compile&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Popen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PIPE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PIPE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PIPE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;communicate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;logging&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sass/screen.scss&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;compass&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Sphinxもブラウザが自動更新したら快適だろうなぁと思ったのでこっちも対応しておく。&lt;/p&gt;</description><pubDate>Mon, 11 Mar 2013 20:00:51 +0919</pubDate><category>Python</category><category>Compass</category></item></channel></rss>