less4clj
less4clj copied to clipboard
Less compiler for Clj, Lein and Boot, using Less4j
Less4clj
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
- Load imports directly from Java classpath (e.g. Webjars)
- Add dependency
[org.webjars.bower/bootstrap "3.3.6"]
to use Bootstrap
- Add dependency
Boot 
- Provides the
less
task (deraen.boot-less/less
) - Select main files using
inputs
option - or, for each
.main.less
file in the fileset creates equivalent.css
file. - Check
boot less --help
for task options.
Leiningen 
- Provides the
less4clj
task - Select main files using
inputs
option - or, for each
.main.less
file in source-dirs creates equivalent.css
file. - Check
lein help less4clj
for options.
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}
- Local file at
{path}/{name}.less
- Classpath resource
(io/resource "{name}.less")
- Classpath resource
(io/resource "{path}/{name}.less")
- Webjar asset
- Resource
META-INF/resources/webjars/{package}/{version}/{path}
can be referred using{package}/{path}
- For example
@import "bootstrap/less/bootstrap.less";
will importMETA-INF/resources/webjars/bootstrap/3.3.6/less/bootstrap.less
- Resource
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.