Deraen / less4clj

Less compiler for Clj, Lein and Boot, using Less4j
Eclipse Public License 1.0
29 stars 8 forks source link
boot boot-tasks clojure leiningen less less4j webjars

Less4clj

Clojars Project Build Status AppVeyor

Clojure wrapper for Less4j Java implementation of Less compiler. This repository also contains Boot and Leiningen tasks.

For parallel Sass library check sass4clj

ATTENTION: less4j is not maintained and only targets Less ~1.3-1.4. Consider using Less.js if you do not need to read LESS files from the Java classpath.

Features

Boot Clojars Project

Leiningen Clojars Project

Clj

Test in the repository:

clj -m less4clj.main --source-paths test-resources

Check clj -m less4clj.main --help for options.

Import load order

Loading order for @import "{name}"; on file at {path}

  1. Local file at {path}/{name}.less
  2. Classpath resource (io/resource "{name}.less")
  3. Classpath resource (io/resource "{path}/{name}.less")
  4. Webjar asset
    • Resource META-INF/resources/webjars/{package}/{version}/{path} can be referred using {package}/{path}
    • For example @import "bootstrap/less/bootstrap.less"; will import META-INF/resources/webjars/bootstrap/3.3.6/less/bootstrap.less

FAQ

Shadow-cljs integration

Check the example from sass4clj, it should work with less4clj also.

Semantic-UI theme.config

Semantic-UI needs theme.config file in your project. Add this file to your classpath under path META-INF/resources/webjars/semantic-ui/2.2.10/src/theme.config, e.g under resources/ folder.

Log configuration

If you don't have any slf4j implementations, you will see a warning:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

To disable this, add a no operation logger to your project. As this is only required on the build phase, you can use :scope "test" so that the dependency is not transitive and is not included in Uberjar. Alternatively, you can add this dependency to your Leiningen dev profile.

[org.slf4j/slf4j-nop "1.7.13" :scope "test"]

License

Copyright © 2014-2021 Juho Teperi

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.