Pf2e.Tools

Build and Deploy

Visit the main site (not yet) or go to the unofficial GitHub mirror.

Join the Pf2eTools Discord here!

Help and Support

Please see our Discord server for FAQs, installation guides, supported integrations, and more.


Developer Notes

Data Sources and Versioning

Only "official" (that is, published by Paizo) data is to be included in the site. Anything else should be added to the homebrew repository.

Prioritise RAW above all else. Aim to provide a 1:1 copy of the original data. Obvious typos (for instance, mathematical errors in creature statblocks) may be corrected at the discretion of the maintainer(s).

Aim to use the latest version of any published material. Older versions which are sufficiently different (and relevant to community interests) can be moved to the homebrew repository.

Target JavaScript Version

Targeting ES6 was the original intent, but more modern features have long since crept into the code. Therefore, if something is available as standard in both Chrome and Firefox (preferably in versions dating back at least a couple of months), and isn't bleeding-edge, one can reasonable justify using it. As with all things, use common sense.

Style Guidelines

Code

CSS

Data/Text

JSON Cleaning

Trailing commas

To remove trailing commas in JSON:

Find: (.*?)(,)(:?\s*]|\s*})

Replace: $1$3

Character replacement

Convention for dashes

Convention for measurement

Convention for Dice

Dice should be written as [X]dY[ <+|-|×> Z], i.e. with a space between dice and operator, and a space between operator and modifier. Some examples of acceptable formatting are: d6, 2d6, or 2d6 + 1.

Convention for Item Names

Item names should be title-case, with the exception of units in parentheses, which should be sentence-case. Items who's volume or amount is specified by container (e.g. (vial)) treat the container as a unit.

Mouse/Keyboard Events

Avoid binding ALT-modified events, as these are not available under MacOS or various Linux flavors. Binding SHIFT-/CTRL-modified events is preferred.

Dev Server

Do npm run serve:dev to launch a local dev server that serves the project files on http://localhost:8080/index.html.

Version bump

Do npm run version-bump -- [OPTION], where [OPTION] is one of the following:

It will first run the tests and fail to increase the version if the tests fail. It will then automatically replace the version in the files where it needs to be replaced, create a commit with the message chore(version): bump and create a tag (in the form v1.2.3) at the commit. This feature can be easily disabled by doing npm config set git-tag-version false.


License

This project is licensed under the terms of the MIT license.