예제 #1
0
        public void InsertNumbering(IElementContext context, Paragraph p)
        {
            var numberingMapper = context.Resolve <INumberingMapper>();

            if (!numberingMapper.IsValid)
            {
                return;
            }

            var paragraphData = numberingMapper.GetNumbering(p);

            if (paragraphData != null)
            {
                context.ViewBag[_config.ParagraphNumberingDataKey] =
                    (paragraphData.NumberingId, paragraphData.LevelIndex);
                context.AddNode(BuildNumberingContainer());

                if (context.TryResolve(out ICssRegistrator cssRegistrator))
                {
                    context.AddNode(BuildNumberingNumber(p, cssRegistrator, paragraphData));
                }
                else
                {
                    context.AddNode(BuildNumberingNumber(p, paragraphData));
                }
            }
        }
예제 #2
0
        public void ProcessParagraph(IElementContext context, Paragraph p)
        {
            if (p != context.RootElement)
            {
                return;
            }
            var containerNode = BuildContainer();

            ProcessParagraphProperties(context, p, containerNode);

            context.AddNode(containerNode);
            context.AddNode(BuildPNode(context, p, containerNode));

            context.ProcessChilden();
        }
예제 #3
0
 private void ReplaceCrossRefBySpacer(IElementContext context, Match m)
 {
     context.AddMutation(new TextDeletion
     {
         Position = m.Index,
         Count    = m.Length,
     });
     context.AddNode(GenerateSpaceNode(m.Index));
 }
예제 #4
0
        private void AddWarningNode(IElementContext context)
        {
            var node = new HtmlNode
            {
                Start      = 0,
                End        = 0,
                TextPrefix = _config.WarningMessage
            };

            node.AddClasses(_config.WarningCssClass);
            context.AddNode(node);
        }
예제 #5
0
        private void InsertBrAtCurrentPosition(IElementContext context)
        {
            if (context.TextIndex == 0)
            {
                FixContainer(context);
            }

            else
            {
                context.AddNode(new HtmlNode
                {
                    Start = context.TextIndex,
                    Tag   = "br"
                });
            }
        }