fix: remove leading slashes from asset paths in config and markdown

Convert absolute root-relative paths to relative paths across all game
asset JSON configs (playfields, slots, shift, spireclimb) and tutorial
markdown files to fix path resolution.
This commit is contained in:
Brian Fertig 2026-06-28 21:00:15 -06:00
parent c3e745da5e
commit fb5a356268
5 changed files with 82 additions and 82 deletions

View File

@ -11,39 +11,39 @@
"id": "cherry",
"name": "Cherry Wooden Table",
"key": "playfield-cherry",
"path": "/assets/images/playfield-wood-cherry.png"
"path": "assets/images/playfield-wood-cherry.png"
},
{
"id": "light",
"name": "Bright Wooden Table",
"key": "playfield-light",
"path": "/assets/images/playfield-wood-light.png"
"path": "assets/images/playfield-wood-light.png"
},
{
"id": "dark",
"name": "Dark Wooden Table",
"key": "playfield-dark",
"path": "/assets/images/playfield-wood-dark.png"
"path": "assets/images/playfield-wood-dark.png"
},
{
"id": "felt",
"name": "Green Felt",
"key": "playfield-felt",
"path": "/assets/images/playfield-felt-green.png",
"path": "assets/images/playfield-felt-green.png",
"fallbackColor": "#14532d"
},
{
"id": "red",
"name": "Red Felt",
"key": "playfield-red",
"path": "/assets/images/playfield-felt-red.png",
"path": "assets/images/playfield-felt-red.png",
"fallbackColor": "#14532d"
},
{
"id": "blue",
"name": "Blue Felt",
"key": "playfield-blue",
"path": "/assets/images/playfield-felt-blue.png",
"path": "assets/images/playfield-felt-blue.png",
"fallbackColor": "#14532d"
}
]

View File

@ -10,43 +10,43 @@
"id": "exploring-the-alien-world",
"name": "Exploring the Alien World",
"key": "exploring-the-alien-world",
"path": "/assets/images/shift/alien-world.png"
"path": "assets/images/shift/alien-world.png"
},
{
"id": "dolphin-underwater",
"name": "Underwater Dolphin Adventure",
"key": "dolphin-underwater",
"path": "/assets/images/shift/dolphin-underwater.png"
"path": "assets/images/shift/dolphin-underwater.png"
},
{
"id": "fall-bike",
"name": "Biking in the Fall",
"key": "fall-bike",
"path": "/assets/images/shift/fall-bike.png"
"path": "assets/images/shift/fall-bike.png"
},
{
"id": "norway-fishing",
"name": "Fishing Village in Norway",
"key": "norway-fishing",
"path": "/assets/images/shift/norway-fishing.png"
"path": "assets/images/shift/norway-fishing.png"
},
{
"id": "puppy-space",
"name": "Room with a View",
"key": "puppy-space",
"path": "/assets/images/shift/puppy-space.png"
"path": "assets/images/shift/puppy-space.png"
},
{
"id": "red-dress",
"name": "Red Dress in Paris",
"key": "red-dress",
"path": "/assets/images/shift/red-dress.png"
"path": "assets/images/shift/red-dress.png"
},
{
"id": "warrior",
"name": "Fierce Warrior",
"key": "warrior",
"path": "/assets/images/shift/warrior.png"
"path": "assets/images/shift/warrior.png"
}
]
}

View File

