1
0
Fork 0
mirror of https://github.com/emojisum/emojisum.git synced 2025-07-17 06:00:29 +00:00

emoji: fix the template output for markdown

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
Vincent Batts 2017-02-07 14:09:07 -05:00
parent fdb51823d7
commit a9e159d830
Signed by: vbatts
GPG key ID: 10937E57733F1362
8 changed files with 855 additions and 301 deletions

View file

@ -2,12 +2,12 @@
default: map_gen.go list.md default: map_gen.go list.md
.PHONY: map_gen.go .PHONY: map_gen.go
map_gen.go: map_json.go map.go emojimap.json map_gen.tmpl map_gen.go: map_json.go map.go emojimap.json
rm -f map_gen.go rm -f $@
go run map_json.go -template map_gen.tmpl -in ./emojimap.json -out ./$@ go run map_json.go -template map_gen -in ./emojimap.json -out ./$@
.PHONY: map_gen.go .PHONY: list.md
list.md: map_json.go map.go emojimap.json markdown_gen.tmpl list.md: map_json.go map.go emojimap.json
rm -f map_gen.go rm -f $@
go run map_json.go -template markdown_gen.tmpl -in ./emojimap.json -out ./$@ go run map_json.go -template markdown_gen -in ./emojimap.json -out ./$@

View file

@ -133,7 +133,7 @@
[":man:"], [":man:"],
[":maple_leaf:"], [":maple_leaf:"],
[":mask:"], [":mask:"],
[":metal:"], [":metal:", "U+1F918"],
[":microscope:"], [":microscope:"],
[":moneybag:"], [":moneybag:"],
[":monkey:"], [":monkey:"],

View file

@ -1,3 +1,4 @@
## Emoji Map list ## Emoji Map list
_THIS FILE IS GENERATED. DO NOT EDIT._ _THIS FILE IS GENERATED. DO NOT EDIT._
@ -145,7 +146,7 @@ draft+1
* `128` -- :man: `:man:` * `128` -- :man: `:man:`
* `129` -- :maple_leaf: `:maple_leaf:` * `129` -- :maple_leaf: `:maple_leaf:`
* `130` -- :mask: `:mask:` * `130` -- :mask: `:mask:`
* `131` -- :metal: `:metal:` * `131` -- :metal: `:metal:` U+1F918
* `132` -- :microscope: `:microscope:` * `132` -- :microscope: `:microscope:`
* `133` -- :moneybag: `:moneybag:` * `133` -- :moneybag: `:moneybag:`
* `134` -- :monkey: `:monkey:` * `134` -- :monkey: `:monkey:`

View file

