style: rename service to 갤산기 and enlarge navigation brand
Publish GitHub Pages output / publish (push) Successful in 41s
Publish GitHub Pages output / publish (push) Successful in 41s
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
# 홀로도리 계산기
|
# 갤산기
|
||||||
|
|
||||||
홀로라이브 드림즈의 카드와 멤버 성장 상태를 관리하고, 악곡별 최적 배치와 카드 조합을 분석하는 비공식 도구입니다.
|
홀로라이브 드림즈의 카드와 멤버 성장 상태를 관리하고, 악곡별 최적 배치와 카드 조합을 분석하는 비공식 도구입니다.
|
||||||
|
|
||||||
[온라인 서비스 이용](https://doricalc-holo.live/) · 한국어 전용 · PC 환경 권장
|
[온라인 서비스 이용](https://doricalc-holo.live/) · 한국어 전용 · PC 환경 권장
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 주요 기능
|
## 주요 기능
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
## 서비스 이용
|
## 서비스 이용
|
||||||
|
|
||||||
[홀로도리 계산기 온라인 서비스](https://doricalc-holo.live/)에 접속해 사용합니다. 별도의 설치나 다운로드는 필요하지 않습니다.
|
[갤산기 온라인 서비스](https://doricalc-holo.live/)에 접속해 사용합니다. 별도의 설치나 다운로드는 필요하지 않습니다.
|
||||||
|
|
||||||
Chrome 또는 Edge의 최신 버전을 권장합니다.
|
Chrome 또는 Edge의 최신 버전을 권장합니다.
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -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` 도구에 악곡 목록을 추가했습니다. 악곡을 검색하고 난이도를 골라 선택한 순서대로 목록을 만들 수 있습니다. 같은 악곡·난이도를 여러 번 추가하거나 개별 삭제·목록 초기화를 할 수 있으며, 번호·곡명·난이도·레벨을 목록 순서대로 복사할 수 있습니다. 목록은 브라우저에 자동 저장되어 새로고침하거나 다시 방문해도 선택 순서와 난이도가 유지됩니다.
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -1,10 +1,10 @@
|
|||||||
# 홀로도리 계산기
|
# 갤산기
|
||||||
|
|
||||||
홀로도리의 라이브 편성·점수 분석과 카드, 보드, 악곡 정보를 확인할 수 있는 비공식 웹 도구입니다.
|
홀로도리의 라이브 편성·점수 분석과 카드, 보드, 악곡 정보를 확인할 수 있는 비공식 웹 도구입니다.
|
||||||
|
|
||||||
## 서비스
|
## 서비스
|
||||||
|
|
||||||
[홀로도리 계산기 열기](https://doricalc-holo.live/)
|
[갤산기 열기](https://doricalc-holo.live/)
|
||||||
|
|
||||||
## 주요 기능
|
## 주요 기능
|
||||||
|
|
||||||
|
|||||||
@@ -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/
|
||||||
|
|
||||||
|
|||||||
@@ -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) }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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="이벤트 계산 목적">
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user