{"id":30690245,"url":"https://github.com/scriptsmith/tart","last_synced_at":"2025-09-02T02:10:34.459Z","repository":{"id":309049254,"uuid":"935451703","full_name":"ScriptSmith/tart","owner":"ScriptSmith","description":"Text art renderer for the terminal. View on the web at https://tart.sh","archived":false,"fork":false,"pushed_at":"2025-08-09T13:08:56.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T15:07:06.617Z","etag":null,"topics":["ascii-art","text-art"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/ScriptSmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2025-02-19T13:20:05.000Z","updated_at":"2025-08-09T13:59:57.000Z","dependencies_parsed_at":"2025-08-09T15:07:22.931Z","dependency_job_id":"ffcfcb2b-fbb1-4d1e-a883-84e2d6502f4b","html_url":"https://github.com/ScriptSmith/tart","commit_stats":null,"previous_names":["scriptsmith/tart"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ScriptSmith/tart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Ftart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Ftart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Ftart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Ftart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScriptSmith","download_url":"https://codeload.github.com/ScriptSmith/tart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Ftart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273218437,"owners_count":25065915,"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-09-02T02:00:09.530Z","response_time":77,"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":["ascii-art","text-art"],"created_at":"2025-09-02T02:10:33.318Z","updated_at":"2025-09-02T02:10:34.449Z","avatar_url":"https://github.com/ScriptSmith.png","language":"Rust","readme":"# tart\n\nText art renderer for the terminal.\n\n![art demo](./assets/banner.png)\n\n\u003e [!TIP]\n\u003e See your art rendered on the web at [tart.sh](https://tart.sh)\n\n## Installation\n\nFollow the instructions at [rustup.rs](https://rustup.rs/) to install Rust.\n\nThen, you can install `tart` using Cargo:\n\n```bash\ncargo install --git https://github.com/ScriptSmith/tart.git\n```\n\n## Usage\n\nCreate a TOML file with the following structure:\n\n```bash\ncat \u003c\u003cEOF \u003e art.toml\ndesign = '''\nabc\ndef\nghi\n'''\n\nstyles = '''\nrgb\nRGB\nYPO\n'''\n\n[style_map]\n\n[style_map.r]\nforeground = \"Red\"\n[style_map.g]\nforeground = \"Green\"\n[style_map.b]\nforeground = \"Blue\"\n\n[style_map.R]\nforeground = \"Red\"\nstyles = [\"Bold\"]\n[style_map.G]\nforeground = \"Green\"\nstyles = [\"Bold\"]\n[style_map.B]\nforeground = \"Blue\"\nstyles = [\"Bold\"]\n\n[style_map.Y]\nforeground.RGB = [255, 255, 0]\nstyles = [\"Italic\"]\n[style_map.P]\nforeground.RGB = [255, 0, 255]\nstyles = [\"Italic\"]\n[style_map.O]\nforeground.RGB = [255, 165, 0]\nstyles = [\"Italic\"]\nEOF\n```\n\nThen run the following command to render the text art:\n\n```bash\ntart render art.toml\n```\n\nThe output should look like this:\n\n![rendered text art](./assets/art.png)\n\nSee the help message for more information:\n\n```\n$ tart --help\nUsage: tart \u003cCOMMAND\u003e\n\nCommands:\n  render    Render the input file\n  validate  Validate the input file\n  schema    Print the JSON schema for the input file\n  help      Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n```\n$ tart render --help\nRender the input file\n\nUsage: tart render [OPTIONS] \u003cFILE\u003e\n\nArguments:\n\u003cFILE\u003e  Path to the input file\n\nOptions:\n-t, --type \u003cINPUT_TYPE\u003e  Input file type [possible values: toml, json]\n-h, --help Print help\n\n```\n\n## Input file schema\n\nThe input file schema is as follows:\n\n```json\n{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Input\",\n  \"type\": \"object\",\n  \"required\": [\n    \"design\",\n    \"style_map\",\n    \"styles\"\n  ],\n  \"properties\": {\n    \"design\": {\n      \"type\": \"string\"\n    },\n    \"style_map\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/InputStyles\"\n      }\n    },\n    \"styles\": {\n      \"type\": \"string\"\n    }\n  },\n  \"definitions\": {\n    \"InputColor\": {\n      \"oneOf\": [\n        {\n          \"type\": \"string\",\n          \"enum\": [\n            \"Black\",\n            \"Red\",\n            \"Green\",\n            \"Yellow\",\n            \"Blue\",\n            \"Purple\",\n            \"Cyan\",\n            \"White\"\n          ]\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\n            \"Fixed\"\n          ],\n          \"properties\": {\n            \"Fixed\": {\n              \"type\": \"integer\",\n              \"format\": \"uint8\",\n              \"minimum\": 0.0\n            }\n          },\n          \"additionalProperties\": false\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\n            \"RGB\"\n          ],\n          \"properties\": {\n            \"RGB\": {\n              \"type\": \"array\",\n              \"items\": [\n                {\n                  \"type\": \"integer\",\n                  \"format\": \"uint8\",\n                  \"minimum\": 0.0\n                },\n                {\n                  \"type\": \"integer\",\n                  \"format\": \"uint8\",\n                  \"minimum\": 0.0\n                },\n                {\n                  \"type\": \"integer\",\n                  \"format\": \"uint8\",\n                  \"minimum\": 0.0\n                }\n              ],\n              \"maxItems\": 3,\n              \"minItems\": 3\n            }\n          },\n          \"additionalProperties\": false\n        }\n      ]\n    },\n    \"InputStyle\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"Bold\",\n        \"Dimmed\",\n        \"Italic\",\n        \"Underlined\",\n        \"Blink\",\n        \"Reverse\",\n        \"Hidden\",\n        \"Strikethrough\"\n      ]\n    },\n    \"InputStyles\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"background\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/InputColor\"\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        },\n        \"foreground\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/InputColor\"\n            },\n            {\n              \"type\": \"null\"\n            }\n          ]\n        },\n        \"styles\": {\n          \"type\": [\n            \"array\",\n            \"null\"\n          ],\n          \"items\": {\n            \"$ref\": \"#/definitions/InputStyle\"\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscriptsmith%2Ftart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscriptsmith%2Ftart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscriptsmith%2Ftart/lists"}