v1.0.0: Zenless Column Flow 이름과 버전 규칙 반영

Made-with: Cursor
This commit is contained in:
2026-04-17 16:38:39 +09:00
parent 12a1c450ae
commit b148269f53
11 changed files with 29 additions and 16 deletions

View File

@@ -1,6 +1,6 @@
# Ghost Theme: Thred-Inspired # Ghost Theme: Zenless Column Flow
This repository contains a Ghost theme scaffold inspired by the `Thred` reference layout. This repository contains the `Zenless Column Flow` Ghost theme for editorial three-column blogs.
## Included ## Included
@@ -22,11 +22,11 @@ This repository contains a Ghost theme scaffold inspired by the `Thred` referenc
1. Run `npm run dev:ghost:start` 1. Run `npm run dev:ghost:start`
2. Open `http://localhost:2368/ghost` and complete the local Ghost setup 2. Open `http://localhost:2368/ghost` and complete the local Ghost setup
3. Activate the `ghost-theme-thred-clone` theme in `Settings -> Design` 3. Activate the `zenless-column-flow` theme in `Settings -> Design`
4. After theme changes, run `npm run dev:ghost:restart` 4. After theme changes, run `npm run dev:ghost:restart`
5. To add local sample categories and posts, run `npm run dev:seed` and import the generated JSON file from Ghost Admin 5. To add local sample categories and posts, run `npm run dev:seed` and import the generated JSON file from Ghost Admin
The local Docker setup syncs only theme-related files into `.docker/theme/ghost-theme-thred-clone`, so work files such as `docs/` or `local-ghost/` do not slow down Ghost startup. The local Docker setup syncs only theme-related files into `.docker/theme/zenless-column-flow`, so work files such as `docs/` or `local-ghost/` do not slow down Ghost startup.
## Important note ## Important note

View File

@@ -20,7 +20,7 @@ services:
mail__options__auth__pass: "" mail__options__auth__pass: ""
volumes: volumes:
- ./.docker/ghost/content:/var/lib/ghost/content - ./.docker/ghost/content:/var/lib/ghost/content
- ./.docker/theme/ghost-theme-thred-clone:/var/lib/ghost/content/themes/ghost-theme-thred-clone - ./.docker/theme/zenless-column-flow:/var/lib/ghost/content/themes/zenless-column-flow
depends_on: depends_on:
- mailpit - mailpit

View File

@@ -1,7 +1,7 @@
# 배포 가이드 # 배포 가이드
## 현재 버전 ## 현재 버전
- `v0.2.11` - `v1.0.0`
## Git 기본 설정 ## Git 기본 설정
- 저장소 작성자 정보는 아래 값으로 통일한다. - 저장소 작성자 정보는 아래 값으로 통일한다.
@@ -71,6 +71,8 @@ npm run build:tailwind
npm run zip:version npm run zip:version
``` ```
- 생성 파일명 형식은 `ZCF-v<package.json version>.zip`이다.
- 현재 `package.json` 버전을 기준으로 `thred-inspired-theme-v0.x.x.zip` 파일을 생성한다. - 현재 `package.json` 버전을 기준으로 `thred-inspired-theme-v0.x.x.zip` 파일을 생성한다.
## `/tags/` 연결 방법 ## `/tags/` 연결 방법

View File

@@ -1,5 +1,8 @@
# 의사결정 이력 # 의사결정 이력
## 2026-04-17 v1.0.0
실사용 전환 단계에서 기존 패키지명(`ghost-theme-thred-clone`)은 레퍼런스 성격이 강해 운영 식별성과 배포 파일 관리에 불리했다. 그래서 테마 공식 명칭을 `Zenless Column Flow`로 확정하고 slug를 `zenless-column-flow`로 통일했다. Ghost 호환성을 위해 `package.json``version`은 순수 semver(`1.0.0`)를 유지하고, 사람이 보는 릴리스/압축 파일 표기는 `ZCF-v1.x.x` 규칙으로 분리했다.
## 2026-04-17 v0.2.7 ## 2026-04-17 v0.2.7
Ghost 관리자의 Secondary navigation은 기본 테마 헬퍼만으로는 출력 위치가 없어 활용되지 않았다. Primary와 동일한 `ul.nav` 스타일을 재사용하려면 `Home pages` 블록과 같은 아코디언 래퍼 안에 `{{navigation type="secondary"}}`를 두고, 항목이 없을 때는 빈 UI가 나오지 않도록 `{{#if @site.secondary_navigation}}`으로 감싸는 방식이 가장 단순하다. Ghost 관리자의 Secondary navigation은 기본 테마 헬퍼만으로는 출력 위치가 없어 활용되지 않았다. Primary와 동일한 `ul.nav` 스타일을 재사용하려면 `Home pages` 블록과 같은 아코디언 래퍼 안에 `{{navigation type="secondary"}}`를 두고, 항목이 없을 때는 빈 UI가 나오지 않도록 `{{#if @site.secondary_navigation}}`으로 감싸는 방식이 가장 단순하다.