@ -9,72 +9,72 @@
{
"id": "liberty-belle-spade",
"key": "slots-liberty-belle-spade",
"path": "/assets/images/slots/liberty-belle/spade.png"
"path": "assets/images/slots/liberty-belle/spade.png"
},
{
"id": "liberty-belle-diamond",
"key": "slots-liberty-belle-diamond",
"path": "/assets/images/slots/liberty-belle/diamond.png"
"path": "assets/images/slots/liberty-belle/diamond.png"
},
{
"id": "liberty-belle-star",
"key": "slots-liberty-belle-star",
"path": "/assets/images/slots/liberty-belle/star.png"
"path": "assets/images/slots/liberty-belle/star.png"
},
{
"id": "liberty-belle-heart",
"key": "slots-liberty-belle-heart",
"path": "/assets/images/slots/liberty-belle/heart.png"
"path": "assets/images/slots/liberty-belle/heart.png"
},
{
"id": "liberty-belle-horseshoe",
"key": "slots-liberty-belle-horseshoe",
"path": "/assets/images/slots/liberty-belle/horseshoe.png"
"path": "assets/images/slots/liberty-belle/horseshoe.png"
},
{
"id": "liberty-belle-bell",
"key": "slots-liberty-belle-bell",
"path": "/assets/images/slots/liberty-belle/bell.png"
"path": "assets/images/slots/liberty-belle/bell.png"
},
{
"id": "liberty-belle-cabinet",
"key": "slots-liberty-belle-cabinet",
"path": "/assets/images/slots/slots-liberty-belle-cabinet.png"
"path": "assets/images/slots/slots-liberty-belle-cabinet.png"
},
{
"id": "liberty-belle-card",
"key": "slots-liberty-belle-card",
"path": "/assets/images/slots/slots-liberty-belle-card.png"
"path": "assets/images/slots/slots-liberty-belle-card.png"
},
{
"id": "fruit-frenzy-cherry",
"key": "slots-fruit-frenzy-cherry",
"path": "/assets/images/slots/fruit-frenzy/cherry.png"
"path": "assets/images/slots/fruit-frenzy/cherry.png"
},
{
"id": "fruit-frenzy-lemon",
"key": "slots-fruit-frenzy-lemon",
"path": "/assets/images/slots/fruit-frenzy/lemon.png"
"path": "assets/images/slots/fruit-frenzy/lemon.png"
},
{
"id": "fruit-frenzy-plum",
"key": "slots-fruit-frenzy-plum",
"path": "/assets/images/slots/fruit-frenzy/plum.png"
"path": "assets/images/slots/fruit-frenzy/plum.png"
},
{
"id": "fruit-frenzy-orange",
"key": "slots-fruit-frenzy-orange",
"path": "/assets/images/slots/fruit-frenzy/orange.png"
"path": "assets/images/slots/fruit-frenzy/orange.png"
},
{
"id": "fruit-frenzy-melon",
"key": "slots-fruit-frenzy-melon",
"path": "/assets/images/slots/fruit-frenzy/melon.png"
"path": "assets/images/slots/fruit-frenzy/melon.png"
},
{
"id": "fruit-frenzy-bell",
"key": "slots-fruit-frenzy-bell",
"path": "/assets/images/slots/fruit-frenzy/bell.png"
"path": "assets/images/slots/fruit-frenzy/bell.png"
},
{
"id": "fruit-frenzy-bar",
@ -84,12 +84,12 @@
{
"id": "fruit-frenzy-cabinet",
"key": "slots-fruit-frenzy-cabinet",
"path": "/assets/images/slots/slots-fruit-frenzy-cabinet.png"
"path": "assets/images/slots/slots-fruit-frenzy-cabinet.png"
},
{
"id": "fruit-frenzy-card",
"key": "slots-fruit-frenzy-card",
"path": "/assets/images/slots/slots-fruit-frenzy-card.png"
"path": "assets/images/slots/slots-fruit-frenzy-card.png"
},
{
"id": "lucky-sevens-blank",
@ -134,27 +134,27 @@
{
"id": "lucky-sevens-cabinet",
"key": "slots-lucky-sevens-cabinet",
"path": "/assets/images/slots/slots-lucky-sevens-cabinet.png"
"path": "assets/images/slots/slots-lucky-sevens-cabinet.png"
},
{
"id": "lucky-sevens-card",
"key": "slots-lucky-sevens-card",
"path": "/assets/images/slots/slots-lucky-sevens-card.png"
"path": "assets/images/slots/slots-lucky-sevens-card.png"
},
{
"id": "pharaohs-fortune-ankh",
"key": "slots-pharaohs-fortune-ankh",
"path": "/assets/images/slots/pharaohs-fortune/ankh.png"
"path": "assets/images/slots/pharaohs-fortune/ankh.png"
},
{
"id": "pharaohs-fortune-eye",
"key": "slots-pharaohs-fortune-eye",
"path": "/assets/images/slots/pharaohs-fortune/eye.png"
"path": "assets/images/slots/pharaohs-fortune/eye.png"
},
{
"id": "pharaohs-fortune-cat",
"key": "slots-pharaohs-fortune-cat",
"path": "/assets/images/slots/pharaohs-fortune/cat.png"
"path": "assets/images/slots/pharaohs-fortune/cat.png"
},
{
"id": "pharaohs-fortune-ace",
@ -179,82 +179,82 @@
{
"id": "pharaohs-fortune-sphinx",
"key": "slots-pharaohs-fortune-sphinx",
"path": "/assets/images/slots/pharaohs-fortune/sphinx.png"
"path": "assets/images/slots/pharaohs-fortune/sphinx.png"
},
{
"id": "pharaohs-fortune-pyramid",
"key": "slots-pharaohs-fortune-pyramid",
"path": "/assets/images/slots/pharaohs-fortune/pyramid.png"
"path": "assets/images/slots/pharaohs-fortune/pyramid.png"
},
{
"id": "pharaohs-fortune-pharaoh",
"key": "slots-pharaohs-fortune-pharaoh",
"path": "/assets/images/slots/pharaohs-fortune/pharaoh.png"
"path": "assets/images/slots/pharaohs-fortune/pharaoh.png"
},
{
"id": "pharaohs-fortune-cabinet",
"key": "slots-pharaohs-fortune-cabinet",
"path": "/assets/images/slots/slots-pharaohs-fortune-cabinet.png"
"path": "assets/images/slots/slots-pharaohs-fortune-cabinet.png"
},
{
"id": "pharaohs-fortune-card",
"key": "slots-pharaohs-fortune-card",
"path": "/assets/images/slots/slots-pharaohs-fortune-card.png"
"path": "assets/images/slots/slots-pharaohs-fortune-card.png"
},
{
"id": "abyssal-treasures-bubble",
"key": "slots-abyssal-treasures-bubble",
"path": "/assets/images/slots/abyssal-treasures/bubble.png"
"path": "assets/images/slots/abyssal-treasures/bubble.png"
},
{
"id": "abyssal-treasures-octopus",
"key": "slots-abyssal-treasures-octopus",
"path": "/assets/images/slots/abyssal-treasures/octopus.png"
"path": "assets/images/slots/abyssal-treasures/octopus.png"
},
{
"id": "abyssal-treasures-coral",
"key": "slots-abyssal-treasures-coral",
"path": "/assets/images/slots/abyssal-treasures/coral.png"
"path": "assets/images/slots/abyssal-treasures/coral.png"
},
{
"id": "abyssal-treasures-seahorse",
"key": "slots-abyssal-treasures-seahorse",
"path": "/assets/images/slots/abyssal-treasures/seahorse.png"
"path": "assets/images/slots/abyssal-treasures/seahorse.png"
},
{
"id": "abyssal-treasures-starfish",
"key": "slots-abyssal-treasures-starfish",
"path": "/assets/images/slots/abyssal-treasures/starfish.png"
"path": "assets/images/slots/abyssal-treasures/starfish.png"
},
{
"id": "abyssal-treasures-shell",
"key": "slots-abyssal-treasures-shell",
"path": "/assets/images/slots/abyssal-treasures/seashell.png"
"path": "assets/images/slots/abyssal-treasures/seashell.png"
},
{
"id": "abyssal-treasures-angler",
"key": "slots-abyssal-treasures-angler",
"path": "/assets/images/slots/abyssal-treasures/angler.png"
"path": "assets/images/slots/abyssal-treasures/angler.png"
},
{
"id": "abyssal-treasures-mermaid",
"key": "slots-abyssal-treasures-mermaid",
"path": "/assets/images/slots/abyssal-treasures/mermaid.png"
"path": "assets/images/slots/abyssal-treasures/mermaid.png"
},
{
"id": "abyssal-treasures-pearl",
"key": "slots-abyssal-treasures-pearl",
"path": "/assets/images/slots/abyssal-treasures/pearl.png"
"path": "assets/images/slots/abyssal-treasures/pearl.png"
},
{
"id": "abyssal-treasures-cabinet",
"key": "slots-abyssal-treasures-cabinet",
"path": "/assets/images/slots/slots-abyssal-treasures-cabinet.png"
"path": "assets/images/slots/slots-abyssal-treasures-cabinet.png"
},
{
"id": "abyssal-treasures-card",
"key": "slots-abyssal-treasures-card",
"path": "/assets/images/slots/slots-abyssal-treasures-card.png"
"path": "assets/images/slots/slots-abyssal-treasures-card.png"
},
{
"id": "dragons-hoard-king",
@ -264,7 +264,7 @@
{
"id": "dragons-hoard-gem",
"key": "slots-dragons-hoard-gem",
"path": "/assets/images/slots/dragons-hoard/gem.png"
"path": "assets/images/slots/dragons-hoard/gem.png"
},
{
"id": "dragons-hoard-jack",
@ -274,7 +274,7 @@
{
"id": "dragons-hoard-knight",
"key": "slots-dragons-hoard-knight",
"path": "/assets/images/slots/dragons-hoard/knight.png"
"path": "assets/images/slots/dragons-hoard/knight.png"
},
{
"id": "dragons-hoard-queen",
@ -284,7 +284,7 @@
{
"id": "dragons-hoard-castle",
"key": "slots-dragons-hoard-castle",
"path": "/assets/images/slots/dragons-hoard/castle.png"
"path": "assets/images/slots/dragons-hoard/castle.png"
},
{
"id": "dragons-hoard-ace",
@ -294,7 +294,7 @@
{
"id": "dragons-hoard-chest",
"key": "slots-dragons-hoard-chest",
"path": "/assets/images/slots/dragons-hoard/chest.png"
"path": "assets/images/slots/dragons-hoard/chest.png"
},
{
"id": "dragons-hoard-coin",
@ -304,17 +304,17 @@
{
"id": "dragons-hoard-dragon",
"key": "slots-dragons-hoard-dragon",
"path": "/assets/images/slots/dragons-hoard/dragon.png"
"path": "assets/images/slots/dragons-hoard/dragon.png"
},
{
"id": "dragons-hoard-cabinet",
"key": "slots-dragons-hoard-cabinet",
"path": "/assets/images/slots/slots-dragons-hoard-cabinet.png"
"path": "assets/images/slots/slots-dragons-hoard-cabinet.png"
},
{
"id": "dragons-hoard-card",
"key": "slots-dragons-hoard-card",
"path": "/assets/images/slots/slots-dragons-hoard-card.png"
"path": "assets/images/slots/slots-dragons-hoard-card.png"
},
{
"id": "gold-rush-jack",
@ -324,7 +324,7 @@
{
"id": "gold-rush-wagon",
"key": "slots-gold-rush-wagon",
"path": "/assets/images/slots/gold-rush/wagon.png"
"path": "assets/images/slots/gold-rush/wagon.png"
},
{
"id": "gold-rush-queen",
@ -334,7 +334,7 @@
{
"id": "gold-rush-pickaxe",
"key": "slots-gold-rush-pickaxe",
"path": "/assets/images/slots/gold-rush/pickaxe.png"
"path": "assets/images/slots/gold-rush/pickaxe.png"
},
{
"id": "gold-rush-ace",
@ -349,87 +349,87 @@
{
"id": "gold-rush-sheriff",
"key": "slots-gold-rush-sheriff",
"path": "/assets/images/slots/gold-rush/sheriff.png"
"path": "assets/images/slots/gold-rush/sheriff.png"
},
{
"id": "gold-rush-saloon",
"key": "slots-gold-rush-saloon",
"path": "/assets/images/slots/gold-rush/saloon.png"
"path": "assets/images/slots/gold-rush/saloon.png"
},
{
"id": "gold-rush-dynamite",
"key": "slots-gold-rush-dynamite",
"path": "/assets/images/slots/gold-rush/dynamite.png"
"path": "assets/images/slots/gold-rush/dynamite.png"
},
{
"id": "gold-rush-bandit",
"key": "slots-gold-rush-bandit",
"path": "/assets/images/slots/gold-rush/bandit.png"
"path": "assets/images/slots/gold-rush/bandit.png"
},
{
"id": "gold-rush-cabinet",
"key": "slots-gold-rush-cabinet",
"path": "/assets/images/slots/slots-gold-rush-cabinet.png"
"path": "assets/images/slots/slots-gold-rush-cabinet.png"
},
{
"id": "gold-rush-card",
"key": "slots-gold-rush-card",
"path": "/assets/images/slots/slots-gold-rush-card.png"
"path": "assets/images/slots/slots-gold-rush-card.png"
},
{
"id": "sugar-spin-jelly",
"key": "slots-sugar-spin-jelly",
"path": "/assets/images/slots/sugar-spin/jelly.png"
"path": "assets/images/slots/sugar-spin/jelly.png"
},
{
"id": "sugar-spin-gummy",
"key": "slots-sugar-spin-gummy",
"path": "/assets/images/slots/sugar-spin/bear.png"
"path": "assets/images/slots/sugar-spin/bear.png"
},
{
"id": "sugar-spin-candy-cane",
"key": "slots-sugar-spin-candy-cane",
"path": "/assets/images/slots/sugar-spin/cane.png"
"path": "assets/images/slots/sugar-spin/cane.png"
},
{
"id": "sugar-spin-mint",
"key": "slots-sugar-spin-mint",
"path": "/assets/images/slots/sugar-spin/mint.png"
"path": "assets/images/slots/sugar-spin/mint.png"
},
{
"id": "sugar-spin-berry",
"key": "slots-sugar-spin-berry",
"path": "/assets/images/slots/sugar-spin/berry.png"
"path": "assets/images/slots/sugar-spin/berry.png"
},
{
"id": "sugar-spin-sugar",
"key": "slots-sugar-spin-sugar",
"path": "/assets/images/slots/sugar-spin/sugar.png"
"path": "assets/images/slots/sugar-spin/sugar.png"
},
{
"id": "sugar-spin-lollipop",
"key": "slots-sugar-spin-lollipop",
"path": "/assets/images/slots/sugar-spin/lollipop.png"
"path": "assets/images/slots/sugar-spin/lollipop.png"
},
{
"id": "sugar-spin-chocolate",
"key": "slots-sugar-spin-chocolate",
"path": "/assets/images/slots/sugar-spin/chocolate.png"
"path": "assets/images/slots/sugar-spin/chocolate.png"
},
{
"id": "sugar-spin-rainbow",
"key": "slots-sugar-spin-rainbow",
"path": "/assets/images/slots/sugar-spin/rainbow.png"
"path": "assets/images/slots/sugar-spin/rainbow.png"
},
{
"id": "sugar-spin-cabinet",
"key": "slots-sugar-spin-cabinet",
"path": "/assets/images/slots/slots-sugar-spin-cabinet.png"
"path": "assets/images/slots/slots-sugar-spin-cabinet.png"
},
{
"id": "sugar-spin-card",
"key": "slots-sugar-spin-card",
"path": "/assets/images/slots/slots-sugar-spin-card.png"
"path": "assets/images/slots/slots-sugar-spin-card.png"
}
]
}

View File

@ -18,11 +18,11 @@
" Drop spireclimb-warrior.png and spireclimb-rogue.png into /assets/images/.",
" The game reads playerSheets below to load and display them."
],
"cardSheet": { "key": "spireclimb-cards", "path": "/assets/images/spireclimb-cards.png", "frameWidth": 250, "frameHeight": 160 },
"creatureSheet": { "key": "spireclimb-creatures", "path": "/assets/images/spireclimb-creatures.png", "frameWidth": 300, "frameHeight": 300 },
"cardSheet": { "key": "spireclimb-cards", "path": "assets/images/spireclimb-cards.png", "frameWidth": 250, "frameHeight": 160 },
"creatureSheet": { "key": "spireclimb-creatures", "path": "assets/images/spireclimb-creatures.png", "frameWidth": 300, "frameHeight": 300 },
"playerSheets": {
"warrior": { "key": "spireclimb-warrior", "path": "/assets/images/spireclimb-warrior.png", "frameWidth": 300, "frameHeight": 300 },
"rogue": { "key": "spireclimb-rogue", "path": "/assets/images/spireclimb-rogue.png", "frameWidth": 300, "frameHeight": 300 }
"warrior": { "key": "spireclimb-warrior", "path": "assets/images/spireclimb-warrior.png", "frameWidth": 300, "frameHeight": 300 },
"rogue": { "key": "spireclimb-rogue", "path": "assets/images/spireclimb-rogue.png", "frameWidth": 300, "frameHeight": 300 }
},
"cards": {

View File

@ -14,7 +14,7 @@ Backgammon is a board game for two people. You each have fifteen little round pi
I like to think of it as a very polite argument about who gets to go first.
![Backgammon Moves](/assets/images/tutorial-images/backgammon-02.png)
![Backgammon Moves](assets/images/tutorial-images/backgammon-02.png)
## The Setup
@ -44,7 +44,7 @@ Now the fun part! You use the numbers on your dice to move your checkers around
- If you're **White**, you move your checkers from the high numbers toward the low numbers (from point 23 down to point 0). Think of it like walking down the stairs at home—going from the top floor to the ground floor.
- If you're **Black**, you move from the low numbers toward the high numbers (from point 0 up to point 23). Like climbing up the stairs to the bedroom.
![Backgammon Moves](/assets/images/tutorial-images/backgammon-01.png)
![Backgammon Moves](assets/images/tutorial-images/backgammon-01.png)
**The basic rules of moving:**