private Configuration lessConf(final Config conf) { Configuration configuration = new Configuration(); configuration.setCompressing(get("compressing")); SourceMapConfiguration sourceMap = configuration.getSourceMapConfiguration(); Map<String, Object> map = get("sourceMap"); if (map == null) { sourceMap.setLinkSourceMap(false); } else { sourceMap.setEncodingCharset( map.getOrDefault("encodingCharset", conf.getAnyRef("application.charset")).toString()); sourceMap.setIncludeSourcesContent((Boolean) map.getOrDefault("includeSourcesContent", true)); sourceMap.setInline((Boolean) map.getOrDefault("inline", true)); sourceMap.setRelativizePaths((Boolean) map.getOrDefault("relativizePaths", true)); sourceMap.setLinkSourceMap((Boolean) map.getOrDefault("linkSourceMap", true)); } return configuration; }
private Configuration options(final boolean dev, final Config conf) { Configuration configuration = new Configuration(); boolean compressing = conf.hasPath("compressing") ? conf.getBoolean("compressing") : !dev; configuration.setCompressing(compressing); SourceMapConfiguration sourceMap = configuration.getSourceMapConfiguration(); sourceMap.setEncodingCharset(conf.getString("sourceMap.encodingCharset")); sourceMap.setIncludeSourcesContent(conf.getBoolean("sourceMap.includeSourcesContent")); sourceMap.setInline(conf.getBoolean("sourceMap.inline")); sourceMap.setRelativizePaths(conf.getBoolean("sourceMap.relativizePaths")); boolean linkSourceMap = conf.hasPath("sourceMap.linkSourceMap") ? conf.getBoolean("sourceMap.linkSourceMap") : dev; sourceMap.setLinkSourceMap(linkSourceMap); return configuration; }
private void handleSourceMapLink(ASTCssNode cssAst, StringBuilder css, Configuration options, LessSource source, String sourceMap) { String cssResultLocation = getCssResultLocationName(options, source); LessCompiler.SourceMapConfiguration sourceMapConfiguration = options.getSourceMapConfiguration(); if (!sourceMapConfiguration.shouldLinkSourceMap() && !sourceMapConfiguration.isInline()) return; if (!sourceMapConfiguration.isInline() && cssResultLocation == null) { problemsHandler.warnSourceMapLinkWithoutCssResultLocation(cssAst); return; } addNewLine(css); String commentText; String encodingCharset = sourceMapConfiguration.getEncodingCharset(); if (sourceMapConfiguration.isInline()) { String encodedSourceMap = PrintUtils.base64Encode(sourceMap, encodingCharset, problemsHandler, cssAst); commentText = "/*# sourceMappingURL=data:application/json;base64," + encodedSourceMap + " */"; } else { // compose linking comment String url = sourceMapConfiguration.getSourceMapNameGenerator().generateUrl(cssResultLocation); String encodedUrl = PrintUtils.urlEncode(url, encodingCharset, problemsHandler, cssAst); commentText = "/*# sourceMappingURL=" + encodedUrl + " */"; } css.append(commentText).append("\n"); }
/** * Compile the LESS code and get the included files from the skin templates. * @param lessCode code to compile * @param skin skin holding the templates * @param inlineSourceMap whether to create inline sourcemaps in the generated css * @return the results of the LESS compilation * @throws Less4jException if problems occur */ public String compile(String lessCode, String skin, boolean inlineSourceMap) throws Less4jException { LessCompiler lessCompiler = new DefaultLessCompiler(); LessCompiler.Configuration options = new LessCompiler.Configuration(); options.setCompressing(true); options.getSourceMapConfiguration().setInline(inlineSourceMap); options.getSourceMapConfiguration().setIncludeSourcesContent(true); LessSource lessSource = new CustomContentLESSSource(lessCode, templateManager, skinManager.getSkin(skin)); LessCompiler.CompilationResult lessResult = lessCompiler.compile(lessSource, options); return lessResult.getCss(); } }
private LessCompiler.SourceMapConfiguration getSourceMapConfiguration(LessCompiler.Configuration options) { return options != null ? options.getSourceMapConfiguration() : new LessCompiler.SourceMapConfiguration(); }
private void configureSourceMap(Configuration configuration) { SourceMapConfiguration sourceMaps = configuration.getSourceMapConfiguration(); sourceMaps.setLinkSourceMap(false); sourceMaps.setInline(inline); }
private CompilationResult compile(File lessFile, File cssFile, boolean generateSourceMap, boolean isCompressing, boolean ieCompatibility) throws Less4jException { Configuration configuration = new Configuration(); configuration.setCssResultLocation(cssFile); configuration.setCompressing(isCompressing); configuration.setIeCompatibility(ieCompatibility); configuration.getSourceMapConfiguration().setLinkSourceMap(generateSourceMap && cssFile != null); DefaultLessCompiler compiler = new DefaultLessCompiler(); return compiler.compile(lessFile, configuration); }