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