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"); }