diff --git a/README.md b/README.md index e69de29..2087c57 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,76 @@ +# golang-jamo + + +Hangeul character syllable decomposing/composing Go library + + License + contributors + your repo's last-commit + your repo's issues + + your repo's stars + your repo's forks + your repo's watchers + +## Description +Golang-jamo is a Go Hangeul syllable decomposition/composition library for working with Hangul characters and jamo.

+This library support Hangeul syllable decomposition with several options. (e.g. Detailed Jamo decomposition, Qwerty keyboard layout decomposition)

+ +## Installation + +```bash +go get -u github.com/ymw0407/jamo +``` + +## Usage/Examples + +```go +package main + +import ( + "fmt" + + "github.com/ymw0407/jamo/pkg/jamo" + "github.com/ymw0407/jamo/pkg/options" +) + +func main() { + fmt.Println( + jamo.DecomposeHangeul("한글 테스트 예시!"), + ) // "ㅎㅏㄴㄱㅡㄹ ㅌㅔㅅㅡㅌㅡ ㅇㅖㅅㅣ!" + fmt.Println( + jamo.DecomposeHangeul("한글 테스트 예시!", options.Jamo().SetComplexConsonants(true).SetDiphthong(true).SetTenseConsonants(true)), + ) // "ㅎㅏㄴㄱㅡㄹ ㅌㅓㅣㅅㅡㅌㅡ ㅇㅕㅣㅅㅣ!" + fmt.Println( + jamo.DecomposeHangeul("한글 테스트 예시!", options.Qwerty().SetShiftOption(options.QwertyShiftOption1)), + ) // "ㅎㅏㄴㄱㅡㄹ ㅌㅔㅅㅡㅌㅡ ㅇㅕㅣㅅㅣ!" + fmt.Println( + jamo.DecomposeHangeul("한글 테스트 예시!", *options.Qwerty().SetShiftOption(options.QwertyShiftOption2)), + ) // "ㅎㅏㄴㄱㅡㄹ ㅌㅔㅅㅡㅌㅡ ㅇㅔㅔㅅㅣ!" + + fmt.Println( + jamo.ComposeHangeul("ㅎㅏㄴㄱㅡㄹ"), + ) // ["한글"], nil + fmt.Println( + jamo.ComposeHangeul("ㅎㅏㄴ ㄱㅡㄹ"), // any other characters except hangeul syllable is unavailable + ) // [], JamoError.ErrImpossibleToCompose + fmt.Println( + jamo.ComposeHangeul("english"), // any other characters except hangeul syllable is unavailable + ) // [], JamoError.ErrImpossibleToCompose + fmt.Println( + jamo.ComposeHangeul( + jamo.DecomposeHangeul("한글테스트예시", *options.Qwerty().SetShiftOption(options.QwertyShiftOption2)), + ), // qwerty decomposition, jamo decomposition available to compose + ) // ["한글테스트예시"], nil + fmt.Println( + jamo.ComposeHangeul( + jamo.DecomposeHangeul("ㄱㅡㄹㄱㄱㅣ", *options.Qwerty().SetShiftOption(options.QwertyShiftOption2)), + ), // if it can be combined into several other characters, it returns all of them. + ) // ["긁기", "글끼"], nil +} +``` + +## License + +jamo is released under Apache License 2.0. +See the [LICENSE file]("./LICENSE") for details.