hugo-PaperMod/content/post/emoji-support.md
Alexandros 5d9d7786a2 Update HugoBasicExample Content (#45)
Closes #7 , closes #9 

The existing outdated Hugo documentation in this repo will be replaced with the following more-or-less *evergreen* content:

- **Markdown & HTML Syntax Guide** shows whether a theme has decorated basic HTML elements with CSS. Note that I have not included the Markdown syntax for aligning table columns due to: https://github.com/russross/blackfriday/issues/506

- **Rich Content** features a brief showcase of Hugo’s Privacy config and related Simple shortcodes. Note that I have chosen to embed content that showcases typography by several designers in various media including a 360° interactive YouTube video (for inspiration). Also these embeds should be covered under [Fair Use](https://fairuse.stanford.edu/overview/fair-use/what-is-fair-use/) since these are meant for teaching users how these Hugo shortcodes work.

- **Placeholder Content** includes dummy copy along with a diagram and a link with info about the *Van de Graaf Canon* for constructing layouts (that can also be applied to websites). Note: the diagram is Open Source and taken from https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon (there is a link to this page in the caption).

- **Math Typesetting** a brief tutorial about enabling KaTeX in Hugo (the Hugo Docs mention MathJax which is slower)

- **Emoji Support** brief tutorial about Hugo’s built-in Unicode emoji support (as mentioned in the Hugo Docs) but also this includes an original technique for enabling non Unicode emoji in Hugo by using Static Image Replacement with the `replaceRE` function. Note: custom icons are from the Open Source [Mutant Standard](https://mutant.tech) emoji set.

Also note that the **About** Page has been expanded and updated to reflect Hugo’s current features.

---

**NOTES**

Besides quoting from the Hugo Docs (when needed), these content files contain original content written and curated by me and whatever sources I used were modified  to such an extent that there is no need for footnotes.

The author credit for the new content is Hugo Authors since this is meant for the Hugo community -of which I am a current member- furthermore the content also may be modified by someone else in the future, so this credit seems more appropriate than one with my name.

P.S. @digitalcraftsman I have not included a guide about Modular Typography as this would have been quite involved and I am running out of time.

P.S.2 This PR also fixes the path of the `menu.main` `/about/` item see: #41 by @guylyons
2019-03-11 17:58:40 +01:00

3.1 KiB
Raw Blame History

+++ author = "Hugo Authors" title = "Emoji Support" date = "2019-03-05" description = "Guide to emoji usage in Hugo" tags = [ "emoji", ] emoji = " :orc: :orc: :v_paw_fk1: :v_paw_fk1: :cannabis_leaf: :cannabis_leaf:" +++

Emoji can be enabled in a Hugo project in a number of ways.

The emojify function can be called directly in templates or Inline Shortcodes.

To enable emoji globally, set enableEmoji to true in your sites configuration and then you can type emoji shorthand codes directly in content files; e.g.

🙈 :see_no_evil: 🙉 :hear_no_evil: 🙊 :speak_no_evil:


The Emoji cheat sheet is a useful reference for emoji shorthand codes.


N.B. The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.

{{< highlight html >}} .emoji { font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols; } {{< /highlight >}}


If you feel restricted by Unicode Standard emoji and want to use custom emoji the replaceRE function makes it easy to perform Static Image Replacement in Hugo.

In this example we will be using emoji from the Mutant Standard set.

  • Do not use enableEmoji in your Hugo project's configuration

  • Store the icons of the custom emoji set under /static/

  • Use the shorthand codes provided by the custom emoji set in your content files e.g. :orc:

  • In your templates execute the Image Replacement like so:

{{< highlight html >}} {{ replaceRE "(\:([a-zA-Z0-9_]*)\:)" <img class="emoji" src="/${2}.svg" alt="${1}" title="${1}"> .Content | markdownify | safeHTML }} {{< /highlight >}}

{{< css.inline >}}

{{ replaceRE "(\\ :([a-zA-Z0-9_]*)\\: )" `${1}` .Page.Params.emoji | safeHTML }}

{{< /css.inline >}}

N.B. The above RegEx captures all alphanumerics and underscores within two colon : characters (amend it according to your custom emoji set's specification).