private string ProcessInlineStyleContent(MarkupParsingContext context, HtmlAttribute attribute)
{
string styleContent = attribute.Value;
string result = styleContent;
if (_settings.MinifyInlineCssCode && _cssMinifier.IsInlineCodeMinificationSupported)
{
CodeMinificationResult minificationResult = _cssMinifier.Minify(result, true);
if (minificationResult.Errors.Count == 0)
{
result = minificationResult.MinifiedContent ?? string.Empty;
}
if (minificationResult.Errors.Count > 0 || minificationResult.Warnings.Count > 0)
{
string sourceCode = context.SourceCode;
SourceCodeNodeCoordinates tagCoordinates = context.NodeCoordinates;
SourceCodeNodeCoordinates attributeCoordinates = attribute.ValueCoordinates;
foreach (MinificationErrorInfo error in minificationResult.Errors)
{
var relativeErrorCoordinates = new SourceCodeNodeCoordinates(error.LineNumber, error.ColumnNumber);
SourceCodeNodeCoordinates absoluteErrorCoordinates = CalculateAbsoluteInlineCodeErrorCoordinates(
tagCoordinates, attributeCoordinates, relativeErrorCoordinates);
string sourceFragment = SourceCodeNavigator.GetSourceFragment(
sourceCode, absoluteErrorCoordinates);
string message = error.Message.Trim();
WriteError(LogCategoryConstants.CssMinificationError, message, _fileContext,
absoluteErrorCoordinates.LineNumber, absoluteErrorCoordinates.ColumnNumber, sourceFragment);
}
foreach (MinificationErrorInfo warning in minificationResult.Warnings)
{
var relativeErrorCoordinates = new SourceCodeNodeCoordinates(warning.LineNumber, warning.ColumnNumber);
SourceCodeNodeCoordinates absoluteErrorCoordinates = CalculateAbsoluteInlineCodeErrorCoordinates(
tagCoordinates, attributeCoordinates, relativeErrorCoordinates);
string sourceFragment = SourceCodeNavigator.GetSourceFragment(
sourceCode, absoluteErrorCoordinates);
string message = warning.Message.Trim();
WriteWarning(LogCategoryConstants.CssMinificationWarning, message, _fileContext,
absoluteErrorCoordinates.LineNumber, absoluteErrorCoordinates.ColumnNumber, sourceFragment);
}
}
}
else
{
result = result.Trim();
}
result = Utils.RemoveEndingSemicolon(result);
return result;
}