# Adding more data

### Adding an MMP module

To add rules for a module already referenced by the ASLRB index (e.g. RB or BR:T), you first need to provide a scanned PDF of the rules, named `ASL Rulebook (xxx).pdf`.

Then, write a targets file `ASL Rulebook (xxx).targets`, that describes where each rule lives within the PDF. As an example, take a look at the `ASL Rulebook.targets` file that was extracted for you.

*NOTE: Only the page number is required, the X/Y position on the page is optional.*

Finally, bookmarks need to be created in the PDF for each rule, so that the program can jump directly to each rule:
```
    asl_rulebook2/bin/prepare_pdf.py \
        xxx-original.pdf \
        --targets targets.json \
        --yoffset 5 \
        --output /tmp/xxx-prepared.pdf
```
Save the prepared file as `ASL Rulebook (xxx).pdf`, and the targets file, in your data directory, and restart the server.

Optionally, you can also provide:
- a `ASL Rulebook (xxx).chapters` file (to be able to browse the PDF in the *Chapters* panel)
- a `ASL Rulebook (xxx).footnotes` file (if the rules have any footnotes).

To add a chapter icon and background, create files `XXX-icon.png` and `XXX-background.png`, where `XXX` is the chapter ID. For MMP modules, this is inferred from the rule ID (e.g. "O3.3" becomes "O"); for third-party modules, you can define a chapter ID by adding a `chapter_id` key to the `.chapters` files.

### Adding a third-party module

To add rules for a module not already referenced by the ASLRB index, the process is the same as above, but you also need to write a `.index` file. As an example, take a look at the `ASL Rulebook.index` file that was extracted for you.

All the files should have the same base filename e.g.
- kgs.index
- kgs.pdf
- kgs.targets
- etc...

### Adding Q+A, errata, user annoations, ASOP

This is described [here](../asl_rulebook2/webapp/tests/fixtures/full/).

*NOTE: If you add Q+A, there is a tool in `$/asl_rulebook2/bin/qa-helper/` to help with the process.*
