{"id":27255534,"url":"https://github.com/bric3/jufmt","last_synced_at":"2025-04-11T02:20:02.201Z","repository":{"id":39578757,"uuid":"317186760","full_name":"bric3/jufmt","owner":"bric3","description":"Java Unicode formatter","archived":false,"fork":false,"pushed_at":"2025-04-04T06:17:53.000Z","size":1010,"stargazers_count":5,"open_issues_count":9,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T07:24:56.223Z","etag":null,"topics":["cli","figlet","graalvm","java","micronaut","unicode"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bric3.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2020-11-30T10:23:38.000Z","updated_at":"2025-04-04T06:17:43.000Z","dependencies_parsed_at":"2024-01-06T23:20:51.343Z","dependency_job_id":"fd5693f9-0f4e-4d47-b907-ca8764fe2bc9","html_url":"https://github.com/bric3/jufmt","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fjufmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fjufmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fjufmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fjufmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bric3","download_url":"https://codeload.github.com/bric3/jufmt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248328308,"owners_count":21085294,"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","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":["cli","figlet","graalvm","java","micronaut","unicode"],"created_at":"2025-04-11T02:20:01.524Z","updated_at":"2025-04-11T02:20:02.174Z","avatar_url":"https://github.com/bric3.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"// suppress inspection \"GrazieInspection\" for whole file\n// suppress inspection \"SpellCheckingInspection\" for whole file\n= Java Unicode Formatter (jufmt)\n\nimage:https://github.com/bric3/jufmt/actions/workflows/gradle.yml/badge.svg[\"Build\", link=\"https://github.com/bric3/jufmt/actions/workflows/gradle.yml\"]\nimage:https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg[\"License: MPL 2.0\", link=\"https://opensource.org/licenses/MPL-2.0\"]\n\nSimple Java and GraalVM toy to play with unicode formatting.\n\nThere are many websites that perform fancy Unicode text transformation.\nFor fun, I wanted to try to implement these features in Java.\n\n[source, shell]\n----\n$ java -jar build/libs/jufmt-all.jar -h\n░░▒█░█▒█▒█▀░█▄▒▄█░▀█▀\n░▀▄█░▀▄█░█▀░█▒▀▒█░▒█▒\nUsage: jufmt [-dhrV] [--strip-diacritic-marks] [-c=CONVERTER] [-n=FORM]\n             [-o=ORNAMENT] [-s=STYLE] [STR] [COMMAND]\nFormat input latin string with fancy unicode chars\n      [STR]                 The string to process\n  -c, --converter=CONVERTER Converter, valid converters: none, normal, sans,\n                              sansBold, sansItalic, sansBoldItalic, monospace,\n                              fullwidth, fraktur, boldFraktur, serifBold,\n                              serifItalic, serifBoldItalic, doubleStruck,\n                              script, boldScript, circled, circledNegative,\n                              squared, squaredNegative, parenthesized,\n                              smallCaps, subscript, superscript, inverted,\n                              mirrored, rounded, greek, japanese,\n                              fauxEthiopian, ogham, asciiBrailleGrade1, morse\n  -d, --describe            Describe characters, or more precisely codepoints\n  -h, --help                Show this help message and exit.\n  -o, --ornament=ORNAMENT   Ornaments, valid ornaments: curvedAngleBracket,\n                              blackLenticularBracket, whiteLenticularBracket,\n                              tortoiseBracket, whiteTortoiseBracket,\n                              angleBracket, doubleAngleBracket, cornerBracket,\n                              whiteCornerBracket, lightShade, mediumShade,\n                              darkShade, wave, tibetanKuRuKhaBzhiMigCan,\n                              ethiopicSectionMark\n  -r, --reversed            Reverse string\n  -s, --style=STYLE         Styles, valid styles: strikethrough, macron,\n                              macronBelow, lowline, doubleLowline, overline,\n                              doubleOverline, shadow, upwardArrowBelow,\n                              hotFumes, doubleArrow, electric, snow, smeared\n  -V, --version             Print version information and exit.\nCommands:\n  figlet  Renders input string as a text banner (FIGlet)\n  normalize  Normalize input string using the given Unicode Normalization Forms\n  zalgo   Renders input with Zalgo\n----\n\nIf using GraalVM, micronaut offers the `nativeImage` task :\n\n[source, shell]\n----\n$ asdf local java java graalvm-community-20.0.1\n$ java --version\nopenjdk 20.0.1 2023-04-18\nOpenJDK Runtime Environment GraalVM CE 20.0.1+9.1 (build 20.0.1+9-jvmci-23.0-b12)\nOpenJDK 64-Bit Server VM GraalVM CE 20.0.1+9.1 (build 20.0.1+9-jvmci-23.0-b12, mixed mode, sharing)\n$ ./gradlew nativeCompile\n...\n$ ./jufmt-cli/build/native/nativeCompile/jufmt figlet -r bric3\n___.           .__         ________\n\\_ |__ _______ |__|  ____  \\_____  \\\n | __ \\\\_  __ \\|  |_/ ___\\   _(__  \u003c\n | \\_\\ \\|  | \\/|  |\\  \\___  /       \\\n |___  /|__|   |__| \\___  \u003e/______  /\n     \\/                 \\/        \\/\n\n----\n\nThe tool supports the following charset:\n\n.Fonts\n|===\n| Font | Character Set\n\n| Normal  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{\\|}~\n| Sans bold  | \"\\ !#$%\u0026'()*+,-./𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵:;\u003c=\u003e?@𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭[]^_`𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇{\\|}~\n| Sans italic  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡[]^_`𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻{}~\n| Bold italic  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕[]^_`𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯{\\|}~\n| Monospace  | \"\\ !#$%\u0026'()*+,-./𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿:;\u003c=\u003e?@𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉[]^_`𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣{\\|}~\n| Fullwidth  | \"＼　！＃＄％＆＇（）＊＋，－．／０１２３４５６７８９：；\u003c＝\u003e？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝～\n| Math Fraktur  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ[]^_`𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷{\\|}~\n| Math Fraktur bold  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅[]^_`𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟{\\|}~\n| Serif bold  | \"\\ !#$%\u0026'()*+,-./𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗:;\u003c=\u003e?@𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙[]^_`𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳{\\|}~\n| Serif italic  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍[]^_`𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧{}~\n| Serif bold italic  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁[]^_`𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛{\\|}~\n| Math double-struck  | \"\\ !#$%\u0026'()*+,-./𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡:;\u003c=\u003e?@𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ[]^_`𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫{\\|}~\n| Script  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵[]^_`𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏{\\|}~\n| Bold script  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩[]^_`𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃{\\|}~\n| Circled  | \"⦸ !#$%\u0026'()⊛⊕,⊖⨀⊘⓪①②③④⑤⑥⑦⑧⑨:;⧀⊜⧁?@ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ[]^_`ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ{⦶}~\n| Circled negative  | \"\\ !#$%\u0026'()*+,-./⓿❶❷❸❹❺❻❼❽❾:;\u003c=\u003e?@🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩[]^_`🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩{}~\n| Squared  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉[]^_`🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉{}~\n| Squared negative  | \"⧅ !#$%\u0026'()⧆⊞,⊟⊡⧄0123456789:;\u003c=\u003e?@🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇🆈🆉[]^_`🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇🆈🆉{}~\n| Parenthesized  | \"\\ !#$%\u0026'()*+,-./0⑴⑵⑶⑷⑸⑹⑺⑻⑼:;\u003c=\u003e?@⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵[]^_`⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵{}~\n| Small caps  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴩꞯʀꜱᴛᴜᴠᴡxʏᴢ{}~\n| Subscript  | \"\\ !#$%\u0026'()*₊,₋./₀₁₂₃₄₅₆₇₈₉:;\u003c₌\u003e?@ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴘ🇶ʀꜱᴛᴜᴠᴡxʏᴢ[]^_`ₐᵦ𝒸𝒹ₑ𝒻𝓰ₕᵢⱼₖₗₘₙₒₚᵩᵣₛₜᵤᵥ𝓌ₓᵧ𝓏{}~\n| Superscript  | \"\\ !#$%\u0026'()*⁺,⁻./⁰¹²³⁴⁵⁶⁷⁸⁹:;\u003c⁼\u003e?@ᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᵠᴿˢᵀᵁⱽᵂˣʸᶻ[]^_`ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖᵠʳˢᵗᵘᵛʷˣʸᶻ{}~\n| Inverted  | „\\ ¡#$%⅋,)(*+‘-˙/0ƖՇƐᔭϛ9Ɫ86:;\u003c=\u003e¿@∀ꓭↃꓷƎℲ⅁HIſꓘ⅂WNOԀῸꓤS⊥∩ꓥMX⅄Z][^‾`ɐqɔpǝɟƃɥıɾʞןɯuodbɹsʇnʌʍxʎz}\\|{~\n| Mirrored  | \"/ !#$%\u0026')(*+,-.\\0߁ςƐ߂टმ٢8୧:;\u003c=\u003e⸮@AꓭↃꓷƎꟻӘHIႱꓘ⅃MИOꟼϘЯꙄTUVWXYZ][^_`ɒdↄbɘʇϱʜiįʞlmᴎoqpᴙꙅɈυvwxγz}\\|{~\n| Rounded  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@ᗩᗷᑕᗪEᖴGᕼIᒍKᒪᗰᑎOᑭᑫᖇᔕTᑌᐯᗯ᙭Yᘔ[]^_`ᗩᗷᑕᗪEᖴGᕼIᒍKᒪᗰᑎOᑭᑫᖇᔕTᑌᐯᗯ᙭Yᘔ{\\|}~\n| Greek  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@ΛBᑕDΣFGΉIJKᒪMПӨPQЯƧƬЦVЩXYZ[]^_`ΛBᑕDΣFGΉIJKᒪMПӨPQЯƧƬЦVЩXYZ{\\|}~\n| Japanese  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@卂乃匚ᗪ乇千Ꮆ卄丨ﾌҜㄥ爪几ㄖ卩Ɋ尺丂ㄒㄩᐯ山乂ㄚ乙[]^_`卂乃匚ᗪ乇千Ꮆ卄丨ﾌҜㄥ爪几ㄖ卩Ɋ尺丂ㄒㄩᐯ山乂ㄚ乙{\\|}~\n| Faux Ethiopian  | \"\\ !#$%\u0026'()*+,-./0123456789:;\u003c=\u003e?@ልጌርዕቿቻኗዘጎጋጕረጠክዐየዒዪነፕሁሀሠሸሃጊ[]^_`ልጌርዕቿቻኗዘጎጋጕረጠክዐየዒዪነፕሁሀሠሸሃጊ{\\|}~\n\n|===\n\n\n.Styles\n|===\n| Font | Example\n\n| Underline           | U͟n͟d͟e͟r͟l͟i͟n͟e͟\n| Strikethrough       | 𝖲̶𝗍̶𝗋̶𝗂̶𝗄̶𝖾̶𝗍̶𝗁̶𝗋̶𝗈̶𝗎̶𝗀̶𝗁̶\n| Short Strikethrough | S̵h̵o̵r̵t̵ ̵S̵t̵r̵i̵k̵e̵t̵h̵r̵o̵u̵g̵h̵\n|===\n\n\n== TODO\n\n.TODO\n* [x] unicode _fonts_\n* [x] braille\n* [x] morse\n* [x] figlet\n* [ ] other utf-8 ascii, possibly other figlet fonts\n+\n----\n ▄▌ ▐▄█ █▀ █▚▞▌ ▀█▀\n\n░░▒█░█▒█▒█▀░█▄▒▄█░▀█▀\n░▀▄█░▀▄█░█▀░█▒▀▒█░▒█▒\n\n▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n███▄█ ██ █ ▄▄█ ▄▀▄ █▄ ▄\n███ █ ██ █ ▄██ █▄█ ██ █\n█ ▀ ██▄▄▄█▄███▄███▄██▄█\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n\n▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n███▄█░██░█░▄▄█░▄▀▄░█▄░▄\n███░█░██░█░▄██░█▄█░██░█\n█░▀░██▄▄▄█▄███▄███▄██▄█\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n\n     ▄▄▄ ▄▄   ▄▄ ▄▄▄▄▄▄▄ ▄▄   ▄▄ ▄▄▄▄▄▄▄\n    █   █  █ █  █       █  █▄█  █       █\n    █   █  █ █  █    ▄▄▄█       █▄     ▄█\n ▄  █   █  █▄█  █   █▄▄▄█       █ █   █\n█ █▄█   █       █    ▄▄▄█       █ █   █\n█       █       █   █   █ ██▄██ █ █   █\n█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█   █▄█   █▄█ █▄▄▄█\n\n╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋\n╋╋╋╋╋╋╭━╮╋╋╋╭╮╋\n╋╭╮╋╋╋┃╭╯╋╋╋╯╰╮\n╋╰╯╮╭╮╯╰╮╮╭╮╮╭╯\n╋╭╮┃┃┃╮╭╯╰╯┃┃┃╋\n╋┃┃╰╯┃┃┃╋┃┃┃┃╰╮\n╋┃┃━━╯╰╯╋┻┻╯╰━╯\n╭╯┃╋╋╋╋╋╋╋╋╋╋╋╋\n╰━╯╋╋╋╋╋╋╋╋╋╋╋╋\n\n     ░░ ░░    ░░ ░░░░░░░ ░░░    ░░░ ░░░░░░░░\n     ▒▒ ▒▒    ▒▒ ▒▒      ▒▒▒▒  ▒▒▒▒    ▒▒\n     ▒▒ ▒▒    ▒▒ ▒▒▒▒▒   ▒▒ ▒▒▒▒ ▒▒    ▒▒\n▓▓   ▓▓ ▓▓    ▓▓ ▓▓      ▓▓  ▓▓  ▓▓    ▓▓\n █████   ██████  ██      ██      ██    ██\n\n╱╱╱╱╱╱╭━╮╱╱╭╮\n╱╭╮╱╱╱┃╭╯╱╭╯╰╮\n╱╰╋╮╭┳╯╰┳╮┣╮╭╯\n╱╭┫┃┃┣╮╭┫╰╯┃┃\n╱┃┃╰╯┃┃┃┃┃┃┃╰╮\n╱┃┣━━╯╰╯╰┻┻┻━╯\n╭╯┃\n╰━╯\n\n╱╱╱╱╭━╮╱╱╭╮\n╱╭┳┳┫━╋━━┫╰╮\n╱┣┫┃┃╭┫┃┃┃╭┫\n╭╯┣━┻╯╰┻┻┻━╯\n╰━╯\n----\n\n* [x] ornaments\n** [x] wrapping chars, e.g. : 【b】【r】【i】【c】【3】, 〖b〗〖r〗〖i〗〖c〗〖3〗, ⧼b⧽⧼r⧽⧼i⧽⧼c⧽⧼3⧽, etc.\n** [x] insert chars, e.g. : b྿r྿i྿c྿3, ፠b፠r፠i፠c፠3, b࿐r࿐i࿐c࿐3, etc.\n* [x] zalgo: b̼̖̹͉̽̾r͎͔͉͙̽ͭ̈́͛͊i̮̿c̥̦̥̅̈́͐ͮ̚3͎͇ͨ\n* [x] styles\n** [x] shadow: b̷r̷i̷c̷3̷\n** [x] sweating: b̾r̾i̾c̾3̾ ̾\n** [x] smeared ink: b҉r҉i҉c҉3҉\n* [x] normalize (NFD, NFKD, NFC, NFKC)\n\nThis feature is inspired by this nice https://github.com/DenverCoder1/unicode-formatter[js project]\n(https://git.io/unicode-formatter[demo]).\n\n.Other sources\n* https://en.wikipedia.org/wiki/Braille\n* https://en.wikipedia.org/wiki/Braille_ASCII\n* https://en.wikipedia.org/wiki/Morse_code\n* https://en.wikipedia.org/wiki/Unicode_control_characters (Bidi contorl char in particular)\n\n== License\n\n* This project\n\n\u003e jufmt\n\u003e\n\u003e Copyright (c) 2020, today - Brice DUTHEIL\n\u003e\n\u003e This Source Code Form is subject to the terms of the Mozilla Public\n\u003e License, v. 2.0. If a copy of the MPL was not distributed with this\n\u003e file, You can obtain one at https://mozilla.org/MPL/2.0/.\n\n* In order to render figlet font this project uses a fork of https://github.com/yihleego/banana[yihleego/banana], tat is licensed under Apache License 2.0.\n\n* Fonts comes from\n** https://github.com/xero/figlet-fonts[xero/figlet-fonts] (unknown license)\n** https://github.com/thugcrowd/gangshit[thugcrowd/gangshit] (unknown license)\n** https://patorjk.com/software/taag/[Patrick Gillespie's Text ASCII Art Generator] (unknown license)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbric3%2Fjufmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbric3%2Fjufmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbric3%2Fjufmt/lists"}