public static Item CreateThemeItem(string sourcePath, string distributionName, LessRegistry.KnownThemeInfo theme, string colorSchemeName, string sizeSchemeName) { var distribution = LessRegistry.CssDistributions[distributionName]; var segments = new List <CacheableSegment>(); if (!distribution.CommonsInExternalFiles) { segments.Add(CreateCommonSegment(distributionName)); } foreach (var moduleName in ResolveModules(distributionName)) { var lessFiles = LessRegistry.GetThemeLessFiles(sourcePath, moduleName, theme.Name, colorSchemeName, sizeSchemeName); if (lessFiles == null) { continue; } segments.Add(new CacheableSegment { Key = String.Join("|", moduleName, theme.Name, colorSchemeName, sizeSchemeName), LessFiles = lessFiles }); } return(new Item { CssFile = new ThemeCssFileInfo(distributionName, theme, colorSchemeName, sizeSchemeName), Segments = segments.ToArray() }); }
static CacheableSegment CreateCommonSegment(string distributionName) { return(new CacheableSegment { Key = distributionName + "_common", LessFiles = LessRegistry.GetCommonLessFiles(ResolveModules(distributionName)) }); }
static void CreateThemes(string sourcePath, string version, string outputPath) { Directory.CreateDirectory(outputPath); var lessCache = new CompiledLessCache(sourcePath); lessCache.Inflate(PersistentCache.Instance); foreach (var distributionName in LessRegistry.CssDistributions.Keys) { var aggregate = LessAggregation.EnumerateAllItems(sourcePath, distributionName); foreach (var item in aggregate) { using (var stream = File.Create(Path.Combine(outputPath, item.CssFile.GetFileName()))) using (var writer = new StreamWriter(stream)) { writer.WriteLine(LicenseHeaderHelper.FormatForCssDistribution(distributionName, version)); foreach (var segment in item.Segments) { writer.WriteLine(lessCache.GetCssForSegment(segment.Key)); } } } } var iconsSrcFolder = LessRegistry.GetIconsPath(sourcePath); var iconsDestFolder = Path.Combine(outputPath, "icons"); Directory.GetFiles(iconsSrcFolder, "*.*", SearchOption.AllDirectories).ToList() .ForEach(fileName => { string relativePath = fileName.Remove(0, iconsSrcFolder.Length); string destFileName = iconsDestFolder + relativePath; if (!Directory.Exists(Path.GetDirectoryName(destFileName))) { Directory.CreateDirectory(Path.GetDirectoryName(destFileName)); } File.Copy(fileName, destFileName, true); }); }
static string[] ResolveModules(string distributionName) { var dist = LessRegistry.CssDistributions[distributionName]; return(LessRegistry.ResolveRequiredModules(dist.Modules)); }
bool IsDefaultSize() { return(LessRegistry.IsDefaultSizeScheme(_sizeSchemeName)); }