docs: add GitHub Pages repository README
Publish GitHub Pages output / publish (push) Successful in 47s
Publish GitHub Pages output / publish (push) Successful in 47s
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
# 홀로도리 계산기
|
||||||
|
|
||||||
|
홀로도리의 라이브 편성·점수 분석과 카드, 보드, 악곡 정보를 확인할 수 있는 비공식 웹 도구입니다.
|
||||||
|
|
||||||
|
## 서비스
|
||||||
|
|
||||||
|
[홀로도리 계산기 열기](https://doricalc-holo.live/)
|
||||||
|
|
||||||
|
## 주요 기능
|
||||||
|
|
||||||
|
- 라이브 편성 및 점수 분석
|
||||||
|
- 카드와 보드 정보 확인
|
||||||
|
- 악곡 및 채보 데이터 조회
|
||||||
|
- 편성 조합 최적화와 이벤트 효율 비교
|
||||||
|
|
||||||
|
## 의견 보내기
|
||||||
|
|
||||||
|
- [버그 제보](https://docs.google.com/forms/d/1z9c0c1crbCO6avXaYwrHZjhw2ib3zgAmW4ijJDTo4DM)
|
||||||
|
- [기능 건의](https://docs.google.com/forms/d/16NcTst7Rpa9XzqYIfPa4t9JF2X0CMfYzEbZrT8PLqco)
|
||||||
|
- [데이터 오류 제보](https://docs.google.com/forms/d/1bShzsxNN-iTk0uU3RfMfmLkYXYmUTmIWMmCtQmfl_Ik)
|
||||||
|
|
||||||
|
## 데이터와 개인정보
|
||||||
|
|
||||||
|
서비스는 정적 GitHub Pages로 제공되며, 계산과 사용자 데이터 저장은 브라우저에서 처리됩니다. 공개 가능 시각과 승인 데이터 버전 검증을 통과한 데이터만 배포합니다.
|
||||||
|
|
||||||
|
## 저장소 안내
|
||||||
|
|
||||||
|
이 저장소에는 GitHub Pages 배포용으로 자동 생성된 파일만 있습니다. 원본 코드와 개발 데이터는 별도의 비공개 저장소에서 관리하며, 이 저장소의 파일은 자동 배포 과정에서 갱신될 수 있습니다.
|
||||||
|
|
||||||
|
## 비공식 서비스
|
||||||
|
|
||||||
|
이 서비스는 게임 공식 운영 주체와 관련 없는 비공식 팬 도구입니다.
|
||||||
@@ -6,6 +6,7 @@ $ErrorActionPreference = 'Stop'
|
|||||||
|
|
||||||
$projectRoot = Split-Path -Parent $PSScriptRoot
|
$projectRoot = Split-Path -Parent $PSScriptRoot
|
||||||
$siteSource = Join-Path $projectRoot 'pages-dist'
|
$siteSource = Join-Path $projectRoot 'pages-dist'
|
||||||
|
$readmeSource = Join-Path $projectRoot 'pages/README.md'
|
||||||
$workflowSource = Join-Path $projectRoot 'pages/deploy.yml'
|
$workflowSource = Join-Path $projectRoot 'pages/deploy.yml'
|
||||||
$temporaryRoot = Join-Path ([System.IO.Path]::GetTempPath()) ("holodori-pages-{0}" -f [guid]::NewGuid().ToString('N'))
|
$temporaryRoot = Join-Path ([System.IO.Path]::GetTempPath()) ("holodori-pages-{0}" -f [guid]::NewGuid().ToString('N'))
|
||||||
$checkout = Join-Path $temporaryRoot 'repository'
|
$checkout = Join-Path $temporaryRoot 'repository'
|
||||||
@@ -28,13 +29,14 @@ try {
|
|||||||
if (Test-Path -LiteralPath $oldSiteTarget) {
|
if (Test-Path -LiteralPath $oldSiteTarget) {
|
||||||
Remove-Item -LiteralPath $oldSiteTarget -Recurse -Force
|
Remove-Item -LiteralPath $oldSiteTarget -Recurse -Force
|
||||||
}
|
}
|
||||||
foreach ($generatedPath in @('assets', 'icons', 'index.html', 'README.txt', 'VERSION.txt', '.nojekyll')) {
|
foreach ($generatedPath in @('assets', 'icons', 'index.html', 'README.md', 'README.txt', 'VERSION.txt', '.nojekyll')) {
|
||||||
$target = Join-Path $resolvedCheckout $generatedPath
|
$target = Join-Path $resolvedCheckout $generatedPath
|
||||||
if (Test-Path -LiteralPath $target) {
|
if (Test-Path -LiteralPath $target) {
|
||||||
Remove-Item -LiteralPath $target -Recurse -Force
|
Remove-Item -LiteralPath $target -Recurse -Force
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Copy-Item -Path (Join-Path $siteSource '*') -Destination $resolvedCheckout -Recurse -Force
|
Copy-Item -Path (Join-Path $siteSource '*') -Destination $resolvedCheckout -Recurse -Force
|
||||||
|
Copy-Item -LiteralPath $readmeSource -Destination (Join-Path $resolvedCheckout 'README.md') -Force
|
||||||
New-Item -ItemType File -Path (Join-Path $resolvedCheckout '.nojekyll') -Force | Out-Null
|
New-Item -ItemType File -Path (Join-Path $resolvedCheckout '.nojekyll') -Force | Out-Null
|
||||||
|
|
||||||
$workflowTarget = Join-Path $resolvedCheckout '.github/workflows'
|
$workflowTarget = Join-Path $resolvedCheckout '.github/workflows'
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const htmlPath = path.join(output, 'index.html');
|
|||||||
const scriptPath = path.join(output, 'assets', 'app.js');
|
const scriptPath = path.join(output, 'assets', 'app.js');
|
||||||
const stylePath = path.join(output, 'assets', 'app.css');
|
const stylePath = path.join(output, 'assets', 'app.css');
|
||||||
const packageJson = JSON.parse(await readFile(path.resolve('package.json'), 'utf8'));
|
const packageJson = JSON.parse(await readFile(path.resolve('package.json'), 'utf8'));
|
||||||
|
const isPagesBuild = path.basename(output) === 'pages-dist';
|
||||||
|
|
||||||
let html = await readFile(htmlPath, 'utf8');
|
let html = await readFile(htmlPath, 'utf8');
|
||||||
html = html.replace(/<script type="module" crossorigin src=/g, '<script defer src=');
|
html = html.replace(/<script type="module" crossorigin src=/g, '<script defer src=');
|
||||||
@@ -45,7 +46,15 @@ await writeFile(stylePath, style);
|
|||||||
await rm(path.join(output, 'data'), { recursive: true, force: true });
|
await rm(path.join(output, 'data'), { recursive: true, force: true });
|
||||||
|
|
||||||
await writeFile(path.join(output, 'VERSION.txt'), `${packageJson.version}\n`);
|
await writeFile(path.join(output, 'VERSION.txt'), `${packageJson.version}\n`);
|
||||||
await writeFile(path.join(output, 'README.txt'), `홀로도리 계산기 ${packageJson.version}
|
await writeFile(path.join(output, 'README.txt'), isPagesBuild
|
||||||
|
? `홀로도리 계산기 ${packageJson.version}
|
||||||
|
|
||||||
|
서비스: https://doricalc-holo.live/
|
||||||
|
|
||||||
|
이 파일들은 GitHub Pages 배포용으로 자동 생성되었습니다.
|
||||||
|
계산과 사용자 데이터 저장은 사용자의 브라우저에서 처리됩니다.
|
||||||
|
`
|
||||||
|
: `홀로도리 계산기 ${packageJson.version}
|
||||||
|
|
||||||
1. 압축파일의 내용을 모두 한 폴더에 풀어 주세요.
|
1. 압축파일의 내용을 모두 한 폴더에 풀어 주세요.
|
||||||
2. index.html을 Chrome 또는 Edge로 열어 주세요.
|
2. index.html을 Chrome 또는 Edge로 열어 주세요.
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { fileURLToPath } from 'node:url';
|
|||||||
|
|
||||||
const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||||
const siteSource = path.join(projectRoot, 'pages-dist');
|
const siteSource = path.join(projectRoot, 'pages-dist');
|
||||||
|
const readmeSource = path.join(projectRoot, 'pages', 'README.md');
|
||||||
const repository = process.env.GITHUB_PAGES_REPOSITORY ?? 'https://github.com/DD4SN/DD4SN.github.io.git';
|
const repository = process.env.GITHUB_PAGES_REPOSITORY ?? 'https://github.com/DD4SN/DD4SN.github.io.git';
|
||||||
|
|
||||||
if (!process.env.GITHUB_PAGES_TOKEN) {
|
if (!process.env.GITHUB_PAGES_TOKEN) {
|
||||||
@@ -48,9 +49,10 @@ try {
|
|||||||
|
|
||||||
await requireGit(['clone', repository, checkout], { env: gitEnvironment });
|
await requireGit(['clone', repository, checkout], { env: gitEnvironment });
|
||||||
|
|
||||||
const generatedPaths = ['site', 'assets', 'icons', 'index.html', 'README.txt', 'VERSION.txt', '.nojekyll'];
|
const generatedPaths = ['site', 'assets', 'icons', 'index.html', 'README.md', 'README.txt', 'VERSION.txt', '.nojekyll'];
|
||||||
await Promise.all(generatedPaths.map((generatedPath) => rm(path.join(checkout, generatedPath), { recursive: true, force: true })));
|
await Promise.all(generatedPaths.map((generatedPath) => rm(path.join(checkout, generatedPath), { recursive: true, force: true })));
|
||||||
await cp(siteSource, checkout, { recursive: true });
|
await cp(siteSource, checkout, { recursive: true });
|
||||||
|
await cp(readmeSource, path.join(checkout, 'README.md'));
|
||||||
await writeFile(path.join(checkout, '.nojekyll'), '');
|
await writeFile(path.join(checkout, '.nojekyll'), '');
|
||||||
|
|
||||||
await requireGit(['config', 'user.name', 'HolodoriCalc deployment'], { cwd: checkout, env: gitEnvironment });
|
await requireGit(['config', 'user.name', 'HolodoriCalc deployment'], { cwd: checkout, env: gitEnvironment });
|
||||||
|
|||||||
Reference in New Issue
Block a user