Skip to content

Commit c32f508

Browse files
committed
Refactor Game Foundry Studio HTML into shared SSoT partials - PR_26151_002-gamefoundry-html-partials-ssot
1 parent e7f994a commit c32f508

15 files changed

Lines changed: 950 additions & 183 deletions
Lines changed: 69 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!doctype html>
22
<html lang="en">
3+
34
<head>
45
<meta charset="utf-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -8,12 +9,73 @@
89
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
910
<link rel="stylesheet" href="assets/css/styles.css">
1011
</head>
12+
1113
<body class="meaning-forge-gold">
12-
<header class="site-header"><div class="container nav"><a class="brand" href="index.html"><img src="assets/images/logo-mark.svg" alt="Game Foundry Studio mark"><span>Game Foundry Studio</span></a><nav class="nav-links" aria-label="Main navigation"><div class="nav-item"><a class="active" href="tools.html">Tools ▾</a><div class="sub-menu"><a href="tool-builder.html">Tool Builder</a><a href="tool-creator.html">Tool Creator</a><a href="tool-publisher.html">Tool Publisher</a><a href="building-creation.html">Building / Creation</a><a href="technology-system.html">Technology / System</a><a class="active" href="assets-content.html">Assets / Content</a><a href="media-community.html">Media / Community</a><a href="design-animation.html">Design / Animation</a><a href="configuration-admin.html">Configuration / Admin</a></div></div><a href="games.html">Arcade</a><a href="marketplace.html">Marketplace</a><a href="learn.html">Learn</a><a href="community.html">Community</a><a href="docs.html">Docs</a><a href="account.html">Account</a></nav><div class="nav-actions"><a class="btn" href="games.html">Play Games</a><a class="btn primary" href="tools.html">Start Building</a></div></div></header>
13-
<main>
14-
<section class="page-title"><div class="container"><div class="breadcrumb"><a href="index.html">Home</a> / <a href="tools.html">Tools</a> / Assets Content</div><div class="kicker">Forge Gold</div><h1>Assets / Content</h1><p class="lede">Tools for sprites, palettes, world art, vectors, and reusable marketplace content.</p></div></section>
15-
<section class="section"><div class="container meaning-layout" id="forge-gold"><aside class="meaning-panel left-panel"><div class="meaning-panel-body"><h2>Content Inputs</h2><ul><li>Sprites and palettes</li><li>World assets</li><li>Reusable packs</li></ul></div></aside><section class="meaning-center"><h2>Forge game-ready content.</h2><p>Forge Gold marks asset creation and reusable content that creators can place, remix, and publish.</p><div class="meaning-tool-list"><a class="meaning-tool-link" href="tools/asset-studio.html"><strong>Asset Studio</strong><span>Sprites and assets</span></a><a class="meaning-tool-link" href="tools/palette-manager.html"><strong>Palette Manager</strong><span>Color sets</span></a><a class="meaning-tool-link" href="marketplace.html"><strong>Marketplace</strong><span>Reusable content</span></a></div></section><aside class="meaning-panel right-panel"><div class="meaning-panel-body"><h2>Content Output</h2><ul><li>Manifest-ready assets</li><li>Shared templates</li><li>Organized visual kits</li></ul></div></aside></div></section>
16-
</main>
17-
<footer class="footer"><div class="container"><span>© 2026 Game Foundry Studio</span><span>Build · Play · Share</span></div></footer>
14+
<header class="site-header">
15+
<div class="container nav"><a class="brand" href="index.html"><img src="assets/images/logo-mark.svg"
16+
alt="Game Foundry Studio mark"><span>Game Foundry Studio</span></a>
17+
<nav class="nav-links" aria-label="Main navigation">
18+
<div class="nav-item"><a class="active" href="tools.html">Tools ▾</a>
19+
<div class="sub-menu"><a href="tool-builder.html">Tool Builder</a><a href="tool-creator.html">Tool
20+
Creator</a><a href="tool-publisher.html">Tool Publisher</a><a href="building-creation.html">Building /
21+
Creation</a><a href="technology-system.html">Technology / System</a><a class="active"
22+
href="assets-content.html">Assets / Content</a><a href="media-community.html">Media / Community</a><a
23+
href="design-animation.html">Design / Animation</a><a href="configuration-admin.html">Configuration /
24+
Admin</a></div>
25+
</div><a href="games.html">Arcade</a><a href="marketplace.html">Marketplace</a><a href="learn.html">Learn</a><a
26+
href="community.html">Community</a><a href="docs.html">Docs</a><a href="account.html">Account</a>
27+
</nav>
28+
<div class="nav-actions"><a class="btn" href="games.html">Play Games</a><a class="btn primary"
29+
href="tools.html">Start Building</a></div>
30+
</div>
31+
</header>
32+
<main>
33+
<section class="page-title">
34+
<div class="container">
35+
<div class="breadcrumb"><a href="index.html">Home</a> / <a href="tools.html">Tools</a> / Assets Content</div>
36+
<div class="kicker">Forge Gold</div>
37+
<h1>Assets / Content</h1>
38+
<p class="lede">Tools for sprites, palettes, world art, vectors, and reusable marketplace content.</p>
39+
</div>
40+
</section>
41+
<section class="section">
42+
<div class="container meaning-layout" id="forge-gold">
43+
<aside class="meaning-panel left-panel">
44+
<div class="meaning-panel-body">
45+
<h2>Content Inputs</h2>
46+
<ul>
47+
<li>Sprites and palettes</li>
48+
<li>World assets</li>
49+
<li>Reusable packs</li>
50+
</ul>
51+
</div>
52+
</aside>
53+
<section class="meaning-center">
54+
<h2>Forge game-ready content.</h2>
55+
<p>Forge Gold marks asset creation and reusable content that creators can place, remix, and publish.</p>
56+
<div class="meaning-tool-list"><a class="meaning-tool-link" href="tools/asset-studio.html"><strong>Asset
57+
Studio</strong><span>Sprites and assets</span></a><a class="meaning-tool-link"
58+
href="tools/palette-manager.html"><strong>Palette Manager</strong><span>Color sets</span></a><a
59+
class="meaning-tool-link" href="marketplace.html"><strong>Marketplace</strong><span>Reusable
60+
content</span></a></div>
61+
</section>
62+
<aside class="meaning-panel right-panel">
63+
<div class="meaning-panel-body">
64+
<h2>Content Output</h2>
65+
<ul>
66+
<li>Manifest-ready assets</li>
67+
<li>Shared templates</li>
68+
<li>Organized visual kits</li>
69+
</ul>
70+
</div>
71+
</aside>
72+
</div>
73+
</section>
74+
</main>
75+
<footer class="footer">
76+
<div class="container"><span>© 2026 Game Foundry Studio</span><span>Build · Play · Share</span></div>
77+
</footer>
78+
<script src="assets/js/gamefoundry-partials.js" defer></script>
1879
</body>
19-
</html>
80+
81+
</html>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
(function () {
2+
const partials = {
3+
"header-nav": "assets/partials/header-nav.html",
4+
footer: "assets/partials/footer.html"
5+
};
6+
7+
function markActiveNavigation(root) {
8+
const pageName = window.location.pathname.split("/").pop() || "index.html";
9+
root.querySelectorAll("[data-nav-link]").forEach(function (link) {
10+
const linkName = link.getAttribute("href").split("/").pop();
11+
if (linkName === pageName || (pageName.indexOf("tool-") === 0 && linkName === "tools.html")) {
12+
link.classList.add("active");
13+
}
14+
});
15+
}
16+
17+
async function loadPartial(slot) {
18+
const partialName = slot.dataset.partial;
19+
const partialPath = partials[partialName];
20+
if (!partialPath) return;
21+
22+
const response = await fetch(partialPath);
23+
if (!response.ok) {
24+
throw new Error("Failed to load partial: " + partialPath);
25+
}
26+
27+
slot.innerHTML = await response.text();
28+
if (partialName === "header-nav") {
29+
markActiveNavigation(slot);
30+
}
31+
}
32+
33+
async function replaceExisting(partialName, selector) {
34+
const existing = document.querySelector(selector);
35+
const partialPath = partials[partialName];
36+
if (!existing || !partialPath) return;
37+
38+
const response = await fetch(partialPath);
39+
if (!response.ok) {
40+
throw new Error("Failed to load partial: " + partialPath);
41+
}
42+
43+
const wrapper = document.createElement("div");
44+
wrapper.innerHTML = await response.text();
45+
const replacement = wrapper.firstElementChild;
46+
existing.replaceWith(replacement);
47+
if (partialName === "header-nav") {
48+
markActiveNavigation(replacement);
49+
}
50+
}
51+
52+
document.addEventListener("DOMContentLoaded", function () {
53+
const slots = Array.from(document.querySelectorAll("[data-partial]"));
54+
const tasks = slots.length ? slots.map(loadPartial) : [
55+
replaceExisting("header-nav", "header.site-header"),
56+
replaceExisting("footer", "footer.footer")
57+
];
58+
59+
Promise.all(tasks).catch(function (error) {
60+
console.error(error);
61+
});
62+
});
63+
}());
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<footer class="footer">
2+
<div class="container"><span>© 2026 Game Foundry Studio</span><span>Build · Play · Share</span></div>
3+
</footer>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<header class="site-header">
2+
<div class="container nav">
3+
<a class="brand" href="index.html"><img src="assets/images/logo-mark.svg" alt="Game Foundry Studio mark"><span>Game
4+
Foundry Studio</span></a>
5+
<nav class="nav-links" aria-label="Main navigation">
6+
<div class="nav-item"><a data-nav-link href="tools.html">Tools ▾</a>
7+
<div class="sub-menu"><a data-nav-link href="tool-builder.html">Tool Builder</a><a data-nav-link
8+
href="tool-creator.html">Tool Creator</a><a data-nav-link href="tool-publisher.html">Tool Publisher</a><a
9+
data-nav-link href="building-creation.html">Building / Creation</a><a data-nav-link
10+
href="technology-system.html">Technology / System</a><a data-nav-link href="assets-content.html">Assets /
11+
Content</a><a data-nav-link href="media-community.html">Media / Community</a><a data-nav-link
12+
href="design-animation.html">Design / Animation</a><a data-nav-link
13+
href="configuration-admin.html">Configuration / Admin</a></div>
14+
</div>
15+
<a data-nav-link href="games.html">Arcade</a><a data-nav-link href="marketplace.html">Marketplace</a><a
16+
data-nav-link href="learn.html">Learn</a><a data-nav-link href="community.html">Community</a><a data-nav-link
17+
href="docs.html">Docs</a><a data-nav-link href="account.html">Account</a>
18+
</nav>
19+
<div class="nav-actions"><a class="btn" href="games.html">Play Games</a><a class="btn primary"
20+
href="tools.html">Start Building</a></div>
21+
</div>
22+
</header>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<main data-page-shell></main>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div class="tool-workspace" data-tool-page-shell></div>
Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<!doctype html>
22
<html lang="en">
3+
34
<head>
45
<meta charset="utf-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -8,12 +9,74 @@
89
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
910
<link rel="stylesheet" href="assets/css/styles.css">
1011
</head>
12+
1113
<body class="meaning-molten-orange">
12-
<header class="site-header"><div class="container nav"><a class="brand" href="index.html"><img src="assets/images/logo-mark.svg" alt="Game Foundry Studio mark"><span>Game Foundry Studio</span></a><nav class="nav-links" aria-label="Main navigation"><div class="nav-item"><a class="active" href="tools.html">Tools ▾</a><div class="sub-menu"><a href="tool-builder.html">Tool Builder</a><a href="tool-creator.html">Tool Creator</a><a href="tool-publisher.html">Tool Publisher</a><a class="active" href="building-creation.html">Building / Creation</a><a href="technology-system.html">Technology / System</a><a href="assets-content.html">Assets / Content</a><a href="media-community.html">Media / Community</a><a href="design-animation.html">Design / Animation</a><a href="configuration-admin.html">Configuration / Admin</a></div></div><a href="games.html">Arcade</a><a href="marketplace.html">Marketplace</a><a href="learn.html">Learn</a><a href="community.html">Community</a><a href="docs.html">Docs</a><a href="account.html">Account</a></nav><div class="nav-actions"><a class="btn" href="games.html">Play Games</a><a class="btn primary" href="tools.html">Start Building</a></div></div></header>
13-
<main>
14-
<section class="page-title"><div class="container"><div class="breadcrumb"><a href="index.html">Home</a> / <a href="tools.html">Tools</a> / Building Creation</div><div class="kicker">Molten Orange</div><h1>Building / Creation</h1><p class="lede">Tools that turn a game idea into a playable structure, workflow, or release path.</p></div></section>
15-
<section class="section"><div class="container meaning-layout" id="molten-orange"><aside class="meaning-panel left-panel"><div class="meaning-panel-body"><h2>Creation Inputs</h2><ul><li>Project structure</li><li>Game assembly</li><li>Publishing flow</li></ul></div></aside><section class="meaning-center"><h2>Build the playable core.</h2><p>Molten Orange marks the primary creation path: builder surfaces, object assembly, and launch preparation.</p><div class="meaning-tool-list"><a class="meaning-tool-link" href="tool-builder.html"><strong>Tool Builder</strong><span>Layout foundation</span></a><a class="meaning-tool-link" href="tools/game-builder.html"><strong>Game Builder</strong><span>Assemble game systems</span></a><a class="meaning-tool-link" href="publish.html"><strong>Publish Studio</strong><span>Prepare releases</span></a></div></section><aside class="meaning-panel right-panel"><div class="meaning-panel-body"><h2>Creation Output</h2><ul><li>Working game plans</li><li>Launch-ready structure</li><li>Creator-facing progress</li></ul></div></aside></div></section>
16-
</main>
17-
<footer class="footer"><div class="container"><span>© 2026 Game Foundry Studio</span><span>Build · Play · Share</span></div></footer>
14+
<header class="site-header">
15+
<div class="container nav"><a class="brand" href="index.html"><img src="assets/images/logo-mark.svg"
16+
alt="Game Foundry Studio mark"><span>Game Foundry Studio</span></a>
17+
<nav class="nav-links" aria-label="Main navigation">
18+
<div class="nav-item"><a class="active" href="tools.html">Tools ▾</a>
19+
<div class="sub-menu"><a href="tool-builder.html">Tool Builder</a><a href="tool-creator.html">Tool
20+
Creator</a><a href="tool-publisher.html">Tool Publisher</a><a class="active"
21+
href="building-creation.html">Building / Creation</a><a href="technology-system.html">Technology /
22+
System</a><a href="assets-content.html">Assets / Content</a><a href="media-community.html">Media /
23+
Community</a><a href="design-animation.html">Design / Animation</a><a
24+
href="configuration-admin.html">Configuration / Admin</a></div>
25+
</div><a href="games.html">Arcade</a><a href="marketplace.html">Marketplace</a><a href="learn.html">Learn</a><a
26+
href="community.html">Community</a><a href="docs.html">Docs</a><a href="account.html">Account</a>
27+
</nav>
28+
<div class="nav-actions"><a class="btn" href="games.html">Play Games</a><a class="btn primary"
29+
href="tools.html">Start Building</a></div>
30+
</div>
31+
</header>
32+
<main>
33+
<section class="page-title">
34+
<div class="container">
35+
<div class="breadcrumb"><a href="index.html">Home</a> / <a href="tools.html">Tools</a> / Building Creation</div>
36+
<div class="kicker">Molten Orange</div>
37+
<h1>Building / Creation</h1>
38+
<p class="lede">Tools that turn a game idea into a playable structure, workflow, or release path.</p>
39+
</div>
40+
</section>
41+
<section class="section">
42+
<div class="container meaning-layout" id="molten-orange">
43+
<aside class="meaning-panel left-panel">
44+
<div class="meaning-panel-body">
45+
<h2>Creation Inputs</h2>
46+
<ul>
47+
<li>Project structure</li>
48+
<li>Game assembly</li>
49+
<li>Publishing flow</li>
50+
</ul>
51+
</div>
52+
</aside>
53+
<section class="meaning-center">
54+
<h2>Build the playable core.</h2>
55+
<p>Molten Orange marks the primary creation path: builder surfaces, object assembly, and launch preparation.
56+
</p>
57+
<div class="meaning-tool-list"><a class="meaning-tool-link" href="tool-builder.html"><strong>Tool
58+
Builder</strong><span>Layout foundation</span></a><a class="meaning-tool-link"
59+
href="tools/game-builder.html"><strong>Game Builder</strong><span>Assemble game systems</span></a><a
60+
class="meaning-tool-link" href="publish.html"><strong>Publish Studio</strong><span>Prepare
61+
releases</span></a></div>
62+
</section>
63+
<aside class="meaning-panel right-panel">
64+
<div class="meaning-panel-body">
65+
<h2>Creation Output</h2>
66+
<ul>
67+
<li>Working game plans</li>
68+
<li>Launch-ready structure</li>
69+
<li>Creator-facing progress</li>
70+
</ul>
71+
</div>
72+
</aside>
73+
</div>
74+
</section>
75+
</main>
76+
<footer class="footer">
77+
<div class="container"><span>© 2026 Game Foundry Studio</span><span>Build · Play · Share</span></div>
78+
</footer>
79+
<script src="assets/js/gamefoundry-partials.js" defer></script>
1880
</body>
19-
</html>
81+
82+
</html>

0 commit comments

Comments
 (0)