@Override public NodeFormatter create(final DataHolder options) { return new EmojiNodeFormatter(options); } }
@Override public void render(Emoji node, NodeRendererContext context, HtmlWriter html) { EmojiNodeRenderer.this.render(node, context, html); } }));
@Override public void render(Emoji node, NodeRendererContext context, HtmlWriter html) { EmojiJiraRenderer.this.render(node, context, html); } }));
public static EmojiResolvedShortcut getEmojiText(String emojiId, EmojiShortcutType useShortcutType, EmojiImageType useImageType, String rootImagePath) { EmojiReference.Emoji emoji = EmojiShortcuts.getEmojiFromShortcut(emojiId); String emojiText = null; boolean isUnicode = false; String imageText = null; if (useImageType.isUnicode && emoji.unicodeChars != null) { unicodeText = EmojiShortcuts.getUnicodeChars(emoji); return new EmojiResolvedShortcut(emoji, emojiText, isUnicode, alt);
synchronized private static void updateEmojiURIs() { if (emojiURIs.isEmpty()) { // create it for (Emoji emoji : EmojiReference.getEmojiList()) { if (emoji.emojiCheatSheetFile != null) { emojiURIs.put(extractFileName(emoji.emojiCheatSheetFile), emoji); } if (emoji.githubFile != null) { emojiURIs.put(extractFileName(emoji.githubFile), emoji); } if (emoji.unicodeSampleFile != null) { emojiURIs.put(extractFileName(emoji.unicodeSampleFile), emoji); } } } } }
public static EmojiResolvedShortcut getEmojiText(Emoji node, EmojiShortcutType useShortcutType, EmojiImageType useImageType, String rootImagePath) { return getEmojiText(node.getText().toString(), useShortcutType, useImageType, rootImagePath); }
public EmojiNodeRenderer(DataHolder options) { myOptions = new EmojiOptions(options); }
public static Emoji getEmojiFromURI(String imageURI) { updateEmojiURIs(); return emojiURIs.get(extractFileName(imageURI)); }
synchronized private static void updateEmojiShortcuts() { if (emojiShortcuts.isEmpty()) { for (Emoji emoji : EmojiReference.getEmojiList()) { if (emoji.shortcut != null) { emojiShortcuts.put(emoji.shortcut, emoji); } } } }
@Override public void extend(HtmlRenderer.Builder rendererBuilder, String rendererType) { if (rendererBuilder.isRendererType("HTML")) { rendererBuilder.nodeRendererFactory(new EmojiNodeRenderer.Factory()); } else if (rendererBuilder.isRendererType("JIRA")) { rendererBuilder.nodeRendererFactory(new EmojiJiraRenderer.Factory()); } } }
public static HashMap<String, Emoji> getEmojiShortcuts() { updateEmojiShortcuts(); return emojiShortcuts; }
@Override public NodeRenderer create(final DataHolder options) { return new EmojiJiraRenderer(options); } }
@Override public void render(Emoji node, NodeFormatterContext context, MarkdownWriter markdown) { EmojiNodeFormatter.this.render(node, context, markdown); } }));
@Override public NodeRenderer create(final DataHolder options) { return new EmojiNodeRenderer(options); } }
@Override public void extend(Parser.Builder parserBuilder) { parserBuilder.customDelimiterProcessor(new EmojiDelimiterProcessor()); }
@Override public void extend(final Formatter.Builder builder) { builder.nodeFormatterFactory(new EmojiNodeFormatter.Factory()); }
private boolean processEmoji(FormattingAppendable out, Element element) { if (element.tagName().equalsIgnoreCase("g-emoji")) { if (element.hasAttr("alias")) { skip(); out.append(':').append(element.attr("alias")).append(':'); return true; } if (element.hasAttr("fallback-src")) { EmojiReference.Emoji emoji = EmojiShortcuts.getEmojiFromURI(element.attr("fallback-src")); if (emoji != null) { skip(); out.append(':').append(emoji.shortcut).append(':'); return true; } } } return false; }
private void render(Emoji node, NodeRendererContext context, HtmlWriter html) { final EmojiResolvedShortcut shortcut = EmojiResolvedShortcut.getEmojiText(node, myOptions.useShortcutType, myOptions.useImageType, myOptions.rootImagePath); if (shortcut.emoji == null || shortcut.emojiText == null) { // output as text html.text(":"); context.renderChildren(node); html.text(":"); } else { if (shortcut.isUnicode) { html.text(shortcut.emojiText); } else { ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, shortcut.emojiText, null); html.attr("src", resolvedLink.getUrl()); html.attr("alt", shortcut.alt); if (!myOptions.attrImageSize.isEmpty()) html.attr("height", myOptions.attrImageSize).attr("width", myOptions.attrImageSize); if (!myOptions.attrAlign.isEmpty()) html.attr("align", myOptions.attrAlign); if (!myOptions.attrImageClass.isEmpty()) html.attr("class", myOptions.attrImageClass); html.withAttr(resolvedLink); html.tagVoid("img"); } } }
public static HashMap<String, Emoji> getEmojiURIs() { updateEmojiShortcuts(); return emojiURIs; }
public static Emoji getEmojiFromShortcut(String shortcut) { updateEmojiShortcuts(); return emojiShortcuts.get(shortcut); }