static void textBaseWrap(final NodeTracker state, Node lastNonAttributesNode, final Node lastNode, final TextBase textBase) { while (lastNonAttributesNode != lastNode) { Node nextNode = lastNonAttributesNode.getNext(); lastNonAttributesNode.unlink(); state.nodeRemoved(lastNonAttributesNode); textBase.appendChild(lastNonAttributesNode); lastNonAttributesNode = nextNode; } textBase.setCharsFromContent(); lastNode.insertBefore(textBase); state.nodeAddedWithDescendants(textBase); }
state.nodeRemoved(node);
next = next.getNext(); tmp.unlink(); state.nodeRemoved(tmp); } else { next.setChars(next.getChars().trimStart()); previous = previous.getPrevious(); tmp.unlink(); state.nodeRemoved(tmp); } else { previous.setChars(previous.getChars().trimEnd());
state.nodeRemoved(node); previous.insertAfter(mediaLink); state.nodeAddedWithChildren(mediaLink); if (previous.getChars().length() == 0) { previous.unlink(); state.nodeRemoved(previous);
Node next = removeNode.getNext(); removeNode.unlink(); state.nodeRemoved(removeNode); state.nodeRemoved(node);
@Override public void process(NodeTracker state, Node node) { if (node instanceof Link) { Node previous = node.getPrevious(); if (previous instanceof Text) { final BasedSequence chars = previous.getChars(); if (chars.endsWith("@") && chars.isContinuedBy(node.getChars())) { int prevBackslash = chars.subSequence(0, chars.length() - 1).countTrailing('\\'); if ((prevBackslash & 1) == 0) { // trim previous chars to remove '@' previous.setChars(chars.subSequence(0, chars.length() - 1)); YouTubeLink youTubeLink = new YouTubeLink((Link) node); youTubeLink.takeChildren(node); node.unlink(); previous.insertAfter(youTubeLink); state.nodeRemoved(node); state.nodeAddedWithChildren(youTubeLink); } } } } }
previous.insertBefore(textBase); previous.unlink(); state.nodeRemoved(previous);
state.nodeRemoved(node);
static void textBaseWrap(final NodeTracker state, Node lastNonAttributesNode, final Node lastNode, final TextBase textBase) { while (lastNonAttributesNode != lastNode) { Node nextNode = lastNonAttributesNode.getNext(); lastNonAttributesNode.unlink(); state.nodeRemoved(lastNonAttributesNode); textBase.appendChild(lastNonAttributesNode); lastNonAttributesNode = nextNode; } textBase.setCharsFromContent(); lastNode.insertBefore(textBase); state.nodeAddedWithDescendants(textBase); }
next = next.getNext(); tmp.unlink(); state.nodeRemoved(tmp); } else { next.setChars(next.getChars().trimStart()); previous = previous.getPrevious(); tmp.unlink(); state.nodeRemoved(tmp); } else { previous.setChars(previous.getChars().trimEnd());
@Override public void process(NodeTracker state, Node node) { if (node instanceof Link) { Node previous = node.getPrevious(); if (previous instanceof Text) { final BasedSequence chars = previous.getChars(); if (chars.endsWith("@") && chars.isContinuedBy(node.getChars())) { int prevBackslash = chars.subSequence(0, chars.length() - 1).countTrailing('\\'); if ((prevBackslash & 1) == 0) { // trim previous chars to remove '@' previous.setChars(chars.subSequence(0, chars.length() - 1)); YouTubeLink youTubeLink = new YouTubeLink((Link) node); youTubeLink.takeChildren(node); node.unlink(); previous.insertAfter(youTubeLink); state.nodeRemoved(node); state.nodeAddedWithChildren(youTubeLink); } } } } }
Node next = removeNode.getNext(); removeNode.unlink(); state.nodeRemoved(removeNode); state.nodeRemoved(node);
previous.insertBefore(textBase); previous.unlink(); state.nodeRemoved(previous);