Exemple #1
0
 public bool IsSameListAs(DeltaInsertOp op)
 {
     return(op.Attributes.List.HasValue &&
            (Attributes.List == op.Attributes.List ||
             op.IsACheckList() && IsACheckList()));
 }
Exemple #2
0
        public IList <TagKeyValue> GetTagAttributes()
        {
            if (_op.Attributes.Code == true && !_op.IsLink())
            {
                return(new TagKeyValue[0]);
            }

            var result = new List <TagKeyValue>();
            Action <string, string> add = (string key, string value) =>
                                          result.Add(new TagKeyValue(key, value));

            var classes = GetCssClasses();

            if (classes.Any())
            {
                add("class", String.Join(" ", classes));
            }

            if (_op.IsImage())
            {
                if (!String.IsNullOrEmpty(_op.Attributes.Width))
                {
                    add("width", _op.Attributes.Width);
                }
                add("src", UrlHelpers.Sanitize(((InsertDataImage)_op.Insert).Value ?? ""));
                return(result);
            }

            if (_op.IsACheckList())
            {
                add("data-checked", _op.IsCheckedList() ? "true" : "false");
                return(result);
            }

            if (_op.IsFormula())
            {
                return(result);
            }

            if (_op.IsVideo())
            {
                add("frameborder", "0");
                add("allowfullscreen", "true");
                add("src", UrlHelpers.Sanitize(((InsertDataVideo)_op.Insert).Value ?? ""));
                return(result);
            }

            if (_op.IsMentions())
            {
                var mention = _op.Attributes.Mention;
                if (!String.IsNullOrEmpty(mention.Class))
                {
                    add("class", mention.Class);
                }
                if (!String.IsNullOrEmpty(mention.EndPoint) && !String.IsNullOrEmpty(mention.Slug))
                {
                    add("href", EncodeLink(mention.EndPoint + "/" + mention.Slug));
                }
                else
                {
                    add("href", "about:blank");
                }
                if (!String.IsNullOrEmpty(mention.Target))
                {
                    add("target", mention.Target);
                }
                return(result);
            }

            var styles = GetCssStyles();

            if (styles.Any())
            {
                add("style", String.Join(";", styles));
            }

            if (_op.IsContainerBlock())
            {
                return(result);
            }

            if (_op.IsLink())
            {
                add("href", EncodeLink(_op.Attributes.Link));
                var target = String.IsNullOrEmpty(_op.Attributes.Target) ?
                             _options.LinkTarget : _op.Attributes.Target;
                if (!String.IsNullOrEmpty(target))
                {
                    add("target", target);
                }
                if (!String.IsNullOrEmpty(_options.LinkRel) &&
                    IsValidRel(_options.LinkRel))
                {
                    add("rel", _options.LinkRel);
                }
            }

            return(result);
        }