Search in sources :

Example 1 with DelimitedNode

use of com.vladsch.flexmark.ast.DelimitedNode in project flexmark-java by vsch.

the class StrikethroughSubscriptDelimiterProcessor method process.

@Override
public void process(Delimiter opener, Delimiter closer, int delimitersUsed) {
    // wrap nodes between delimiters in strikethrough.
    DelimitedNode emphasis = delimitersUsed == 1 ? new Subscript(opener.getTailChars(delimitersUsed), BasedSequence.NULL, closer.getLeadChars(delimitersUsed)) : new Strikethrough(opener.getTailChars(delimitersUsed), BasedSequence.NULL, closer.getLeadChars(delimitersUsed));
    opener.moveNodesBetweenDelimitersTo(emphasis, closer);
}
Also used : Strikethrough(com.vladsch.flexmark.ext.gfm.strikethrough.Strikethrough) Subscript(com.vladsch.flexmark.ext.gfm.strikethrough.Subscript) DelimitedNode(com.vladsch.flexmark.ast.DelimitedNode)

Example 2 with DelimitedNode

use of com.vladsch.flexmark.ast.DelimitedNode in project flexmark-java by vsch.

the class Delimiter method moveNodesBetweenDelimitersTo.

public void moveNodesBetweenDelimitersTo(DelimitedNode delimitedNode, Delimiter closer) {
    Node tmp = getNode().getNext();
    while (tmp != null && tmp != closer.getNode()) {
        Node next = tmp.getNext();
        ((Node) delimitedNode).appendChild(tmp);
        tmp = next;
    }
    delimitedNode.setText(input.subSequence(getEndIndex(), closer.getStartIndex()));
    getNode().insertAfter((Node) delimitedNode);
}
Also used : Node(com.vladsch.flexmark.ast.Node) DelimitedNode(com.vladsch.flexmark.ast.DelimitedNode)

Example 3 with DelimitedNode

use of com.vladsch.flexmark.ast.DelimitedNode in project flexmark-java by vsch.

the class EmphasisDelimiterProcessor method process.

@Override
public void process(Delimiter opener, Delimiter closer, int delimitersUsed) {
    DelimitedNode emphasis = delimitersUsed == 1 ? new Emphasis(opener.getTailChars(delimitersUsed), BasedSequence.NULL, closer.getLeadChars(delimitersUsed)) : new StrongEmphasis(opener.getTailChars(delimitersUsed), BasedSequence.NULL, closer.getLeadChars(delimitersUsed));
    opener.moveNodesBetweenDelimitersTo(emphasis, closer);
}
Also used : StrongEmphasis(com.vladsch.flexmark.ast.StrongEmphasis) Emphasis(com.vladsch.flexmark.ast.Emphasis) StrongEmphasis(com.vladsch.flexmark.ast.StrongEmphasis) DelimitedNode(com.vladsch.flexmark.ast.DelimitedNode)

Aggregations

DelimitedNode (com.vladsch.flexmark.ast.DelimitedNode)3 Emphasis (com.vladsch.flexmark.ast.Emphasis)1 Node (com.vladsch.flexmark.ast.Node)1 StrongEmphasis (com.vladsch.flexmark.ast.StrongEmphasis)1 Strikethrough (com.vladsch.flexmark.ext.gfm.strikethrough.Strikethrough)1 Subscript (com.vladsch.flexmark.ext.gfm.strikethrough.Subscript)1