Пример #1
0
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, LinkInline link)
        {
            var url = link.GetDynamicUrl != null?link.GetDynamicUrl() ?? link.Url : link.Url;

            if (!Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute))
            {
                url = "#";
            }

            if (!url.StartsWith("http"))
            {
                var pageID = url;

                url = new Uri(renderer.BaseUri, url).AbsoluteUri;

                renderer.ChildLinks.Add(new MarkdownDocumentLink()
                {
                    Uri        = new Uri(url),
                    LinkInline = link,
                    PageID     = pageID
                });
            }

            if (link.IsImage)
            {
                renderer.WriteInline(new ImageLinkSimpleX(url));
            }
            else
            {
                renderer.Push(new TextLinkX(renderer, url, link));
                renderer.WriteChildren(link);
                renderer.Pop();
            }
        }
Пример #2
0
        protected override void Write(AggRenderer renderer, ListBlock listBlock)
        {
            //var list = new List();

            //if (listBlock.IsOrdered)
            //{
            //    list.MarkerStyle = TextMarkerStyle.Decimal;

            //    if (listBlock.OrderedStart != null && (listBlock.DefaultOrderedStart != listBlock.OrderedStart))
            //    {
            //        list.StartIndex = int.Parse(listBlock.OrderedStart);
            //    }
            //}
            //else
            //{
            //    list.MarkerStyle = TextMarkerStyle.Disc;
            //}

            renderer.Push(new ListX());             // list);

            foreach (var item in listBlock)
            {
                renderer.Push(new ListItemX(theme));
                renderer.WriteChildren(item as ListItemBlock);
                renderer.Pop();
            }

            renderer.Pop();
        }
Пример #3
0
        public ImageLinkSimpleX(AggRenderer renderer, string imageUrl, string linkUrl = null)
        {
            this.HAnchor    = HAnchor.Stretch;
            this.VAnchor    = VAnchor.Fit;
            this.Selectable = false;

            this.ImageUrl = imageUrl;
            this.LinkUrl  = linkUrl;

            this.aggRenderer = renderer;

            if (linkUrl != null)
            {
                this.Selectable = true;
            }

            imageSequence = new ImageSequence(icon);
            // var sequenceWidget = new ImageSequenceWidget(imageSequence);
            var sequenceWidget = new ResponsiveImageSequenceWidget(imageSequence)
            {
                Cursor = Cursors.Hand,
            };

            sequenceWidget.Click += SequenceWidget_Click;

            this.AddChild(sequenceWidget);
        }
        public ImageLinkSimpleX(AggRenderer renderer, string imageUrl, string linkUrl = null)
        {
            this.HAnchor    = HAnchor.Stretch;
            this.VAnchor    = VAnchor.Fit;
            this.Selectable = false;

            this.ImageUrl = imageUrl;
            this.LinkUrl  = linkUrl;

            this.aggRenderer = renderer;

            if (linkUrl != null)
            {
                this.Selectable = true;
            }

            sequenceWidget = new ResponsiveImageSequenceWidget(new ImageSequence(icon))
            {
                Cursor = Cursors.Hand,
            };

            sequenceWidget.MaximumSizeChanged += (s, e) =>
            {
                this.MinStretchOrFitHorizontal(20 * GuiWidget.DeviceScale, sequenceWidget.MaximumSize.X);
                if (aggRenderer.RootWidget.Parents <MarkdownWidget>().FirstOrDefault() is MarkdownWidget markdownWidget)
                {
                    markdownWidget.Width += 1;
                }
            };

            sequenceWidget.Click += SequenceWidget_Click;

            this.AddChild(sequenceWidget);
        }
Пример #5
0
        protected override void Write(AggRenderer renderer, CodeInline obj)
        {
            //var run = new Run(obj.Content);
            //run.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.CodeStyleKey);

            renderer.WriteInline(new CodeInlineX());
        }
Пример #6
0
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, ParagraphBlock obj)
        {
            var paragraph = new ParagraphX();

            renderer.Push(paragraph);
            renderer.WriteLeafInline(obj);
            renderer.Pop();
        }
Пример #7
0
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, LiteralInline obj)
        {
            if (obj.Content.IsEmpty)
            {
                return;
            }

            renderer.WriteText(ref obj.Content);
        }
