Эмодзи
Пишите эмодзи кодом или самим символом:
# Launch :rocket: 🎉
Shortcodes :smile: :+1: :heart_eyes: and Unicode 😄 👍🏽 👩💻 🇫🇷 1️⃣.Каждый превращается в изображение Twemoji, которое рисует Marp Core, с той же разметкой, что пишет Marp Core:
<img class="emoji" draggable="false" alt="😄" src="data:image/svg+xml;base64,…" data-marp-twemoji=""/>Без сети
В Marp Core src — это URL на CDN, поэтому презентация, показанная офлайн,
распечатанная или превращённая в PDF на машине без подключения, показывает
битые изображения. go-slides кладёт сам SVG в URI data:. Графика (4009
изображений, Twemoji 17.0.3, Emoji 17.0) встроена в программу из модуля на
чистом Go go-icons/twemoji, занимает 2 МБ
в сжатом виде и читается, только если в презентации есть эмодзи.
Изображения одинаково рисуют HTML-страница, --images/--image, --pdf,
--pptx и --odp: SVG растеризует go-webengine. Все 4009 изображений
разбираются и рисуются его SVG-растеризатором; это проверяет тест. Начиная с
v0.5.0 этот растеризатор — go-gfx/oksvg
v0.2.0: clipPath, fill-rule: evenodd и команды дуг теперь рисуются так же,
как в Chrome, что изменило один Twemoji и 211 других, а SVG-логотипы больше не
искажаются.
Правило, подгоняющее размер эмодзи под текст (img[data-marp-twemoji],
квадрат в один em, выровненный по базовой линии), добавляется к теме так же,
как это делает Marp Core, поэтому его получает и ваша собственная тема.
Что преобразуется
Правила взяты из Marp Core; тест сравнивает их с HTML, который Marp Core 4.4.0 пишет для презентации со всеми случаями.
:smile:, :+1:, :heart_eyes: | 1903 имени из markdown-it-emoji — в тексте, заголовках, ссылках, таблицах, header и footer; не в коде, не в URL и не в alt-тексте изображения |
😄, 👩💻, 🇫🇷, 1️⃣, 👍🏽 | эмодзи Unicode — в тексте и в коде: Marp Core переписывает отрисованный HTML кода |
✔, ©, ™, ▶ | остаются текстом: символы, у которых представление по умолчанию текстовое, становятся эмодзи только с U+FE0F (✔️); ❤ — исключение |
☺︎ | остаётся текстом: U+FE0E после эмодзи просит простой глиф |
12:30:45, :not_a_name: | остаются как написано |
id заголовка и оглавление используют эмодзи, а не имя кода:
у # Launch :rocket: будет id launch-%F0%9F%9A%80, как в Marp.
Там, где go-slides отличается от Marp Core, он преобразует больше: ✌️ ☝️ ✍️ 🏋️
и ещё несколько символов с текстовым представлением по умолчанию, которые
emoji-regex в Marp Core оставляет текстом, а также горстку последовательностей,
которые рисует Twemoji, но которых нет в списке Unicode.
Отключение
--no-emoji (в коде — slides.Config{NoEmoji: true}) оставляет коды и эмодзи
Unicode тем текстом, каким они были написаны; это emoji: false из Marp Core.
Авторство
Графика — Twemoji, Copyright 2020 Twitter, Inc и другие участники, лицензия CC-BY 4.0; проект продолжает jdecked/twemoji. Презентация, которая их показывает, должна указывать авторство, например в нижнем колонтитуле или на заключительном слайде. Таблица кодов взята из markdown-it-emoji (MIT).
Created on by tannevaled
Modified on by tannevaled