public void ToEdit(IValueProvider valueProvider) { var htmlFiles = valueProvider.GetFiles(Entities.FileType.Html); List <FileContext> files = new List <FileContext>(); var searcher = new HtmlJsFileSearcher(); foreach (var item in htmlFiles) { var list = searcher.Search(item.Tree); files.AddRange(list); } var uniqFiles = files.Distinct(); File commonFile = new File(); commonFile.FileName = IO.Path.GetRandomFileName(); commonFile.SearchName = commonFile.FileName; commonFile.Type = FileType.Js; ProgramContext program = new ProgramContext(null, 0); SourceElementsContext elems = new SourceElementsContext(program, 0); foreach (var item in uniqFiles) { var tree = item.File.Tree as ProgramContext; var treeElems = tree.sourceElements().sourceElement(); foreach (var elem in treeElems) { elems.AddChild(elem); } valueProvider.RemoveFile(item.File.FileName); } program.AddChild(elems); commonFile.Tree = program; valueProvider.AddFile(commonFile); HtmlAddScriptEditor htmlAdsScript = new HtmlAddScriptEditor(); foreach (var item in htmlFiles) { htmlAdsScript.Add(item.Tree, new File[] { commonFile }); } foreach (var item in files) { item.Context.Remove(); } }
public void ToEdit(IValueProvider valueProvider) { var htmlFiles = valueProvider.GetFiles(Entities.FileType.Html); List <FileContext> files = new List <FileContext>(); var searcher = new HtmlStyleFilesSearcher(); foreach (var item in htmlFiles) { var list = searcher.Search(item.Tree); files.AddRange(list); } var uniqFiles = files.Distinct(); File commonFile = new File(); commonFile.FileName = IO.Path.GetRandomFileName() + ".css"; commonFile.SearchName = commonFile.FileName; commonFile.Type = FileType.Css; StylesheetContext context = new StylesheetContext(null, 0); foreach (var item in uniqFiles) { var style = item.File.Tree as StylesheetContext; var nesteds = style.nestedStatement(); foreach (var nested in nesteds) { nested.parent = context; context.AddChild(nested); } valueProvider.RemoveFile(item.File.FileName); } commonFile.Tree = context; valueProvider.AddFile(commonFile); HtmlAddStyleEditor htmlAddStyle = new HtmlAddStyleEditor(); foreach (var item in htmlFiles) { htmlAddStyle.Add(item.Tree, new File[] { commonFile }); } foreach (var item in files) { item.Context.Remove(); } }
public void ToEdit(IValueProvider valueProvider) { var htmlFiles = valueProvider.GetFiles(Entities.FileType.Html); var editor = new HtmlJsLoader(); foreach (var item in htmlFiles) { editor.Replace(item.Tree, valueProvider); } var jsFiles = valueProvider.GetFiles(Entities.FileType.Js); foreach (var item in jsFiles) { if (item.IsExternal) { valueProvider.RemoveFile(item.SearchName); } } }