This project compares Diablo II mod data across BKDiablo, BTDiablo, and retail data, then generates human-readable reports plus a local static wiki.
/
|-- data/ # Retail/base data snapshots and shared config
|-- docs/ # Modding references and project plans
|-- exports/ # Generated item database exports, ignored locally
|-- mods/ # BKDiablo and BTDiablo mod data
|-- output/ # Generated reports and local wiki output, ignored locally
|-- scripts/ # Rebuild entrypoint plus shared Python implementation
`-- tests/ # Unit tests and fixtures
Install dependencies:
python -m pip install -r requirements.txtRun the test suite:
python -m unittest discover -s testsRebuild all generated outputs:
python scripts/generate_reports.pyThat command exports item databases, compares BKDiablo against BTDiablo and retail, regenerates class skill trees, and writes the local wiki to output/wiki/.
These paths are produced by scripts/generate_reports.py and are intentionally ignored by git. They should be regenerated from source data instead of edited or reviewed as source files.
exports/item_db/: BKDiablo structured item exportexports/item_db_bt/: BTDiablo structured item exportexports/item_db_retail/: retail structured item exportoutput/item_diff_report_bt_bk/: BKDiablo vs BTDiablo item comparisonoutput/item_diff_report_retail_bk/: BKDiablo vs retail item comparisonoutput/excel_diff_report_bt_bk/: BKDiablo vs BTDiablo raw Excel comparisonoutput/excel_diff_report_retail_bk/: BKDiablo vs retail raw Excel comparisonoutput/skill_trees/: generated class skill tree Markdownoutput/wiki/: generated static wiki site and GitHub Pages artifact
Diff report directories contain structured JSON DTOs plus browser-friendly HTML entry points at index.html. Markdown diff reports are no longer generated by the canonical report pipeline. Legacy direct-command defaults such as output/item_diff_report/ and output/excel_diff_report/ are ignored. Prefer scripts/generate_reports.py for repeatable project output.
The wiki is a static site generated from the structured exports and skill tree Markdown. Item detail pages are pre-rendered HTML, while the item index uses output/wiki/data/items-index.json for browser-side search and filtering. Technical report pages are copied into output/wiki/reports/ during generation.
For local viewing, serve output/wiki/ with a simple static server after running the generator.
scripts/generate_reports.py is the top-level rebuild command. The implementation is organized under:
scripts/d2lib/: shared repository, service, exporter, and wiki generator codescripts/cli/: primary CLI implementationsscripts/devtools/: development inspection utilities