Ejemplo n.º 1
0
        public void ParsesMultipleSlides()
        {
            var target = new ShowRenderer();
            var actual = target.Render(TestText.MultipleSlides);

            Assert.NotNull(actual.Slides);
            Assert.Equal(4, actual.Slides.Count);

            // One
            var slide = actual.Slides[0];

            Assert.NotNull(slide.Metadata);
            Assert.True(slide.Metadata.TryGetValue("layout", out var layout));
            Assert.Equal("title", layout);
            Assert.Equal("<h1>One</h1>", slide.Html.Trim());

            // Two
            slide = actual.Slides[1];
            Assert.NotNull(slide.Metadata);
            Assert.Empty(slide.Metadata);
            Assert.Equal("<h1>Two</h1>", slide.Html.Trim());

            // Three
            slide = actual.Slides[2];
            Assert.NotNull(slide.Metadata);
            Assert.True(slide.Metadata.TryGetValue("layout", out layout));
            Assert.Equal("blank", layout);
            Assert.Equal("<h1>Three</h1>", slide.Html.Trim());

            // Four
            slide = actual.Slides[3];
            Assert.NotNull(slide.Metadata);
            Assert.Empty(slide.Metadata);
            Assert.Equal("<h1>Four</h1>", slide.Html.Trim());
        }
Ejemplo n.º 2
0
        public void ExtractsShowMetadata()
        {
            var target = new ShowRenderer();
            var actual = target.Render(TestText.Simple);

            Assert.NotNull(actual.Metadata);
            Assert.True(actual.Metadata.TryGetValue("title", out var title));
            Assert.Equal("Pass", title);
            Assert.True(actual.Metadata.TryGetValue("layout", out var layout));
            Assert.Equal("title-and-content", layout);
        }
Ejemplo n.º 3
0
        public void ParsesEmptyMetadata()
        {
            var target = new ShowRenderer();
            var actual = target.Render(TestText.EmptyMetadata);

            Assert.NotNull(actual.Slides);
            Assert.Equal(1, actual.Slides.Count);
            var slide = actual.Slides[0];

            Assert.NotNull(slide.Metadata);
            Assert.Empty(slide.Metadata);

            Assert.Equal("<h1>Pass</h1>", slide.Html.Trim());
        }
Ejemplo n.º 4
0
        public void ParsesSingleSlide()
        {
            var target = new ShowRenderer();
            var actual = target.Render(TestText.Simple);

            Assert.NotNull(actual.Slides);
            Assert.Equal(1, actual.Slides.Count);
            var slide = actual.Slides[0];

            Assert.NotNull(slide.Metadata);
            Assert.True(slide.Metadata.TryGetValue("layout", out var layout));
            Assert.Equal("title", layout);

            Assert.Equal("<h1>Pass</h1>", slide.Html.Trim());
        }
Ejemplo n.º 5
0
        private static async Task <Show> LoadImpl()
        {
            var list = new List <Slide>();
            var path = Path.Combine(Environment.CurrentDirectory, "slides.md");

            if (!File.Exists(path))
            {
                return(new Show(new Dictionary <string, object>(), new List <Slide>(0)));
            }
            var renderer = new ShowRenderer();

            using (var stream = File.OpenRead(path))
                using (var reader = new StreamReader(stream))
                {
                    Markdown = await reader.ReadToEndAsync();
                }
            return(_instance = renderer.Render(Markdown));
        }
Ejemplo n.º 6
0
 public async Task <Show> Start(StartShow startShow, CancellationToken ct = default(CancellationToken))
 {
     var showRenderer = new ShowRenderer();
     var renderedShow = showRenderer.Render(startShow.Markdown);
     var show         = new Show
     {
         Place     = startShow.Place,
         Presenter = startShow.Presenter,
         Slug      = startShow.Slug,
         Time      = startShow.Time,
         Title     = renderedShow.Metadata.GetStringOrDefault("title", startShow.Title),
         Slides    = renderedShow.Slides.Select((s, i) => new Slide
         {
             Layout    = (s.Metadata, renderedShow.Metadata).GetStringOrDefault("layout", "title-and-content"),
             Html      = s.Html,
             Title     = s.Metadata.GetStringOrDefault("title", string.Empty),
             Slug      = startShow.Slug,
             Presenter = startShow.Presenter,
             Number    = i
         }).ToList()