From ec30fb37c12fc5d1a248971831414891cf6dcbe7 Mon Sep 17 00:00:00 2001 From: Anders Waldenborg Date: Mon, 16 Jul 2018 00:14:40 +0200 Subject: Wrap emojis in span nodes (#4759) Text.Pandoc.Emoji now exports `emojiToInline`, which returns a Span inline containing the emoji character and some attributes with metadata (class `emoji`, attribute `data-emoji` with emoji name). Previously, emojis (as supported in Markdown and CommonMark readers, e.g ":smile:") were simply translated into the corresponding unicode code point. By wrapping them in Span nodes, we make it possible to do special handling such as giving them a special font in HTML output. We also open up the possibility of treating them differently when the `--ascii` option is selected (though that is not part of this commit). Closes #4743. --- test/Tests/Readers/Markdown.hs | 4 +++- test/command/4743.md | 25 +++++++++++++++++++++++++ test/command/gfm.md | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 test/command/4743.md (limited to 'test') diff --git a/test/Tests/Readers/Markdown.hs b/test/Tests/Readers/Markdown.hs index e44c7fc19..bc8e55615 100644 --- a/test/Tests/Readers/Markdown.hs +++ b/test/Tests/Readers/Markdown.hs @@ -199,7 +199,9 @@ tests = [ testGroup "inline code" ] , testGroup "emoji" [ test markdownGH "emoji symbols" $ - ":smile: and :+1:" =?> para (text "😄 and 👍") + ":smile: and :+1:" =?> para (spanWith ("", ["emoji"], [("data-emoji", "smile")]) "😄" <> + space <> str "and" <> space <> + spanWith ("", ["emoji"], [("data-emoji", "+1")]) "👍") ] , "unbalanced brackets" =: "[[[[[[[[[[[[hi" =?> para (text "[[[[[[[[[[[[hi") diff --git a/test/command/4743.md b/test/command/4743.md new file mode 100644 index 000000000..49b4b6d59 --- /dev/null +++ b/test/command/4743.md @@ -0,0 +1,25 @@ +Test that emojis are wrapped in Span + +``` +% pandoc -f commonmark+emoji -t native +My:thumbsup:emoji:heart: +^D +[Para [Str "My",Span ("",["emoji"],[("data-emoji","thumbsup")]) [Str "\128077"],Str "emoji",Span ("",["emoji"],[("data-emoji","heart")]) [Str "\10084\65039"]]] +``` + +``` +% pandoc -f markdown+emoji -t native +My:thumbsup:emoji:heart: +^D +[Para [Str "My",Span ("",["emoji"],[("data-emoji","thumbsup")]) [Str "\128077"],Str "emoji",Span ("",["emoji"],[("data-emoji","heart")]) [Str "\10084\65039"]]] +``` + +``` +% pandoc -f commonmark+emoji -t html +:zero: header +============= +My:thumbsup:emoji:heart:x :hearts: xyz +^D +

0️⃣ header

+

My👍emoji❤️x ♥️ xyz

+``` diff --git a/test/command/gfm.md b/test/command/gfm.md index 670f3cd6e..7a7098989 100644 --- a/test/command/gfm.md +++ b/test/command/gfm.md @@ -38,7 +38,7 @@ gfm tests: % pandoc -f gfm -t native My:thumbsup:emoji:heart: ^D -[Para [Str "My\128077emoji\10084\65039"]] +[Para [Str "My",Span ("",["emoji"],[("data-emoji","thumbsup")]) [Str "\128077"],Str "emoji",Span ("",["emoji"],[("data-emoji","heart")]) [Str "\10084\65039"]]] ``` ``` -- cgit v1.2.3