Example #1
0
        private Marker ParseMarker(JsonReader jsonReader)
        {
            Marker result = null;

            jsonReader.Match(JsonToken.StartArray);

            var textTypeIdentifier = (int)(long)jsonReader.Match(JsonToken.Integer);
            var openMarkupIndices  = ParseOpenMarkupIndices(jsonReader);
            var closedMarkups      = (int)(long)jsonReader.Match(JsonToken.Integer);

            if (textTypeIdentifier == 0)
            {
                var text = (string)jsonReader.Match(JsonToken.String);
                result = new MarkupMarker(openMarkupIndices, closedMarkups, text);
            }
            else
            {
                var atomIndex = (int)(long)jsonReader.Match(JsonToken.Integer);
                result = new AtomMarker(openMarkupIndices, closedMarkups, atomIndex);
            }

            jsonReader.Match(JsonToken.EndArray);

            return(result);
        }
        private void RenderAtom(AtomMarker atomMarker)
        {
            var atomType     = _atomTypes.ElementAt(atomMarker.AtomIndex);
            var atomRenderer = _atomRenderers.FirstOrDefault(x => x.CanRender(atomType));

            if (atomRenderer != null)
            {
                atomRenderer.Render(_currentNode, atomType);
            }
            else
            {
                _currentNode.AppendChild(_document.CreateTextNode(""));
            }
        }