本文整理汇总了C#中Microsoft.Ajax.Utilities.Minifier类的典型用法代码示例。如果您正苦于以下问题:C# Minifier类的具体用法?C# Minifier怎么用?C# Minifier使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Minifier类属于Microsoft.Ajax.Utilities命名空间,在下文中一共展示了Minifier类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public override IEnumerable<PvcCore.PvcStream> Execute(IEnumerable<PvcCore.PvcStream> inputStreams)
{
var minifyStreams = inputStreams.Where(x => Regex.IsMatch(x.StreamName, @"\.(js|css)$"));
var resultStreams = new List<PvcStream>();
foreach (var inputStream in minifyStreams)
{
var fileContent = new StreamReader(inputStream).ReadToEnd();
var minifier = new Minifier();
var resultContent = inputStream.StreamName.EndsWith(".js") ? minifier.MinifyJavaScript(fileContent) : minifier.MinifyStyleSheet(fileContent);
foreach (var error in minifier.ErrorList)
{
Console.Error.WriteLine(error.ToString());
}
var dirName = Path.GetDirectoryName(inputStream.StreamName);
var fileName = Path.GetFileNameWithoutExtension(inputStream.StreamName) + ".min" + Path.GetExtension(inputStream.StreamName);
var resultStream = PvcUtil.StringToStream(resultContent, Path.Combine(dirName, fileName));
resultStreams.Add(resultStream);
}
return inputStreams.Where(x => !minifyStreams.Any(y => y.StreamName == x.StreamName)).Concat(resultStreams);
}
示例2: MinifyString
public static string MinifyString(string extension, string content)
{
if (extension == ".css")
{
Minifier minifier = new Minifier();
CssSettings settings = new CssSettings();
settings.CommentMode = CssComment.None;
if (WESettings.GetBoolean(WESettings.Keys.KeepImportantComments))
{
settings.CommentMode = CssComment.Important;
}
return minifier.MinifyStyleSheet(content, settings);
}
else if (extension == ".js")
{
Minifier minifier = new Minifier();
CodeSettings settings = new CodeSettings()
{
EvalTreatment = EvalTreatment.MakeImmediateSafe,
PreserveImportantComments = WESettings.GetBoolean(WESettings.Keys.KeepImportantComments)
};
return minifier.MinifyJavaScript(content, settings);
}
return null;
}
示例3: MinifyCss
private static MinificationResult MinifyCss(Config config, string file)
{
string content = File.ReadAllText(file);
var settings = CssOptions.GetSettings(config);
if (config.Minify.ContainsKey("enabled") && config.Minify["enabled"].ToString().Equals("false", StringComparison.OrdinalIgnoreCase))
return null;
var minifier = new Minifier();
// Remove control characters which AjaxMin can't handle
content = Regex.Replace(content, @"[\u0000-\u0009\u000B-\u000C\u000E-\u001F]", string.Empty);
string result = minifier.MinifyStyleSheet(content, settings);
string minFile = GetMinFileName(file);
bool containsChanges = FileHelpers.HasFileContentChanged(minFile, result);
OnBeforeWritingMinFile(file, minFile, containsChanges);
if (containsChanges)
{
File.WriteAllText(minFile, result, new UTF8Encoding(true));
}
OnAfterWritingMinFile(file, minFile, containsChanges);
GzipFile(config, minFile, containsChanges);
return new MinificationResult(result, null);
}
示例4: MinifyJavaScript
private static MinificationResult MinifyJavaScript(Config config, string file)
{
string content = File.ReadAllText(file);
var settings = JavaScriptOptions.GetSettings(config);
if (config.Minify.ContainsKey("enabled") && config.Minify["enabled"].ToString().Equals("false", StringComparison.OrdinalIgnoreCase))
return null;
var minifier = new Minifier();
string ext = Path.GetExtension(file);
string minFile = file.Substring(0, file.LastIndexOf(ext)) + ".min" + ext;
string mapFile = minFile + ".map";
string result = minifier.MinifyJavaScript(content, settings);
bool containsChanges = FileHelpers.HasFileContentChanged(minFile, result);
if (!string.IsNullOrEmpty(result))
{
OnBeforeWritingMinFile(file, minFile, containsChanges);
if (containsChanges)
{
File.WriteAllText(minFile, result, new UTF8Encoding(true));
}
OnAfterWritingMinFile(file, minFile, containsChanges);
GzipFile(config, minFile, containsChanges);
}
return new MinificationResult(result, null);
}
示例5: Minify
/// <summary>
/// Minifies the specified CSS.
/// </summary>
/// <param name="resource">The CSS to minify.</param>
/// <returns>The minified CSS, if minification was successful; otherwise, the original CSS with minification errors appended at the end.</returns>
public string Minify(string resource)
{
if (String.IsNullOrEmpty(resource))
{
return resource;
}
var settings = new CssSettings
{
AllowEmbeddedAspNetBlocks = false
};
var minifier = new Minifier();
try
{
resource = minifier.MinifyStyleSheet(resource, settings);
}
catch
{
var minificationErrors = String.Join(Environment.NewLine, minifier.Errors);
resource = AppendMinificationErrors(resource, minificationErrors);
if (mLogErrors)
{
CoreServices.EventLog.LogEvent("W", "Resource minification", "CssMinificationFailed", minificationErrors);
}
}
return resource;
}
示例6: MinifyFile
private static void MinifyFile(string file, string minFile, CodeSettings settings, bool isBundle)
{
Minifier minifier = new Minifier();
if (!isBundle)
{
minifier.FileName = Path.GetFileName(file);
}
string content = minifier.MinifyJavaScript(File.ReadAllText(file), settings);
if (File.Exists(minFile) && content == File.ReadAllText(minFile))
return;
if (WESettings.GetBoolean(WESettings.Keys.GenerateJavaScriptSourceMaps))
{
content += "\r\n/*\r\n//# sourceMappingURL=" + Path.GetFileName(minFile) + ".map\r\n*/";
}
ProjectHelpers.CheckOutFileFromSourceControl(minFile);
using (StreamWriter writer = new StreamWriter(minFile, false, new UTF8Encoding(true)))
{
writer.Write(content);
}
if (WESettings.GetBoolean(WESettings.Keys.JavaScriptEnableGzipping))
CssSaveListener.GzipFile(file, minFile, content);
}
示例7: ExtractCore
public static void ExtractCore(Translator translatorInstance, string outputPath, bool nodebug = false)
{
var clrPath = translatorInstance.BridgeLocation;
var assembly = System.Reflection.Assembly.UnsafeLoadFrom(clrPath);
// We can only have Beautified, Minified or Both, so this test has inverted logic:
// output beautified if not minified only == (output beautified or output both)
if (translatorInstance.AssemblyInfo.OutputFormatting != JavaScriptOutputType.Minified)
{
ExtractResourceAndWriteToFile(outputPath, assembly, "Bridge.Resources.bridge.js", "bridge.js");
}
if (translatorInstance.AssemblyInfo.GenerateTypeScript)
{
ExtractResourceAndWriteToFile(outputPath, assembly, "Bridge.Resources.bridge.d.ts", "bridge.d.ts");
}
// Like above test: output minified if not beautified only == (out minified or out both)
if (translatorInstance.AssemblyInfo.OutputFormatting != JavaScriptOutputType.Formatted)
{
if (!nodebug)
{
ExtractResourceAndWriteToFile(outputPath, assembly, "Bridge.Resources.bridge.js", "bridge.min.js", (reader) => { var minifier = new Minifier(); return minifier.MinifyJavaScript(reader.ReadToEnd(), new CodeSettings { TermSemicolons = true }); });
}
}
}
示例8: Compile
public string Compile(IEnumerable<string> files)
{
var blocks = new List<Block>();
// ReSharper disable once LoopCanBeConvertedToQuery
foreach (string file in files)
{
var parser = new JSParser(File.ReadAllText(file)) { FileContext = file };
var block = parser.Parse(new CodeSettings
{
EvalTreatment = EvalTreatment.MakeImmediateSafe,
PreserveImportantComments = false
});
if (block != null)
{
blocks.Add(block);
}
}
Block fst = blocks[0];
for (int i = 1; i < blocks.Count; i++)
{
fst.Append(blocks[i]);
}
string sequenceCode = fst.ToCode();
var minifier = new Minifier();
string compiled = minifier.MinifyJavaScript(
sequenceCode,
new CodeSettings
{
EvalTreatment = EvalTreatment.MakeImmediateSafe,
PreserveImportantComments = false
});
return compiled;
}
示例9: MinifierManager
public MinifierManager(CommandLineOptions cmdLineOptions)
: base(cmdLineOptions)
{
_minifier = new Minifier();
SetupDependencies();
StartListener();
}
示例10: Minify
public string Minify(string content)
{
var minifer = new Minifier();
codeSettings = codeSettings ?? new CodeSettings();
codeSettings.SetKnownGlobalNames(globalNames);
return minifer.MinifyJavaScript(content, codeSettings);
}
示例11: CompileAsync
/// <summary>
/// (Awaitable) Compiles content with the give configuration (files and minify flag).
/// </summary>
/// <param name="content">Content to Compile</param>
/// <param name="minify"></param>
/// <returns>string with compiled content</returns>
public Task<string> CompileAsync(string content, bool minify)
{
if (!minify)
return Task.FromResult(content);
var minifier = new Minifier();
return Task.FromResult(minifier.MinifyJavaScript(content));
}
示例12: MinifyCss
/// <summary>
/// Minifies the CSS.
/// </summary>
/// <param name="css">The CSS.</param>
/// <returns></returns>
public static String MinifyCss(String css)
{
if (String.IsNullOrWhiteSpace(css))
return css;
var min = new Minifier();
return min.MinifyStyleSheet(css);
//return Yahoo.Yui.Compressor.CssCompressor.Compress(css);
}
示例13: CompressContent
public string CompressContent(string content, bool removeComments)
{
var settings = new CssSettings();
if(removeComments)
settings.CommentMode = CssComment.None;
var minifier = new Minifier();
return minifier.MinifyStyleSheet(content, settings);
}
示例14: Compress
public string Compress(string content)
{
var cssSettings = new CssSettings();
cssSettings.ColorNames = CssColor.Hex;
cssSettings.ExpandOutput = false;
var value = new Minifier().MinifyStyleSheet(content, cssSettings);
return value;
}
示例15: CompressContent
public string CompressContent(string content)
{
var minifier = new Minifier();
if (settings != null)
{
return minifier.MinifyStyleSheet(content, settings);
}
return minifier.MinifyStyleSheet(content);
}