private MarkdownDocument CreateDocument(MarkdownPropertyModel model)
        {
            var result = new MarkdownDocument();

            if (model != null)
            {
                foreach (var block in model.PropertyValue)
                {
                    block.Parent?.Remove(block);
                    result.Add(block);
                }
                result.SetData("filePath", _file);
                result.SetData(Constants.OPathStringDataName, model.PropertyName);
                result.SetData(Constants.OPathLineNumberDataName, model.PropertyNameSource.Line + 1);
            }
            return(result);
        }
Пример #2
0
        public static MarkdownProperty ToMarkdownProperty(this MarkdownPropertyModel model, string originalContent = null)
        {
            var content = string.Empty;

            if (model.PropertyValue?.Count > 0 && originalContent != null)
            {
                var start  = model.PropertyValue.First().Span.Start;
                var length = model.PropertyValue.Last().Span.End - start + 1;
                var piece  = originalContent.Substring(start, length);
                if (!string.IsNullOrWhiteSpace(piece))
                {
                    content = piece;
                }
            }
            return(new MarkdownProperty()
            {
                OPath = model.PropertyName,
                Content = content
            });
        }
Пример #3
0
        private List <MarkdownPropertyModel> PropertySection()
        {
            var result = new List <MarkdownPropertyModel>();

            while (More() && _l2InlineCodeHeadingRule.Parse(Peek(), out var key))
            {
                var item = new MarkdownPropertyModel
                {
                    PropertyName       = key,
                    PropertyNameSource = Next(),
                    PropertyValue      = new List <Block>(),
                };
                Block block;
                while ((block = Peek()) != null && !_inlineCodeHeadingRule.Parse(block, out var _))
                {
                    item.PropertyValue.Add(Next());
                }
                result.Add(item);
            }

            return(result);
        }