Exemple #1
0
        /// <summary>
        ///		Compila los archivos SmallCss
        /// </summary>
        internal override void Process()
        {
            System.Collections.Generic.List <Tuple <string, string, string> > filesCompiled = new System.Collections.Generic.List <Tuple <string, string, string> >();

            // Primero copia los archivos
            for (int index = Data.Files.Count - 1; index >= 0; index--)
            {
                if (Data.Files [index].File.FullFileName.EndsWith(".scss", StringComparison.CurrentCultureIgnoreCase))
                {
                    Pages.FileTargetModel file = Data.Files [index];

                    // Crea el directorio de destino
                    LibCommonHelper.Files.HelperFiles.MakePath(file.GetFullPath(Processor));
                    // Copia el archivo origen en el destino
                    LibCommonHelper.Files.HelperFiles.CopyFile(file.File.FullFileName, file.GetFullFileName(Processor));
                }
            }
            // Después los compila
            for (int index = Data.Files.Count - 1; index >= 0; index--)
            {
                if (Data.Files [index].File.FullFileName.EndsWith(".scss", StringComparison.CurrentCultureIgnoreCase))
                {
                    Pages.FileTargetModel file = Data.Files [index];

                    // Sólo se compila lo que no comienza por "_"
                    if (!file.File.FileName.StartsWith("_"))
                    {
                        // Crea el directorio de destino
                        LibCommonHelper.Files.HelperFiles.MakePath(file.GetFullPath(Processor));
                        // Compila el archivo
                        Compile(file.GetFullFileName(Processor), file.GetFullPath(Processor));
                        // Añade el archivo generado a la colección
                        filesCompiled.Add(new Tuple <string, string, string>(file.File.FullFileName, file.PathTarget,
                                                                             System.IO.Path.GetFileNameWithoutExtension(file.FileNameTarget) + ".css"));
                    }
                }
            }
            // Elimina los archivos intermedios
            for (int index = Data.Files.Count - 1; index >= 0; index--)
            {
                if (Data.Files [index].File.FullFileName.EndsWith(".scss", StringComparison.CurrentCultureIgnoreCase))
                {
                    string fileName = Data.Files [index].GetFullFileName(Processor);

                    // Elimina el archivo copiado al destino (sustituyendo la extensión por .scss)
                    LibCommonHelper.Files.HelperFiles.KillFile(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(fileName),
                                                                                      System.IO.Path.GetFileNameWithoutExtension(fileName) + ".scss"));
                    // Elimina el archivo de la colección (aunque no se haya compilado porque comienza por _)
                    Data.Files.RemoveAt(index);
                }
            }
            // ... y por último añade los archivos compilados a la colección de archivos
            foreach (Tuple <string, string, string> fileCompiled in filesCompiled)
            {
                Data.Files.Add(fileCompiled.Item1, fileCompiled.Item2, fileCompiled.Item3);
            }
        }
Exemple #2
0
 /// <summary>
 ///		Añade las variables índice de la página (siguiente, anterior o superior)
 /// </summary>
 private void AddVariablesPageIndex(VariablesCollection variables, string nameVariableTitle, string nameVariableUrl,
                                    Pages.FileTargetModel page)
 {
     if (page != null && !page.DocumentFileName.IsEmpty())
     {
         variables.Add(nameVariableTitle, page.Title);
         variables.Add(nameVariableUrl, page.DocumentFileName);
     }
     else
     {
         variables.Add(nameVariableTitle, "null");
         variables.Add(nameVariableUrl, "null");
     }
 }
Exemple #3
0
        /// <summary>
        ///		Compila un documento
        /// </summary>
        private void Compile(DocumentModel document, Pages.FileTargetModel file, NhamlCompiler.Variables.VariablesCollection variables)
        {
            // Compila
            document.Content = Data.NhamlCompiler.Compile(document, variables, Processor.Project.ParagraphsSummaryNumber);
            // Graba el documento en corto
            try
            {
                string fileName = file.GetFullFileNameCompiledShort(Processor);

                // Crea el directorio
                LibCommonHelper.Files.HelperFiles.MakePath(System.IO.Path.GetDirectoryName(fileName));
                // Graba el documento
                new DocumentBussiness().Save(document, fileName);
            }
            catch (Exception exception)
            {
                Processor.Errors.Add(file.GetFullFileName(Processor), $"Error al grabar el archivo {document.File.IDFileName}: {exception.Message}");
            }
        }