{"id":16848803,"url":"https://github.com/yoav-lavi/august","last_synced_at":"2025-03-22T05:31:33.510Z","repository":{"id":187320866,"uuid":"676704299","full_name":"yoav-lavi/august","owner":"yoav-lavi","description":"An Emmet-like language that produces JSON, TOML, or YAML","archived":false,"fork":false,"pushed_at":"2023-08-13T18:08:13.000Z","size":45,"stargazers_count":49,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-01T13:22:48.232Z","etag":null,"topics":["emmet","json","rust","rust-lang","serde","toml","yaml"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yoav-lavi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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":"2023-08-09T20:15:50.000Z","updated_at":"2025-02-20T02:45:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"07b45243-32bc-4f69-a023-d5b4445e4ec4","html_url":"https://github.com/yoav-lavi/august","commit_stats":null,"previous_names":["yoav-lavi/august"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoav-lavi%2Faugust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoav-lavi%2Faugust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoav-lavi%2Faugust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoav-lavi%2Faugust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yoav-lavi","download_url":"https://codeload.github.com/yoav-lavi/august/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244188025,"owners_count":20412974,"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":["emmet","json","rust","rust-lang","serde","toml","yaml"],"created_at":"2024-10-13T13:12:40.489Z","updated_at":"2025-03-22T05:31:32.102Z","avatar_url":"https://github.com/yoav-lavi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ccode\u003e.august:true\u003c/code\u003e\u003c/h1\u003e\n\nAugust is an [Emmet](https://github.com/emmetio/emmet)-like language that produces JSON, TOML, or YAML from a single-line concise selector-like syntax.\n\nIf you aren't familiar with Emmet, think of August as a snippet or shortcut to quickly typing or editing a document in any of the target languages.\n\nAugust is currently in very early stages. The repository currently contains a CLI under `crates/cli`, which will soon be published in various forms. Editor extensions and a playground will be supported later on.\n\nPlease feel free to open issues with syntax suggestions / general suggestions if you want to become involved!\n\n## Features\n\n- Values that are alphanumeric (may be expanded) do not need to be quoted\n- Familiar JSON-like operators (`.`, `,`, `:`)\n- Easy to type (close to the home row) operators (`^` being the current exception, may change)\n- Context aware: `.true:true` becomes `{ \"true\": true }`\n- Supports exiting a context (object or list) via `^` to the parent scope\n- More document types can be added in the future\n- Other features TBD!\n\n## Examples (syntax not final)\n\n### Prettier-esque\n\n```\n.semi:true,trailingComma:all,singleQuote:true,printwidth:120,tabwidth:2,ignored:.hello:world\n````\n\nJSON Output\n\n```json\n{\n  \"ignored\": {\n    \"hello\": \"world\"\n  },\n  \"tabwidth\": \"2\",\n  \"trailingComma\": \"all\",\n  \"singleQuote\": \"true\",\n  \"semi\": \"true\",\n  \"printwidth\": \"120\"\n}\n```\n\nTOML Output\n\n```toml\ntabwidth = \"2\"\ntrailingComma = \"all\"\nsingleQuote = \"true\"\nsemi = \"true\"\nprintwidth = \"120\"\n\n[ignored]\nhello = \"world\"\n```\n\nYAML Output\n\n```yaml\nignored:\n  hello: world\ntabwidth: '2'\ntrailingComma: all\nsingleQuote: 'true'\nsemi: 'true'\nprintwidth: '120'\n```\n\n### Deeply Nested\n\n```\n.this:.is:.deeply:.nested:.indeed:.how:odd\n```\n\nJSON Output\n\n```json\n{\n  \"this\": {\n    \"is\": {\n      \"deeply\": {\n        \"nested\": {\n          \"indeed\": {\n            \"how\": \"odd\"\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nTOML Output\n\n```toml\n[this.is.deeply.nested.indeed]\nhow = \"odd\"\n```\n\nYAML Output\n\n```yaml\nthis:\n  is:\n    deeply:\n      nested:\n        indeed:\n          how: odd\n```\n\n## Syntax (current)\n\n- `.` - opens a new object (similar to `{` in JSON)\n- `:` - sets a value for a key\n- `\u003e` - opens a new list (similar to `[` in JSON)\n- `^` - climb up to the parent scope (object or list)\n- `identifier` - an unquoted string, can be used for keys and values\n- `\"this is my identifier\"` - a quoted string, can be used for keys and values\n- `true`, `false`, `null` - similar to JSON counterparts\n- `\\` - escapes a character within a quoted string (e.g. `\\\"`)\n\n## CLI Usage (CLI command TBD)\n\n```sh\nag -o / --output [OUTPUT] (json|toml|yaml) [INPUT]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoav-lavi%2Faugust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoav-lavi%2Faugust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoav-lavi%2Faugust/lists"}