LoginSignup
4
3

More than 5 years have passed since last update.

Django で LESS を使う

Last updated at Posted at 2015-12-22

インストール

まずは、 node.js と lessc をインストール。ぐぬぬ。

$ brew install node
$ npm install -g less

$ which lessc
/usr/local/bin/lessc

$ lessc
lessc: no input files

usage: lessc [option option=parameter ...] <source> [destination]
...

インストールできました!

PyCharmで Watcher 編 (オススメ)

PyCharm を使われている方は、自動コンパイルを簡単にすることができるのでオススメです。

まず、拡張子 .less のファイルを作ります。

そうすると、自動で 「ファイルウォッチャーに登録する? 」と聞いてきますので、すかさず Add watcher します。

スクリーンショット 2015-12-22 10.46.30.png

すると、Less のウオッチャー登録のウインドウが現れます。

スクリーンショット 2015-12-22 10.46.56.png

先ほどインストールした lessc を認識していますので、このまま OK をクリック。

これでウォッチャーが動作してますので、less を編集し、保存すると自動で css をビルドします。簡単!

スクリーンショット 2015-12-22 10.48.30.png

↑ 表示上は階層構造に見えますが、同一ディレクトリに CSS が自動で作られます。

Django compresser でオンライン変換編

$ pip install django-compressor

INSTALLED_APPScompressor を追加

参考のため、Django oscar の HTML ファイルを見てみると

layout.html
    {% compress css %}
      {% if use_less %}
        <link rel="stylesheet" type="text/less" href="{% static "oscar/less/styles.less" %}" />
      {% else %}
        <link rel="stylesheet" type="text/css" href="{% static "oscar/css/styles.css" %}" />
      {% endif %}
    {% endcompress %}

こうなっています。 use_less は、settings.USE_LESS がそのまま使われます。

このような状態で、settings で

settings.py
COMPRESS_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'compressfiles')

USE_LESS = True

COMPRESS_ENABLED = True

COMPRESS_PRECOMPILERS = (
    ('text/less', 'lessc {infile} {outfile}'),
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder'
)

こう設定すると、compless css ブロック内の less をまとめて ビルドしてくれます。

PyCharm でウォッチする場合と同様、ビルドされるのを意識しなくて良いためこれも便利です。

参考: Settings — Django Compressor 1.6 documentation

Django compresser のマネジメントコマンドでオフライン変換編

マネジメントコマンドでコンパイルする場合は、上記設定に加えて

settings.py
COMPRESS_OFFLINE = True

COMPRESS_OFFLINE_CONTEXT = {
    'STATIC_URL': STATIC_URL,
    'use_less': USE_LESS,
}

この追加設定を加えます。これで、

$ ./manage.py compress

で less のコンパイルを行うようになります。

参考: How to change Oscar’s appearance — django-oscar 1.1 documentation

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3