~cytrogen/realm

6d014a2c093eea1d09c915565bb376c5681589d7 — Cytrogen a month ago ae69ccd
扁平化项目结构:移除 pages/、css/、caddy/ 子目录

所有 HTML 和 CSS 文件移至根目录,更新所有内部路径引用。
URL 从 cytrogen.icu/pages/about 变为 cytrogen.icu/about。
R pages/about.html => about.html +1 -1
@@ 6,7 6,7 @@
	<title>卧室 — Realm</title>
	<meta name="description" content="卧室 — Bedroom of the realm lord">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/announcement.html => announcement.html +1 -1
@@ 6,7 6,7 @@
	<title>领地公告 — Realm</title>
	<meta name="description" content="领地公告 — Realm announcement">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


D caddy/phase4-live.example.Caddyfile => caddy/phase4-live.example.Caddyfile +0 -50
@@ 1,50 0,0 @@
# Phase 4: Realm live — cytrogen.icu serves /var/www/cytrogen.icu
#
# This is a reference copy of the realm-relevant Caddy blocks deployed
# to /etc/caddy/Caddyfile. The production Caddyfile also includes blocks
# for sourcehut, beszel, freshrss, stalwart, etc.
#
# Status: DEPLOYED 2026-03-04

# Realm portal
cytrogen.icu, www.cytrogen.icu {
	root * /var/www/cytrogen.icu
	file_server
	encode gzip

	@static path *.css *.js *.jpg *.jpeg *.png *.gif *.ico *.svg *.webp *.woff *.woff2 *.ttf *.eot
	header @static Cache-Control "public, max-age=2592000, immutable"

	@html path *.html /
	header @html Cache-Control "public, max-age=3600, must-revalidate"

	try_files {path} {path}/ {path}.html
}

# Blog (unchanged from Phase 1)
blog.cytrogen.icu {
	root * /var/www/blog.cytrogen.icu
	file_server
	encode gzip

	@static path *.css *.js *.jpg *.jpeg *.png *.gif *.ico *.svg *.webp *.woff *.woff2 *.ttf *.eot
	header @static Cache-Control "public, max-age=2592000, immutable"

	@html path *.html
	header @html Cache-Control "public, max-age=3600, must-revalidate"

	handle_errors {
		@4xx expression `{err.status_code} >= 400 && {err.status_code} < 500`
		handle @4xx {
			rewrite * /{err.status_code}.html
			file_server
		}
		@5xx expression `{err.status_code} >= 500`
		handle @5xx {
			rewrite * /{err.status_code}.html
			file_server
		}
	}

	try_files {path} {path}/ {path}.html
}

R pages/canon.html => canon.html +1 -1
@@ 6,7 6,7 @@
	<title>典籍室 — Realm</title>
	<meta name="description" content="典籍室 — Canon and sources that nourish the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/castle.html => castle.html +1 -1
@@ 6,7 6,7 @@
	<title>Realm — cytrogen.icu</title>
	<meta name="description" content="Realm — the visual exploration territory of cytrogen.icu">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/colophon.html => colophon.html +1 -1
@@ 6,7 6,7 @@
	<title>工坊 — Realm</title>
	<meta name="description" content="工坊 — Colophon, how this realm was built">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/contact.html => contact.html +1 -1
@@ 6,7 6,7 @@
	<title>Contact — Realm</title>
	<meta name="description" content="领地联络处 — Contact the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/death.html => death.html +1 -1
@@ 6,7 6,7 @@
	<title>遗言 — Realm</title>
	<meta name="description" content="遗言 — Death page of the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/friends.html => friends.html +1 -1
@@ 6,7 6,7 @@
	<title>友邻 — Realm</title>
	<meta name="description" content="友邻 — Friends of the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/hosted.html => hosted.html +1 -1
@@ 6,7 6,7 @@
	<title>属地 — Realm</title>
	<meta name="description" content="属地 — Hosted services of the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/hotel.html => hotel.html +1 -1
@@ 6,7 6,7 @@
	<title>胶囊旅馆 — Realm</title>
	<meta name="description" content="胶囊旅馆内部 — Capsule hotel interior">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


M index.html => index.html +11 -11
@@ 6,7 6,7 @@
	<title>Realm — cytrogen.icu</title>
	<meta name="description" content="Realm — the visual exploration territory of cytrogen.icu">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>



@@ 108,7 108,7 @@
					<rect class="fill-ground" x="0" y="330" width="800" height="170"/>

					<!-- === HOTSPOT: Road → Neighboring Lands === -->
					<a class="hotspot" href="pages/neighbors.html" aria-label="邻邦 — Neighboring lands">
					<a class="hotspot" href="neighbors.html" aria-label="邻邦 — Neighboring lands">
						<title>邻邦 — Neighboring lands</title>
						<path class="hotspot-shape fill-path" d="M350 500 L450 500 L438 380 L362 380 Z"/>
						<text class="hotspot-label" x="400" y="470" text-anchor="middle">走</text>


