{"id":20430839,"url":"https://github.com/ulughann/noml","last_synced_at":"2025-04-12T20:33:48.664Z","repository":{"id":214372710,"uuid":"736359610","full_name":"ulughann/noml","owner":"ulughann","description":"Non Overcomplicated Minimal Language (Notation Language under 7 semicolons)","archived":false,"fork":false,"pushed_at":"2023-12-27T21:06:23.000Z","size":8,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T14:50:34.775Z","etag":null,"topics":["config","json","markup-language","toml","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ulughann.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}},"created_at":"2023-12-27T17:21:24.000Z","updated_at":"2024-09-08T19:29:53.000Z","dependencies_parsed_at":"2024-09-11T22:38:31.647Z","dependency_job_id":"6336e908-6e0c-4404-bc6f-c3c46efd7330","html_url":"https://github.com/ulughann/noml","commit_stats":null,"previous_names":["onrirr/noml","ulughann/noml"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulughann%2Fnoml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulughann%2Fnoml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulughann%2Fnoml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulughann%2Fnoml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ulughann","download_url":"https://codeload.github.com/ulughann/noml/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248630280,"owners_count":21136411,"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":["config","json","markup-language","toml","yaml"],"created_at":"2024-11-15T08:09:15.551Z","updated_at":"2025-04-12T20:33:48.643Z","avatar_url":"https://github.com/ulughann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" src=\"NOML.png\" alt=\"TOML logo\"\u003e\n\n# NOML\n\nNon Overcomplicated, Minimal Language\n\nBy a high school student, under 25 LOC.\n\n\u003e This repository contains everything there is to know about Noml because there isn't much to know anyway.\n\n## Objectives\n\nNoml aims to *over*simplify the *overcomplicated* world of config files. It is a *minimal* language that is ***non overcomplicated** by definition. It also aims to be tiny, with the entire language being under 25 lines of code.\n\n## Contents\n\n- [NOML](#noml)\n  - [Objectives](#objectives)\n  - [Contents](#contents)\n  - [Example](#example)\n  - [Features](#features)\n    - [Small](#small)\n\n## Example\n```py\ntitle = NOML Example\n\nowner\n  name = Tom Preston-Werner\n\ndatabase\n  server = 192.168.1.1\n  enabled = true\n```\n\n## Features\n\n### Small\n\nNo need to brag about how small it is, here have the entire source code.\n```javascript\nexport function parse(code) {\n  const configMap = {};\n  let currentSegment;\n\n  code.split`\\n`.forEach((line = line.trim()) =\u003e {\n    if (line) {\n      if (line.includes(\"=\")) {\n        const [key, rawValue] = line.split(\"=\").map((str) =\u003e str.trim());\n        const value =\n          rawValue.startsWith('\"') \u0026\u0026 rawValue.endsWith('\"')\n            ? rawValue.slice(1, -1)\n            : !isNaN(rawValue)\n            ? +rawValue\n            : rawValue.toLowerCase() === \"true\"\n            ? true\n            : rawValue.toLowerCase() === \"false\"\n            ? false\n            : rawValue;\n\n        if (currentSegment) configMap[currentSegment][key] = value;\n        else configMap[key] = value;\n      } else (currentSegment = line), (configMap[currentSegment] = {});\n    }\n  });\n\n  return configMap;\n}\n```\n\nps. you probably shouldn't use this in production.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulughann%2Fnoml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fulughann%2Fnoml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulughann%2Fnoml/lists"}