View File

@@ -1,7 +1,7 @@
# 파일-화면 매핑 가이드 # 파일-화면 매핑 가이드
## 현재 버전 ## 현재 버전
- `v0.2.11` - `v1.0.0`
## 공통 레이아웃 ## 공통 레이아웃
- [default.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/default.hbs): 전체 3열 셸, 1296px 공통 폭 계산, 공통 자산 로드, 전역 공유 모달(`share-modal`) 마크업 포함 - [default.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/default.hbs): 전체 3열 셸, 1296px 공통 폭 계산, 공통 자산 로드, 전역 공유 모달(`share-modal`) 마크업 포함

View File

@@ -1,9 +1,10 @@
# 기술 명세 # 기술 명세
## 현재 버전 ## 현재 버전
- `v0.2.11` - `v1.0.0`
## 테마 개요 ## 테마 개요
- 테마명: `Zenless Column Flow` (slug: `zenless-column-flow`)
- Ghost `v5` 대응 커스텀 테마 - Ghost `v5` 대응 커스텀 테마
- 참고 사이트 `https://thred.brightthemes.com/` 기반의 3열 에디토리얼 레이아웃 - 참고 사이트 `https://thred.brightthemes.com/` 기반의 3열 에디토리얼 레이아웃
- 좌측 탐색, 중앙 콘텐츠, 우측 구독/추천/작성자 패널 구조 - 좌측 탐색, 중앙 콘텐츠, 우측 구독/추천/작성자 패널 구조

View File

@@ -1,5 +1,12 @@
# 업데이트 로그 # 업데이트 로그
## v1.0.0 - 2026-04-17
- `package.json`: 테마 패키지명을 `zenless-column-flow`로 변경하고 버전을 `1.0.0`으로 상향.
- `package.json`: 설명을 `Zenless Column Flow` 기준으로 갱신하고 zip 파일명 규칙을 `ZCF-v$npm_package_version.zip`으로 변경.
- `scripts/sync-theme.sh`, `docker-compose.yml`: 로컬 Ghost 테마 동기화 경로를 `zenless-column-flow`로 변경.
- `scripts/build-sample-content.js`, `seed/README.md`, `README.md`: 샘플 콘텐츠 파일명/문서 표기를 `zcf-sample-content` 및 새 테마명으로 갱신.
- `docs/spec.md`, `docs/map.md`, `docs/deploy.md`, `docs/history.md`: 현재 버전과 테마명/버전 규칙을 `v1.0.0`, `ZCF-v1.x.x` 기준으로 동기화.
## v0.2.11 - 2026-04-17 ## v0.2.11 - 2026-04-17
- `package.json` 버전을 `0.2.11`로 증가. - `package.json` 버전을 `0.2.11`로 증가.
- `assets/built/screen.css`: `topbar__inner` 그리드를 `minmax(0, var(--content-column))` 중앙 열로 복구해 데스크톱 3열 배치를 안정화. `minmax(260px, min(720px, 1fr))`·검색 트리거 강제 `min-width` 제거. 브랜드 `overflow: hidden` 제거 및 로고 `max-width: 100%` 보정. `1023px` 이하에서는 `topbar__inner``minmax(0,1fr) auto` 2열로 두고 검색 숨김 시 액션을 그리드 2열에 배치(절대 위치 제거). `1024px` 이상에서만 `.topbar__search``min-width: min(--topbar-search-min, 100%)` 적용. - `assets/built/screen.css`: `topbar__inner` 그리드를 `minmax(0, var(--content-column))` 중앙 열로 복구해 데스크톱 3열 배치를 안정화. `minmax(260px, min(720px, 1fr))`·검색 트리거 강제 `min-width` 제거. 브랜드 `overflow: hidden` 제거 및 로고 `max-width: 100%` 보정. `1023px` 이하에서는 `topbar__inner``minmax(0,1fr) auto` 2열로 두고 검색 숨김 시 액션을 그리드 2열에 배치(절대 위치 제거). `1024px` 이상에서만 `.topbar__search``min-width: min(--topbar-search-min, 100%)` 적용.

View File

