private synchronized LessEngine lessCompiler() { if (lessCompiler == null) { LessOptions options = new LessOptions(); options.setCompress(true); options.setCharset("UTF-8"); lessCompiler = new LessEngine(options); } return lessCompiler; } }
CommandLineParser cmdParser = new GnuParser(); CommandLine cmdLine = cmdParser.parse(cmdOptions, args); LessOptions options = new LessOptions(); if (cmdLine.hasOption(LessOptions.CHARSET_OPTION)) { options.setCharset(cmdLine .getOptionValue(LessOptions.CHARSET_OPTION)); options.setCompress(true); options.setCss(true); options.setLess(new File(cmdLine .getOptionValue(LessOptions.LESS_OPTION)).toURI() .toURL()); options.setLineNumbers(cmdLine.getOptionValue(LessOptions.LINE_NUMBERS_OPTION)); options.setSourceMap(true); options.setSourceMapRootpath(cmdLine.getOptionValue(LessOptions.SOURCE_MAP_ROOTPATH)); options.setSourceMapBasepath(cmdLine.getOptionValue(LessOptions.SOURCE_MAP_BASEPATH)); options.setSourceMapUrl(cmdLine.getOptionValue(LessOptions.SOURCE_MAP_URL)); if (!src.isEmpty()) { System.out.println(engine.compile(src, null, options.isCompress())); System.exit(0);
CommandLineParser cmdParser = new GnuParser(); CommandLine cmdLine = cmdParser.parse(cmdOptions, args); LessOptions options = new LessOptions(); if (cmdLine.hasOption(LessOptions.CHARSET_OPTION)) { options.setCharset(cmdLine.getOptionValue(LessOptions.CHARSET_OPTION)); options.setCompress(true); options.setCss(true); options.setLess(new File(cmdLine.getOptionValue(LessOptions.LESS_OPTION)).toURI().toURL()); System.out.println(engine.compile(src, options.isCompress())); System.exit(0); System.out.println(engine.compile(new File(files[0]), options.isCompress())); System.exit(0); engine.compile(new File(files[0]), new File(files[1]), options.isCompress()); System.exit(0);
LessOptions options = new LessOptions(); options.setCharset(charset); options.setCss(css); options.setLineNumbers(lineNumbers); options.setOptimization(cache ? 3 : 0); engine = new LessEngine(options);
.getInputStream()), env.getFile(), 1, null); Scriptable lessEnv = (Scriptable) scope.get("lessenv", scope); lessEnv.put("charset", lessEnv, options.getCharset()); lessEnv.put("css", lessEnv, options.isCss()); lessEnv.put("lineNumbers", lessEnv, options.getLineNumbers()); lessEnv.put("optimization", lessEnv, options.getOptimization()); lessEnv.put("sourceMap", lessEnv, options.isSourceMap()); lessEnv.put("sourceMapRootpath", lessEnv, options.getSourceMapRootpath()); lessEnv.put("sourceMapBasepath", lessEnv, options.getSourceMapBasepath()); lessEnv.put("sourceMapURL", lessEnv, options.getSourceMapUrl()); lessEnv.put("loader", lessEnv, Context.javaToJS(loader, scope)); if(options.getPaths() != null) { NativeArray nativeArray = new NativeArray(options.getPaths()); lessEnv.put("paths", lessEnv, nativeArray);
public LessEngine() { this(new LessOptions()); }
@Override public BootstrapLessCompilerSettings setCharset(Charset charset) { this.charset = charset; if (lessOptions != null) { lessOptions.setCharset(charset.name()); } return this; }
public LessEngine(LessOptions options) { try { logger.debug("Initializing LESS Engine."); classLoader = getClass().getClassLoader(); URL less = options.getLess(); URL env = classLoader.getResource("META-INF/env.js"); URL engine = classLoader.getResource("META-INF/engine.js"); URL cssmin = classLoader.getResource("META-INF/cssmin.js"); Context cx = Context.enter(); logger.debug("Using implementation version: " + cx.getImplementationVersion()); cx.setOptimizationLevel(9); Global global = new Global(); global.init(cx); scope = cx.initStandardObjects(global); cx.evaluateReader(scope, new InputStreamReader(env.openConnection().getInputStream()), env.getFile(), 1, null); cx.evaluateString(scope, "lessenv.charset = '" + options.getCharset() + "';", "charset", 1, null); cx.evaluateString(scope, "lessenv.css = " + options.isCss() + ";", "css", 1, null); cx.evaluateReader(scope, new InputStreamReader(less.openConnection().getInputStream()), less.getFile(), 1, null); cx.evaluateReader(scope, new InputStreamReader(cssmin.openConnection().getInputStream()), cssmin.getFile(), 1, null); cx.evaluateReader(scope, new InputStreamReader(engine.openConnection().getInputStream()), engine.getFile(), 1, null); compileString = (Function) scope.get("compileString", scope); compileFile = (Function) scope.get("compileFile", scope); Context.exit(); } catch (Exception e) { logger.error("LESS Engine intialization failed.", e); } }
public String compile(File input, boolean compress) throws LessException, IOException { long time = System.currentTimeMillis(); String location = input.getAbsolutePath(); logger.debug("Compiling File: " + "file:" + location); String source = null; source = loader.load(getFile(location), getPaths(location), options.getCharset()); String result = compiler.compile(source, location, compress); logger.debug("The compilation of '" + input + "' took " + (System.currentTimeMillis() - time) + " ms."); return result; }
public LessEngine(LessOptions options, ResourceLoader loader) { this.options = options; this.loader = loader; try { logger.debug("Initializing LESS Engine."); ClassLoader classLoader = getClass().getClassLoader(); URL less = options.getLess(); URL env = classLoader.getResource("META-INF/env.js"); URL engine = classLoader.getResource("META-INF/engine.js"); URL cssmin = classLoader.getResource("META-INF/cssmin.js"); URL sourceMap = classLoader.getResource("META-INF/source-map.js"); compiler = new RhinoCompiler(options, loader, less, env, engine, cssmin, sourceMap); Context.exit(); } catch (Exception e) { logger.error("LESS Engine intialization failed.", e); } }
private static ResourceLoader defaultResourceLoader(LessOptions options) { ResourceLoader resourceLoader = new ChainedResourceLoader( new FilesystemResourceLoader(), new ClasspathResourceLoader( LessEngine.class.getClassLoader()), new JNDIResourceLoader(), new HTTPResourceLoader()); if (options.isCss()) { return new CssProcessingResourceLoader(resourceLoader); } resourceLoader = new UnixNewlinesResourceLoader(resourceLoader); return resourceLoader; }
public LessEngine() { this(new LessOptions()); }
public String compile(URL input, boolean compress) throws LessException, IOException { long time = System.currentTimeMillis(); String location = input.toString(); logger.debug("Compiling URL: " + location); String source = loader.load(getFile(location), getPaths(location), options.getCharset()); String result = compiler.compile(source, location, compress); logger.debug("The compilation of '" + input + "' took " + (System.currentTimeMillis() - time) + " ms."); return result; }
private synchronized LessEngine lessCompiler() { if (lessCompiler == null) { lessCompiler = new LessEngine(); LessOptions options = new LessOptions(); options.setCompress(true); options.setCharset("UTF-8"); lessCompiler = new LessEngine(options); } return lessCompiler; }
public String run(String content) throws IOException { LessOptions options = new LessOptions(); ResourceLoader resourceLoader = new ScoutClasspathResourceLoader(LessEngine.class.getClassLoader()); LessEngine engine = new LessEngine(options, resourceLoader); try { return engine.compile(content); } catch (LessException e) { throw new IOException("Failed to parse CSS content with LESS", e); } }