/// <summary> /// Carga los archivos de un directorio /// </summary> private SitemapEntriesCollection Load(Pages.FileTargetModelCollection files) { SitemapEntriesCollection entries = new SitemapEntriesCollection(); // Añade los archivos foreach (Pages.FileTargetModel file in files) { string extension = Path.GetExtension(file.FileNameTarget); if (extension.EqualsIgnoreCase(".htm") || extension.EqualsIgnoreCase(".html")) { entries.Add(file.RelativeFullFileNameTarget, file.DateUpdate); } } // Devuelve la colección de entradas return(entries); }
/// <summary> /// Compila los elementos de una categoría /// </summary> internal string CompileItemsCategory(Model.Documents.DocumentModel category, Pages.SectionSourceModel template, Pages.FileTargetModelCollection childs, Pages.FilesIndexComposition fileIndex) { VariablesCollection variables = new VariablesCollection(); // Obtiene las variables de las páginas variables.AddRange(GetVariablesDocumentForCategory(childs)); // Obtiene las varialbes de proyecto variables.AddRange(GetProjectVariables()); variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.Web)); variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.News)); variables.AddRange(GetVariablesDocumentForCategory(childs)); // Obtiene las variables del índice variables.AddRange(GetVariablesIndex(fileIndex)); // Añade las variables de sección para la página variables.AddRange(GetVariablesSectionPerPage(variables)); // Compila el archivo return(Compile(category.File.DocumentFileName, template.Source.Content, variables, 0)); }
/// <summary> /// Obtiene las variables de documentos para una categoría /// </summary> internal VariablesCollection GetVariablesDocumentForCategory(Pages.FileTargetModelCollection files) { List <Pages.DocumentTargetModel> documents = new List <Pages.DocumentTargetModel>(); Application.Bussiness.Documents.DocumentBussiness bussiness = new Application.Bussiness.Documents.DocumentBussiness(); // Carga los documentos foreach (Pages.FileTargetModel file in files) { Pages.DocumentTargetModel document = new Pages.DocumentTargetModel(); // Asigna el archivo destino document.FileTarget = file; // Carga los datos document.Document = bussiness.Load(Processor.Project, file.GetFullFileNameCompiledShort(Processor)); // Añade el documento a la colección documents.Add(document); } // Obtiene las variables return(GetVariablesDocumentForCategory(documents)); }
internal CompilerData(Generator processor) { Files = new Pages.FileTargetModelCollection(processor); Templates = new Pages.SectionSourceModelCollection(processor); NhamlCompiler = new Compiler.NHamlCompilerWrapper(processor, this); }