{"id":26802460,"url":"https://github.com/mjsandagi/styling-myanimelist-exports","last_synced_at":"2026-02-05T20:33:16.689Z","repository":{"id":185629530,"uuid":"673848996","full_name":"mjsandagi/styling-myanimelist-exports","owner":"mjsandagi","description":"A Python script to apply a custom XSLT stylesheet to a MyAnimeList XML export, generating a HTML file with styled list data.","archived":false,"fork":false,"pushed_at":"2025-01-22T17:55:52.000Z","size":164,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-14T12:41:31.797Z","etag":null,"topics":["html","myanimelist","python","stylesheets","xml"],"latest_commit_sha":null,"homepage":"https://github.com/mjsandagi/styling-myanimelist-exports","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mjsandagi.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,"zenodo":null}},"created_at":"2023-08-02T15:01:02.000Z","updated_at":"2025-03-19T21:19:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c3aabf0-a011-4312-99e7-49540c34ee7c","html_url":"https://github.com/mjsandagi/styling-myanimelist-exports","commit_stats":null,"previous_names":["kazutokiritokirigaya/styling-myanimelist-exports","ei-cannot-cook/styling-myanimelist-exports","mjsandagi/styling-myanimelist-exports"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mjsandagi/styling-myanimelist-exports","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjsandagi%2Fstyling-myanimelist-exports","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjsandagi%2Fstyling-myanimelist-exports/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjsandagi%2Fstyling-myanimelist-exports/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjsandagi%2Fstyling-myanimelist-exports/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjsandagi","download_url":"https://codeload.github.com/mjsandagi/styling-myanimelist-exports/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjsandagi%2Fstyling-myanimelist-exports/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29133397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T19:36:52.185Z","status":"ssl_error","status_checked_at":"2026-02-05T19:35:40.941Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["html","myanimelist","python","stylesheets","xml"],"created_at":"2025-03-29T21:18:13.629Z","updated_at":"2026-02-05T20:33:16.671Z","avatar_url":"https://github.com/mjsandagi.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyAnimeList XML Styling\n\nThis is a program that applies an XSLT stylesheet (based on the MyAnimeList UI) to an XML file exported from MyAnimeList.net to generate an HTML file with customized styling. The provided XSLT stylesheet will format the anime list data and apply specific CSS styles to the HTML output.\n\n## Usage\n\n1. [Export your MyAnimeList](http://myanimelist.net/panel.php?go=export) from MyAnimeList.net as an XML file. Unzip the file via `gunzip index.xml.gzip\n` or `gzip -d index.xml.gzip` , depending on your environment.\n\n2. Save it as `myanimelist.xml`in the same directory as the Python script. If `myanimelist.xml` already exists, or for some reason you want to use a different file name, you can change the file name in the Python script.\n\n3. Run the Python script `main.py`:\n\n    ```powershell\n    python main.py\n    ```\n\nThe script will read the `myanimelist.xml` and `myanimelist.xslt` files, apply the XSLT transformation, insert `app.js` for styling, and save the result as `styled_myanimelist.html` in the same directory.\n\nOpen `styled_myanimelist.html` in your web browser to view your styled anime list.\n\n## Colouring Feature\n\nThis program has been enhanced with a colouring feature that helps you visually distinguish different anime entry statuses as follows:\n\n![Watching Tile](./assets/watching_tile.png)\n![Completed Tile](./assets/completed_tile.png)\n![On Hold Tile](./assets/on_hold_tile.png)\n![Dropped Tile](./assets/dropped_tile.png)\n![Plan to Watch Tile](./assets/plan_to_watch_tile.png)\n\n## How it Works\n\nThe Python script uses the lxml.etree library to parse the XML and XSLT files. It applies the XSLT transformation to the XML data, resulting in an HTML output with the specified styling from the XSLT stylesheet.\n\nThe XSLT stylesheet (`myanimelist.xslt`) includes a modern, minimalistic MyAnimeList-based theme. It formats the user information and each anime entry using specific HTML elements and CSS classes. The CSS styles are defined within the XSLT stylesheet to apply the desired appearance to the HTML output.\n\n_Note: Make sure you have the 'lxml' library installed before running the Python script. If you don't have it installed, you can install it using pip:_\n\n```bash\npip install lxml\n```\n\nOr using the `requirements.txt` file:\n\n```bash\npip install -r requirements.txt\n```\n\nThe `app.js` file is inserted into the HTML document, styling and manipulating the anime list entries based on their status. It applies different background colours to the anime entries based on their status and sorts the entries in the form {all watching, all completed, all on-hold, all dropped, and finally all that you plan to watch}.\n\nEnjoy styling and organizing your anime list!\n\n## License\n\nCopyright (C) 2023 mjsandagi \u003chttps://github.com/mjsandagi/\u003e\n\nThis project is licensed under the AGPL-3.0 License - see the [LICENSE](https://github.com/mjsandagi/styling-myanimelist-exports/blob/master/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjsandagi%2Fstyling-myanimelist-exports","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjsandagi%2Fstyling-myanimelist-exports","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjsandagi%2Fstyling-myanimelist-exports/lists"}