Spaces:
Running
Running
Update index.html
Browse files- index.html +19 -35
index.html
CHANGED
|
@@ -5,14 +5,6 @@
|
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
<title>HUIUCL Online Archive</title>
|
| 7 |
<style>
|
| 8 |
-
/* ํฐํธ ์ ์: conlang_PUA.ttf ๋ก๋ */
|
| 9 |
-
@font-face {
|
| 10 |
-
font-family: 'HuiuclFont';
|
| 11 |
-
src: url('conlang_PUA.ttf') format('truetype');
|
| 12 |
-
font-weight: normal;
|
| 13 |
-
font-style: normal;
|
| 14 |
-
}
|
| 15 |
-
|
| 16 |
:root {
|
| 17 |
--bg-color: #f9f7f2;
|
| 18 |
--card-bg: #ffffff;
|
|
@@ -20,18 +12,16 @@
|
|
| 20 |
--accent-color: #d4a373;
|
| 21 |
--border-color: #e0ddd5;
|
| 22 |
--variation-bg: #faf9f6;
|
| 23 |
-
/* ๊ธฐ๋ณธ ํฐํธ ์คํ ์ค์ */
|
| 24 |
-
--main-font: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
|
| 25 |
-
--conlang-font: 'HuiuclFont', sans-serif;
|
| 26 |
}
|
| 27 |
|
| 28 |
body {
|
| 29 |
-
font-family:
|
| 30 |
background-color: var(--bg-color);
|
| 31 |
color: var(--primary-color);
|
| 32 |
margin: 0; padding: 0; line-height: 1.6;
|
| 33 |
}
|
| 34 |
|
|
|
|
| 35 |
nav {
|
| 36 |
position: sticky; top: 0; background: rgba(249, 247, 242, 0.9);
|
| 37 |
backdrop-filter: blur(10px); padding: 20px; text-align: center;
|
|
@@ -41,9 +31,8 @@
|
|
| 41 |
nav a:hover { color: var(--accent-color); }
|
| 42 |
|
| 43 |
header { text-align: center; padding: 60px 20px; }
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
.sub-title { font-size: 0.9rem; color: #999; margin-top: 10px; font-family: var(--main-font); }
|
| 47 |
|
| 48 |
.container { max-width: 900px; margin: 0 auto; padding: 0 20px 100px; }
|
| 49 |
section { display: none; }
|
|
@@ -61,15 +50,12 @@
|
|
| 61 |
table { width: 100%; border-collapse: collapse; }
|
| 62 |
th, td { padding: 15px 20px; text-align: left; border-bottom: 1px solid var(--bg-color); }
|
| 63 |
th { background: #f1eee6; font-size: 0.9rem; color: #777; }
|
| 64 |
-
|
| 65 |
-
/* ์ฌ์ ๋จ์ด ์
์ ์ธ๊ณต์ด ํฐํธ ์ ์ฉ */
|
| 66 |
-
.word-cell { font-family: var(--conlang-font); font-weight: bold; color: var(--accent-color); }
|
| 67 |
|
| 68 |
/* ๋ฌธ๋ฒ(GRAMMAR) ์คํ์ผ */
|
| 69 |
.card { background: var(--card-bg); padding: 40px; border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); margin-bottom: 20px; }
|
| 70 |
-
code { font-family: var(--conlang-font); background: #f4f4f4; padding: 2px 5px; border-radius: 4px; }
|
| 71 |
|
| 72 |
-
/* ์์นด์ด๋ธ(ARCHIVE) ์คํ์ผ */
|
| 73 |
.archive-layout { display: flex; gap: 30px; }
|
| 74 |
.story-list { width: 250px; flex-shrink: 0; }
|
| 75 |
.story-item {
|
|
@@ -80,10 +66,8 @@
|
|
| 80 |
.story-item:hover, .story-item.active { border-color: var(--accent-color); color: var(--accent-color); background: #fdfcf9; }
|
| 81 |
.story-content { flex: 1; background: var(--card-bg); padding: 40px; border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); min-height: 400px; }
|
| 82 |
.story-line { margin-bottom: 25px; }
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
.huiucl-text { font-family: var(--conlang-font); font-size: 1.4rem; color: var(--accent-color); font-weight: 600; margin-bottom: 5px; }
|
| 86 |
-
.korean-text { font-family: var(--main-font); font-size: 1rem; color: #777; border-left: 2px solid var(--border-color); padding-left: 15px; }
|
| 87 |
</style>
|
| 88 |
</head>
|
| 89 |
<body>
|
|
@@ -125,8 +109,8 @@
|
|
| 125 |
<p><strong>3. ์์ :</strong> ๊ณผ๊ฑฐํ <code>-m</code>, ๋ฏธ๋ํ <code>-n</code></p>
|
| 126 |
<hr style="border: 0; border-top: 1px solid var(--border-color); margin: 20px 0;">
|
| 127 |
<h3>Phoneme (์์)</h3>
|
| 128 |
-
<p><strong>Vowels:</strong>
|
| 129 |
-
<p><strong>Consonants:</strong>
|
| 130 |
</div>
|
| 131 |
</section>
|
| 132 |
|
|
@@ -136,7 +120,8 @@
|
|
| 136 |
<div class="story-item active" onclick="loadStory(0, this)">01. ํ์</div>
|
| 137 |
<div class="story-item" onclick="loadStory(1, this)">02. ์ค๋น ์ค...</div>
|
| 138 |
</div>
|
| 139 |
-
<div class="story-content" id="storyViewer">
|
|
|
|
| 140 |
</div>
|
| 141 |
</section>
|
| 142 |
</div>
|
|
@@ -145,11 +130,13 @@
|
|
| 145 |
let conlangData = {};
|
| 146 |
let currentCategory = '๋ชจ๋';
|
| 147 |
|
|
|
|
| 148 |
function showSection(id) {
|
| 149 |
document.querySelectorAll('section').forEach(s => s.classList.remove('active'));
|
| 150 |
document.getElementById(id).classList.add('active');
|
| 151 |
}
|
| 152 |
|
|
|
|
| 153 |
const stories = [
|
| 154 |
{
|
| 155 |
title: "๊ธฐ๋ก 01: ํ์",
|
|
@@ -184,22 +171,19 @@
|
|
| 184 |
document.getElementById('storyViewer').innerHTML = html;
|
| 185 |
}
|
| 186 |
|
|
|
|
| 187 |
window.onload = () => {
|
| 188 |
loadStory(0);
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
.then(res => {
|
| 192 |
-
if(!res.ok) throw new Error('JSON ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.');
|
| 193 |
-
return res.json();
|
| 194 |
-
})
|
| 195 |
.then(data => {
|
| 196 |
conlangData = data;
|
| 197 |
initButtons();
|
| 198 |
renderTable();
|
| 199 |
-
})
|
| 200 |
-
.catch(err => console.error('Error loading JSON:', err));
|
| 201 |
};
|
| 202 |
|
|
|
|
| 203 |
function initButtons() {
|
| 204 |
const container = document.getElementById('categoryButtons');
|
| 205 |
Object.keys(conlangData).forEach(key => {
|
|
|
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
<title>HUIUCL Online Archive</title>
|
| 7 |
<style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
:root {
|
| 9 |
--bg-color: #f9f7f2;
|
| 10 |
--card-bg: #ffffff;
|
|
|
|
| 12 |
--accent-color: #d4a373;
|
| 13 |
--border-color: #e0ddd5;
|
| 14 |
--variation-bg: #faf9f6;
|
|
|
|
|
|
|
|
|
|
| 15 |
}
|
| 16 |
|
| 17 |
body {
|
| 18 |
+
font-family: 'Pretendard', sans-serif;
|
| 19 |
background-color: var(--bg-color);
|
| 20 |
color: var(--primary-color);
|
| 21 |
margin: 0; padding: 0; line-height: 1.6;
|
| 22 |
}
|
| 23 |
|
| 24 |
+
/* ๋ค๋น๊ฒ์ด์
: ARCHIVE๋ฅผ ๋งจ ๋ค๋ก ์ด๋ */
|
| 25 |
nav {
|
| 26 |
position: sticky; top: 0; background: rgba(249, 247, 242, 0.9);
|
| 27 |
backdrop-filter: blur(10px); padding: 20px; text-align: center;
|
|
|
|
| 31 |
nav a:hover { color: var(--accent-color); }
|
| 32 |
|
| 33 |
header { text-align: center; padding: 60px 20px; }
|
| 34 |
+
h1 { font-weight: 300; letter-spacing: 8px; color: var(--accent-color); margin: 0; }
|
| 35 |
+
.sub-title { font-size: 0.9rem; color: #999; margin-top: 10px; }
|
|
|
|
| 36 |
|
| 37 |
.container { max-width: 900px; margin: 0 auto; padding: 0 20px 100px; }
|
| 38 |
section { display: none; }
|
|
|
|
| 50 |
table { width: 100%; border-collapse: collapse; }
|
| 51 |
th, td { padding: 15px 20px; text-align: left; border-bottom: 1px solid var(--bg-color); }
|
| 52 |
th { background: #f1eee6; font-size: 0.9rem; color: #777; }
|
| 53 |
+
.word-cell { font-weight: bold; color: var(--accent-color); }
|
|
|
|
|
|
|
| 54 |
|
| 55 |
/* ๋ฌธ๋ฒ(GRAMMAR) ์คํ์ผ */
|
| 56 |
.card { background: var(--card-bg); padding: 40px; border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); margin-bottom: 20px; }
|
|
|
|
| 57 |
|
| 58 |
+
/* ์์นด์ด๋ธ(ARCHIVE) ์คํ์ผ: ๋ฆฌ์คํธ & ๋ทฐ์ด */
|
| 59 |
.archive-layout { display: flex; gap: 30px; }
|
| 60 |
.story-list { width: 250px; flex-shrink: 0; }
|
| 61 |
.story-item {
|
|
|
|
| 66 |
.story-item:hover, .story-item.active { border-color: var(--accent-color); color: var(--accent-color); background: #fdfcf9; }
|
| 67 |
.story-content { flex: 1; background: var(--card-bg); padding: 40px; border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); min-height: 400px; }
|
| 68 |
.story-line { margin-bottom: 25px; }
|
| 69 |
+
.huiucl-text { font-size: 1.2rem; color: var(--accent-color); font-weight: 600; margin-bottom: 5px; }
|
| 70 |
+
.korean-text { font-size: 1rem; color: #777; border-left: 2px solid var(--border-color); padding-left: 15px; }
|
|
|
|
|
|
|
| 71 |
</style>
|
| 72 |
</head>
|
| 73 |
<body>
|
|
|
|
| 109 |
<p><strong>3. ์์ :</strong> ๊ณผ๊ฑฐํ <code>-m</code>, ๋ฏธ๋ํ <code>-n</code></p>
|
| 110 |
<hr style="border: 0; border-top: 1px solid var(--border-color); margin: 20px 0;">
|
| 111 |
<h3>Phoneme (์์)</h3>
|
| 112 |
+
<p><strong>Vowels:</strong> a, i, u</p>
|
| 113 |
+
<p><strong>Consonants:</strong> m, n, s, h, l, c(ใฒ), t(ใธ)</p>
|
| 114 |
</div>
|
| 115 |
</section>
|
| 116 |
|
|
|
|
| 120 |
<div class="story-item active" onclick="loadStory(0, this)">01. ํ์</div>
|
| 121 |
<div class="story-item" onclick="loadStory(1, this)">02. ์ค๋น ์ค...</div>
|
| 122 |
</div>
|
| 123 |
+
<div class="story-content" id="storyViewer">
|
| 124 |
+
</div>
|
| 125 |
</div>
|
| 126 |
</section>
|
| 127 |
</div>
|
|
|
|
| 130 |
let conlangData = {};
|
| 131 |
let currentCategory = '๋ชจ๋';
|
| 132 |
|
| 133 |
+
// ์น์
์ ํ
|
| 134 |
function showSection(id) {
|
| 135 |
document.querySelectorAll('section').forEach(s => s.classList.remove('active'));
|
| 136 |
document.getElementById(id).classList.add('active');
|
| 137 |
}
|
| 138 |
|
| 139 |
+
// ์์ค ๋ฐ์ดํฐ ๋ก๋ ๋ฐ ์ ํ
|
| 140 |
const stories = [
|
| 141 |
{
|
| 142 |
title: "๊ธฐ๋ก 01: ํ์",
|
|
|
|
| 171 |
document.getElementById('storyViewer').innerHTML = html;
|
| 172 |
}
|
| 173 |
|
| 174 |
+
// ์ด๊ธฐ ์คํ
|
| 175 |
window.onload = () => {
|
| 176 |
loadStory(0);
|
| 177 |
+
fetch('Huiucl.json')
|
| 178 |
+
.then(res => res.json())
|
|
|
|
|
|
|
|
|
|
|
|
|
| 179 |
.then(data => {
|
| 180 |
conlangData = data;
|
| 181 |
initButtons();
|
| 182 |
renderTable();
|
| 183 |
+
});
|
|
|
|
| 184 |
};
|
| 185 |
|
| 186 |
+
// --- ์ฌ์ ๋ก์ง (๊ธฐ์กด๊ณผ ๋์ผ) ---
|
| 187 |
function initButtons() {
|
| 188 |
const container = document.getElementById('categoryButtons');
|
| 189 |
Object.keys(conlangData).forEach(key => {
|