{"id":33904932,"url":"https://github.com/jevko/jevkodata","last_synced_at":"2026-03-09T18:37:00.587Z","repository":{"id":63833193,"uuid":"569917514","full_name":"jevko/jevkodata","owner":"jevko","description":"(EXPERIMENTAL) Jevko format for data interchange translatable to JSON.","archived":false,"fork":false,"pushed_at":"2023-01-24T22:25:08.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-05T23:49:53.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jevko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-23T23:12:45.000Z","updated_at":"2022-12-03T18:59:53.000Z","dependencies_parsed_at":"2023-01-29T20:31:15.662Z","dependency_job_id":null,"html_url":"https://github.com/jevko/jevkodata","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/jevko/jevkodata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jevko%2Fjevkodata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jevko%2Fjevkodata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jevko%2Fjevkodata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jevko%2Fjevkodata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jevko","download_url":"https://codeload.github.com/jevko/jevkodata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jevko%2Fjevkodata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30307548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-12-12T01:42:40.806Z","updated_at":"2026-03-09T18:37:00.572Z","avatar_url":"https://github.com/jevko.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"NOTE: experimental\n\n# jevkodata\n\nCodename .jevkodata.\n\nA [Jevko](https://jevko.org) format for data interchange that translates to JSON.\n\nGives you the full power of JSON by supporting its data model and JSON literals.\n\nOn top of that you get a much simpler and leaner syntax with:\n\n* comments -- more minimal than in any other format\n* unquoted autotrimmed strings and keys\n* quoted multiline strings and keys\n* here documents (heredocs)\n* ability to disable (comment out) an entire subtree by prefixing it with `-`\n\nJevko is closed under concatenation, so there is no need for JSON Lines, NDJSON, or anything like that.\n\n.jevkodata is best used in combination with the [Jevko CLI](https://github.com/jevko/jevko-cli) -- which gives you additional features, such as:\n\n* self-contained .jevkodata documents that know how to convert themselves to specific JSON files\n* ability to make .jevkodata documents executable thanks to Jevko CLI support for shebangs -- you can convert a document simply by executing it!\n\n# Example\n\n.jevkodata decodes this Jevko:\n\n```\nThis is a comment\n\ntitle [jevkoconfig1 Example]\n\nowner [\n  name [tester]\n  dob `''2020-08-05T20:30:01+09:00[Asia/Tokyo][u-ca=japanese]''\n]\n\ndatabase [\n  enabled [true]\n  quoted ['true]\n  ports [\n    [8000]\n    [8001]\n    [8002]\n  ]\n  data [ [[delta] [phi]] [3.14] ]\n  temp targets [ cpu [79.5] case [72.0] ]\n]\n\nservers [\n  alpha [\n    ip [10.0.0.1]\n    role [frontend]\n  ]\n  beta [\n    ip [10.0.0.2]\n    role [backend]\n  ]\n\n  -discarded key [[with][a][value]]\n  -[discarded section]\n]\n\nembedded documents [\n  some json `'json'\n  { \n    \"id\": \"b3df0d\",\n    \"count\": 55,\n    \"props\": {\n      \"return code\": \"59503a7b\",\n      \"status\": \"pending\"\n    },\n    \"associated ids\": [\n      \"3adf7c\",\n      \"ff0df7\",\n      \"3aa670\"\n    ],\n    \"parent\": null \n  }\n  'json'\n  more json `'json'55'json'\n  json string `'json'\"\\n\\tsomething\\u0000\"'json'\n  json array `'json'[1, 2, 3, 4, null]'json'\n]\n```\n\ninto this JSON:\n\n```json\n{\n  \"title\": \"jevkodata Example\",\n  \"owner\": {\n    \"name\": \"tester\",\n    \"dob\": \"2020-08-05T20:30:01+09:00[Asia/Tokyo][u-ca=japanese]\"\n  },\n  \"database\": {\n    \"enabled\": true,\n    \"quoted\": \"true\",\n    \"ports\": [\n      8000,\n      8001,\n      8002\n    ],\n    \"data\": [\n      [\n        \"delta\",\n        \"phi\"\n      ],\n      3.14\n    ],\n    \"temp targets\": {\n      \"cpu\": 79.5,\n      \"case\": 72\n    }\n  },\n  \"servers\": {\n    \"alpha\": {\n      \"ip\": \"10.0.0.1\",\n      \"role\": \"frontend\"\n    },\n    \"beta\": {\n      \"ip\": \"10.0.0.2\",\n      \"role\": \"backend\"\n    }\n  },\n  \"embedded documents\": {\n    \"some json\": {\n      \"id\": \"b3df0d\",\n      \"count\": 55,\n      \"props\": {\n        \"return code\": \"59503a7b\",\n        \"status\": \"pending\"\n      },\n      \"associated ids\": [\n        \"3adf7c\",\n        \"ff0df7\",\n        \"3aa670\"\n      ],\n      \"parent\": null\n    },\n    \"more json\": 55,\n    \"json string\": \"\\n\\tsomething\\u0000\",\n    \"json array\": [\n      1,\n      2,\n      3,\n      4,\n      null\n    ]\n  }\n}\n```\n\n\u003c!-- todo: edit V --\u003e\n\nThe example is based on the one from [TOML's homepage](https://toml.io/en/).\n\n.jevkodata recognizes the following primitive values:\n\n* `true` and `false` (booleans)\n* numbers, e.g. `999.99` -- parsed as according to Ecma262 grammar -- `Infinity` and `NaN` are supported\n* `null`\n* `map` means an empty map `{}`\n* `list` means an empty list `[]`\n* `'\u003canything\u003e` or `'\u003canything\u003e'` means that `\u003canything\u003e` is meant to be a string, e.g. `'true` or `'true'` is `\"true\"`\n* anything unrecognized is interpreted as a string and autotrimmed\n\n# Heredocs\n\nHeredoc strings are supported like this:\n\n```\n\u003ckey\u003e `'\u003ctag\u003e'.............'\u003ctag\u003e'\n```\n\n`\u003ctag\u003e` is any user-defined delimiting identifier, can be empty.\n\nExample:\n\n```\ndob `''2020-08-05T20:30:01+09:00[Asia/Tokyo][u-ca=japanese]''\n```\n\nparses to:\n\n```json\n{\n  \"dob\": \"2020-08-05T20:30:01+09:00[Asia/Tokyo][u-ca=japanese]\"\n}\n```\n\nAll strings (not just heredocs) may be multiline.\n\n# Comments\n\n```\nThis is a multiline\ncomment that precedes\na key [with a value]\n```\n\nparses to:\n\n```json\n{\n  \"a key\": \"with a value\"\n}\n```\n\nAlso:\n\n```\narray [\n  Comment for the\n  frist value of an array\n  [1]\n  Comment for the\n  second value\n  [2]\n]\n```\n\nparses to:\n\n```\n{\n  \"array\": [1, 2]\n}\n```\n\ni.e. by default all lines that precede a line with an opening bracket `[` are ignored.\n\nKeys can contain embedded spaces, but leading and trailing whitespace is not considered part of them by default.\n\nThe default behavior for keys can be changed by wrapping them in apostrophes. This allows to enter multiline keys, keys that include leading/trailing spaces, as well as the empty key:\n\n```\n'' [value of the empty key]\n'  key with leading and trailing spaces  ' [value1]\n'multiline\nkey' [value2]\n' padded\nmultiline key ' [value3]\n```\n\nconverts to:\n\n```json\n{\n  \"\": \"value of the empty key\",\n  \"  key with leading and trailing spaces  \": \"value1\",\n  \"multiline\\nkey\": \"value2\",\n  \" padded\\nmultiline key \": \"value3\"\n}\n```\n\n# Embedded JSON\n\nJSON values can be embedded in .jevkodata as follows:\n\n```\njson object `'json'\n{ \n  \"id\": \"b3df0d\",\n  \"count\": 55\n}\n'json'\njson number `'json'55'json'\njson string `'json'\"\\n\\tsomething\\u0000\"'json'\njson array `'json'[1, 2, 3, 4, null]'json'\n```\n\nThis will parse to:\n\n```json\n{\n  \"json object\": { \n    \"id\": \"b3df0d\",\n    \"count\": 55\n  },\n  \"json number\": 55,\n  \"json string\": \"\\n\\tsomething\\u0000\",\n  \"json array\": [\n    1,\n    2,\n    3,\n    4,\n    null\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjevko%2Fjevkodata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjevko%2Fjevkodata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjevko%2Fjevkodata/lists"}