Mardown에 사용되는 그림 문자 코드의 일람표를 만들어 보려고 합니다.

10082 단어 GoMarkdownemojiidea
이번에는 작은 단락을 좀 쓰자.
Go제 SSG의Hugo는 v0이다.82.0노트 를 발행 하다으로 업데이트가 돼서 봤는데 마크다운이 사용하는 그림 문자 코드의 권한kyokomi/emoji은 포장을 사용했어요.
Markdown에서 사용하는 그림 문자 코드를 GiitHub과 Slack 등에 입력하면:smile:😄 로 변환합니다.
응?kyokomi/emoji 포장이 있으면 그림문자 코드 일람표를 만들 수 있지 않나요?그래서 코드를 썼어요.이런 느낌.
// +build run

package main

import (
    "fmt"
    "sort"
    "strings"

    "github.com/kyokomi/emoji/v2"
)

type EmojiCode struct {
    Code, Emoji string
    Aliases     []string
}

func NewEmoji(e string, cs []string) (EmojiCode, bool) {
    if len(cs) > 0 {
        return EmojiCode{Code: emoji.NormalizeShortCode(cs[0]), Emoji: e, Aliases: cs}, true
    }
    return EmojiCode{}, false
}

func EmojiListAll() []EmojiCode {
    emojiList := []EmojiCode{}
    for e, clist := range emoji.RevCodeMap() {
        if ec, ok := NewEmoji(e, clist); ok {
            emojiList = append(emojiList, ec)
        }
    }
    sort.Slice(emojiList, func(i, j int) bool {
        return strings.Compare(emojiList[i].Code, emojiList[j].Code) < 0
    })
    return emojiList
}

func main() {
    fmt.Println("| Short Code | Graph | Aliases |")
    fmt.Println("| ---------- | :---: | ------- |")
    for _, ec := range EmojiListAll() {
        var bldr strings.Builder
        for _, c := range ec.Aliases {
            if ec.Code != c {
                bldr.WriteString(fmt.Sprintf(" `%s`", c))
            }
        }
        fmt.Printf("| `%s` | %s |%s |\n", ec.Code, ec.Emoji, bldr.String())
    }
}
실제로 움직여 봤더니 3천 줄 이상의 거대한 테이블로 변했다(웃음) 여기에 붙일 수 없어 지스트에 붙인 것이다.
  • Emoji Shortcode List · GitHub
  • 소람하다.
    Zenn의markedown도 그림 문자 코드에 대응할 수 없어요.

    참고 자료


    https://text.baldanders.info/remark/2020/10/emoji-variation-and-markdown/

    좋은 웹페이지 즐겨찾기