theme: 작성자 디렉터리 제거 및 로컬 메일 주소 출력
Made-with: Cursor
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,36 +0,0 @@
|
||||
{{!< default}}
|
||||
|
||||
<main class="content-area">
|
||||
<section class="stack-section">
|
||||
<header class="section-header text-center">
|
||||
<h1 class="section-title">Authors</h1>
|
||||
<p class="section-description">Browse by author</p>
|
||||
</header>
|
||||
|
||||
{{#get "authors" limit="100" include="count.posts"}}
|
||||
<div class="author-directory grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
||||
{{#foreach authors}}
|
||||
<a class="author-directory__card group flex min-h-[128px] flex-col rounded-[14px] border border-[var(--border)] bg-[var(--surface)] p-4 text-left transition-colors hover:bg-[var(--surface-muted)]" href="{{url}}">
|
||||
<span class="flex items-start gap-3">
|
||||
{{#if profile_image}}
|
||||
<img class="h-11 w-11 rounded-full object-cover" src="{{img_url profile_image size="xs"}}" alt="{{name}}">
|
||||
{{else}}
|
||||
<span class="flex h-11 w-11 items-center justify-center rounded-full bg-[var(--surface-muted)] text-sm font-semibold">A</span>
|
||||
{{/if}}
|
||||
<span class="min-w-0 flex-1">
|
||||
<strong class="block text-[15px] font-semibold tracking-[-0.02em]">{{name}}</strong>
|
||||
{{#if bio}}
|
||||
<span class="mt-1 line-clamp-3 block text-[13px] leading-5 text-[var(--text-soft)]">{{bio}}</span>
|
||||
{{else}}
|
||||
<span class="mt-1 block text-[13px] leading-5 text-[var(--text-soft)]">Posts by {{name}}.</span>
|
||||
{{/if}}
|
||||
</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-share-3"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M13 4v4c-6.575 1.028 -9.02 6.788 -10 12c-.037 .206 5.384 -5.962 10 -6v4l8 -7l-8 -7"></path></svg>
|
||||
</span>
|
||||
<span class="mt-auto pt-3 text-[13px] font-medium text-[var(--text-soft)]">{{plural count.posts empty="0 posts" singular="% post" plural="% posts"}}</span>
|
||||
</a>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/get}}
|
||||
</section>
|
||||
</main>
|
||||
@@ -8,6 +8,8 @@ services:
|
||||
environment:
|
||||
url: http://localhost:2368
|
||||
NODE_ENV: development
|
||||
database__client: sqlite3
|
||||
database__connection__filename: /var/lib/ghost/content/data/ghost-local.db
|
||||
mail__transport: SMTP
|
||||
mail__from: "Ghost Local <noreply@localhost>"
|
||||
mail__options__host: mailpit
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 배포 가이드
|
||||
|
||||
## 현재 버전
|
||||
- `v0.1.43`
|
||||
- `v0.2.1`
|
||||
|
||||
## Git 기본 설정
|
||||
- 저장소 작성자 정보는 아래 값으로 통일한다.
|
||||
@@ -73,9 +73,9 @@ npm run zip:version
|
||||
|
||||
- 현재 `package.json` 버전을 기준으로 `thred-inspired-theme-v0.x.x.zip` 파일을 생성한다.
|
||||
|
||||
## `/tags/`, `/authors/` 연결 방법
|
||||
- 가장 쉬운 방법은 Ghost Admin에서 페이지를 만들고 슬러그를 각각 `tags`, `authors`로 지정한 뒤 템플릿을 연결하는 방식이다.
|
||||
- 페이지 방식 대신 커스텀 라우트를 쓰려면 [routes.yaml.example](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/routes.yaml.example)를 기준으로 Ghost의 `routes.yaml`에 `/tags/`, `/authors/`를 연결한다.
|
||||
## `/tags/` 연결 방법
|
||||
- 가장 쉬운 방법은 Ghost Admin에서 페이지를 만들고 슬러그를 `tags`로 지정한 뒤 템플릿을 연결하는 방식이다.
|
||||
- 페이지 방식 대신 커스텀 라우트를 쓰려면 [routes.yaml.example](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/routes.yaml.example)를 기준으로 Ghost의 `routes.yaml`에 `/tags/`를 연결한다.
|
||||
|
||||
## 로컬 빌드 검증
|
||||
```bash
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 의사결정 이력
|
||||
|
||||
## 2026-04-16 v0.2.1
|
||||
개인용 블로그 운영에서는 작성자 디렉터리(`/authors/`)와 작성자 목록 페이지가 탐색/운영 측면에서 가치가 낮고, 좌측 사이드바에도 불필요한 메뉴가 늘어나는 문제가 있었다. 그래서 `/authors/` 커스텀 라우트와 작성자 디렉터리 템플릿을 제거하고, 필요 시에는 기본 제공되는 `author` 아카이브(개별 작성자 페이지)만 유지하는 방향으로 단순화했다.
|
||||
|
||||
## 2026-04-16 v0.1.43
|
||||
포스트 상세의 `Read next`가 최신 글만 노출되면 홈 목록과 중복되어 탐색 가치가 낮아진다는 요구에 맞춰, 우선순위를 `primary_tag` 관련 글로 전환했다. 태그 기반 결과가 없을 때만 현재 글 제외 최신 글을 fallback으로 노출하도록 구성해, 관련성 우선과 빈 상태 회피를 함께 만족시키는 방식으로 정리했다.
|
||||
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
# 파일-화면 매핑 가이드
|
||||
|
||||
## 현재 버전
|
||||
- `v0.1.43`
|
||||
- `v0.2.1`
|
||||
|
||||
## 공통 레이아웃
|
||||
- [default.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/default.hbs): 전체 3열 셸, 1296px 공통 폭 계산, 공통 자산 로드
|
||||
- [partials/site/sidebar-left.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/sidebar-left.hbs): 좌측 탐색/직접 링크형 Tags·Authors 메뉴/카테고리 아코디언/푸터
|
||||
- [page-tags.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/page-tags.hbs): `slug=tags` 페이지용 태그 디렉터리
|
||||
- [page-authors.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/page-authors.hbs): `slug=authors` 페이지용 작성자 디렉터리
|
||||
- [tags-index.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/tags-index.hbs): `/tags/` 커스텀 라우트용 태그 디렉터리
|
||||
- [authors-index.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/authors-index.hbs): `/authors/` 커스텀 라우트용 작성자 디렉터리
|
||||
- [partials/site/topbar.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/topbar.hbs): 상단 3열 헤더, 중앙 검색, 좌측 사이드바 토글
|
||||
- [partials/site/sidebar-right.hbs](/Users/bicute/Desktop/UGREEN/GHOST%20THEME/partials/site/sidebar-right.hbs): 우측 287px 사이드바, Ghost Recommendations 기반 추천 링크/구독/푸터 구성
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 기술 명세
|
||||
|
||||
## 현재 버전
|
||||
- `v0.1.43`
|
||||
- `v0.2.1`
|
||||
|
||||
## 테마 개요
|
||||
- Ghost `v5` 대응 커스텀 테마
|
||||
@@ -24,9 +24,9 @@
|
||||
- 좌측 네비게이션 마커와 카테고리 마커는 동일한 세로 바 → 원형 hover 패턴 사용
|
||||
- 전역 `ol`, `ul`, `menu` 기본 패딩과 리스트 스타일 리셋 적용
|
||||
- `author.hbs`는 페이지 컨텍스트의 작성자 데이터를 직접 사용
|
||||
- `page-tags.hbs`, `page-authors.hbs`는 각각 `slug=tags`, `slug=authors` 페이지에 연결 가능
|
||||
- `page-tags.hbs`는 `slug=tags` 페이지에 연결 가능
|
||||
- 태그/작성자 디렉터리 목록은 현재 `limit="100"` 기준
|
||||
- `tags-index.hbs`, `authors-index.hbs`는 Ghost `routes.yaml` 커스텀 라우트로 `/tags/`, `/authors/`에 연결됨
|
||||
- `tags-index.hbs`는 Ghost `routes.yaml` 커스텀 라우트로 `/tags/`에 연결됨
|
||||
- 로컬 개발 환경의 실제 라우트 설정은 `.docker/ghost/content/settings/routes.yaml`을 기준으로 사용함
|
||||
- 홈 메인 피드는 히어로, Featured 수평 슬라이드, Latest 리스트 구성을 사용함
|
||||
- 우측 사이드바 `Recommended` 섹션은 Ghost `recommendations` 데이터를 우선 사용하며, 항목별 외부 링크와 favicon 표시를 지원함
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# 업데이트 로그
|
||||
|
||||
## v0.2.1 - 2026-04-16
|
||||
- `package.json` 버전을 `0.2.1`로 증가.
|
||||
- `routes.yaml.example`에서 `/authors/` 커스텀 라우트를 제거.
|
||||
- 작성자 디렉터리 템플릿(`authors-index.hbs`, `page-authors.hbs`)을 제거해 개인용 블로그 구성에 맞게 정리.
|
||||
- `npm run dev`, `npm run dev:ghost:start` 실행 시 로컬 메일 확인용 Mailpit 주소(`http://localhost:8025`, `localhost:1025`)를 함께 출력하도록 개선.
|
||||
- `docs/spec.md`, `docs/map.md`, `docs/deploy.md` 현재 버전을 `v0.2.1`로 동기화하고 작성자 디렉터리 관련 내용을 제거.
|
||||
- `docs/history.md`에 작성자 디렉터리 제거 의사결정 이력 추가.
|
||||
|
||||
## v0.1.43 - 2026-04-16
|
||||
- `package.json` 버전을 `0.1.43`으로 증가.
|
||||
- `docs/spec.md`, `docs/map.md`, `docs/deploy.md` 현재 버전을 `v0.1.43`으로 동기화.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ghost-theme-thred-clone",
|
||||
"version": "0.1.43",
|
||||
"version": "0.2.1",
|
||||
"private": true,
|
||||
"description": "A Ghost theme inspired by the Thred reference layout.",
|
||||
"keywords": [
|
||||
@@ -83,8 +83,8 @@
|
||||
"dev:sync": "sh ./scripts/sync-theme.sh",
|
||||
"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:ghost:start": "npm run dev:prepare && docker compose up -d && printf '\\nGhost local: http://localhost:2368\\nGhost admin: http://localhost:2368/ghost\\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\\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:stop": "docker compose down",
|
||||
"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 -@"
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{{!< default}}
|
||||
|
||||
{{#post}}
|
||||
<main class="content-area">
|
||||
<section class="stack-section">
|
||||
<header class="section-header text-center">
|
||||
<h1 class="section-title">{{title}}</h1>
|
||||
{{#if custom_excerpt}}
|
||||
<p class="section-description">{{custom_excerpt}}</p>
|
||||
{{else}}
|
||||
<p class="section-description">Browse by author</p>
|
||||
{{/if}}
|
||||
</header>
|
||||
|
||||
{{#get "authors" limit="100" include="count.posts"}}
|
||||
<div class="author-directory grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
||||
{{#foreach authors}}
|
||||
<a class="author-directory__card group flex min-h-[128px] flex-col rounded-[14px] border border-[var(--border)] bg-[var(--surface)] p-4 text-left transition-colors hover:bg-[var(--surface-muted)]" href="{{url}}">
|
||||
<span class="flex items-start gap-3">
|
||||
{{#if profile_image}}
|
||||
<img class="h-11 w-11 rounded-full object-cover" src="{{img_url profile_image size="xs"}}" alt="{{name}}">
|
||||
{{else}}
|
||||
<span class="flex h-11 w-11 items-center justify-center rounded-full bg-[var(--surface-muted)] text-sm font-semibold">A</span>
|
||||
{{/if}}
|
||||
<span class="min-w-0 flex-1">
|
||||
<strong class="block text-[15px] font-semibold tracking-[-0.02em]">{{name}}</strong>
|
||||
{{#if bio}}
|
||||
<span class="mt-1 line-clamp-3 block text-[13px] leading-5 text-[var(--text-soft)]">{{bio}}</span>
|
||||
{{else}}
|
||||
<span class="mt-1 block text-[13px] leading-5 text-[var(--text-soft)]">Posts by {{name}}.</span>
|
||||
{{/if}}
|
||||
</span>
|
||||
<img class="h-4 w-4 shrink-0 opacity-70 transition-opacity group-hover:opacity-100" src="{{asset "icons/arrow_outward.svg"}}" alt="">
|
||||
</span>
|
||||
<span class="mt-auto pt-3 text-[13px] font-medium text-[var(--text-soft)]">{{plural count.posts empty="0 posts" singular="% post" plural="% posts"}}</span>
|
||||
</a>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/get}}
|
||||
</section>
|
||||
</main>
|
||||
{{/post}}
|
||||
@@ -24,14 +24,14 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="menu-group menu-group--nav menu-group--link flex items-center flex-wrap w-full relative group" data-label="Authors" data-slug="authors" data-length="7">
|
||||
{{!-- <li class="menu-group menu-group--nav menu-group--link flex items-center flex-wrap w-full relative group" data-label="Authors" data-slug="authors" data-length="7">
|
||||
<a class="menu-group__link flex gap-2 items-center flex-1 py-1.5 rounded-theme transition-[padding]" href="/authors/">
|
||||
<span class="menu-link__marker w-1 h-4 rounded-sm rounded-l-none transition-all"></span>
|
||||
<span class="menu-link__label">Authors</span>
|
||||
</a>
|
||||
</li>
|
||||
</li> --}}
|
||||
|
||||
<li class="menu-group menu-group--nav nav-toggle is-mainitem flex items-center flex-wrap w-full relative group" :class="{ 'is-open': membersOpen }" data-label="Members" data-slug="members" data-length="7" aria-haspopup="true">
|
||||
{{!-- <li class="menu-group menu-group--nav nav-toggle is-mainitem flex items-center flex-wrap w-full relative group" :class="{ 'is-open': membersOpen }" data-label="Members" data-slug="members" data-length="7" aria-haspopup="true">
|
||||
<a class="menu-group__link menu-group__link--toggle flex gap-2 items-center flex-1 py-1.5 rounded-theme transition-[padding]" href="#" role="button" @click.prevent="membersOpen = !membersOpen" :aria-expanded="membersOpen.toString()" aria-haspopup="true">
|
||||
<span class="menu-link__marker w-1 h-4 rounded-sm rounded-l-none transition-all"></span>
|
||||
<span class="menu-link__label">Members</span>
|
||||
@@ -49,7 +49,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</li> --}}
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
routes:
|
||||
/tags/:
|
||||
template: tags-index
|
||||
/authors/:
|
||||
template: authors-index
|
||||
|
||||
collections:
|
||||
/:
|
||||
|
||||
Reference in New Issue
Block a user