Skip to content

Commit 8748855

Browse files
committed
feat: initial implementation of emojify-go
Complete Go rewrite of the emojify bash script with 169.9x performance improvement. Provides bidirectional emoji conversion between aliases (:smile:) and Unicode (😄). Features: - Lightning-fast cross-platform CLI tool - Encode emoji aliases to Unicode characters - Decode Unicode emojis back to aliases - Comprehensive test suite and CI/CD pipeline - Docker support and release automation
0 parents  commit 8748855

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+11063
-0
lines changed

.chglog/CHANGELOG.tpl.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{{ if .Versions -}}
2+
<a name="unreleased"></a>
3+
## [Unreleased]
4+
5+
{{ if .Unreleased.CommitGroups -}}
6+
{{ range .Unreleased.CommitGroups -}}
7+
### {{ .Title }}
8+
{{ range .Commits -}}
9+
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
10+
{{ end }}
11+
{{ end -}}
12+
{{ end -}}
13+
{{ end -}}
14+
15+
{{ range .Versions }}
16+
<a name="{{ .Tag.Name }}"></a>
17+
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
18+
{{ range .CommitGroups -}}
19+
### {{ .Title }}
20+
{{ range .Commits -}}
21+
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
22+
{{ end }}
23+
{{ end -}}
24+
25+
{{- if .RevertCommits -}}
26+
### Reverts
27+
{{ range .RevertCommits -}}
28+
- {{ .Revert.Header }}
29+
{{ end }}
30+
{{ end -}}
31+
32+
{{- if .MergeCommits -}}
33+
### Pull Requests
34+
{{ range .MergeCommits -}}
35+
- {{ .Header }}
36+
{{ end }}
37+
{{ end -}}
38+
39+
{{- if .NoteGroups -}}
40+
{{ range .NoteGroups -}}
41+
### {{ .Title }}
42+
{{ range .Notes }}
43+
{{ .Body }}
44+
{{ end }}
45+
{{ end -}}
46+
{{ end -}}
47+
{{ end -}}
48+
49+
{{- if .Versions }}
50+
[Unreleased]: {{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...HEAD
51+
{{ range .Versions -}}
52+
{{ if .Tag.Previous -}}
53+
[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
54+
{{ end -}}
55+
{{ end -}}
56+
{{ end -}}

.chglog/config.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
style: github
2+
template: CHANGELOG.tpl.md
3+
info:
4+
title: CHANGELOG
5+
repository_url: https://github.com/damienbutt/emojify
6+
options:
7+
commits:
8+
# filters:
9+
# Type:
10+
# - feat
11+
# - fix
12+
# - perf
13+
# - refactor
14+
commit_groups:
15+
# title_maps:
16+
# feat: Features
17+
# fix: Bug Fixes
18+
# perf: Performance Improvements
19+
# refactor: Code Refactoring
20+
header:
21+
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
22+
pattern_maps:
23+
- Type
24+
- Scope
25+
- Subject
26+
notes:
27+
keywords:
28+
- BREAKING CHANGE

.dockerignore

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Git files
2+
.git
3+
.gitignore
4+
.gitattributes
5+
6+
# Documentation
7+
README.md
8+
CHANGELOG.md
9+
CONTRIBUTING.md
10+
LICENSE
11+
*.md
12+
13+
# Build artifacts
14+
build/
15+
dist/
16+
coverage.out
17+
coverage.html
18+
test-results.json
19+
benchmark-results.txt
20+
make_test_result.txt
21+
22+
# IDE and editor files
23+
.vscode/
24+
.idea/
25+
*.swp
26+
*.swo
27+
*~
28+
29+
# OS files
30+
.DS_Store
31+
Thumbs.db
32+
33+
# Docker files
34+
Dockerfile*
35+
docker-compose*.yml
36+
.dockerignore
37+
38+
# CI/CD files
39+
.github/
40+
lefthook.yml
41+
42+
# Scripts and tools
43+
scripts/
44+
Makefile
45+
46+
# Test files (exclude from production builds)
47+
*_test.go
48+
tests/
49+
50+
# Assets (if not needed in container)
51+
assets/

.editorconfig

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
indent_style = space
8+
indent_size = tab
9+
tab_width = 4
10+
trim_trailing_whitespace = true
11+
12+
[*.go]
13+
indent_style = tab
14+
15+
[*.md]
16+
trim_trailing_whitespace = false
17+
18+
[*.{yml,yaml}]
19+
tab_width = 2
20+
21+
[Makefile]
22+
indent_style = tab

.gitattributes

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Common settings that generally should always be used with your language specific settings
2+
3+
# Auto detect text files and perform LF normalization
4+
* text=auto
5+
6+
#
7+
# The above will handle all files NOT found below
8+
#
9+
10+
# Documents
11+
*.bibtex text diff=bibtex
12+
*.doc diff=astextplain
13+
*.DOC diff=astextplain
14+
*.docx diff=astextplain
15+
*.DOCX diff=astextplain
16+
*.dot diff=astextplain
17+
*.DOT diff=astextplain
18+
*.pdf diff=astextplain
19+
*.PDF diff=astextplain
20+
*.rtf diff=astextplain
21+
*.RTF diff=astextplain
22+
*.md text diff=markdown
23+
*.mdx text diff=markdown
24+
*.tex text diff=tex
25+
*.adoc text
26+
*.textile text
27+
*.mustache text
28+
*.csv text eol=crlf
29+
*.tab text
30+
*.tsv text
31+
*.txt text
32+
*.sql text
33+
*.epub diff=astextplain
34+
35+
# Graphics
36+
*.png binary
37+
*.jpg binary
38+
*.jpeg binary
39+
*.gif binary
40+
*.tif binary
41+
*.tiff binary
42+
*.ico binary
43+
# SVG treated as text by default.
44+
*.svg text
45+
# If you want to treat it as binary,
46+
# use the following line instead.
47+
# *.svg binary
48+
*.eps binary
49+
50+
# Scripts
51+
*.bash text eol=lf
52+
*.fish text eol=lf
53+
*.ksh text eol=lf
54+
*.sh text eol=lf
55+
*.zsh text eol=lf
56+
# These are explicitly windows files and should use crlf
57+
*.bat text eol=crlf
58+
*.cmd text eol=crlf
59+
*.ps1 text eol=crlf
60+
61+
# Serialisation
62+
*.json text
63+
*.toml text
64+
*.xml text
65+
*.yaml text
66+
*.yml text
67+
68+
# Archives
69+
*.7z binary
70+
*.bz binary
71+
*.bz2 binary
72+
*.bzip2 binary
73+
*.gz binary
74+
*.lz binary
75+
*.lzma binary
76+
*.rar binary
77+
*.tar binary
78+
*.taz binary
79+
*.tbz binary
80+
*.tbz2 binary
81+
*.tgz binary
82+
*.tlz binary
83+
*.txz binary
84+
*.xz binary
85+
*.Z binary
86+
*.zip binary
87+
*.zst binary
88+
89+
# Text files where line endings should be preserved
90+
*.patch -text
91+
92+
#
93+
# Exclude files from exporting
94+
#
95+
96+
.gitattributes export-ignore
97+
.gitignore export-ignore
98+
.gitkeep export-ignore
99+
100+
# Treat all Go files in this repo as binary, with no git magic updating
101+
# line endings. Windows users contributing to Go will need to use a
102+
# modern version of git and editors capable of LF line endings.
103+
104+
*.go -text diff=golang

0 commit comments

Comments
 (0)