@ -1,5 +1,7 @@
package emoji package emoji
import "strings"
// Map returns the emoji at the provided position. // Map returns the emoji at the provided position.
// This list is from 0-255 // This list is from 0-255
func Map(b byte) Words { func Map(b byte) Words {
@ -25,3 +27,13 @@ type VersionedMap struct {
// Words are a set of options to represent an emoji. // Words are a set of options to represent an emoji.
// Possible options could be the ":colon_notion:" or a "U+26CF" style codepoint. // Possible options could be the ":colon_notion:" or a "U+26CF" style codepoint.
type Words []string type Words []string
// IsColonNotation checks for whether a word is the :colon_notion: of emoji
func IsColonNotation(word string) bool {
return strings.HasPrefix(word, ":") && strings.HasSuffix(word, ":")
}
// IsCodepoint checks for whether a word is the "U+1234" codepoint style of emoji
func IsCodepoint(word string) bool {
return strings.HasPrefix(strings.ToUpper(word), "U+")
}

525
emoji/map_gen.go Normal file
View file

@ -0,0 +1,525 @@
// THIS FILE IS GENERATED. DO NOT EDIT.
package emoji
func init() {
mapGen = VersionedMap{
Description: "This ordered list of emojiwords is the conventional order for the practice of conveying checksums with emoji. Each position provides the alternative for resolving the desired emoji.",
Version: "draft+1",
EmojiWords: []Words{
Words{ ":+1:",
},
Words{ ":8ball:",
},
Words{ ":airplane:",
},
Words{ ":alien:",
},
Words{ ":anchor:",
},
Words{ ":angel:",
},
Words{ ":angry:",
},
Words{ ":ant:",
},
Words{ ":apple:",
},
Words{ ":art:",
},
Words{ ":baby:",
},
Words{ ":baby_bottle:",
},
Words{ ":back:",
},
Words{ ":bamboo:",
},
Words{ ":banana:",
},
Words{ ":barber:",
},
Words{ ":bathtub:",
},
Words{ ":beer:",
},
Words{ ":bell:",
},
Words{ ":bicyclist:",
},
Words{ ":bird:",
},
Words{ ":birthday:",
},
Words{ ":blossom:",
},
Words{ ":blue_car:",
},
Words{ ":boar:",
},
Words{ ":bomb:",
},
Words{ ":boom:",
},
Words{ ":bow:",
},
Words{ ":boy:",
},
Words{ ":broken_heart:",
},
Words{ ":bulb:",
},
Words{ ":bus:",
},
Words{ ":cactus:",
},
Words{ ":calendar:",
},
Words{ ":camera:",
},
Words{ ":candy:",
},
Words{ ":cat:",
},
Words{ ":cherries:",
},
Words{ ":children_crossing:",
},
Words{ ":chocolate_bar:",
},
Words{ ":clap:",
},
Words{ ":cloud:",
},
Words{ ":clubs:",
},
Words{ ":cn:",
},
Words{ ":coffee:",
},
Words{ ":construction:",
},
Words{ ":cookie:",
},
Words{ ":copyright:",
},
Words{ ":corn:",
},
Words{ ":cow:",
},
Words{ ":crescent_moon:",
},
Words{ ":crown:",
},
Words{ ":cry:",
},
Words{ ":crystal_ball:",
},
Words{ ":curly_loop:",
},
Words{ ":dancers:",
},
Words{ ":dash:",
},
Words{ ":de:",
},
Words{ ":diamonds:",
},
Words{ ":dog:",
},
Words{ ":doughnut:",
},
Words{ ":dragon:",
},
Words{ ":dvd:",
},
Words{ ":ear:",
},
Words{ ":eggplant:",
},
Words{ ":elephant:",
},
Words{ ":end:",
},
Words{ ":envelope:",
},
Words{ ":es:",
},
Words{ ":eyes:",
},
Words{ ":facepunch:",
},
Words{ ":family:",
},
Words{ ":ferris_wheel:",
},
Words{ ":finnadie:",
},
Words{ ":fire:",
},
Words{ ":fireworks:",
},
Words{ ":floppy_disk:",
},
Words{ ":football:",
},
Words{ ":fork_and_knife:",
},
Words{ ":four_leaf_clover:",
},
Words{ ":fr:",
},
Words{ ":fries:",
},
Words{ ":frog:",
},
Words{ ":fu:",
},
Words{ ":full_moon:",
},
Words{ ":game_die:",
},
Words{ ":eu:",
},
Words{ ":gem:",
},
Words{ ":girl:",
},
Words{ ":goat:",
},
Words{ ":grimacing:",
},
Words{ ":grin:",
},
Words{ ":guardsman:",
},
Words{ ":guitar:",
},
Words{ ":gun:",
},
Words{ ":hamburger:",
},
Words{ ":hammer:",
},
Words{ ":hamster:",
},
Words{ ":hear_no_evil:",
},
Words{ ":heart:",
},
Words{ ":heart_eyes_cat:",
},
Words{ ":hearts:",
},
Words{ ":heavy_check_mark:",
},
Words{ ":moyai:",
},
Words{ ":izakaya_lantern:",
},
Words{ ":helicopter:",
},
Words{ ":hocho:",
},
Words{ ":honeybee:",
},
Words{ ":horse:",
},
Words{ ":horse_racing:",
},
Words{ ":hourglass:",
},
Words{ ":house:",
},
Words{ ":hurtrealbad:",
},
Words{ ":icecream:",
},
Words{ ":imp:",
},
Words{ ":it:",
},
Words{ ":jack_o_lantern:",
},
Words{ ":japanese_goblin:",
},
Words{ ":jp:",
},
Words{ ":key:",
},
Words{ ":kiss:",
},
Words{ ":kissing_cat:",
},
Words{ ":koala:",
},
Words{ ":kr:",
},
Words{ ":lemon:",
},
Words{ ":lipstick:",
},
Words{ ":lock:",
},
Words{ ":lollipop:",
},
Words{ ":man:",
},
Words{ ":maple_leaf:",
},
Words{ ":mask:",
},
Words{ ":metal:","U+1F918",
},
Words{ ":microscope:",
},
Words{ ":moneybag:",
},
Words{ ":monkey:",
},
Words{ ":mount_fuji:",
},
Words{ ":muscle:",
},
Words{ ":mushroom:",
},
Words{ ":musical_keyboard:",
},
Words{ ":musical_score:",
},
Words{ ":nail_care:",
},
Words{ ":new_moon:",
},
Words{ ":no_entry:",
},
Words{ ":nose:",
},
Words{ ":notes:",
},
Words{ ":nut_and_bolt:",
},
Words{ ":o:",
},
Words{ ":ocean:",
},
Words{ ":ok_hand:",
},
Words{ ":on:",
},
Words{ ":package:",
},
Words{ ":palm_tree:",
},
Words{ ":panda_face:",
},
Words{ ":paperclip:",
},
Words{ ":partly_sunny:",
},
Words{ ":passport_control:",
},
Words{ ":paw_prints:",
},
Words{ ":peach:",
},
Words{ ":penguin:",
},
Words{ ":phone:",
},
Words{ ":pig:",
},
Words{ ":pill:",
},
Words{ ":pineapple:",
},
Words{ ":pizza:",
},
Words{ ":point_left:",
},
Words{ ":point_right:",
},
Words{ ":poop:",
},
Words{ ":poultry_leg:",
},
Words{ ":pray:",
},
Words{ ":princess:",
},
Words{ ":purse:",
},
Words{ ":pushpin:",
},
Words{ ":rabbit:",
},
Words{ ":rainbow:",
},
Words{ ":raised_hand:",
},
Words{ ":recycle:",
},
Words{ ":red_car:",
},
Words{ ":registered:",
},
Words{ ":ribbon:",
},
Words{ ":rice:",
},
Words{ ":rocket:",
},
Words{ ":roller_coaster:",
},
Words{ ":rooster:",
},
Words{ ":ru:",
},
Words{ ":sailboat:",
},
Words{ ":santa:",
},
Words{ ":satellite:",
},
Words{ ":satisfied:",
},
Words{ ":saxophone:",
},
Words{ ":scissors:",
},
Words{ ":see_no_evil:",
},
Words{ ":sheep:",
},
Words{ ":shell:",
},
Words{ ":shoe:",
},
Words{ ":ski:",
},
Words{ ":skull:",
},
Words{ ":sleepy:",
},
Words{ ":smile:",
},
Words{ ":smiley_cat:",
},
Words{ ":smirk:",
},
Words{ ":smoking:",
},
Words{ ":snail:",
},
Words{ ":snake:",
},
Words{ ":snowflake:",
},
Words{ ":soccer:",
},
Words{ ":soon:",
},
Words{ ":space_invader:",
},
Words{ ":spades:",
},
Words{ ":speak_no_evil:",
},
Words{ ":star:",
},
Words{ ":stars:",
},
Words{ ":statue_of_liberty:",
},
Words{ ":steam_locomotive:",
},
Words{ ":sunflower:",
},
Words{ ":sunglasses:",
},
Words{ ":sunny:",
},
Words{ ":sunrise:",
},
Words{ ":surfer:",
},
Words{ ":swimmer:",
},
Words{ ":syringe:",
},
Words{ ":tada:",
},
Words{ ":tangerine:",
},
Words{ ":taxi:",
},
Words{ ":tennis:",
},
Words{ ":tent:",
},
Words{ ":thought_balloon:",
},
Words{ ":tm:",
},
Words{ ":toilet:",
},
Words{ ":tongue:",
},
Words{ ":tophat:",
},
Words{ ":tractor:",
},
Words{ ":trolleybus:",
},
Words{ ":trollface:",
},
Words{ ":trophy:",
},
Words{ ":trumpet:",
},
Words{ ":turtle:",
},
Words{ ":two_men_holding_hands:",
},
Words{ ":two_women_holding_hands:",
},
Words{ ":uk:",
},
Words{ ":umbrella:",
},
Words{ ":unlock:",
},
Words{ ":us:",
},
Words{ ":v:",
},
Words{ ":vhs:",
},
Words{ ":violin:",
},
Words{ ":warning:",
},
Words{ ":watermelon:",
},
Words{ ":wave:",
},
Words{ ":wavy_dash:",
},
Words{ ":wc:",
},
Words{ ":wheelchair:",
},
Words{ ":woman:",
},
Words{ ":x:",
},
Words{ ":yum:",
},
Words{ ":zap:",
},
Words{ ":zzz:",
},
},
}
}

View file

@ -1,15 +0,0 @@
// THIS FILE IS GENERATED. DO NOT EDIT.
package emoji
func init() {
mapGen = VersionedMap{
Description: "{{.Description}}",
Version: "{{.Version}}",
EmojiWords: []Words{ {{- range .EmojiWords }}
Words{ {{ range . -}}
"{{- . }}",{{- end }}
},{{- end }}
},
}
}

View file

@ -33,7 +33,16 @@ func main() {
} }
defer output.Close() defer output.Close()
mapGoTemp := template.Must(template.ParseFiles(*flTemplate)) //mapGoTemp := template.Must(template.ParseFiles(*flTemplate))
funcMap := template.FuncMap{
"IsColonNotation": emoji.IsColonNotation,
"IsCodepoint": emoji.IsCodepoint,
}
mapGoTemp, err := template.New("").Funcs(funcMap).Parse(tmpl[*flTemplate])
if err != nil {
log.Fatal(err)
}
if err := mapGoTemp.Execute(output, vm); err != nil { if err := mapGoTemp.Execute(output, vm); err != nil {
log.Fatal(err) log.Fatal(err)
} }
@ -42,5 +51,47 @@ func main() {
var ( var (
flInput = flag.String("in", "emojimap.json", "json input") flInput = flag.String("in", "emojimap.json", "json input")
flOutput = flag.String("out", "map_gen.go", "golang output") flOutput = flag.String("out", "map_gen.go", "golang output")
flTemplate = flag.String("template", "map_gen.tmpl", "template of golang source to use") flTemplate = flag.String("template", "map_gen", "template to use (map_gen or markdown_gen)")
) )
var tmpl = map[string]string{
"map_gen": `
// THIS FILE IS GENERATED. DO NOT EDIT.
package emoji
func init() {
mapGen = VersionedMap{
Description: "{{.Description}}",
Version: "{{.Version}}",
EmojiWords: []Words{ {{- range .EmojiWords }}
Words{ {{ range . -}}
"{{- . }}",{{- end }}
},{{- end }}
},
}
}
`,
"markdown_gen": `
## Emoji Map list
_THIS FILE IS GENERATED. DO NOT EDIT._
This is for "pretty" viewing purposes.
To view the functional document, see [emojimap.json](./emojimap.json).
### Description
{{ .Description }}
### Version
{{ .Version }}
### List
{{- range $index, $words := .EmojiWords }}
* ` + "`{{ $index }}`" + ` -- {{ range $words }} {{- if IsColonNotation . -}} {{ . }} ` + "`{{ . }}`" + ` {{- else }} {{.}} {{- end }}{{- end }}
{{- end }}
`,
}

View file

@ -1,20 +0,0 @@
## Emoji Map list
_THIS FILE IS GENERATED. DO NOT EDIT._
This is for "pretty" viewing purposes.
To view the functional document, see [emojimap.json](./emojimap.json).
### Description
{{ .Description }}
### Version
{{ .Version }}
### List
{{- range $index, $words := .EmojiWords }}
* `{{ $index }}` -- {{ range $words }} {{ . }} `{{ . }}` {{- end }}
{{- end }}