{"id":19980210,"url":"https://github.com/mdallastella/clj-pgn","last_synced_at":"2025-08-30T14:17:21.865Z","repository":{"id":71891120,"uuid":"115742136","full_name":"mdallastella/clj-pgn","owner":"mdallastella","description":"A simple Portable Notation Game parse library.","archived":false,"fork":false,"pushed_at":"2020-01-12T18:18:41.000Z","size":58,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-04T05:32:30.374Z","etag":null,"topics":["chess","clojure","library","pgn"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdallastella.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":"2017-12-29T17:40:18.000Z","updated_at":"2025-02-20T16:53:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"06c8a2ea-18fd-4dfc-abbc-5f2b919e5914","html_url":"https://github.com/mdallastella/clj-pgn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mdallastella/clj-pgn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdallastella%2Fclj-pgn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdallastella%2Fclj-pgn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdallastella%2Fclj-pgn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdallastella%2Fclj-pgn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdallastella","download_url":"https://codeload.github.com/mdallastella/clj-pgn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdallastella%2Fclj-pgn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272858568,"owners_count":25005100,"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-08-30T02:00:09.474Z","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":["chess","clojure","library","pgn"],"created_at":"2024-11-13T03:40:26.383Z","updated_at":"2025-08-30T14:17:21.844Z","avatar_url":"https://github.com/mdallastella.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clj-pgn\n\nA Clojure parser for PGN ([Portable Game\nNotation](https://en.wikipedia.org/wiki/Portable_Game_Notation)). It transforms\na PGN database into a vector of maps. It's in a very early stage.\n\n## Installation\n\nAdd the necessary dependency to your project:\n\n``` clojure\n[clj-pgn \"0.1.1-SNAPSHOT\"]\n```\n\n## Usage\n\nLoad from a file:\n\n```clojure\nuser\u003e (require '[clj-pgn.core :as clj-pgn])\nuser\u003e (clj-pgn/load-pgn \"/path/to/file.pgn\")\n```\n\nLoad from a string:\n\n```clojure\nuser\u003e (require '[clj-pgn.core :as clj-pgn])\nuser\u003e (clj-pgn/parse-pgn \"1.e4 e5 1/2-1/2\")\n```\n\n## Future features\n\n- [ ] Support for variations (#1)\n- [ ] Export [FEN](https://en.wikipedia.org/wiki/Forsyth–Edwards_Notation) notation for a\ngiven move (#2)\n- [ ] Improve documentation\n\n## Example\n\nHere's a small example of the parsing of a very short game: Frank Melville Teed\nvs Eugene Delmar, New York, 1896:\n\n```\n[Event \"New York\"]\n[Site \"New York, NY USA\"]\n[Date \"1896.??.??\"]\n[EventDate \"?\"]\n[Round \"?\"]\n[Result \"1-0\"]\n[White \"Frank Melville Teed\"]\n[Black \"Eugene Delmar\"]\n[ECO \"A80\"]\n[WhiteElo \"?\"]\n[BlackElo \"?\"]\n[PlyCount \"15\"]\n\n1.d4 f5 2.Bg5 h6 3.Bf4 g5 4.Bg3 f4 5.e3 h5 6.Bd3 Rh6 7.Qxh5+\nRxh5 8.Bg6# 1-0\n```\n\nbecomes:\n\n```clojure\n[{:headers\n  [{:Event \"\\\"New York\\\"\"}\n   {:Site \"\\\"New York, NY USA\\\"\"}\n   {:Date \"\\\"1896.??.??\\\"\"}\n   {:EventDate \"\\\"?\\\"\"}\n   {:Round \"\\\"?\\\"\"}\n   {:Result \"\\\"1-0\\\"\"}\n   {:White \"\\\"Frank Melville Teed\\\"\"}\n   {:Black \"\\\"Eugene Delmar\\\"\"}\n   {:ECO \"\\\"A80\\\"\"}\n   {:WhiteElo \"\\\"?\\\"\"}\n   {:BlackElo \"\\\"?\\\"\"}\n   {:PlyCount \"\\\"15\\\"\"}],\n  :movelist\n  [{:white {:move \"d4\"}, :black {:move \"f5\"}}\n   {:white {:move \"Bg5\"}, :black {:move \"h6\"}}\n   {:white {:move \"Bf4\"}, :black {:move \"g5\"}}\n   {:white {:move \"Bg3\"}, :black {:move \"f4\"}}\n   {:white {:move \"e3\"}, :black {:move \"h5\"}}\n   {:white {:move \"Bd3\"}, :black {:move \"Rh6\"}}\n   {:white {:move \"Qxh5+\"}, :black {:move \"Rxh5\"}}\n   {:white {:move \"Bg6#\"}, :black nil}],\n  :result [:WHITEWINS]}]\n```\n\n## License\n\nCopyright © 2017 Marco Dalla Stella\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdallastella%2Fclj-pgn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdallastella%2Fclj-pgn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdallastella%2Fclj-pgn/lists"}