Пример #1
0
        private static CompilationResult InnerCompile(string content, bool indentedSyntax, string inputPath,
                                                      string outputPath, string sourceMapPath, CompilationOptions options)
        {
            Initialize();

            CompilationResult result;
            var dataContext = new SassDataContext
            {
                SourceString = content
            };

            BeginCompile(dataContext, indentedSyntax, inputPath, outputPath, sourceMapPath, options);

            try
            {
                _mutex.WaitOne();
                FileManagerMarshaler.SetFileManager(_fileManager);
                SassCompilerProxy.Compile(dataContext);
            }
            finally
            {
                FileManagerMarshaler.UnsetFileManager();
                _mutex.ReleaseMutex();
            }

            result = EndCompile(dataContext);

            return(result);
        }
Пример #2
0
        private static CompilationResult InnerCompile(string content, bool indentedSyntax, string inputPath,
                                                      string outputPath, string sourceMapPath, CompilationOptions options)
        {
            var dataContext = new SassDataContext
            {
                SourceString = content
            };

            BeginCompile(dataContext, indentedSyntax, inputPath, outputPath, sourceMapPath, options);
            SassCompilerProxy.Compile(dataContext);
            CompilationResult result = EndCompile(dataContext);

            return(result);
        }
Пример #3
0
        /// <summary>
        /// "Compiles" a Sass-code to CSS-code
        /// </summary>
        /// <param name="content">Text content written on Sass</param>
        /// <param name="inputPath">Path to input file</param>
        /// <param name="outputPath">Path to output file</param>
        /// <param name="options">Compilation options</param>
        /// <returns>Compilation result</returns>
        public CompilationResult Compile(string content, string inputPath = null, string outputPath = null, CompilationOptions options = null)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                throw new ArgumentException(string.Format(Strings.Common_ArgumentIsEmpty, "content"), "content");
            }

            CompilationResult result;
            var dataContext = new SassDataContext
            {
                SourceString = content
            };

            lock (_compilationSynchronizer)
            {
                BeginCompile(dataContext, inputPath, outputPath, options);

                _sassNativeCompiler.Compile(dataContext);

                result = EndCompile(dataContext);
            }

            return result;
        }