@@ -1,8 +1,8 @@
{ {
"name": "ghost-theme-thred-clone", "name": "zenless-column-flow",
"version": "0.2.11", "version": "1.0.0",
"private": true, "private": true,
"description": "A Ghost theme inspired by the Thred reference layout.", "description": "Zenless Column Flow Ghost theme for editorial three-column blogs.",
"keywords": [ "keywords": [
"ghost-theme", "ghost-theme",
"ghost", "ghost",
@@ -82,12 +82,12 @@
"dev:watch": "node ./scripts/dev-watch.js", "dev:watch": "node ./scripts/dev-watch.js",
"dev:sync": "sh ./scripts/sync-theme.sh", "dev:sync": "sh ./scripts/sync-theme.sh",
"dev:seed": "node ./scripts/build-sample-content.js", "dev:seed": "node ./scripts/build-sample-content.js",
"dev:seed:zip": "npm run dev:seed && cd seed && zip -q -r thred-inspired-sample-content.ghost.zip thred-inspired-sample-content.ghost.json", "dev:seed:zip": "npm run dev:seed && cd seed && zip -q -r zcf-sample-content.ghost.zip zcf-sample-content.ghost.json",
"dev:ghost:start": "npm run dev:prepare && docker compose up -d && printf '\\nGhost local: http://localhost:2368\\nGhost admin: http://localhost:2368/ghost\\nMailpit UI: http://localhost:8025\\nMailpit SMTP: localhost:1025\\n\\n'", "dev:ghost:start": "npm run dev:prepare && docker compose up -d && printf '\\nGhost local: http://localhost:2368\\nGhost admin: http://localhost:2368/ghost\\nMailpit UI: http://localhost:8025\\nMailpit SMTP: localhost:1025\\n\\n'",
"dev:ghost:restart": "npm run dev:prepare && docker compose restart ghost && printf '\\nGhost local: http://localhost:2368\\nGhost admin: http://localhost:2368/ghost\\nMailpit UI: http://localhost:8025\\nMailpit SMTP: localhost:1025\\n\\n'", "dev:ghost:restart": "npm run dev:prepare && docker compose restart ghost && printf '\\nGhost local: http://localhost:2368\\nGhost admin: http://localhost:2368/ghost\\nMailpit UI: http://localhost:8025\\nMailpit SMTP: localhost:1025\\n\\n'",
"dev:ghost:stop": "docker compose down", "dev:ghost:stop": "docker compose down",
"zip": "zip -r theme.zip . -x '*.git*' -x 'node_modules/*' -x 'theme.zip'", "zip": "zip -r theme.zip . -x '*.git*' -x 'node_modules/*' -x 'theme.zip'",
"zip:version": "rm -f thred-inspired-theme-v$npm_package_version.zip && git ls-files | zip -q thred-inspired-theme-v$npm_package_version.zip -@" "zip:version": "rm -f ZCF-v$npm_package_version.zip && git ls-files | zip -q ZCF-v$npm_package_version.zip -@"
}, },
"devDependencies": { "devDependencies": {
"alpinejs": "^3.14.9", "alpinejs": "^3.14.9",

View File

@@ -2,7 +2,7 @@ const fs = require('fs');
const path = require('path'); const path = require('path');
const outputDir = path.join(__dirname, '..', 'seed'); const outputDir = path.join(__dirname, '..', 'seed');
const outputFile = path.join(outputDir, 'thred-inspired-sample-content.ghost.json'); const outputFile = path.join(outputDir, 'zcf-sample-content.ghost.json');
const tags = [ const tags = [
{id: 'tag-books', name: 'Books', slug: 'books'}, {id: 'tag-books', name: 'Books', slug: 'books'},

View File

@@ -3,7 +3,7 @@
set -eu set -eu
ROOT_DIR="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)" ROOT_DIR="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)"
TARGET_DIR="$ROOT_DIR/.docker/theme/ghost-theme-thred-clone" TARGET_DIR="$ROOT_DIR/.docker/theme/zenless-column-flow"
mkdir -p "$TARGET_DIR" mkdir -p "$TARGET_DIR"

View File

@@ -2,7 +2,7 @@
Run `npm run dev:seed` to regenerate the local Ghost import file. Run `npm run dev:seed` to regenerate the local Ghost import file.
Then import `seed/thred-inspired-sample-content.ghost.json` from Ghost Admin: Then import `seed/zcf-sample-content.ghost.json` from Ghost Admin:
1. Open `http://localhost:2368/ghost` 1. Open `http://localhost:2368/ghost`
2. Go to `Settings -> Advanced -> Import/Export` 2. Go to `Settings -> Advanced -> Import/Export`