Пример #8
0
        protected override void Write(AggRenderer renderer, CodeBlock obj)
        {
            //var paragraph = new Paragraph();
            //paragraph.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.CodeBlockStyleKey);

            renderer.Push(new CodeBlockX(theme));
            renderer.WriteLeafRawLines(obj);
            renderer.Pop();
        }
 public TextLinkX(AggRenderer renderer, string url, LinkInline linkInline)
 {
     this.HAnchor     = HAnchor.Fit;
     this.VAnchor     = VAnchor.Fit;
     this.Cursor      = Cursors.Hand;
     this.linkInline  = linkInline;
     this.url         = url;
     this.aggRenderer = renderer;
 }
Пример #10
0
 protected override void Write(AggRenderer renderer, MatchingTextInline obj)
 {
     renderer.Push(new CodeInlineX(theme)
     {
         BackgroundColor = theme.AccentMimimalOverlay
     });
     renderer.WriteText(obj.MatchingText);
     renderer.Pop();
 }
Пример #11
0
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, QuoteBlock obj)
        {
            // var section = new Section();

            renderer.Push(new QuoteBlockX());             // section);
            renderer.WriteChildren(obj);
            //section.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.QuoteBlockStyleKey);
            renderer.Pop();
        }
        protected override void Write(AggRenderer renderer, ThematicBreakBlock obj)
        {
            //var line = new System.Windows.Shapes.Line { X2 = 1 };
            //line.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.ThematicBreakStyleKey);

            //var paragraph = new Paragraph
            //{
            //    Inlines = { new InlineUIContainer(line) }
            //};

            renderer.WriteBlock(new ThematicBreakX());             // paragraph);
        }
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, LineBreakInline obj)
        {
            if (obj.IsHard)
            {
                renderer.WriteInline(new LineBreakX());                 // new LineBreak());
            }
            else
            {
                // TODO: Remove soft - use WriteText
                renderer.WriteInline(new LineBreakSoftX());                 // new LineBreak());

                // Soft line break.
                renderer.WriteText(" ");
            }
        }
        /// <inheritdoc/>
        protected override void Write(AggRenderer renderer, AutolinkInline link)
        {
            var url = link.Url;

            if (!Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute))
            {
                url = "#";
            }

            //var hyperlink = new Hyperlink
            //{
            //	Command = Commands.Hyperlink,
            //	CommandParameter = url,
            //	NavigateUri = new Uri(url, UriKind.RelativeOrAbsolute),
            //	ToolTip = url,
            //};

            renderer.WriteInline(new AutoLinkInlineX());
        }
        protected override void Write(AggRenderer renderer, EmphasisInline obj)
        {
            //Span span = null;

            //switch (obj.DelimiterChar)
            //{
            //	case '*':
            //	case '_':
            //		span = obj.IsDouble ? (Span)new Bold() : new Italic();
            //		break;
            //	case '~':
            //		span = new Span();
            //		span.SetResourceReference(FrameworkContentElement.StyleProperty, obj.IsDouble ? Styles.StrikeThroughStyleKey : Styles.SubscriptStyleKey);
            //		break;
            //	case '^':
            //		span = new Span();
            //		span.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.SuperscriptStyleKey);
            //		break;
            //	case '+':
            //		span = new Span();
            //		span.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.InsertedStyleKey);
            //		break;
            //	case '=':
            //		span = new Span();
            //		span.SetResourceReference(FrameworkContentElement.StyleProperty, Styles.MarkedStyleKey);
            //		break;
            //}

            if (true)             //span != null)
            {
                renderer.Push(new EmphasisInlineX(obj.DelimiterChar));
                renderer.WriteChildren(obj);
                renderer.Pop();
            }
            else
            {
                renderer.WriteChildren(obj);
            }
        }
        protected override void Write(AggRenderer renderer, HeadingBlock obj)
        {
            //var paragraph = new Paragraph();
            //ComponentResourceKey styleKey = null;

            //switch (obj.Level)
            //{
            //    case 1: styleKey = Styles.Heading1StyleKey; break;
            //    case 2: styleKey = Styles.Heading2StyleKey; break;
            //    case 3: styleKey = Styles.Heading3StyleKey; break;
            //    case 4: styleKey = Styles.Heading4StyleKey; break;
            //    case 5: styleKey = Styles.Heading5StyleKey; break;
            //    case 6: styleKey = Styles.Heading6StyleKey; break;
            //}

            //if (styleKey != null)
            //{
            //    paragraph.SetResourceReference(FrameworkContentElement.StyleProperty, styleKey);
            //}

            renderer.Push(new HeadingRowX());             // paragraph);
            renderer.WriteLeafInline(obj);
            renderer.Pop();
        }
Пример #17
0
 /// <inheritdoc/>
 protected override void Write(AggRenderer renderer, DelimiterInline obj)
 {
     renderer.WriteText(obj.ToLiteral());
     renderer.WriteChildren(obj);
 }