style: rename service to 갤산기 and enlarge navigation brand
Publish GitHub Pages output / publish (push) Successful in 41s

This commit is contained in:
2026-10-06 11:38:30 +09:00
parent 04c71be859
commit 0b794edc80
21 changed files with 34 additions and 30 deletions
+3 -3
View File
@@ -1,10 +1,10 @@
# 홀로도리 계산기 # 갤산기
홀로라이브 드림즈의 카드와 멤버 성장 상태를 관리하고, 악곡별 최적 배치와 카드 조합을 분석하는 비공식 도구입니다. 홀로라이브 드림즈의 카드와 멤버 성장 상태를 관리하고, 악곡별 최적 배치와 카드 조합을 분석하는 비공식 도구입니다.
[온라인 서비스 이용](https://doricalc-holo.live/) · 한국어 전용 · PC 환경 권장 [온라인 서비스 이용](https://doricalc-holo.live/) · 한국어 전용 · PC 환경 권장
![홀로도리 계산기 홈 화면](docs/images/home.png) ![갤산기 홈 화면](docs/images/home.png)
## 주요 기능 ## 주요 기능
@@ -19,7 +19,7 @@
## 서비스 이용 ## 서비스 이용
[홀로도리 계산기 온라인 서비스](https://doricalc-holo.live/)에 접속해 사용합니다. 별도의 설치나 다운로드는 필요하지 않습니다. [갤산기 온라인 서비스](https://doricalc-holo.live/)에 접속해 사용합니다. 별도의 설치나 다운로드는 필요하지 않습니다.
Chrome 또는 Edge의 최신 버전을 권장합니다. Chrome 또는 Edge의 최신 버전을 권장합니다.
+5 -1
View File
@@ -1,9 +1,13 @@
--- ---
updatedAt: 2026-10-06T02:32:20.545Z updatedAt: 2026-10-06T02:36:54.977Z
--- ---
## 2026년 10월 6일 ## 2026년 10월 6일
### 서비스 이름 변경
`IMPROVED` 서비스 이름을 ‘홀로도리 계산기’에서 ‘갤산기’로 변경했습니다. 상단 서비스 이름과 각 페이지의 브라우저 제목, 서비스 안내에 새 이름을 반영하고, 상단 이름의 글자 크기를 키웠습니다.
### 선택 순서대로 악곡 목록 만들기 ### 선택 순서대로 악곡 목록 만들기
`NEW` 도구에 악곡 목록을 추가했습니다. 악곡을 검색하고 난이도를 골라 선택한 순서대로 목록을 만들 수 있습니다. 같은 악곡·난이도를 여러 번 추가하거나 개별 삭제·목록 초기화를 할 수 있으며, 번호·곡명·난이도·레벨을 목록 순서대로 복사할 수 있습니다. 목록은 브라우저에 자동 저장되어 새로고침하거나 다시 방문해도 선택 순서와 난이도가 유지됩니다. `NEW` 도구에 악곡 목록을 추가했습니다. 악곡을 검색하고 난이도를 골라 선택한 순서대로 목록을 만들 수 있습니다. 같은 악곡·난이도를 여러 번 추가하거나 개별 삭제·목록 초기화를 할 수 있으며, 번호·곡명·난이도·레벨을 목록 순서대로 복사할 수 있습니다. 목록은 브라우저에 자동 저장되어 새로고침하거나 다시 방문해도 선택 순서와 난이도가 유지됩니다.
+3 -3
View File
@@ -95,7 +95,7 @@
<header class="site-nav"> <header class="site-nav">
<div class="nav-inner"> <div class="nav-inner">
<a class="brand" href="#/" aria-label="홀로도리 계산기 홈">홀로도리 계산기</a> <a class="brand" href="#/" aria-label="갤산기 홈">갤산기</a>
<button class="menu-toggle" type="button" aria-controls="primary-navigation" aria-expanded={menuOpen} on:click={() => menuOpen = !menuOpen}>{menuOpen ? '메뉴 닫기' : '전체 메뉴'}</button> <button class="menu-toggle" type="button" aria-controls="primary-navigation" aria-expanded={menuOpen} on:click={() => menuOpen = !menuOpen}>{menuOpen ? '메뉴 닫기' : '전체 메뉴'}</button>
<nav id="primary-navigation" class:open={menuOpen} aria-label="주요 메뉴"> <nav id="primary-navigation" class:open={menuOpen} aria-label="주요 메뉴">
<a href="#/cards" aria-current={currentPath.startsWith('/cards') ? 'page' : undefined}>카드 목록</a> <a href="#/cards" aria-current={currentPath.startsWith('/cards') ? 'page' : undefined}>카드 목록</a>
@@ -155,7 +155,7 @@
.brand { .brand {
color: #f3f5f8; color: #f3f5f8;
font-size: 16px; font-size: 20px;
font-weight: 850; font-weight: 850;
letter-spacing: -.03em; letter-spacing: -.03em;
text-decoration: none; text-decoration: none;
@@ -195,7 +195,7 @@
@media (max-width: 560px) { @media (max-width: 560px) {
:global(:root) { --page-gutter: 24px; } :global(:root) { --page-gutter: 24px; }
.nav-inner { width: calc(100% - 24px); min-height: 54px; } .nav-inner { width: calc(100% - 24px); min-height: 54px; }
.brand { font-size: 13px; } .brand { font-size: 18px; }
nav { gap: 2px; } nav { gap: 2px; }
nav a { padding: 7px 7px; font-size: 12px; } nav a { padding: 7px 7px; font-size: 12px; }
} }
+1 -1
View File
@@ -6,7 +6,7 @@
<meta name="theme-color" content="#111827" /> <meta name="theme-color" content="#111827" />
<link rel="icon" type="image/png" href="%BASE_URL%favicon.png?v=fc3b8757" /> <link rel="icon" type="image/png" href="%BASE_URL%favicon.png?v=fc3b8757" />
<link rel="icon" type="image/svg+xml" href="%BASE_URL%favicon.svg?v=1" /> <link rel="icon" type="image/svg+xml" href="%BASE_URL%favicon.svg?v=1" />
<title>홀로도리 계산기</title> <title>갤산기</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+2 -2
View File
@@ -1,10 +1,10 @@
# 홀로도리 계산기 # 갤산기
홀로도리의 라이브 편성·점수 분석과 카드, 보드, 악곡 정보를 확인할 수 있는 비공식 웹 도구입니다. 홀로도리의 라이브 편성·점수 분석과 카드, 보드, 악곡 정보를 확인할 수 있는 비공식 웹 도구입니다.
## 서비스 ## 서비스
[홀로도리 계산기 열기](https://doricalc-holo.live/) [갤산기 열기](https://doricalc-holo.live/)
## 주요 기능 ## 주요 기능
+1 -1
View File
@@ -42,7 +42,7 @@ await writeFile(stylePath, style);
// 점수 채보는 app.js에 포함된다. 별도로 불러오는 시각화 채보는 보존한다. // 점수 채보는 app.js에 포함된다. 별도로 불러오는 시각화 채보는 보존한다.
await rm(path.join(output, 'data', 'charts'), { recursive: true, force: true }); await rm(path.join(output, 'data', 'charts'), { recursive: true, force: true });
await rm(path.join(output, 'VERSION.txt'), { force: true }); await rm(path.join(output, 'VERSION.txt'), { force: true });
await writeFile(path.join(output, 'README.txt'), `홀로도리 계산기 await writeFile(path.join(output, 'README.txt'), `갤산기
서비스: https://doricalc-holo.live/ 서비스: https://doricalc-holo.live/
+2 -2
View File
@@ -22,7 +22,7 @@ test('Google 공식 형식의 arguments 객체를 dataLayer에 적재한다', ()
configurable: true, configurable: true,
value: { value: {
cookie: '', cookie: '',
title: '홀로도리 계산기', title: '갤산기',
createElement: () => ({ async: false, src: '', dataset: {} }), createElement: () => ({ async: false, src: '', dataset: {} }),
head: { append: (script: { src?: string }) => appendedScripts.push(script) } head: { append: (script: { src?: string }) => appendedScripts.push(script) }
} }
@@ -67,7 +67,7 @@ test('새 동의 이후에만 분석 입력을 전송하고 철회·재동의
Object.defineProperty(globalThis, 'document', { Object.defineProperty(globalThis, 'document', {
configurable: true, configurable: true,
value: { value: {
cookie: '', title: '홀로도리 계산기', cookie: '', title: '갤산기',
createElement: () => ({ dataset: {} }), createElement: () => ({ dataset: {} }),
head: { append: (script: unknown) => scripts.push(script) } head: { append: (script: unknown) => scripts.push(script) }
} }
+3 -3
View File
@@ -31,7 +31,7 @@
<header class="site-nav"> <header class="site-nav">
<div class="nav-inner"> <div class="nav-inner">
<a class="brand" href="/" aria-label="홀로도리 계산기 홈">홀로도리 계산기</a> <a class="brand" href="/" aria-label="갤산기 홈">갤산기</a>
<button class="menu-toggle" type="button" aria-controls="primary-navigation" aria-expanded={menuOpen} on:click={() => menuOpen = !menuOpen}>{menuOpen ? '메뉴 닫기' : '전체 메뉴'}</button> <button class="menu-toggle" type="button" aria-controls="primary-navigation" aria-expanded={menuOpen} on:click={() => menuOpen = !menuOpen}>{menuOpen ? '메뉴 닫기' : '전체 메뉴'}</button>
<nav id="primary-navigation" class:open={menuOpen} aria-label="주요 메뉴"> <nav id="primary-navigation" class:open={menuOpen} aria-label="주요 메뉴">
<a href="/cards" aria-current={$page.url.pathname.startsWith('/cards') ? 'page' : undefined}>카드 목록</a> <a href="/cards" aria-current={$page.url.pathname.startsWith('/cards') ? 'page' : undefined}>카드 목록</a>
@@ -91,7 +91,7 @@
.brand { .brand {
color: #f3f5f8; color: #f3f5f8;
font-size: 16px; font-size: 20px;
font-weight: 850; font-weight: 850;
letter-spacing: -.03em; letter-spacing: -.03em;
text-decoration: none; text-decoration: none;
@@ -131,7 +131,7 @@
@media (max-width: 560px) { @media (max-width: 560px) {
:global(:root) { --page-gutter: 24px; } :global(:root) { --page-gutter: 24px; }
.nav-inner { width: calc(100% - 24px); min-height: 54px; } .nav-inner { width: calc(100% - 24px); min-height: 54px; }
.brand { font-size: 13px; } .brand { font-size: 18px; }
nav { gap: 2px; } nav { gap: 2px; }
nav a { padding: 7px 7px; font-size: 12px; } nav a { padding: 7px 7px; font-size: 12px; }
} }
+1 -1
View File
@@ -3,7 +3,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>홀로도리 계산기</title> <title>갤산기</title>
<meta name="description" content="홀로라이브 드림즈의 편성, 스킬 순서와 멤버 보드를 분석하는 계산기" /> <meta name="description" content="홀로라이브 드림즈의 편성, 스킬 순서와 멤버 보드를 분석하는 계산기" />
</svelte:head> </svelte:head>
+1 -1
View File
@@ -1013,7 +1013,7 @@
} }
</script> </script>
<svelte:head><title>{mode === 'rating' ? '리더 레이팅' : '배치 분석'} · 홀로도리 계산기</title></svelte:head> <svelte:head><title>{mode === 'rating' ? '리더 레이팅' : '배치 분석'} · 갤산기</title></svelte:head>
<main> <main>
<header class="page-header"> <header class="page-header">
+1 -1
View File
@@ -301,7 +301,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>카드 목록 · 홀로도리 계산기</title> <title>카드 목록 · 갤산기</title>
<meta name="description" content="홀로드림스 카드의 등급, 타입, 이름, 최고 스탯 목록" /> <meta name="description" content="홀로드림스 카드의 등급, 타입, 이름, 최고 스탯 목록" />
</svelte:head> </svelte:head>
+1 -1
View File
@@ -1232,7 +1232,7 @@
} }
</script> </script>
<svelte:head><title>{eventScoreMode ? '이벤트 점수 탐색' : eventMode ? '이벤트 PT 비교' : '조합 탐색'} · 홀로도리 계산기</title></svelte:head> <svelte:head><title>{eventScoreMode ? '이벤트 점수 탐색' : eventMode ? '이벤트 PT 비교' : '조합 탐색'} · 갤산기</title></svelte:head>
<main> <main>
<header> <header>
+1 -1
View File
@@ -144,7 +144,7 @@
} }
</script> </script>
<svelte:head><title>편성 비교 | 홀로도리 계산기</title><meta name="description" content="같은 악곡과 난이도에서 두 리더·편성의 평균 점수와 최고 점수를 비교합니다."></svelte:head> <svelte:head><title>편성 비교 | 갤산기</title><meta name="description" content="같은 악곡과 난이도에서 두 리더·편성의 평균 점수와 최고 점수를 비교합니다."></svelte:head>
<main> <main>
<header class="page-header"> <header class="page-header">
<h1>편성 비교</h1> <h1>편성 비교</h1>
+1 -1
View File
@@ -1068,7 +1068,7 @@
<svelte:window on:keydown={handleBoardKeyboardNavigation} /> <svelte:window on:keydown={handleBoardKeyboardNavigation} />
<svelte:head> <svelte:head>
<title>사용자 데이터 | 홀로도리 계산기</title> <title>사용자 데이터 | 갤산기</title>
<meta name="description" content="홀로도리 사용자 데이터와 백업을 관리합니다." /> <meta name="description" content="홀로도리 사용자 데이터와 백업을 관리합니다." />
</svelte:head> </svelte:head>
+1 -1
View File
@@ -26,7 +26,7 @@
}); });
</script> </script>
<svelte:head><title>이벤트 PT·점수 · 홀로도리 계산기</title></svelte:head> <svelte:head><title>이벤트 PT·점수 · 갤산기</title></svelte:head>
{#if activeEvent} {#if activeEvent}
<nav class="event-objective" aria-label="이벤트 계산 목적"> <nav class="event-objective" aria-label="이벤트 계산 목적">
+1 -1
View File
@@ -84,7 +84,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>악곡 랜덤 · 도구 · 홀로도리 계산기</title> <title>악곡 랜덤 · 도구 · 갤산기</title>
<meta name="description" content="모든 악곡과 난이도에서 무작위로 선택하세요. 원하는 레벨 범위로 추첨할 수 있습니다." /> <meta name="description" content="모든 악곡과 난이도에서 무작위로 선택하세요. 원하는 레벨 범위로 추첨할 수 있습니다." />
</svelte:head> </svelte:head>
+1 -1
View File
@@ -2,7 +2,7 @@
import ToolsNav from '$lib/components/ToolsNav.svelte'; import ToolsNav from '$lib/components/ToolsNav.svelte';
</script> </script>
<svelte:head><title>AI 연결 · 홀로도리 계산기</title></svelte:head> <svelte:head><title>AI 연결 · 갤산기</title></svelte:head>
<main> <main>
<h1>도구</h1> <h1>도구</h1>
<ToolsNav active="ai" /> <ToolsNav active="ai" />
@@ -48,7 +48,7 @@
} }
</script> </script>
<svelte:head><title>연결노드 개화 추천 · 도구 · 홀로도리 계산기</title></svelte:head> <svelte:head><title>연결노드 개화 추천 · 도구 · 갤산기</title></svelte:head>
<main> <main>
<h1>도구</h1> <h1>도구</h1>
<ToolsNav active="board-awakening" /> <ToolsNav active="board-awakening" />
+1 -1
View File
@@ -190,7 +190,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>홀로워크 관리 · 도구 · 홀로도리 계산기</title> <title>홀로워크 관리 · 도구 · 갤산기</title>
<meta name="description" content="멤버별 Holo워크 파견 횟수를 기록하고 확인하세요." /> <meta name="description" content="멤버별 Holo워크 파견 횟수를 기록하고 확인하세요." />
</svelte:head> </svelte:head>
+1 -1
View File
@@ -116,7 +116,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>악곡 목록 · 도구 · 홀로도리 계산기</title> <title>악곡 목록 · 도구 · 갤산기</title>
<meta name="description" content="악곡과 난이도를 고른 순서대로 목록을 만들고 복사하세요." /> <meta name="description" content="악곡과 난이도를 고른 순서대로 목록을 만들고 복사하세요." />
</svelte:head> </svelte:head>
+2 -2
View File
@@ -8,8 +8,8 @@
</script> </script>
<svelte:head> <svelte:head>
<title>업데이트 내역 · 홀로도리 계산기</title> <title>업데이트 내역 · 갤산기</title>
<meta name="description" content="홀로도리 계산기에 수시로 반영된 기능, 개선, 수정, 데이터 업데이트 내역" /> <meta name="description" content="갤산기에 수시로 반영된 기능, 개선, 수정, 데이터 업데이트 내역" />
</svelte:head> </svelte:head>
<main> <main>