{"id":17170905,"url":"https://github.com/huderlem/linoone","last_synced_at":"2025-04-13T16:08:21.981Z","repository":{"id":44717290,"uuid":"357362960","full_name":"huderlem/linoone","owner":"huderlem","description":"Static website generator for Pokémon decomp projects","archived":false,"fork":false,"pushed_at":"2022-11-14T23:56:05.000Z","size":128,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T16:08:17.303Z","etag":null,"topics":["pokemon","pokemon-data","python","reverse-engineering","static-site-generator"],"latest_commit_sha":null,"homepage":"https://www.huderlem.com/linoone","language":"Python","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/huderlem.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":"2021-04-12T23:05:29.000Z","updated_at":"2023-12-02T18:23:04.000Z","dependencies_parsed_at":"2023-01-23T03:16:05.177Z","dependency_job_id":null,"html_url":"https://github.com/huderlem/linoone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huderlem%2Flinoone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huderlem%2Flinoone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huderlem%2Flinoone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huderlem%2Flinoone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huderlem","download_url":"https://codeload.github.com/huderlem/linoone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741206,"owners_count":21154255,"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":["pokemon","pokemon-data","python","reverse-engineering","static-site-generator"],"created_at":"2024-10-14T23:33:05.185Z","updated_at":"2025-04-13T16:08:21.956Z","avatar_url":"https://github.com/huderlem.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linoone\nLinoone is a static website generator for Pokémon decompilation projects (only [pokeemerald](https://github.com/pret/pokeemerald) is currently supported). Many projects add custom Pokémon, moves, and much more.  Sometimes, authors like to provide a reference website for the players, similar to Bulbapedia or Serebii. Linoone aims to automatically generate a reference website like that, based on the data from the project's source code.\n\n## Setup\n\nLinoone is built with Python 3. It has a few dependencies, which are listed in `requirements.txt` and can be installed using the following `pip` command.\n```sh\npip install -r requirements.txt\n```\n\nAdditionally, you must have [Graphviz](https://graphviz.org/download/) installed and available on your path.\n\nLinoone uses `pycparser` to parse the project's C files. `pycparser` has a couple issues with parsing the vanilla pokeemerald source code.\n\nIn your pokeemerald repo, in `include/global.h`, stub out `__attribute__` at the top of the file.\n```diff\n@@ -1,6 +1,8 @@\n #ifndef GUARD_GLOBAL_H\n #define GUARD_GLOBAL_H\n\n+#define __attribute__(x)\n+\n #include \u003cstring.h\u003e\n #include \u003climits.h\u003e\n #include \"config.h\" // we need to define config before gba headers as print stuff needs the functions nulled before defines.\n@@ -107,7 +109,7 @@\n```\n\nThere is also a bug in `pycparser` which makes it choke on various unicode characters in the decomp files. You need to manually apply this fix to your local installation of `pycparser`: https://github.com/eliben/pycparser/issues/415\n\nThat's all--you should now be ready to run Linoone. See the Usage section below.\n\n## Usage\n\nSimply invoke `main.py`, while providing the filepath to the project's directory.\n```sh\npython main.py \"D:\\path\\to\\pokeemerald\"\n```\n\nIt will take awhile to run the first time (~30 seconds?) because parsing the C files is a slow process. Subsequent runs are very fast because the C files are cached into `.pickle` files in the same directory. If everything succeeds, you will see a `dist/` directory created with the resulting HTML files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuderlem%2Flinoone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuderlem%2Flinoone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuderlem%2Flinoone/lists"}