v1.0.0: Zenless Column Flow 이름과 버전 규칙 반영
Made-with: Cursor
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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/` 연결 방법
|
||||||
|
|||||||
@@ -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}}`으로 감싸는 방식이 가장 단순하다.
|
||||||
|
|
||||||
|
|||||||
@@ -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`) 마크업 포함
|
||||||
|
|||||||
@@ -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열 에디토리얼 레이아웃
|
||||||
- 좌측 탐색, 중앙 콘텐츠, 우측 구독/추천/작성자 패널 구조
|
- 좌측 탐색, 중앙 콘텐츠, 우측 구독/추천/작성자 패널 구조
|
||||||
|
|||||||
@@ -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%)` 적용.
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -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",
|
||||||
|
|||||||
@@ -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'},
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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`
|
||||||
|
|||||||
Reference in New Issue
Block a user