Emoji & SmartyPants

Emoji

Enable with .UseEmojiAndSmiley() (not included in UseAdvancedExtensions()).

This extension converts emoji shortcodes and (optionally) ASCII smileys into Unicode emoji characters.

Shortcode syntax

:smile: :+1: :heart: :rocket: :warning:

Disable smileys

By default, ASCII smileys like :) are also converted. To use only named shortcodes:

var pipeline = new MarkdownPipelineBuilder()
    .UseEmojiAndSmiley(enableSmileys: false)
    .Build();

Custom emoji mappings

using Markdig.Extensions.Emoji;

var mapping = new EmojiMapping(
    new Dictionary<string, string>
    {
        { ":custom:", "πŸŽ‰" },
        { ":markdig:", "πŸ“" }
    });

var pipeline = new MarkdownPipelineBuilder()
    .UseEmojiAndSmiley(mapping)
    .Build();

Common shortcodes

Shortcode Emoji
:smile: πŸ˜„
:+1: πŸ‘
:heart: ❀️
:rocket: πŸš€
:warning: ⚠️
:star: ⭐
:fire: πŸ”₯
:bug: πŸ›
:bulb: πŸ’‘
:memo: πŸ“

SmartyPants

Enable with .UseSmartyPants() (not included in UseAdvancedExtensions()).

SmartyPants converts ASCII punctuation into typographically correct HTML entities. Inspired by Daring Fireball β€” SmartyPants.

Transformations

Input Output Description
"Hello" "Hello" Smart double quotes
'Hello' 'Hello' Smart single quotes
-- – En dash
--- β€” Em dash
... … Ellipsis
<< Β« Left guillemet
>> Β» Right guillemet

Usage

var pipeline = new MarkdownPipelineBuilder()
    .UseSmartyPants()
    .Build();

var html = Markdown.ToHtml("He said \"Hello\" -- she replied 'Hi'...", pipeline);

Options

using Markdig.Extensions.SmartyPants;

var options = new SmartyPantOptions();
// Configure options as needed

var pipeline = new MarkdownPipelineBuilder()
    .UseSmartyPants(options)
    .Build();