@Override public void getAstExtra(StringBuilder out) { delimitedSegmentSpanChars(out, openingMarker, text, closingMarker, "text"); }
void render(Emoji node, NodeFormatterContext context, MarkdownWriter markdown) { markdown.append(node.getOpeningMarker()); markdown.appendNonTranslating(node.getText()); markdown.append(node.getClosingMarker()); }
public static EmojiResolvedShortcut getEmojiText(Emoji node, EmojiShortcutType useShortcutType, EmojiImageType useImageType, String rootImagePath) { return getEmojiText(node.getText().toString(), useShortcutType, useImageType, rootImagePath); }
@Override public void process(Delimiter opener, Delimiter closer, int delimitersUsed) { // Normal case, wrap nodes between delimiters in emoji node. // don't allow any spaces between delimiters if (opener.getInput().subSequence(opener.getEndIndex(), closer.getStartIndex()).indexOfAny(BasedSequence.WHITESPACE_CHARS) == -1) { Emoji emoji = new Emoji(opener.getTailChars(delimitersUsed), BasedSequence.NULL, closer.getLeadChars(delimitersUsed)); opener.moveNodesBetweenDelimitersTo(emoji, closer); } else { opener.convertDelimitersToText(delimitersUsed, closer); } } }
private void render(Emoji node, NodeRendererContext context, HtmlWriter html) { Emoji emoji = (Emoji) node; String shortcut = shortCutMap.get(emoji.getText().toString()); if (shortcut == null) { // output as text html.text(":"); context.renderChildren(node); html.text(":"); } else { html.raw(shortcut); } }