MEDIABROWSER 배포 사이트 + 공개 릴리스 저장소 전환 (DEPLOYMENT_PLAN §5-ter, BACKLOG 12차) — site/: 프로모션(라이트 글래스모피즘, CSS scroll-driven 패럴랙스+IO 등장, 모션·투명도 축소 존중, no-JS 백지 방지 html.js 게이트)·릴리스(플랫폼 그룹, OS 자동 감지 권장, 이전 버전 접힘, 빈 상태)·사용 안내(설치→첫 다운로드→관리→휴대폰 연결→FAQ) 3페이지. 히어로/가이드 이미지는 VD_DATA_DIR 격리 프로필로 띄운 실제 앱 다운로드 패널 캡처(밝기 보정). 릴리스 데이터는 CORS 회피를 위해 배포 시 fetch-releases.mjs 가 releases.json 으로 정적 생성(git 무시). 공개 저장소 Video-Downloader/releases 신설(비공개 소스 저장소는 자산 익명 다운로드 불가) — CI 업로드를 env RELEASE_REPO 로 전환, draft 익명 비노출이라 QA 후 Publish 흐름 유지. build/deploy-site.ps1(wrangler pages deploy) 추가, 라이브: https://mediabrowser-7r4.pages.dev — Playwright 로 3페이지 전수 스크린샷 검증(빈 상태+샘플 데이터 렌더 포함)
This commit is contained in:
parent
b536622606
commit
c8b061959b
15 changed files with 923 additions and 2 deletions
35
site/fetch-releases.mjs
Normal file
35
site/fetch-releases.mjs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
// 배포 전에 공개 릴리스 저장소의 릴리스 목록을 releases.json 으로 굽는다.
|
||||
// (브라우저에서 Forgejo API 를 직접 호출하면 CORS 에 막히므로 빌드 시점에 정적 생성)
|
||||
// 사용: node site/fetch-releases.mjs
|
||||
import { writeFileSync } from "node:fs";
|
||||
|
||||
const API = "https://git.chanpaca.net/api/v1/repos/Video-Downloader/releases/releases?limit=50";
|
||||
|
||||
const res = await fetch(API, { headers: { Accept: "application/json" } });
|
||||
if (!res.ok) throw new Error(`릴리스 API 실패: HTTP ${res.status}`);
|
||||
const raw = await res.json();
|
||||
|
||||
const releases = raw
|
||||
.filter((r) => !r.draft)
|
||||
.sort((a, b) => new Date(b.published_at) - new Date(a.published_at))
|
||||
.map((r) => ({
|
||||
tag: r.tag_name,
|
||||
name: r.name || r.tag_name,
|
||||
published_at: r.published_at,
|
||||
prerelease: r.prerelease,
|
||||
notes: r.body || "",
|
||||
assets: (r.assets || []).map((a) => ({
|
||||
name: a.name,
|
||||
size: a.size,
|
||||
url: a.browser_download_url,
|
||||
})),
|
||||
}));
|
||||
|
||||
const out = {
|
||||
generated_at: new Date().toISOString(),
|
||||
repo_url: "https://git.chanpaca.net/Video-Downloader/releases",
|
||||
releases,
|
||||
};
|
||||
|
||||
writeFileSync(new URL("./releases.json", import.meta.url), JSON.stringify(out, null, 2));
|
||||
console.log(`releases.json 생성: 릴리스 ${releases.length}건`);
|
||||
Loading…
Add table
Add a link
Reference in a new issue