コード例 #1
0
ファイル: udConvert.cs プロジェクト: Euclideon/udSDKSamples
            public udConvertContext(udContext context)
            {
                udError error = udConvert_CreateContext(context.pContext, ref pConvertContext);

                udConvert_GetInfo(pConvertContext, ref pInfo);
                metadata   = new ConversionMetadata(this);
                inputItems = new InputItems(this);
                if (error != udError.udE_Success)
                {
                    throw new UDException(error);
                }
            }
コード例 #2
0
    private static void TestConversion_SameMetadata <TSource, TTarget>(TSource sourceColor)
        where TSource : IColorSpace
        where TTarget : IColorSpace
    {
        var conversionMetadata = new ConversionMetadata(
            CreateWhitePoint(RGBWorkingSpaces.sRGB.WhitePoint),
            CreateRGBPrimaries(RGBWorkingSpaces.sRGB.Primaries),
            CreateCompanding(RGBWorkingSpaces.sRGB.Companding)
            );
        var converter = new ConverterBuilder()
                        .From <TSource>(conversionMetadata)
                        .To <TTarget>(conversionMetadata)
                        .Build();

        var targetColor = converter.Convert(in sourceColor);

        Assert.NotNull(targetColor);
    }
コード例 #3
0
        public void Convert(ConvertibleDocument document, ConversionMetadata conversionMetadata)
        {
            if (string.IsNullOrEmpty(conversionMetadata.OutputPath))
            {
                conversionMetadata.OutputPath = document.BasePath;
            }

            if (Path.GetFullPath(Path.GetDirectoryName(document.AbsolutePath)) != Path.GetFullPath(conversionMetadata.OutputPath))
            {
                this.CopySourceContent(document.AbsolutePath, conversionMetadata.OutputPath);
            }

            if (!string.IsNullOrEmpty(conversionMetadata.MarkdownTemplatePath)
                && Path.GetFullPath(conversionMetadata.MarkdownTemplatePath) != Path.GetFullPath(conversionMetadata.OutputPath))
            {
                this.CopyTemplateContent(conversionMetadata.MarkdownTemplatePath, conversionMetadata.OutputPath);
            }

            this.Render(document, conversionMetadata);
            ProgressNotificationHelper.Stop();
        }
コード例 #4
0
        private string Render(ConvertibleDocument document, ConversionMetadata conversionMetadata)
        {
            var engine = MarkdownEngineFactory.GetEngine(document);
            var fileName = Path.GetFileName(Path.ChangeExtension(document.AbsolutePath, "html"));

            string markdownContent;
            using (var stream = File.Open(document.AbsolutePath, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var reader = new StreamReader(stream, detectEncodingFromByteOrderMarks: true);
                markdownContent = reader.ReadToEnd();
            }

            var outputContent = engine.Transform(markdownContent);
            outputContent = this.ProcessHeaders(outputContent);
            outputContent = this.RemoveCodeSnippetExtraBreakline(outputContent);
            outputContent = this.PrcessCodeSnippetHeaders(outputContent);

            if (conversionMetadata.CodeSnippetsHighlighting)
            {
                outputContent = new CodeSnippetHighlighter(outputContent).Highlight();
            }

            document.Topics.Clear();
            document.Topics.Add(new DocumentTopic { Content = outputContent });

            if (!string.IsNullOrEmpty(conversionMetadata.MarkdownTemplatePath))
            {
                var props = new Dictionary<string, object>();
                props.Add("Document", document);
                props.Add("Content", conversionMetadata.Content);
                props.Add("Package", conversionMetadata.Package);

                outputContent = TextTemplatingHelper.Process(conversionMetadata.MarkdownTemplatePath, props);
            }

            string outputPath = Path.Combine(conversionMetadata.OutputPath, fileName);

            File.WriteAllText(outputPath, outputContent, System.Text.Encoding.UTF8);

            ProgressNotificationHelper.Clear();

            return outputPath;
        }