This is a web implementation of a dirty trail. You can access it in adirtytrail.netlify.app.
Currently, it offers a single narration and no internationalization. I'm working on it!
Each narration has its own subfolder under /public/narrations. The scenes are divided into folders, which are kind of acts. The name of the folder under which a scene is, will be the title of all those scenes.
Each scene is composed of two files, a .md
file and a .yaml
file. The two of them need to have the same name. In the .md
file there is the prose, and in the yaml
, the metadata.
Both files are merged together and the resulting one copied together to the appropriate folder via the npm run buildNarrations
script. This script also adds the title
and id
to the scenes based on the folder name.
Remember, after modifying a narration, run:
npm run buildNarrations
Just modify the scenes you want to by editing their .md
and .yaml
files. Don't bother modifying the autogenerated versions of them!.
You can also add new scenes to existing acts, remove acts or create new acts.
Create a new folder under public/narrations
and start adding scene. Beware, currently there is no narrations selection.
Currently there is no automatic testing for the narrations, so you won't get to know if your paths can be really traversed or not. However there are three utilities to test narrations:
npm run test
: it checks that your scenes are valid.npm run narrationsToGraph
: it exports each narration to its own.graph
file. This graph format is compatible with grapher.tech.npm run narrationsReport
: it outputs to the console a report of each narration, and find possible broken links between scenes.
These things have icons associated:
- Enemies.
- Weapons.
- Ammunitions.
The icons are automatically selected based on:
- Enemies: their name. For example, an enemy called
Boar
will try to get its icon from/public/Boar.svg
. - Weapons: their type. For example, a
revolver
gets its icon from/public/revolver.svg
. - Ammunitions: their type. For example,
bullets
will get two icons:/public/bullets.svg
and/public/bullets-empty.svg
.
This is a Next.js project bootstrapped with create-next-app
.