* docs: migrate from mkdocs to mdbook - Rename old mkdocs docs/ to old-docs/ for reference - Set up new docs/ with mdbook (book.toml + src/ tree) - Mirror full nav structure from mkdocs.yml into SUMMARY.md - Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes - Import Justfile-docs from root Justfile - Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action to install mdbook, split into separate build + deploy jobs, PR builds run the check step too * ci(docs): pin actions to SHAs, install mdbook via release binary * ci(docs): install mdbook from apt instead of curling a release binary * dev: replace mkdocs python stack with mdbook in dev image * ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI * docs: fix duplicate file entries in SUMMARY.md * docs: remove docs-install recipe * docs: remove site-url from book.toml to fix asset loading * dev: install mdbook from upstream release binary, not Debian apt The Debian package (0.4.x+ds) strips bundled font assets, leaving the built site without fonts/fonts.css. Use the upstream tarball (same as CI) so the theme is complete. Handles x86_64 and aarch64. * docs: vendor mdbook tarballs in dev/mdbook/, install from there Dockerfile.dev uses COPY + tar to install the right arch at build time. CI extracts the x86_64 tarball directly from the checkout. No network access required for either — and no stripped-fonts Debian package. * fix: unwritten
4.1 KiB
Merging DDR data into seeds
!!! important You need to have a working setup of Tachi to use this script.
For instructions on how to do that, see [Tachi Setup](../setup.md).
Using musicdb.xml
We have a script that already exists for parsing a musicdb.xml file and merging it with the database seeds.
This is convenient for when you want to provide an update for DDR based off data you have.
Importing DDR gamedata
Navigate to seeds/scripts/rerunners/ddr.
The file you're looking to run is parse-gameData-xml.ts, but it needs two arguments:
--input, which is the location of themusicdb.xmlfile you're looking to parse.--version, what version of the game this music db is from. For a list of versions, see the DDR Config.
You can run this script by typing ts-node parse-gameData-xml.ts --input YOUR_INPUT_HERE --version YOUR_VERSION_HERE in the terminal.
For example, if your file is in the same directory as the script, and you're importing from DDR World:
ts-node parse-gameData-xml.ts --input ./musicdb.xml --version world
!!! warning "Warning"
If all the difficulties in your XML file are set to `255`, you will need to enter them manually before importing.
Otherwise, the song won't be imported properly, and the difficulties won't show up.
If the song is also in DDR Konaste, and you have the relevant json file, you can copy the values over.
Alternatively, you can use [RemyWiki](https://remywiki.com/). Look up the song's name, then copy the difficulties manually from the table.
- Search for your song on RemyWiki.
- Scroll down to "Difficulty & Notecounts", then look for the table containing your game version.
- Manually copy the difficulties from it.
For example, with [Cheerleader](https://remywiki.com/Cheerleader):
The difficulty in `musicdb.xml` is set to `<diffLv __type="u8" __count="10">255 255 255 255 255 0 255 255 255 255</diffLv>`, which is incorrect.
After following these steps, you should end up with `<diffLv __type="u8" __count="10">2 6 9 13 15 0 6 9 13 15</diffLv>`.
Notes: There are 10 numbers, each one corresponding to a level of difficulty.
The first 5 are for SP, and the remaining are for DP.
The difficulty levels range from *BEGINNER*, *BASIC*, *DIFFICULT*, *EXPERT*, to *CHALLENGE*.
Any difficulty above 19 will be ignored, and a difficulty of 0 means that the song does not have it.
The *BEGINNER* field for DP is always set to 0 because it doesn't exist.
Updating stepCounts
Step counts are generated from SSQ files. You're on your own to find them.
Place all of your SSQ files in the ssq folder. The name of each file should correspond to the basename of each song, which is a 4~5 characters identifier.
Then, run ts-node parse-charts.ts
Using a JSON file
We have a script that already exists for parsing a JSON file and merging it with the database seeds. This is convenient for when you want to provide an update for DDR based off data you have.
!!! danger "Important"
JSON files are usually used for Konaste game data, and therefore won't have all arcade songs.
Due to encoding differences, songs may contain Unicode characters in them instead of their actual names. You will have to manually fix this.
Additionally, the basename of existing songs may be edited incorrectly.
Therefore, this option is **not** recommended.
Navigate to seeds/scripts/rerunners/ddr.
The file you're looking to run is parse-gameData-json.ts, but it needs two arguments:
--input, which is the location of the JSON file you're looking to parse.--version, what version of the game this music db is from. For a list of versions, see the DDR Config.
You can run this script by typing ts-node parse-gameData-json.ts --input YOUR_INPUT_HERE --version YOUR_VERSION_HERE in the terminal.
For example, if your file is in the same directory as the script, and you're importing from DDR Konaste:
ts-node parse-gameData-json.ts --input ./music.json --version konaste