- New web/relations/router.js (parseHash/serializeHash/installRouter): top tabs, hero + detail sub-tab, item, patch version, tag filters and search query all sync to URL (#/heroes/axe/core, ?tags=...&q=...); pushState for discrete picks, replaceState for debounced search. - export_relations_site.py copies router.js so static export deep-links. - Header shows dota2_logo.png + title, served via /ui-icon/ whitelist. - fetch_dota2_logo.py fetches the transparent emblem asset. - Docs: CHANGELOG / README / DESIGN / AGENTS updated.
66 lines
2.4 KiB
HTML
66 lines
2.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>上分帝</title>
|
|
<link rel="stylesheet" href="/style.css" />
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<div class="brand">
|
|
<img class="brand-logo" src="ui-icon/dota2_logo.png" alt="Dota 2" />
|
|
<span class="brand-title">上分帝</span>
|
|
</div>
|
|
<nav class="main-tabs" aria-label="主分页">
|
|
<button type="button" class="main-tab active" data-page="heroes">英雄</button>
|
|
<button type="button" class="main-tab" data-page="items">物品</button>
|
|
<button type="button" class="main-tab" data-page="patches">版本</button>
|
|
</nav>
|
|
|
|
<div id="heroes-toolbar" class="toolbar">
|
|
<div class="tagbar" id="tagbar" aria-label="定位筛选"></div>
|
|
<input id="q" class="search" type="search" placeholder="搜索英雄或别名" autocomplete="off" spellcheck="false" aria-label="搜索英雄" />
|
|
</div>
|
|
|
|
<div id="items-toolbar" class="toolbar hidden">
|
|
<div class="item-tools">
|
|
<input id="q-item" class="search search-inline" type="search" placeholder="搜索物品" autocomplete="off" spellcheck="false" aria-label="搜索物品" />
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<main id="heroes-view" class="board">
|
|
<div class="columns" id="columns"></div>
|
|
</main>
|
|
|
|
<main id="items-view" class="board items-board hidden">
|
|
<div class="items-cluster">
|
|
<div class="items-main">
|
|
<div class="shop-col-headers" aria-hidden="true">
|
|
<span class="shop-col-header basic">基础分类</span>
|
|
<span class="shop-col-header upgraded">合成分类</span>
|
|
</div>
|
|
<div id="item-shop" class="item-shop" aria-live="polite"></div>
|
|
</div>
|
|
<aside id="item-detail-box" class="item-detail-box empty" aria-live="polite">
|
|
点击物品查看详情与合成
|
|
</aside>
|
|
</div>
|
|
</main>
|
|
|
|
<main id="patches-view" class="board patches-board hidden">
|
|
<div class="patches-header">
|
|
<h2 class="patches-title"><span class="patches-kicker">游戏性更新</span><span class="patches-ver" id="patch-ver"></span></h2>
|
|
<select id="patch-select" aria-label="选择版本"></select>
|
|
</div>
|
|
<div class="patches-detail" id="patches-detail"></div>
|
|
</main>
|
|
|
|
<section class="detail" id="detail" aria-live="polite"></section>
|
|
|
|
<script src="/router.js"></script>
|
|
<script src="/app.js"></script>
|
|
</body>
|
|
</html>
|