{"id":27297288,"url":"https://github.com/rorokimdim/mindra","last_synced_at":"2025-07-18T08:05:48.779Z","repository":{"id":160607835,"uuid":"472174961","full_name":"rorokimdim/mindra","owner":"rorokimdim","description":"A command line wrapper for diagrams and gloss.","archived":false,"fork":false,"pushed_at":"2022-11-22T22:11:02.000Z","size":50,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T23:54:29.483Z","etag":null,"topics":["diagrams","gloss"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rorokimdim.png","metadata":{"files":{"readme":"README.md","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,"zenodo":null}},"created_at":"2022-03-21T03:35:32.000Z","updated_at":"2024-08-14T21:42:09.000Z","dependencies_parsed_at":"2023-07-17T08:38:45.653Z","dependency_job_id":null,"html_url":"https://github.com/rorokimdim/mindra","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/rorokimdim/mindra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorokimdim%2Fmindra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorokimdim%2Fmindra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorokimdim%2Fmindra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorokimdim%2Fmindra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rorokimdim","download_url":"https://codeload.github.com/rorokimdim/mindra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorokimdim%2Fmindra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265724918,"owners_count":23817916,"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":["diagrams","gloss"],"created_at":"2025-04-11T23:54:27.587Z","updated_at":"2025-07-18T08:05:48.771Z","avatar_url":"https://github.com/rorokimdim.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mindra\n\nA command-line wrapper for [diagrams](https://diagrams.github.io/) and [gloss](http://gloss.ouroborus.net/) so we can leverage them outside haskell.\n\nThe goal is to provide a good subset of features from both libraries.\n\nSee [mindra-clj](https://github.com/rorokimdim/mindra-clj) for an example of a client library. It talks to `mindra` via `stdin`/`stdout` using just formatted text.\n\n# Current status\n\n## Diagrams\n\nOnly the SVG backend is supported, and only a very small subset of `diagrams` is exposed. See [svg-parser](https://github.com/rorokimdim/mindra/blob/f4ca8203716f3fffc8c59ffabfd91b4b47c902e8/src/Mindra/Diagrams/Parser/SVG.hs#L753-L817) for what is supported and how the commands are parsed into diagram(s).\n\nSee [mindra-clj-diagrams](https://github.com/rorokimdim/mindra-clj#diagrams) for some examples.\n\n## Gloss\n\nMost of the `gloss` features are supported. We should be able to use `mindra` for creating both static pictures and animations (with event handling!). See [gloss-parser](https://github.com/rorokimdim/mindra/blob/f4ca8203716f3fffc8c59ffabfd91b4b47c902e8/src/Mindra/Gloss/Parser/Picture.hs#L255-L278) for what is supported and how the commands are parsed into gloss picture(s).\n\nSee [mindra-clj-gloss](https://github.com/rorokimdim/mindra-clj#gloss) for some examples.\n\n# Installation\n\n## Linux and Mac\n\nInstall:\n\n```bash\nbrew install rorokimdim/brew/mindra\n```\n\nUpgrade:\n\n```bash\nbrew upgrade mindra\n```\n\nUninstall:\n\n```bash\nbrew uninstall mindra\n```\n\n## Windows\n\nBinaries are available at [releases](https://github.com/rorokimdim/mindra/releases).\n\n## Others\n\nNo pre-built binaries available at this time. We will need to build from source using `stack install` or `cabal install`.\n\nInstall [stack](https://docs.haskellstack.org/en/stable/README/), clone this repository and run the following in repository directory.\n\n```bash\nstack install\n```\n\n# Basic usage\n\nA. Start mindra command\n\n```bash\nmindra\n```\n\nIt should print `READY INIT` which means it is ready to receive the `INIT` (initialization) command.\n\nB. Initialize it for either diagrams or gloss\n\n**For diagrams**\n\nConfigure for SVG of size 300px by 400px:\n\n```bash\nINIT Diagrams SVG 300 400\n\n\n```\n\nNote: Each command should be followed by a blank line.\n\n**For gloss**\n\nConfigure for a window of size 500px by 500px, at position 10px, 10px on the screen, with the title \"My Title\", and white background color (red, green, blue, alpha values):\n\n```bash\nINIT Gloss\nWindow 500 500 10 10 \"My Title\"\nColor 255 255 255 255\n\n\n```\n\n\nNote: Each command should be followed by a blank line.\n\nC. Draw something\n\n**For diagrams**\n\n```bash\nSVG Circle 100\n\n\n```\n\n**For gloss**\n\n```bash\nPICTURE Circle 100\n\n\n```\n\nNote: Each command should be followed by a blank line.\n\nHit `ESC` to close window.\n\n# Credits\n\n1. [Haskell](https://www.haskell.org/)\n2. [Diagrams](https://diagrams.github.io/) and [Gloss](http://gloss.ouroborus.net/)\n3. All of these [libraries](https://github.com/rorokimdim/mindra/blob/220050cbc0f360b6c2322b501a43cf3f7f02133f/package.yaml) and all the things they depend on\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorokimdim%2Fmindra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frorokimdim%2Fmindra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorokimdim%2Fmindra/lists"}