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); } }
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); }
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(); }
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; }