mirror of
https://github.com/Wonderfall/hugo-WonderMod.git
synced 2024-11-27 04:51:42 +01:00
5d9d7786a2
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
80 lines
3.1 KiB
Markdown
80 lines
3.1 KiB
Markdown
+++
|
||
author = "Hugo Authors"
|
||
title = "Emoji Support"
|
||
date = "2019-03-05"
|
||
description = "Guide to emoji usage in Hugo"
|
||
tags = [
|
||
"emoji",
|
||
]
|
||
emoji = "<span class='nowrap'> :orc: <code>:orc:</code></span><span class='nowrap'> :v_paw_fk1: <code>:v_paw_fk1:</code></span><span class='nowrap'> :cannabis_leaf: <code>:cannabis_leaf:</code></span>"
|
||
+++
|
||
|
||
Emoji can be enabled in a Hugo project in a number of ways.
|
||
<!--more-->
|
||
The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
|
||
|
||
To enable emoji globally, set `enableEmoji` to `true` in your site’s [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
|
||
|
||
|
||
<p><span class="nowrap"><span class="emojify">🙈</span> <code>:see_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙉</span> <code>:hear_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙊</span> <code>:speak_no_evil:</code></span></p>
|
||
<br>
|
||
|
||
The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) 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`](https://gohugo.io/functions/replacere/#readout) function makes it easy to perform Static Image Replacement in Hugo.
|
||
|
||
In this example we will be using emoji from the [Mutant Standard](https://mutant.tech/) 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 >}}
|
||
<p>{{ replaceRE "(\\ :([a-zA-Z0-9_]*)\\: )" `<img class="emoji" src="/${2}.svg" alt="${1}" title="${1}">` .Page.Params.emoji | safeHTML }}</p>
|
||
<style>
|
||
.emoji {
|
||
display: inline-block;
|
||
margin-left: 3px;
|
||
margin-right: 3px;
|
||
height: 5.5rem;
|
||
width: 5.5rem;
|
||
vertical-align: middle;
|
||
}
|
||
.emojify {
|
||
font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols;
|
||
font-size: 5rem;
|
||
vertical-align: middle;
|
||
}
|
||
@media screen and (max-width:650px) {
|
||
.nowrap {
|
||
display: block;
|
||
margin: 25px 0;
|
||
}
|
||
}
|
||
</style>
|
||
{{< /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). |