private void ParseParagraph(HtmlNode node) { if (Logger.IsDebugEnabled) { Logger.Debug(string.Format("paragraph: {0}, {1}", node.Name, node.InnerText)); } _currentParagraph = CreateParagraph(); ParseInlines(node); if (_currentParagraph == null || _currentParagraph.IsEmpty) { return; } if (_currentStyledText == null) { _currentStyledText = CreateStyledText(_currentParagraph); } else { _currentStyledText.Add(_currentParagraph); } SetParagraphKind(_currentParagraph, GetParagraphKind(node)); if (IsPre(node)) { var indent = new IndentParagraphCommand(_currentParagraph); indent.Execute(); } }
private Paragraph CreateParagraph() { var ret = new Paragraph(); if (_contexts.Count > 0) { var context = _contexts.Peek(); SetListItemProps(ret, context.ListKind, context.ListLevel); } if (_indent) { var indent = new IndentParagraphCommand(ret); indent.Execute(); } return(ret); }
private void SetListItemProps(Paragraph para, ListKind kind, int level) { var list = new SetListKindOfParagraphCommand(para, kind); list.Execute(); if (para.ListLevel < level) { for (int i = para.ListLevel; i < level; ++i) { var indent = new IndentParagraphCommand(para); indent.Execute(); } } else if (para.ListLevel > level) { for (int i = para.ListLevel; i > level; --i) { var outdent = new IndentParagraphCommand(para, -1); outdent.Execute(); } } }