@@ 155,7 155,7 @@
						"/>
					</g>
					<!-- Gate door surface + link to interior -->
					<a class="hotspot" href="pages/interior.html" aria-label="大门 — Enter the castle interior">
					<a class="hotspot" href="interior.html" aria-label="大门 — Enter the castle interior">
						<title>大门 — Enter the castle interior</title>
						<path class="hotspot-shape" d="
							M362 380 L362 302


@@ 173,7 173,7 @@
					</a>

					<!-- === HOTSPOT: Contact Phone === -->
					<a class="hotspot" href="pages/contact.html" aria-label="联络处 — Contact">
					<a class="hotspot" href="contact.html" aria-label="联络处 — Contact">
						<title>联络处 — Contact</title>
						<rect class="hotspot-hitarea" x="215" y="276" width="100" height="100"/>
						<!-- Phone hood/canopy (wider than body, protective overhang) -->


@@ 193,7 193,7 @@
					</a>

					<!-- === HOTSPOT: Notice Board (Announcement) === -->
					<a class="hotspot" href="pages/announcement.html" aria-label="领地公告 — Announcement">
					<a class="hotspot" href="announcement.html" aria-label="领地公告 — Announcement">
						<title>领地公告 — Announcement</title>
						<rect class="hotspot-hitarea" x="493" y="298" width="100" height="100"/>
						<!-- Board -->


@@ 209,7 209,7 @@
					</a>

					<!-- === HOTSPOT: Tombstone (Death / 遗言) === -->
					<a class="hotspot" href="pages/death.html" aria-label="遗言 — Death">
					<a class="hotspot" href="death.html" aria-label="遗言 — Death">
						<title>遗言 — Death</title>
						<rect class="hotspot-hitarea" x="35" y="308" width="100" height="100"/>
						<!-- Tombstone -->


@@ 242,11 242,11 @@

		<nav id="scene-nav-exterior" class="scene-nav" aria-label="城堡外观导航">
			<ul class="scene-nav__list">
				<li><a class="scene-nav__link" href="pages/interior.html">大门 — 城堡内部</a></li>
				<li><a class="scene-nav__link" href="pages/contact.html">联络处 — 联系方式</a></li>
				<li><a class="scene-nav__link" href="pages/announcement.html">公告 — 领地公告</a></li>
				<li><a class="scene-nav__link" href="pages/death.html">遗言 — 墓志铭</a></li>
				<li><a class="scene-nav__link" href="pages/neighbors.html">邻邦 — 离开城堡</a></li>
				<li><a class="scene-nav__link" href="interior.html">大门 — 城堡内部</a></li>
				<li><a class="scene-nav__link" href="contact.html">联络处 — 联系方式</a></li>
				<li><a class="scene-nav__link" href="announcement.html">公告 — 领地公告</a></li>
				<li><a class="scene-nav__link" href="death.html">遗言 — 墓志铭</a></li>
				<li><a class="scene-nav__link" href="neighbors.html">邻邦 — 离开城堡</a></li>
			</ul>
		</nav>
	</main>

R pages/interior.html => interior.html +1 -1
@@ 6,7 6,7 @@
	<title>城堡内部 — Realm</title>
	<meta name="description" content="城堡内部 — Castle interior with library, workshop, armory, and archive">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/map.html => map.html +1 -1
@@ 6,7 6,7 @@
	<title>领地总览 — Realm</title>
	<meta name="description" content="领地总览 — Bird's-eye overview of the entire Realm territory">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/neighbors.html => neighbors.html +1 -1
@@ 6,7 6,7 @@
	<title>邻邦 — Realm</title>
	<meta name="description" content="邻邦 — Neighboring lands of cytrogen.icu">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R css/realm.css => realm.css +0 -0
R pages/station.html => station.html +1 -1
@@ 6,7 6,7 @@
	<title>驿站 — Realm</title>
	<meta name="description" content="驿站 — Relay station of the Realm">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>


R pages/uses.html => uses.html +1 -1
@@ 6,7 6,7 @@
	<title>兵器库 — Realm</title>
	<meta name="description" content="兵器库 — Armory of the Realm lord's hardware, software, communications, services, and accessories">
	<meta name="theme-color" content="#1a1a2e">
	<link rel="stylesheet" href="../css/realm.css">
	<link rel="stylesheet" href="realm.css">
</head>
<body>