{"id":13929631,"url":"https://github.com/janlelis/uniscribe","last_synced_at":"2025-10-10T22:57:22.372Z","repository":{"id":56897190,"uuid":"86168576","full_name":"janlelis/uniscribe","owner":"janlelis","description":"Know your Unicode ✀","archived":false,"fork":false,"pushed_at":"2025-09-12T20:13:42.000Z","size":374,"stargazers_count":284,"open_issues_count":0,"forks_count":5,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-09-12T22:41:04.314Z","etag":null,"topics":["characters","cli-command","codepoints","debugging-tool","glyphs","ruby-cli","unicode"],"latest_commit_sha":null,"homepage":"https://character.construction","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/janlelis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-03-25T15:45:20.000Z","updated_at":"2025-09-12T20:13:43.000Z","dependencies_parsed_at":"2025-09-12T22:11:13.837Z","dependency_job_id":"3daf625a-21c0-450a-9fc0-2cceb2922f22","html_url":"https://github.com/janlelis/uniscribe","commit_stats":{"total_commits":48,"total_committers":4,"mean_commits":12.0,"dds":0.5208333333333333,"last_synced_commit":"1432f8ba084c4c53808f736bf2205470dd820197"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/janlelis/uniscribe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Funiscribe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Funiscribe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Funiscribe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Funiscribe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janlelis","download_url":"https://codeload.github.com/janlelis/uniscribe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janlelis%2Funiscribe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002354,"owners_count":26083357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["characters","cli-command","codepoints","debugging-tool","glyphs","ruby-cli","unicode"],"created_at":"2024-08-07T18:02:27.389Z","updated_at":"2025-10-10T22:57:22.367Z","avatar_url":"https://github.com/janlelis.png","language":"Ruby","readme":"# uniscribe | Describe the Unicode [![[version]](https://badge.fury.io/rb/uniscribe.svg)](https://badge.fury.io/rb/uniscribe)  [![[ci]](https://github.com/janlelis/uniscribe/workflows/Test/badge.svg)](https://github.com/janlelis/uniscribe/actions?query=workflow%3ATest)\n\nDescribes Unicode characters with their name and shows compositions. **UNICODE 17.0**\\*\n\n- Helps you understand how glyphs and codepoints are structured within the data\n- Gives you the names of glyphs and codepoints, which can be used for further research\n- Highlights invalid/special/blank codepoints\n\nUses a similar color coding like its lower-level companion tool [unibits](https://github.com/janlelis/unibits).\n\n## Setup\n\nMake sure you have Ruby installed and installing gems works properly. Then do:\n\n```\n$ gem install uniscribe\n```\n\n## Usage\n\nPass the string to debug to uniscribe:\n\n### From CLI\n\n```\n$ uniscribe \"test strı̈ng\"\n```\n\n### From Ruby\n\n```ruby\nrequire \"uniscribe/kernel_method\"\nuniscribe \"test strı̈ng\"\n```\n\n### Output\n\n```\n\n0074 ├─ t\t\t├─ LATIN SMALL LETTER T\n0065 ├─ e\t\t├─ LATIN SMALL LETTER E\n0073 ├─ s\t\t├─ LATIN SMALL LETTER S\n0074 ├─ t\t\t├─ LATIN SMALL LETTER T\n0020 ├─ ] [\t\t├─ SPACE\n0073 ├─ s\t\t├─ LATIN SMALL LETTER S\n0074 ├─ t\t\t├─ LATIN SMALL LETTER T\n0072 ├─ r\t\t├─ LATIN SMALL LETTER R\n---- ├┬ ı̈\t\t├┬ Composition\n0131 │├─ ı\t\t│├─ LATIN SMALL LETTER DOTLESS I\n0308 │└─ ◌̈\t\t│└─ COMBINING DIAERESIS\n006E ├─ n\t\t├─ LATIN SMALL LETTER N\n0067 ├─ g\t\t├─ LATIN SMALL LETTER G\n\n```\n\n## Examples\n\n### Tamil\n\n`\u003e\u003e uniscribe \"நகரத்தில்\"`\n\n![Screenshot Tamil](/screenshots/tamil.png?raw=true \"Tamil\")\n\n### Thai\n\n`\u003e\u003e uniscribe \"ม้าลายหกตัว\"`\n\n![Screenshot Thai](/screenshots/thai.png?raw=true \"Thai\")\n\n### Ideographic Variations\n\n`\u003e\u003e uniscribe \"辻󠄀㚑󠄁\"`\n\n![Screenshot Ideographic Variations](/screenshots/ideographic_variations.png?raw=true \"Ideographic Variations\")\n\n(the variation is not visible in the screenshot, because my system does not render it correctly)\n\n### Emoji Sequences\n\n`\u003e\u003e uniscribe \"3️⃣🤸‍♀\"`\n\n![Screenshot Emoji](/screenshots/emoji.png?raw=true \"Emoji\")\n\n### Lots of Combining Marks\n\n`\u003e\u003e uniscribe \"̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍\"`\n\n![Screenshot Marks](/screenshots/marks.png?raw=true \"Marks\")\n\n### Random Sequences of some Special Unicode Codepoints\n\n`\u003e\u003e uniscribe \"\\0A\\u{E01D7}\\x7F\\r\\n\\u{D0000}\\u{81}\\u{FFF9}B\\u{FFFB}🏴\\u{E0061}\\u{E007F}\\u{10FFFF}\"`\n\n![Screenshot Strange](/screenshots/strange.png?raw=true \"Strange\")\n\n### Some Blanks\n\n`\u003e\u003e uniscribe \"­ᅠ ⁬﻿𝅸\"`\n\n![Screenshot Blanks](/screenshots/blanks.png?raw=true \"Blanks\")\n\n## \\*Notes\n\nAlthough the gem is generally up to date with Unicode 16.0, the proper detection of compositions / graphemes / combined characters [depends on your Ruby version](https://idiosyncratic-ruby.com/73-unicode-version-mapping.html):\n\nYou can run `uniscribe -v` to check for the Unicode level of your uniscribe version.\n\nAlso see\n\n- CLI: [unibits](https://github.com/janlelis/unibits) - visualizes Unicode encodings\n- CLI: [unicopy](https://github.com/janlelis/unicopy) - copy codepoints to clipboard\n- Website: [character.construction](https://character.construction) - lists notable codepoints\n- Ruby Library: [symbolify](https://github.com/janlelis/symbolify) - used for safely printing individual codepoints\n- Ruby Library: [characteristics](https://github.com/janlelis/characteristics) - used for detecting blanks and similar\n- Unicode® Standard Annex #29: [Unicode Text Segmentation](https://unicode.org/reports/tr29/)\n- Talk: [Ten Unicode Characters You Should Know About as a Programmer](https://www.youtube.com/watch?v=hlryzsdGtZo)\n\nCopyright (C) 2017-2024 Jan Lelis \u003chttps://janlelis.com\u003e. Released under the MIT license.\n","funding_links":[],"categories":["others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanlelis%2Funiscribe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanlelis%2Funiscribe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanlelis%2Funiscribe/lists"}