Files
sori.studio/docs/update.md
zenn b77f37a94e v1.3.1: 어나운스 바·가입 금지 닉네임·설정 UI 개선
공개 상단 어나운스 바와 관리자 맞춤 설정을 추가하고, 스팸 필터에서 가입 금지 닉네임을 관리·검증한다. POST 설정 읽기 모드 비활성 토글과 설정 내비 아이콘 틀을 반영한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-19 15:50:47 +09:00

90 KiB

업데이트 이력

v1.3.1

  • 스팸 필터: 가입 금지 닉네임(signupBlockedUsernames) 설정·저장. 기본 admin, master, zenn, sori, sori.studio. 회원가입·프로필 닉네임 변경 시 검사, zenn은 사용할 수 없는 단어입니다. 형식 안내. 마이그레이션 029_site_settings_signup_blocked_usernames.sql.

v1.3.0

  • 관리자 사이트 설정 좌측 내비: AdminSettingsNavIcon·iconId 슬롯 추가. 블로그 제목·설명에 type-cursor 아이콘 연결, 나머지는 placeholder 틀.
  • 관리자 POST 설정: 읽기 모드에서도 수정일 표시를 비활성화 토글 UI로 표시(켜짐/꺼짐 텍스트 제거).
  • 어나운스 바: site_settings 필드·마이그레이션 028_site_settings_announcement.sql. 공개 상단 배너(SiteAnnouncementBar·SiteTopChrome), 닫기 시 localStorage·설정 변경 시 재노출.
  • 관리자 설정「어나운스 바」: 사용 토글·맞춤 설정(문구·선택 링크·배경색 프리셋 검정/흰/브랜드).

v1.2.9

  • 홈 상단: Ghost형 헤딩·구독 폼 제거. 사이트 설정「메인 화면」에서 커버 이미지(720px)·오버레이 제목·본문 설정. HomeHero.vue, 마이그레이션 027_site_settings_home_cover.sql.
  • 메인 화면 설정: 커버 업로드 시 제목·본문이 리셋되지 않도록 업로드는 파일만·저장 버튼에서 이미지·텍스트 일괄 PUT 반영.
  • 테마 깜빡임: head 인라인 스크립트로 data-theme 선적용. 로딩 스플래시(app.html·캐시된 사이트 로고).
  • 관리자 글 목록: 휴지통 대신 more vert 행 메뉴(추천·추천 제거·삭제).
  • 관리자 태그 관리: 메인·일반 태그 모두 more vert 메뉴(수정·전환·제외·삭제).
  • 관리자 공통 AdminRowMoreMenu·useAdminRowMenu: 페이지·미디어 폴더·네비게이션 삭제 UI 통일. 태그 메뉴 항목 좌측 정렬 수정.
  • 홈 Latest 피드: List(썸네일+본문)·Compact(텍스트만)·Cards(2열) 보기 구분. 메뉴 List/Compact 선택값과 레이아웃 일치. Default 클릭 시 Compact로 전환. Cards 상단 여백·테두리 클리핑 수정.
  • 게시물 카드: 대표 이미지 없을 때 썸네일 영역에 제목 텍스트 플레이스홀더(PostCardMedia). 홈 Latest·태그·게시물 목록 공통.
  • 슬래시 메뉴: 키보드 ↓ 이동 시 scrollIntoView+mouseenter 충돌로 하단 항목이 반복 선택되던 문제 수정.
  • 라이브 토글: 제목 Enter→본문 포커스, ↑↓는 토글 내부만 이동(한글 조합·스크롤 점프 보정).
  • 라이브 토글: ContentMarkdownToggleEditor로 제목·본문 인라인 편집. ProseToggle 펼침·접힘 애니메이션(그리드 전환).
  • 라이브 코드 블록: Enter 줄바꿈·줄번호 반영 수정(<br> 읽기). 마지막 줄 ↓로 블록 이탈·다음 문단 삽입.
  • 콜아웃 설정: 이모지 7종 프리셋 선택, 직접 입력 제거. 아이콘 토글 UI 정리.
  • 코드 블록: ProseCodeBlock.vue로 라이브·공개 스타일 통일(#15171a, 줄번호 gutter). 라이브 호버 시 Language·줄번호 토글. 공개 화면 언어 라벨 옆 복사 버튼.
  • 라이브 콜아웃: 아이콘 호버·클릭 시 설정 모달(이모지·배경색).
  • 라이브 모드 코드 블록: pre 단일 편집 영역으로 공개 화면과 높이 맞춤, ↑↓는 블록 첫·마지막 줄에서만 밖으로 이동.
  • 라이브 모드: - ·> 마커만 있는 줄도 목록·인용 블록으로 인식. 코드·콜아웃 본문 인라인 편집 추가.
  • 슬래시 콜아웃 기본 삽입을 :::callout emoji=💡 bg=blue 형식으로 변경.
  • 소스(작성) 모드 textarea에 / 슬래시 명령 추가(미리보기와 동일). 상단 마크다운 툴바 제거.
  • 라이브·소스 슬래시: 기본 제목은 h2·h3·h4만 노출. h1은 /h1 검색 시에만 선택 가능(게시물 제목이 유일한 h1).
  • 라이브 모드 슬래시: h2 등 명령 적용 후 ## 뒤로 포커스·커서 복원. Esc는 메뉴만 닫고 줄·/… 입력 유지(해당 줄 메뉴 재오픈 억제). Esc 시 줄 비우기로 글이 사라지던 문제 수정.
  • 라이브 모드 슬래시 메뉴 Ghost 스타일: 아이콘+라벨만 표시, 호버·포커스 시 오른쪽 /slug 표시. AdminSlashCommandIcon.vue 추가.
  • 라이브 모드 슬래시: 미디어 모달 Esc 닫기, ↑↓ 시 목록 scrollIntoView, 마우스·키보드 하이라이트 단일화.
  • 라이브 모드 슬래시 명령: / 입력 시 메뉴, /image+Enter 이미지 삽입, ↑↓ 선택·Esc 취소. 메뉴 뷰포트 밖 넘침 시 위·좌우 보정.
  • 라이브 모드 Cmd+A 후 Backspace: 전체 선택 삭제가 줄 병합으로 가로채지지 않도록 수정.
  • Shift+Enter·문단 내 hard break 제거. Enter/Shift+Enter 모두 문단 분리. 마크다운 한 줄=한 문단. 소스 모드 Shift+Enter hard break 삽입 제거.
  • 라이브 모드 ↑↓: 이전·다음 문단(블록) 이동, 같은 열 유지.
  • 라이브 모드 ←→: 문단 끝 → 다음 블록 맨 앞, 문단 앞 → 이전 블록 맨 끝. ↑↓는 열 유지. Cmd+←→는 블록 내 맨 앞·맨 끝.
  • 라이브 모드 병합(맨 앞 Backspace): 커서를 합쳐진 경계(이전 줄 본문 끝)에 둠.
  • 라이브 모드 Enter(문단): 분리 후 blur가 이전 DOM 전체를 다시 저장하던 문제 수정(포커스 중 modelValue 동기화).
  • contenteditable 줄바꿈(<br>·<div>) 읽기·커서 오프셋 계산 보강. 좋|아 분리·복사 버그 수정.
  • 라이브 모드 Enter(문단): 문장 중간 분리 시 빈 줄 없이 위·아래 두 줄만 생성.
  • 라이브 모드 Enter(목록): 맨 앞·중간·끝 커서 위치별 분기. 중간은 항목 두 줄로 분리, 끝은 목록 블록 밖 빈 줄 삽입.
  • 라이브 모드 Enter(인용): 맨 앞·중간 분리 시 > 줄 분리, 끝은 > 이어쓰기 유지.
  • 라이브 모드 Backspace: 줄 맨 앞(내용 있음)에서 이전 줄 끝으로 병합. 빈 줄·원문 토글 순서 정리.
  • lib/markdown-live-edit.js: appendTextToMarkdownLine, getAppendTextForMerge 추가.
  • 패키지 버전 1.2.9로 갱신.

v1.2.8

  • 라이브 모드: 인용·목록 줄 단위 편집, > ·- 접두사 중복 표시 제거. 맨 앞 백스페이스로 마크다운 원문(- 리스트 1 등) 표시. Cmd+Shift+K 현재 줄 삭제.
  • 라이브 모드 Cmd+E: contenteditable에서도 소스 모드 전환(capture 단계 리스너). keydown.stop 제거.
  • 라이브 모드 편집 UI: 포커스 시 파란 보더·배경 제거(커서만), 호버는 연한 회색 배경만(포커스 중 호버 없음).
  • 라이브 모드 Enter(인용·목록): commit+삽입을 한 번에 반영해 2번째 줄 Enter 시 텍스트 복사 방지. > 제거 후 Enter 시 일반 문단으로 이탈.
  • 라이브 모드 Enter(목록): 다음 줄 - ·2. 자동 삽입 제거. 내용 있으면 빈 줄만 추가, 빈 마커 줄 Enter 시 문단 탈출. 인용은 > 이어쓰기 유지.
  • 순서 목록: 소스의 숫자(4., 27. 등)를 렌더·commit에 반영(자동 재번호 없음). 목록 마커 --site-accent 스타일.
  • 라이브 모드 목록: 디스크 마커 세로 중앙 정렬(items-center). Enter·줄 삭제 후 포커스 유지(retry). 빈 줄 Backspace/Cmd+Shift+K 삭제.
  • 목록 마커 열 너비 21px·오른쪽 정렬(숫자·디스크 공통, 본문 시작선 정렬).
  • 빈 줄(spacer) Cmd+Shift+K 삭제. 줄 삭제 후 이전 줄 끝 포커스. 호버 배경 제거.
  • 라이브 모드 raw: 원문 모드 Enter 시 브라우저 기본 줄바꿈 대신 아래 줄 삽입. 마커(>·-) 제거 시 일반 문단으로 저장. 목록 raw 시 불릿 숨김.
  • 라이브 모드 Enter: 커서 뒤 텍스트 잘림 버그 수정(문단 끝에서 이전 줄 내용이 복사되지 않음). 끝 Enter 시 빈 줄 1개만 삽입.
  • 제목·인용·목록: 블록 안 줄바꿈 대신 아래 새 블록/항목 삽입, 여백 축소.
  • 라이브 모드 ↑↓·Cmd+←→: 블록 이동·블록 내 처음/끝(열 유지).
  • 패키지 버전 1.2.8로 갱신.

v1.2.7

  • 라이브 모드: Enter 시 다음 문단 생성(빈 줄 삽입), Shift+Enter만 같은 문단 내 줄바꿈. 하단 클릭 영역으로 새 문단 추가. 빈 줄도 편집 가능.
  • 라이브 모드 한글 IME: 조합 중 Enter는 compositionend 후 1회만 분리, blur 중복 commit·연속 split 방지.
  • 소스 모드 전환 시 textarea 높이·줄 번호 거터 동기화 보강.
  • 패키지 버전 1.2.7로 갱신.

v1.2.6

  • 관리자 미리보기 인라인 편집: 문단·제목·인용·목록 항목을 contenteditable로 편집, blur 시 마크다운 본문 반영(block-content-change).
  • lib/markdown-inline.js, ContentMarkdownEditableInline.vue 추가. HTML↔인라인 마크다운 변환 공유.
  • 패키지 버전 1.2.6으로 갱신.

v1.2.5

  • 관리자 미리보기 갤러리: 드래그 중 드롭 대상 셀에 주황 테두리·「여기로 이동」 오버레이 표시, 드래그 중 원본 셀 반투명 처리.
  • 이미지 파일명을 캡션으로 사용 토글: 화면에는 이미지 아래 figcaption으로 표시, 저장은 ![](url "파일명") 형식(레거시 ![파일명](url) 호환).
  • 미리보기 문단 클릭→작성 모드 전환은 제거(요청과 다름). 미리보기 그대로 편집(WYSIWYG)은 후속 작업.
  • 패키지 버전 1.2.5로 갱신.

v1.2.4

  • 이미지 캡션: ProseImage caption prop, 갤러리 figcaption, 파일명 alt와 별도 표시. useAlt 파일명 비교 URI 디코딩 정규화.
  • 관리자 미리보기: 갤러리 드래그 순서 변경(interactive + gallery-reorder).
  • 패키지 버전 1.2.4로 갱신.

v1.2.3

  • 관리자 마크다운 에디터: textarea 내부 스크롤·resize-y 제거, 본문 높이 자동 확장·admin-post-form__editor-scroll 외부 스크롤만 사용, 줄 번호 거터 flex 정렬.
  • 패키지 버전 1.2.3으로 갱신.

v1.2.2

  • 이미지 useAlt 판별: 대괄호 내용이 URL 파일명과 일치할 때만 파일명 대체 텍스트 모드로 처리(임의 문자열·레거시 표시문구와 분리).
  • 미리보기 figcaption: 따옴표 캡션 우선, 레거시 ![표시문구](url)만 대괄호 문구를 표시용으로 유지.
  • 패키지 버전 1.2.2로 갱신.

v1.2.1

  • 관리자 블록 설정 패널: 게시물 설정 사이드바(420px) 오버레이 슬라이드, 이미지·갤러리·임베드 편집.
  • 이미지: 캡션·대체 텍스트 분리, 파일명을 대체 텍스트로 사용 토글(기본 끔), lib/markdown-image.js·lib/markdown-block-context.js 추가.
  • 블록 패널 캡션·URL 입력 중 포커스 이탈로 패널이 닫히던 문제 수정.
  • 공개 렌더: 갤러리 라이트박스 Esc·좌우 방향키, 캡션만 figcaption 표시.
  • 패키지 버전 1.2.1로 갱신.

v1.2.0

  • 관리자 글 목록: 발행일 기준 정렬(published_at 우선, 없으면 updated_at), 총·추천·필터 표시 개수, 추천만 필터, 추천 글 별(★) 열.
  • 관리자 글 슬러그: Post URL 미리보기 즉시 반영·저장 전 안내, 초안은 제목 연동 자동 슬러그(연한 표시), 발행·예약 글은 제목 변경 시 슬러그 고정(중복 409 예방).
  • 예약·발행 시각: 달력·KST 클릭 영역 showPicker 연동.
  • 이미지·갤러리: 캡션은 사용자 입력 시만 표시(![](url "캡션")), 대체 텍스트는 기본 비움·파일명 사용 토글 시 URL 파일명을 alt로 저장, 블록 설정 패널을 게시물 설정 사이드바 오버레이로 슬라이드, 갤러리 다중 선택 주황 테두리, 라이트박스 Esc·좌우 방향키.
  • lib/markdown-block-context.js, AdminEditorBlockPanel.vue 추가.
  • 패키지 버전 1.2.0으로 갱신.

v1.1.19

  • 관리자 글쓰기: 작성/미리보기 토글을 툴바에서 헤더(Update 왼쪽)로 이동, 미리보기 시 툴바 숨김, 미디어 모달 파일명 검색.
  • 발행 글 Update 시 publishedAt이 현재 시각으로 덮이지 않도록 보존 로직 추가.
  • 관리자 글 설정: 검색엔진 노출 iOS형 토글(noindex 반전).
  • 사이트 설정: 기타·POST 카드 편집/저장/취소 분리, 변경 시에만 저장 활성, POST 설정 토글 UI.
  • 본문: 인용문 핑크 보더·배경, 인라인 코드 #252525, 목록·구분선 여백 정리.
  • 패키지 버전 1.1.19로 갱신.

v1.1.18

  • 마크다운 에디터: 이미지 너비 선택 제거, 툴바 이미지·갤러리 단일 버튼 + 미디어 모달(라이브러리 기본·업로드 탭).
  • 사이트 설정 showPostUpdatedAt(POST 설정 > 수정일 표시), 마이그레이션 026_site_settings_show_post_updated_at.sql.
  • 관리자 글 목록 발행일 시·분 표시, 설정 ON 시 발행 후 수정 줄 보조 표시. 공개 글 상세 동일.
  • formatPostDateTime, wasPostUpdatedAfterPublish 추가.
  • 패키지 버전 1.1.18로 갱신.

v1.1.17

  • 관리자 글: 제목 없음은 DB/API만 플레이스홀더, 폼·목록은 빈 제목·임시 슬러그는 제목 입력 시 자동 슬러그.
  • 초안 Publish 모달 기본값 발행, Unpublish/Unschedule 확인 화면 추가, 발행·예약 시각 날짜/시간 분리 입력.
  • 패키지 버전 1.1.17로 갱신.

v1.1.16

  • 게시물 private 제거: DB 025_posts_status_no_private.sql, API·폼·목록을 published/draft+예약 시각만 사용.
  • 신규 글: 마운트 시 d+24hex 임시 슬러그, 빈 제목은 저장 시 (제목 없음) 보정.
  • 발행·예약 글: 사이드바만 바꿔도 자동 저장하지 않음, 툴바는 서버 반영 상태 기준으로 Update 유지. 발행 모달 세로 중앙·도구막대 Preview 제거.
  • 패키지 버전 1.1.16으로 갱신.

v1.1.15

  • 관리자 신규 글: 초안·비공개 시 POST 디바운스 자동 저장 후 편집 URL로 교체, 라우트 이탈 직전 미전송 초안 플러시.
  • 관리자 글 편집: 미저장 이탈 모달은 즉시 발행·예약 미저장에만 적용(초안·비공개는 제외).
  • 관리자 글 목록: 헤더 한 줄에 필터를 «새 글» 왼쪽에 배치.
  • 패키지 버전 1.1.15로 갱신.

v1.1.14

  • 관리자 글쓰기: Ghost형 툴바(영문 상태·Publish/Update/Unpublish/Unschedule·색·호버), 초안만 서버 디바운스 자동 저장, 발행·예약은 Update로만 반영, 로컬 자동 저장 복원 UI 제거.
  • 패키지 버전 1.1.14로 갱신.

v1.1.13

  • 상단 네비: 하위 1뎁스만 허용(서버 검증·공개 트리 조립·관리자 드래그·이미 하위가 있는 항목의 하위 편입 금지).
  • navigation_items.locationrecommended 추가(마이그레이션 024_navigation_recommended_location.sql), 관리자 메뉴에 추천 사이트 탭·공개 API recommended·우측 사이드 카드 목록.
  • 외부 링크 파비콘 표시용 lib/external-favicon-url.js(Google s2/favicons 프록시 URL).
  • 패키지 버전 1.1.13로 갱신.

v1.1.12

  • 관리자 상단 메뉴: 드롭 구역을 파란 끝선(형제 앞·뒤)·앰버 링(하위)과 개요 열 캡션으로 구분, 개요 번호를 2.1형 계층 표기로 변경·라벨 들여쓰기 확대.
  • 패키지 버전 1.1.12로 갱신.

v1.1.11

  • 공개 사이드바 1차 네비: 부모·하위 사이 mt-2 간격, 비활성 세로 표시를 color-mix(in srgb, var(--site-line) 88%, var(--site-panel) 12%) 톤으로 정리.
  • 관리자 상단 메뉴: 하위 버튼 제거, flattenNavigationEditorWrappers 단일 테이블+행 위·중·아래 드롭으로 순서·부모 자유 변경, AdminNavPrimaryBranch.vue 제거.
  • 패키지 버전 1.1.11로 갱신.

v1.1.10

  • 관리자 /admin/settings를 Ghost형 전체 화면으로 재구성(좌측 검색·앵커 내비·우측 스크롤 스파이, X·ESC 닫기, 타임존·어나운스·Import/Export·스팸 섹션은 플레이스홀더).
  • 설정 경로에서 관리자 기본 사이드바를 숨기고 문서 스크롤 잠금(admin-settings-document)을 적용.
  • 관리자 /admin/settings에서 상단 헤더를 제거하고 우측 상단 고정 닫기만 두며, 사이드·본문 열을 max-w-[1120px] 래퍼로 중앙 정렬·본문 카드 폭은 max-w-[760px]로 Ghost에 가깝게 맞춤.

v1.1.9

  • 관리자 사이드바 상단에 대시보드(비활성 표시)·사이트 보기(NUXT_PUBLIC_SITE_URL 기준 새 창)·콘텐츠 메뉴 구분 여백 추가.
  • 관리자 글 목록에 상태·태그·최신순/오래된순 필터 추가.
  • 관리자 글 목록 상태 표시를 배지에서 단순 텍스트 색상 기준으로 정리하고 제목 옆 댓글 수 표시 추가.
  • 게시물 추천 여부(is_featured) 저장 필드와 글쓰기 사이드바 추천 토글 추가.
  • 홈 Featured 영역을 추천 글이 있을 때만 표시하고, 최신 글의 번개 표시는 실제 추천 글에만 나오도록 수정.
  • 공개 목록·상세의 댓글 수 표시를 API 댓글 집계값 기준으로 정리.
  • 공개 헤더의 이미지 로고 주석 코드를 제거하고 사이트 이름 텍스트만 표시하도록 정리.
  • 왼쪽 사이드바 Authors 영역과 오른쪽 사이드바 About 영역을 비공개 처리.
  • 패키지 버전 1.1.9로 갱신.

v1.1.8

  • 사이트 로고·파비콘 고유 파일명 접미사를 년월+랜덤 문자열 형식으로 간소화.
  • 관리자 태그 관리 화면의 태그 추가 버튼을 일반 태그 섹션 헤더 오른쪽으로 이동.
  • 메인 태그 정렬 저장 버튼을 제거하고 드래그 드롭 직후 자동 저장되도록 수정.
  • 메인 태그 순서 자동 저장 중 추가 드래그를 막고 저장 상태를 표시하도록 정리.
  • 패키지 버전 1.1.8로 갱신.

v1.1.7

  • 사이트 로고 업로드가 고정 /uploads/system/logo.webp 덮어쓰기 대신 고유 파일명 URL을 저장하도록 수정.
  • 사이트 파비콘도 로고와 같은 고유 접미사 파일명으로 생성해 브라우저 캐시로 이전 이미지가 남는 문제를 완화.
  • 미디어 라이브러리 사용 현황에 사이트 설정 로고·파비콘 참조를 포함하고, 현재 사용 중인 시스템 이미지는 파일명 변경·삭제가 잠기도록 수정.
  • 미디어 라이브러리 프로필/사이트 설정 이미지 사용처 추적 todo 정리.
  • 패키지 버전 1.1.7로 갱신.

v1.1.6

  • 관리자 태그 관리 화면에서 일반 태그를 검색 전에도 전체 목록으로 확인할 수 있도록 수정.
  • 일반 태그 목록을 배지형 flex-wrap UI로 표시하고, 최근 사용/수정 태그가 앞에 오도록 정렬.
  • 일반 태그 배지 목록에 최근 사용순·많이 사용순·이름순 정렬 전환을 추가.
  • 일반 태그 배지에서 이름·슬러그 로컬 필터, 메인 태그 전환, 삭제를 바로 수행하도록 정리.
  • 관리자 태그 추가 화면에서 새 태그는 일반 태그로 유지하되, 생성 후 태그 관리 화면에서 누락처럼 보이지 않게 정리.
  • 패키지 버전 1.1.6으로 갱신.

v1.1.5

  • 운영 빌드에서 런타임 업로드 파일을 /app/public/uploads 볼륨에서 직접 제공하는 /uploads/** 서버 라우트 추가.
  • Docker 운영 이미지의 .output/public 빌드 시점 스냅샷에 의존하지 않고 새로 업로드한 로고·게시물 이미지·회원 썸네일이 즉시 표시되도록 수정.
  • 패키지 버전 1.1.5로 갱신.

v1.1.4

  • 관리자 멤버 썸네일 업로드가 게시물용 /uploads/posts가 아니라 회원 전용 /uploads/members/avatars 경로를 사용하도록 수정.
  • 회원 썸네일 업로드 검증·WebP 변환·1:1 크롭 로직을 공통 유틸로 분리.
  • 관리자 멤버 편집 전용 썸네일 업로드 API와 새 멤버 생성 전 썸네일 사전 업로드 API 추가.
  • 관리자 회원 기본 정보 저장에서 기존 회원 전용 썸네일 URL이 교체·제거되면 media_metadata 연결을 분리하도록 정리.
  • 태그 목록 카드 그리드에 사용자 수정 px-6 반영.
  • 패키지 버전 1.1.4로 갱신.

v1.1.3

  • 왼쪽 사이드바 1차 네비·태그 카테고리·테마 점 행 호버를 site-sidebar-nav-row로 분리하고, 라이트 테마에서 배경 #F7F4EF로 완화. 다크 테마는 기존 color-mix 패널 호버 유지.
  • 패키지 버전 1.1.3으로 갱신.

v1.1.2

  • 태그가 없는 게시물에 기본값으로 보이던 POST 표기 제거: 공개 상세·홈 Latest·게시물 목록 카드에서 태그가 있을 때만 배지·메타에 표시.
  • 패키지 버전 1.1.2로 갱신.

v1.1.1

  • 공개 본문 ContentMarkdownRenderer 문단에서 leading-7을 제거하고 text-base(16px)만 적용.
  • 패키지 버전 1.1.1로 갱신.

v1.1.0

  • 관리자 글 작성 폼 제목 입력 타이포를 text-5xl에서 text-3xl로 조정.
  • 공개 본문 ContentMarkdownRenderer 문단을 text-base·leading-7 기준으로 조정(기존 text-[15px] leading-4 대비 크기·행간 정리).
  • ProseHeading에서 제목 블록 상단 mt-12 제거로 제목·본문 간 세로 리듬 정리.
  • 패키지 버전 1.1.0으로 갱신.

v1.0.19

  • 관리자 AdminMarkdownEditor에서 Shift+Enter가 보이지 않는 공백 2개 + \\n 대신 줄끝 백슬래시 hard break(\\ + 줄바꿈)를 삽입하도록 수정.
  • 공개 본문/관리자 미리보기 공통 ContentMarkdownRenderer가 줄끝 백슬래시 hard break와 기존 공백 2개 hard break를 모두 같은 문단 안 줄바꿈으로 렌더링하도록 보강.
  • 패키지 버전 1.0.19로 갱신.

v1.0.18

  • 공개 본문/관리자 미리보기 공통 ContentMarkdownRenderer가 내용 없는 빈 줄을 다시 spacer 블록으로 렌더링해 여러 줄을 비우면 비운 줄 수만큼 공백이 보이도록 수정.
  • 관리자 AdminMarkdownEditor 미리보기 모드에서 툴바를 숨기도록 수정.
  • 관리자 미리보기 패널의 보더·라운드·흰 배경 카드 처리를 제거.
  • 작성 모드 줄 번호 거터의 스크롤바를 숨기도록 정리.
  • 패키지 버전 1.0.18로 갱신.

v1.0.17

  • 관리자 AdminMarkdownEditor 작성 영역의 외곽 보더와 배경 카드 처리를 제거.
  • 작성 영역 줄 번호 거터를 본문 textarea 바깥의 absolute 영역으로 분리하고 활성 줄 액센트 배경을 제거.
  • 일반 Enter는 브라우저 기본 단일 줄 이동으로 되돌리고, Shift+Enter만 마크다운 hard break(공백 2개 + \\n)로 저장하도록 수정.
  • 공개 본문/관리자 미리보기 공통 ContentMarkdownRenderer가 hard break 행만 같은 문단 안 줄바꿈으로 묶고, 일반 줄은 각각 문단으로 렌더링하도록 정리.
  • 문단과 제목 하단 기본 간격을 10px 기준으로 조정.
  • 패키지 버전 1.0.17로 갱신.

v1.0.16

  • 관리자 AdminMarkdownEditor에서 일반 Enter는 새 문단(\\n\\n), Shift+Enter는 같은 문단 안 줄바꿈(\\n)으로 입력되도록 수정.
  • Cmd/Ctrl+E로 미리보기에서 작성 모드로 돌아올 때 기존 커서 위치와 스크롤을 복원하도록 보강.
  • 공개 본문/관리자 미리보기 공통 ContentMarkdownRenderer가 연속 텍스트 줄을 한 문단으로 묶고, 단일 줄바꿈은 <br>, 빈 줄은 문단 경계로 렌더링하도록 정리.
  • 본문 문단 하단 간격을 24px 기준으로 조정.
  • 패키지 버전 1.0.16으로 갱신.

v1.0.15

  • 공개 본문/관리자 미리보기 공통 ContentMarkdownRenderer가 빈 줄을 버리지 않고 spacer 블록으로 렌더링하도록 수정.
  • 레거시 빈 문단 마커(<!--sori:blank-paragraph-->)도 동일한 spacer 블록으로 표시하도록 정리.
  • 패키지 버전 1.0.15로 갱신.

v1.0.14

  • 관리자 게시물/페이지 입력 스키마에서 레거시 블록 배열·객체 본문 값을 저장용 마크다운 문자열로 정규화하도록 보강.
  • AdminMarkdownEditorAdminPostForm에서 기존 자동 저장본 또는 레거시 블록 본문을 복원할 때 마크다운 문자열로 변환하도록 수정.
  • 공통 normalizeMarkdownContent 유틸 추가.
  • 패키지 버전 1.0.14로 갱신.

v1.0.13

  • 관리자 AdminMarkdownEditor에 HTML 클립보드 붙여넣기 기본 변환을 추가해 외부 블로그/웹 문서를 붙여넣을 때 제목·문단·목록·링크·굵게·기울임·이미지를 마크다운 조각으로 정리.
  • 작성 모드에서 커서가 이미지 줄 또는 :::gallery 블록 안에 있을 때 현재 미디어 블록 편집 패널을 표시하고 alt·URL·너비 수정, 갤러리 순서 변경·삭제·이미지 추가를 지원.
  • 관리자 AdminMarkdownEditor에서 Cmd/Ctrl+E로 작성/미리보기 모드를 전환하도록 변경하고, 관리자 미리보기의 본문 색상 변수를 밝은 배경 기준으로 고정.
  • 패키지 버전 1.0.13으로 갱신.

v1.0.12

  • 관리자 AdminMarkdownEditor 작성 모드에 왼쪽 줄 번호 거터(\\n 기준 논리 줄)와 현재 줄 배경 강조 추가, textarea와 거터 세로 스크롤 동기화.
  • 패키지 버전 1.0.12로 갱신.

v1.0.11

  • 관리자 글 본문 에디터를 블록형 AdminBlockEditor에서 Markdown-first AdminMarkdownEditor로 교체.
  • 새 에디터에 textarea 기반 범위 선택·복사/붙여넣기, 작성/미리보기 전환, 마크다운 툴바, 이미지·갤러리 업로드 및 미디어 라이브러리 삽입 추가.
  • 공개 본문 렌더러에 굵게, 기울임, 인라인 코드, 링크 인라인 마크다운 표시 추가.
  • 패키지 버전 1.0.11로 갱신.

v1.0.10

  • 관리자 AdminBlockEditor.vue를 저장소 태그 v1.0.5 시점과 동일한 내용으로 복원(다중 줄·마크다운 붙여넣기 분할, Cmd/Ctrl+A 전체 MD 복사 안내, 블록 단위 범위 선택 등 v1.0.6 이후 에디터 UX 변경 제거). 동작 불만에 따른 되돌림.
  • 패키지 버전 1.0.10으로 갱신.

v1.0.5

  • Docker 운영 이미지에서 빌드 시점 runtimeConfig가 비어도 컨테이너 런타임 환경 변수(DATABASE_URL, ADMIN_EMAIL, ADMIN_PASSWORD, MEMBER_SESSION_SECRET, Resend 설정)를 우선 읽도록 수정.
  • 서버 런타임 환경 변수 조회 유틸 추가.
  • 패키지 버전 1.0.5로 갱신.

v1.0.4

  • 최초 관리자 부트스트랩 기준을 전체 사용자 수가 아니라 owner/admin 존재 여부로 변경.
  • owner/admin이 없는 상태에서 ADMIN_EMAIL과 같은 일반 회원이 이미 있으면 해당 회원을 owner로 승격하고 ADMIN_PASSWORD로 비밀번호를 갱신하도록 수정.
  • 패키지 버전 1.0.4로 갱신.

v1.0.3

  • NAS 등에서 db/migrations 바인드 마운트 권한 부족 시 docker-entrypoint-initdb.d Permission denied로 DB 컨테이너가 재시작하는 경우를 배포 문서에 정리.
  • docker-compose.yml에 동일 이슈용 주석 추가.
  • 패키지 버전 1.0.3으로 갱신.

v1.0.2

  • 운영 DB가 비어 있을 때 /admin/login에서 ADMIN_EMAIL/ADMIN_PASSWORD로 최초 owner 계정을 생성하도록 수정.
  • 배포 문서의 .env.production 생성 명령과 최초 관리자 생성 기준 정리.
  • 배포 문서에 Docker 컨테이너 Restarting 루프 시 로그 확인 절차 추가.
  • 패키지 버전 1.0.2로 갱신.

v1.0.1

  • Docker Compose 기본 네트워크 주소 풀 충돌을 피하기 위해 전용 브리지 네트워크와 DOCKER_SUBNET 설정 추가.
  • 배포 문서에 NAS Docker 네트워크 충돌 시 DOCKER_SUBNET 변경 기준 추가.
  • 패키지 버전 1.0.1로 갱신.

v1.0.0

  • 운영 환경에서 DATABASE_URL 누락 시 샘플 콘텐츠 fallback 대신 즉시 실패하도록 수정.
  • 회원 세션 서명 비밀값을 ADMIN_PASSWORD fallback 없이 MEMBER_SESSION_SECRET 필수 사용으로 분리.
  • JavaScript 문법 점검 스크립트(scripts/check-js-syntax.js)와 lint·test·verify npm 스크립트 추가.
  • npm audit fix로 Nitro 취약점 권고를 반영하고 취약점 0건 확인.
  • Docker compose 설정 검증과 Docker 앱 이미지 빌드 검증 진행.
  • .env.productionMEMBER_SESSION_SECRET 설정 여부 확인 후 배포 todo 정리.
  • 운영 시작 기준 버전 1.0.0으로 갱신.

v0.0.121

  • 게시글 작성 본문 위 자동 저장 안내 배너를 제거하고, 툴바 상태 문구 옆에 복원·무시 버튼을 두도록 변경.
  • 패키지 버전 0.0.121로 갱신.

v0.0.120

  • 발행 모달 설정을 행 단위 접기/펼침으로 정리하고, 접힌 상태에서는 현재 선택값만 표시하도록 변경.
  • 발행 모달에 Ghost와 동일한 SVG(게시 형태·펼침 화살표·발행 시점 시계)를 적용하고 본문·헤더·CTA 문구를 한글로 통일.
  • 발행 설정 영역의 외곽 상하 보더를 제거하고 행 사이 구분선만 유지하도록 조정.
  • 발행 모달 본문 영역을 가로 중앙 정렬(max-w 컬럼)로 맞춤.
  • 패키지 버전 0.0.120으로 갱신.

v0.0.119

  • 게시물 저장 버튼 클릭 시 고스트 스타일의 전체 화면 발행 모달을 열도록 변경.
  • 발행 모달에서 뉴스레터 옵션을 제거하고, 상태(발행/초안/비공개)를 버튼식으로 선택하도록 추가.
  • 발행 모달에서 발행 시점(즉시/예약) 버튼 선택과 예약 시각 입력을 지원하도록 추가.
  • 발행 모달의 Continue, final review → 확정 시 실제 저장/발행이 수행되도록 연결.
  • 관리자 블록 에디터 콜아웃에 Emoji ON/OFF, 이모지 프리셋 선택, 배경 프리셋 선택 기능 추가.
  • 콜아웃 마크다운 저장 형식을 :::callout emoji=... bg=... 메타 포함 형태로 확장.
  • 공개 본문 콜아웃 렌더러에 이모지 표시/숨김과 배경 프리셋 렌더링 연결.
  • 공개 콜아웃 카드 외부 여백을 상단 중심(mt-8)으로 조정.
  • 관리자 콜아웃 편집 UI를 카드 내부에서 분리해 우측 고정 설정 패널로 이동하고, 편집 카드가 공개 렌더와 동일하게 보이도록 정리.
  • 콜아웃 카드 보더를 제거해 Ghost 톤으로 정리하고, 콜아웃 설정 패널을 블록 옆 위치로 이동.
  • 콜아웃 이모지 설정을 고정 프리셋 버튼만 사용하지 않고 입력 팝업(직접 입력/붙여넣기 + 빠른 선택) 방식으로 확장.
  • 콜아웃 본문 왼쪽 이모지 버튼에서 이모지 입력 팝오버를 직접 여는 흐름으로 정리.
  • 배경색은 컬러 버튼 클릭 시에만 팔레트 팝오버가 열리도록 단순화하고, 텍스트 색상을 관리자 화면에서 고정 진한 톤으로 보정.
  • 콜아웃 이모지 입력을 가변 길이 contenteditable에서 단일 이모지 입력 필드로 정리하고, 첫 그래프림만 반영하도록 보정.
  • 공개 콜아웃의 이모지·텍스트 정렬을 items-center 기준으로 조정해 관리자 편집 카드와 높이 체감을 맞춤.
  • 콜아웃 이모지 입력 필드에 한글 IME 조합 종료 시점 반영을 추가해 입력 시 자모 분리 대신 완성형 문자로 저장되도록 보정.
  • 관리자 블록 에디터에서 Enter 등 키보드 입력 직후 hover 강조를 잠시 비활성화하고, 마우스 이동 시 hover가 다시 동작하도록 조정.
  • 키보드 우선 모드에서 블록 왼쪽 핸들(세로 마커) hover 표시도 함께 비활성화해, 포인터가 다른 문단 위에 있어도 현재 입력 문맥을 유지하도록 보정.
  • 블록 에디터 슬래시 입력 상태에서 Enter 처리 조건을 보정해, / 또는 // 입력 상태에서는 엔터가 일반 줄바꿈/다음 문단 생성으로 동작하도록 수정.
  • 한글 IME 조합 중 /제목 입력 뒤 Enter 시 조합 종료 직후 슬래시 명령이 바로 적용되도록 pending 명령 처리 추가.
  • 빈 문단 삭제 동작 이후 콜아웃이 일반 문단으로 변환되는 경로를 차단하기 위해 Enter의 빈 블록 기본 문단 전환 대상에서 콜아웃을 제외.
  • 한글 IME 조합 종료 직후 슬래시 메뉴가 늦게 뜨는 문제를 줄이기 위해 조합 종료 동기화를 즉시+지연 2회 수행하도록 보정.
  • 게시물 상세에서 본문과 댓글 섹션 사이 간격을 Ghost 기준 48px(mt-12)으로 조정.
  • 이미지/갤러리 블록을 생성만 하고 사용하지 않은 상태로 다른 블록으로 이동하면 해당 미사용 구조형 블록을 자동 정리하도록 보정.

v0.0.118

  • 관리자 게시글 저장 버튼을 변경사항이 있을 때만 활성화하도록 수정.
  • 관리자 게시글 수정 삭제 버튼을 기본 중립 톤, hover 시 위험 색상 강조로 조정.
  • 관리자 게시글 태그 배지 삭제 버튼을 SVG 아이콘으로 교체하고 정렬 보정.
  • 패키지 버전 0.0.118로 갱신.

v0.0.117

  • 관리자 글쓰기 갤러리 미디어 선택을 복수 선택 후 확인 적용 방식으로 변경.
  • 관리자 갤러리 블록의 이미지 수에 따라 1개는 전체 너비, 2개는 2열, 3개 이상은 3열로 표시하도록 수정.
  • 관리자 갤러리 블록 이미지 드래그 순서 변경과 삽입 위치 표시 추가.
  • 패키지 버전 0.0.117로 갱신.

v0.0.116

  • 관리자 게시글 제목 입력에서 한글 조합 중 Enter가 본문으로 마지막 글자를 넘기지 않도록 IME 조합 상태 가드 추가.
  • 관리자 게시글 목록 태그 표시를 쉼표 구분 텍스트에서 읽기 전용 배지 목록으로 변경.
  • 패키지 버전 0.0.116으로 갱신.

v0.0.115

  • 사용자 설정 화면을 좁은 공개 본문 폭에 맞춰 요약 영역 상단, 프로필·활동 영역 하단 구조로 재배치.
  • 사용자 설정 비밀번호 변경·회원 탈퇴 모달 입력 필드 보더가 보이도록 정리.
  • 관리자 사이트 설정에서 관리자 프로필·관리자 비밀번호 변경 섹션 제거.
  • 관리자 사이트 설정에 1:1 로고 이미지 업로드와 파비콘 생성 기능 추가.
  • 사이트 설정 로고 URL·파비콘 URL 저장 컬럼 마이그레이션(022_add_site_logo_urls.sql) 추가.
  • 공개 헤더와 오른쪽 사이드바에 이미지 로고 표시를 연결하고 파비콘 head 링크를 추가.
  • 패키지 버전 0.0.115로 갱신.

v0.0.114

  • 관리자 하단 사용자 메뉴의 내 프로필 경로를 사용자 설정에서 관리자 멤버 편집 화면으로 변경.
  • 관리자 멤버 편집 설정 메뉴에 비밀번호 직접 변경과 멤버 삭제 모달 추가.
  • 사용자 설정 화면을 관리자 멤버 편집과 같은 요약/본문 구조로 재정리.
  • 사용자 설정의 비밀번호 변경과 회원 탈퇴를 설정 메뉴 모달로 분리.
  • 로그인 시 이전 로그인 시각/IP를 보존하는 021_add_member_previous_login.sql 마이그레이션 추가.
  • 회원 프로필 API에 가입일, 이전 로그인, 댓글 수 정보를 추가.
  • 패키지 버전 0.0.114로 갱신.

v0.0.113

  • 관리자 미저장 변경사항 모달을 화면 상단 40px 여백 위치로 조정.
  • 관리자 멤버 상세 폼에서 썸네일 URL 입력 필드 제거.
  • 관리자 멤버 상세 요약 썸네일에 hover 등록·변경·삭제 UI 추가.
  • 관리자 멤버 목록 상태 표시를 배지에서 일반 텍스트로 변경.
  • 관리자 멤버 목록에 이름·이메일·레이블·상태·최근 접속·가입일 조건 필터 추가.
  • 패키지 버전 0.0.113으로 갱신.

v0.0.112

  • 관리자 멤버 폼 본문을 3분할 그리드로 변경하고 요약 1fr, 입력 영역 2fr 비율로 조정.
  • 관리자 공통 미저장 변경사항 이탈 확인 모달 추가.
  • 관리자 게시글 작성/수정 화면에 미저장 변경사항 라우트 이탈 확인과 브라우저 이탈 기본 확인 연결.
  • 관리자 멤버 추가/수정 화면에 미저장 변경사항 라우트 이탈 확인과 브라우저 이탈 기본 확인 연결.
  • 이탈 승인 시 게시글 로컬 자동 저장본 삭제 처리 추가.
  • 패키지 버전 0.0.112로 갱신.

v0.0.111

  • 관리자 멤버 상세 화면(/admin/members/:id) 추가.
  • 관리자 멤버 추가 화면(/admin/members/new) 추가.
  • 멤버 목록 행 클릭 시 상세 화면으로 이동하도록 수정.
  • 멤버 기본 정보 저장 API(GET/PUT /admin/api/members/:id, POST /admin/api/members) 추가.
  • 회원 레이블·관리자 노트 저장 컬럼 마이그레이션(020_add_member_admin_fields.sql) 추가.
  • 멤버 폼에 썸네일 URL, 이름, 이메일, 레이블, 관리자 노트, 기존 회원 활동 요약 표시.
  • 패키지 버전 0.0.111로 갱신.

v0.0.110

  • 관리자 멤버 목록을 Ghost형 테이블 구조로 재정리.
  • 멤버 이름 아래 이메일, 가입일 아래 최근 활동을 함께 표시하도록 수정.
  • 멤버 목록에서 권한 변경 선택·저장 UI 제거.
  • 멤버 검색 입력과 멤버 추가 버튼 추가.
  • 뉴스레터 Open rate 대체 컬럼으로 댓글 작성 개수 표시 유지.
  • 패키지 버전 0.0.110으로 갱신.

v0.0.109

  • 관리자 사이드바 메뉴 항목을 네비게이션으로 변경하고 전용 아이콘 적용.
  • 관리자 게시글 아이콘을 Ghost형 편집 아이콘으로 교체.
  • 관리자 멤버 메뉴 우측에 총 멤버 수 표시 추가.
  • 관리자 로그아웃을 상단 메뉴에서 제거하고 하단 사용자 드롭다운으로 이동.
  • 관리자 하단에 사용자 썸네일 트리거와 설정 아이콘 추가.
  • 패키지 버전 0.0.109로 갱신.

v0.0.108

  • 관리자 사이드바 너비를 Ghost 기준 320px로 조정.
  • 관리자 우측 캔버스가 기본 화면 높이와 배경색을 유지하도록 admin-layout__main 배경·여백 수정.
  • 관리자 사이드바 페이지·미디어·설정 아이콘 추가.
  • 패키지 버전 0.0.108로 갱신.

v0.0.107

  • 관리자 사이드바를 밝은 Ghost형 톤으로 조정.
  • 관리자 메뉴명을 게시글로 변경하고 게시글·태그·멤버 메뉴 아이콘 추가.
  • 게시글 메뉴 우측 + 버튼으로 /admin/posts/new 바로 진입 추가.
  • 패키지 버전 0.0.107로 갱신.

v0.0.106

  • 태그 상세(/tag/:slug) 헤더와 게시물 목록을 공통 site-section-header·site-section-body 패딩 구조로 맞춤.
  • 태그 상세 게시물 목록의 중복 구분선을 정리.
  • 패키지 버전 0.0.106으로 갱신.

v0.0.105

  • 005_add_navigation_items.sql: (location,label,url) 유니크 제약 제거 후에도 기본 메뉴가 재삽입되지 않도록 NOT EXISTS 기반 시드로 수정.
  • 019_dedupe_navigation_items.sql: 반복 마이그레이션 실행으로 생긴 네비게이션 중복 행 정리 및 중복 방지 인덱스 추가.
  • 로컬 개발 DB 네비게이션 중복 행 정리.
  • 패키지 버전 0.0.105로 갱신.

v0.0.104

  • 관리자 API 요청마다 현재 DB 권한 재확인 미들웨어 추가.
  • 회원 탈퇴 시 마지막 owner 계정 삭제 차단 및 관리자 세션 쿠키 정리.
  • 최초 회원 생성 시 users 테이블 잠금으로 동시 가입 owner 판정 안정화.
  • 이메일 OTP 발송 실패 시 방금 만든 챌린지 삭제, 발송 성공 후 이전 pending 챌린지 정리.
  • 본문 북마크·임베드 외부 링크를 http(s) URL로 제한.
  • 패키지 버전 0.0.104로 갱신.

v0.0.103

  • docs/map.md: 관리자 메뉴 관리 행 설명에서 제거된 마이그레이션 안내 문구 반영.

v0.0.102

  • AdminBlockEditor: 빈 단락은 HTML 주석 마커로 직렬화·복원, 슬래시 메뉴 하이라이트·스크롤·긴 목록 max-h·블록 경계에서 위/아래 방향키로 인접 블록 이동.
  • ContentMarkdownRenderer: 동일 마커 줄을 빈 단락으로 표시.
  • SiteHeader: 검색 열기 버튼에 min-w-[470px](md 이상)로 최소 폭 고정.
  • pages/admin/navigation: 상단 마이그레이션 안내 문단 제거.

v0.0.101

  • server/utils/navigation-tree.js buildPublicPrimaryTree: 평면 primary에서 동일 id 중복 제거(정렬 후 첫 행 유지), 유효 부모 아래에 붙은 항목은 루트에서 제외해 사이드바에 항목이 두 번 보이던 현상 방지.

v0.0.100

  • .env.example·docs/deploy.md·docs/spec.md: EMAIL_OTP_PEPPER 의미(OTP 해시용 서버 비밀, 긴 난문자열 권장·미설정 시 MEMBER_SESSION_SECRET 사용) 문구 보강.

v0.0.99

  • SiteHeader: 헤더 내부 grid-cols-3로 검색 패널 중앙 열 정렬(Ghost류 레이아웃).
  • Resend 기반 이메일 OTP: 마이그레이션 018_email_otp_challenges.sql, POST /api/auth/email-otp/request, POST /api/auth/password-reset/confirm, signup·bootstrap-status 연동.
  • pages/forgot-password.vue, signin에서 비밀번호 찾기 링크. getUserByEmail·로그인 이메일 대소문자 무시 조회.
  • nuxt.config runtimeConfig: resendApiKey, resendFromEmail, emailOtpPepper.

v0.0.98

  • SidebarPrimaryNavList: navRowShellw-full 추가해 site-panel-hover 배경이 행 가로 전체를 쓰도록 함.
  • LeftSidebar: 푸터 API footer 링크 flex-wrap·nav min-w-0 flex-1, 링크·테마 버튼 **shrink-0**로 항목이 많을 때 가로 오버플로 방지.

v0.0.97

  • SidebarPrimaryNavList: 하위 폴더 부모도 리프와 동일 세로 막대→호버 원형 before 장식. 내부 링크가 현재 경로와 일치하면 장식을 **--site-accent**로 표시(aria-current="page").

v0.0.96

  • SidebarPrimaryNavList: 하위가 있는 부모는 행 전체 버튼으로 토글, chevron 회전 애니메이션, 하위 영역 높이 전환 애니메이션, 펼침 전용 배경 제거·너비·간격 리프와 통일.

v0.0.95

  • 메뉴 관리: 표시·폴더 체크 제거(항목은 항상 공개, is_folder는 저장 시 자식 유무로 서버 설정). 테이블+행 드래그 UX를 태그 메인 태그와 동일 톤(bg-[#f9f9f7]·opacity-50, 입력 위에서는 드래그 시작 안 함).
  • 태그 관리 메인 태그: 드래그 중인 행에 opacity-50 적용(메뉴 관리와 동일한 이탈 피드백).
  • PUT /admin/api/navigation: parent_id/is_folder 컬럼 부재 시 한국어 안내(503) 및 화면에 마이그레이션 안내 블록.

v0.0.94

  • 메뉴 관리: 상단/하단 탭 분리, 순서는 드래그(태그 관리와 유사). 상단은 parent_id 트리·하위 추가·폴더(is_folder)·동일 부모 내 순서 변경.
  • GET /api/navigationprimary는 트리 응답, 좌측 사이드바는 SidebarPrimaryNavList로 접기/펼치기(localStorage 유지).
  • 마이그레이션 017_navigation_hierarchy.sql, 공유 lib/navigation-editor-tree.js, server/utils/navigation-tree.js 검증·저장 순서.

v0.0.93

  • composables/useAdminToast.js 추가: 관리자 우측 상단 토스트(자동 숨김).
  • 관리자 미디어(pages/admin/media/index.vue): 본문 상단 errorMessage 배너 제거, 폴더·이름 변경·삭제 등 실패 피드백을 토스트로 통일해 모달에 가리지 않게 함.

v0.0.92

  • 회원 PUT /api/auth/profile에서 관리 썸네일 URL이 바뀌거나 비워질 때도 removeManagedAvatarAsset으로 메타만 분리해, 해제 후에도 디스크·썸네일 탭 목록과 일치하도록 정리.
  • 관리자 미디어 상세 모달에 다운로드 버튼 추가.
  • 썸네일 탭 안내: 프로필 해제 시에도 파일이 삭제되지 않음·목록 갱신은 새로고침을 명시.

v0.0.91

  • 회원 썸네일 교체·삭제·탈퇴 시 이전 파일은 디스크에 남기고 media_metadata만 제거해, 관리자 썸네일 탭에서 미사용 자산을 구분·삭제할 수 있게 함.
  • 관리자 미디어: 프로필이 참조 중인 썸네일만 삭제·이름 변경 차단(미참조 파일은 허용).
  • POST /admin/api/uploads·POST /api/auth/avatar: 저장 파일명은 원본명 기반, 동일 폴더 충돌 시 -2 넘버링.
  • 관리자 미디어 검색: 파일명·게시물 사용처 제목만; 모달에서 폴더 요약 중복 행 제거.
  • renameMediaItem: 대상 폴더에 동일 파일명이 있으면 409.

v0.0.90

  • 관리자 미디어: 상단 탭으로 미디어 라이브러리썸네일(회원 /members/avatars/만) 분리, 썸네일 검색에 닉네임·이메일·IP 반영.
  • 게시물용 관리자 업로드는 디스크 posts/연/월 유지하되 media_metadata 및 목록 논리 폴더는 **미분류**로 통일; 회원 아바타 메타는 썸네일.
  • listMediaItemsavatarOwner 부착, 썸네일 파일의 관리자 삭제·이름 변경·임의 논리 폴더 이동 차단, 예약 폴더 썸네일media_folders 생성·삭제 차단.
  • 마이그레이션 016_media_category_normalize.sql로 레거시 posts/회원/썸네일 카테고리 문자열 정리.

v0.0.89

  • 관리자 미디어 썸네일 선택 컨트롤을 네이티브 체크박스에서 대비가 분명한 토글 버튼(미선택: 흰 배경·진한 테두리, 선택: 진한 배경·흰 체크)으로 교체.
  • docs/spec.md에 미디어 디스크 경로와 media_metadata 논리 폴더 관계를 명시(이후 v0.0.90에서 미분류/썸네일 정책으로 갱신).

v0.0.88

  • 관리자 미디어: 썸네일 본문 클릭 시 상세 모달, 좌측 상단 체크박스로 다중 선택(Shift 범위 유지), 툴바 현재 폴더로 이동 제거.
  • 폴더 추가는 상시 입력 대신 모달로 이름 입력.
  • DELETE /admin/api/media-folders 및 폴더 행 삭제 UI 추가(삭제 시 해당 분류 메타는 미분류로).

v0.0.87

  • 메인 태그 정렬 저장·메뉴 메뉴 저장은 서버에서 받은 상태와 비교해 변경이 있을 때만 버튼이 활성화되도록 조정.
  • 관리자 로그인·회원 로그인(signin) 제출 버튼은 이메일·비밀번호가 모두 입력된 경우에만 활성화.
  • 관리자 글 목록의 삭제는 휴지통 아이콘으로 바꾸고, 기본은 낮은 불투명도·호버 시에만 강조.
  • AGENTS.md에 커밋 후 원격 반영 시 git push 생략 방지 지침을 추가.

v0.0.86

  • 관리자 게시물 미리보기 본문 영역을 공개 상세와 동일한 max-w-[720px]·좌우 패딩으로 감싸 여백을 맞춤.
  • 글 작성 폼에서 태그 토큰은 로마자 슬러그 변환 대신 한글 유지 정규화를 사용하고, 저장 시 태그 name은 한글 슬러그에 맞게 표시되도록 저장소 normalizeTagSlugs·getTagNameFromSlug를 조정.
  • 관리자 게시물 폼에서 SEO 제목·설명 입력을 제거하고 저장 시 제목·요약을 메타 필드로 기록하도록 변경. admin-post-input의 SEO 문자열 길이 제한을 완화.
  • 관리자 태그 관리 화면의 성공·오류 안내를 본문 상단 블록 대신 우측 상단 고정 토스트로 표시.

v0.0.85

  • 관리자 블록 에디터 저장 시 의도적으로 만든 빈 문단(연속 Enter)을 제거하지 않도록 빈 문단 마커(<!--sori:blank-paragraph-->) 직렬화/복원 로직을 추가.
  • 공개 본문 마크다운 렌더러에서도 빈 문단 마커를 문단 블록으로 해석해 저장 후에도 문단 간 여백 의도를 유지하도록 맞춤.

v0.0.84

  • 관리자 블록 에디터 본문에서 위/아래 방향키 입력 시 커서가 블록 시작/끝 경계에 있으면 이전/다음 문단(또는 구조형 블록)으로 이동하도록 보완.
  • 슬래시 메뉴를 최대 높이 제한 + 내부 스크롤 구조로 변경해 명령 개수가 많아도 화면을 넘기지 않도록 조정.
  • 슬래시 메뉴 방향키 이동 시 현재 하이라이트 항목이 항상 스크롤 영역 안에 보이도록 자동 스크롤을 추가.

v0.0.83

  • 관리자 블록 에디터 슬래시 메뉴에서 방향키 이동 시 하이라이트 인덱스가 매번 초기화되던 문제를 수정해 연속 이동이 가능하도록 보정.
  • 슬래시 메뉴가 열린 블록(text/로 시작)에서만 위/아래 방향키 메뉴 이동 로직이 동작하도록 분기해, 일반 본문 블록의 방향키 입력 간섭을 줄임.

v0.0.82

  • 메인 태그 목록의 삭제 버튼을 제거하고 일반 태그로 변경(강등) 버튼으로 교체.
  • 일반 태그 삭제는 일반 태그 검색 결과 영역에서만 가능하도록 변경.
  • 태그 생성/수정 폼에서 정렬 순서 입력과 태그 유형 선택을 제거해, 메인/일반 전환은 태그 목록 액션으로만 처리하도록 단순화.

v0.0.81

  • 관리자 글 작성 태그 입력에서 한글 조합 중 Enter 입력 시 중복 태그가 생성되지 않도록 IME 조합 상태 가드를 추가.
  • 게시물 저장 중 새로 생성되는 태그는 기본값을 general(일반 태그)로 저장하도록 수정.
  • 관리자 태그 화면에서 관리용 태그 명칭을 메인 태그로 변경.
  • 관리자 태그 화면의 일반 태그 전체 목록 테이블을 제거하고, 일반 태그 검색 후 메인 태그로 전환하는 흐름으로 개편.
  • 관리자 태그 목록 API에 tagType, q, limit 조회 옵션을 추가해 일반 태그 검색을 지원.

v0.0.80

  • 태그에 유형(managed/general) 컬럼을 추가하는 마이그레이션(015_add_tag_type_and_reorder_support.sql)을 추가.
  • 관리자 태그 입력 폼에 태그 유형 선택을 추가하고, 일반 태그는 정렬 순서를 사용하지 않도록 정리.
  • 관리자 태그 목록을 관리용 태그/일반 태그로 분리.
  • 관리용 태그 목록에 드래그 앤 드롭 정렬 UI를 추가하고, 저장 버튼으로 순서를 일괄 반영하도록 개선.
  • PUT /admin/api/tags/reorder API를 추가해 관리용 태그의 sort_order를 순차 재정렬하도록 확장.
  • 공개 태그 API(GET /api/tags)는 관리용 태그만 반환하도록 변경해 좌측 카테고리 영역과 태그 관리 목적을 분리.

v0.0.79

  • 댓글 목록에 작성자 썸네일(avatar_url)을 노출하고, 썸네일이 없으면 이니셜 아바타를 표시하도록 UI를 개선.
  • 댓글/대댓글에 좋아요 토글을 추가하고, 좋아요 수/내 좋아요 상태를 함께 반환하도록 API와 저장소를 확장.
  • 댓글 시간 표기를 n분 전, n시간 전, 24시간 이후 날짜 형식으로 변경.
  • comment_likes 테이블 마이그레이션(012_add_comment_likes.sql)을 추가.
  • 댓글 정렬 옵션(Best, Latest, Oldest)을 실제 동작하도록 연결.
  • 댓글/대댓글 카드 보더를 최소화하고 간격·아이콘 스타일을 정리해 더 단정한 레이아웃으로 조정.
  • 대댓글 아바타가 깨질 때 이니셜로 안전하게 대체되도록 이미지 로드 실패 처리 보강.
  • 공개 레이아웃(default, post)의 데스크톱 3열 gap-x를 제거해 본문-사이드 사이가 이중 패딩처럼 보이던 간격을 정리.
  • 좌측 사이드바 네비게이션/카테고리 hover 배경을 site-panel-hover 기반으로 통일해 다크 모드에서 텍스트 가독성 저하를 수정.
  • 관리자 멤버 목록에 권한 컬럼을 추가하고, 환경변수 관리자 계정을 관리자 권한으로 함께 표시하도록 보강.
  • 사용자 테이블에 관리자 권한 컬럼(is_admin)을 추가하는 마이그레이션(013_add_user_admin_role.sql)을 추가.
  • 최초 사용자 생성 시 관리자 권한을 자동 부여하고, 가입 응답에 관리자 여부를 함께 반환하도록 수정.
  • 관리자 로그인은 환경변수 고정 계정 대신 is_admin 회원 계정 인증으로 전환.
  • GET /api/auth/bootstrap-status를 추가해 최초 관리자 등록 필요 여부를 조회하도록 확장.
  • 회원가입 화면에서 최초 사용자일 때 관리자 등록 타이틀/설명/필드 라벨을 노출하도록 수정.
  • 관리자 로그인 시 회원 세션도 함께 설정하고, 관리자 로그아웃 시 회원 세션도 함께 정리하도록 수정.
  • 관리자 설정 화면에 관리자 프로필(썸네일 업로드/제거, 이름 저장) 섹션을 추가.
  • 관리자 설정 화면에서 현재 비밀번호 확인 기반 관리자 비밀번호 변경을 지원하도록 추가.
  • 회원 권한 3단계(owner/admin/member)를 위한 마이그레이션(014_add_user_role_levels.sql)을 추가.
  • 관리자 멤버 화면에서 권한 선택/저장 UI와 PUT /admin/api/members/:id/role 권한 변경 API를 추가.

v0.0.78

  • 관리자 미디어 목록에서 회원 썸네일 경로(/uploads/members/avatars/)를 다시 포함해 회원/썸네일 폴더에서 확인 가능하도록 수정.
  • 회원 썸네일 파일도 일반 미디어와 동일하게 폴더 트리/검색/카운트 집계에 반영되도록 정리.

v0.0.77

  • 회원 설정 프로필 영역에서 썸네일 URL 입력을 제거하고, 썸네일 미리보기 + 이미지 변경/제거 버튼 중심 UI로 개편.
  • 썸네일 업로드 완료 안내 문구를 실제 동작과 맞게 간소화.
  • 썸네일 수동 크롭 UI는 우선순위 낮은 후속 작업으로 docs/todo.md에 기록.

v0.0.76

  • 회원 썸네일 업로드 시 원본 비율과 관계없이 중앙 기준 1:1 정사각형으로 강제 크롭하도록 변경.
  • 크롭 결과 해상도는 AVATAR_MAX_WIDTH, AVATAR_MAX_HEIGHT 중 작은 값을 사용해 정사각형(N x N)으로 저장하도록 정리.

v0.0.75

  • 회원 썸네일 업로드 시 최소 해상도 제한(AVATAR_MIN_WIDTH, AVATAR_MIN_HEIGHT)을 추가해 너무 작은 이미지를 차단.
  • 썸네일 품질과 리사이즈 설정값이 비정상일 때 서버에서 안전 범위로 보정(clamp)하도록 방어 로직을 추가.
  • 최대 해상도 설정이 최소 해상도보다 작게 들어와도 자동 보정되도록 처리.

v0.0.74

  • 회원 썸네일 업로드 시 원본 포맷과 관계없이 WebP로 변환 저장하도록 수정.
  • 회원 썸네일 업로드 시 AVATAR_MAX_WIDTH, AVATAR_MAX_HEIGHT 기준으로 자동 리사이즈(fit: inside)를 적용.
  • 썸네일 품질을 AVATAR_WEBP_QUALITY 환경 변수로 제어하도록 설정을 추가.

v0.0.73

  • 회원 썸네일 교체 시 기존 회원 전용 썸네일 파일/메타데이터를 자동 정리하는 공통 유틸을 추가.
  • DELETE /api/auth/avatar를 추가해 회원 설정에서 썸네일 제거를 지원하고, 제거 시 프로필 avatarUrl을 비움.
  • 회원 탈퇴 시에도 회원 전용 썸네일 파일/메타데이터가 함께 정리되도록 처리.

v0.0.72

  • 회원 썸네일 업로드 API(POST /api/auth/avatar)를 추가하고 업로드 경로를 /uploads/members/avatars/YYYY/MM으로 분리.
  • 회원 설정 페이지에서 썸네일 파일 업로드를 직접 처리하고, 업로드 후 프로필 저장 흐름으로 연결.
  • 관리자 미디어 목록에서 회원 썸네일은 전용 카테고리(회원/썸네일)로 구분해 관리.

v0.0.71

  • 헤더 사용자 영역에서 구독 버튼을 제거하고, 로그인 상태 기반 아바타/드롭다운(설정, 로그아웃 / 비로그인 시 Sign up, Sign in)으로 정리.
  • 회원 설정 페이지(/settings)를 추가하고 닉네임 변경(중복 확인), 썸네일 URL 변경, 비밀번호 변경, 회원 탈퇴 기능을 연결.
  • 관리자 멤버 화면(/admin/members)과 회원 목록 API를 추가해 닉네임, 이메일, 최근 접속 시각/IP, 댓글 개수, 활동 현황을 확인할 수 있게 구성.
  • 회원 활동 컬럼(last_seen_at, last_seen_ip)과 아바타 컬럼(avatar_url)을 DB에 추가하고, 로그인/세션 조회/댓글 작성 시 최근 활동을 갱신.

v0.0.70

  • 회원 인증 API(POST /api/auth/signup, POST /api/auth/login, GET /api/auth/me, POST /api/auth/logout)와 회원 세션 쿠키(sori_member_session)를 추가.
  • 댓글 DB 스키마(users, comments)와 게시물 댓글 API(GET/POST /api/posts/:slug/comments)를 추가하고, 대댓글은 1단까지만 허용하도록 검증을 적용.
  • 게시물 상세 #comments 영역에 PostComments UI를 연결해 로그인 회원 댓글/답글 작성과 댓글 목록 표시를 구현.
  • signin/signup 화면을 시뮬레이션에서 실제 API 연동으로 전환.

v0.0.66

  • 태그 검색은 description을 제외하고 name·slug만 부분 일치하도록 조정해, p 같은 한 글자 입력으로 의미 없는 태그가 뜨는 혼선을 줄임.
  • 검색 모달 헤더 아이콘은 입력 비어있으면 돋보기, 입력이 있으면 X(클리어)로 전환하고 클릭 시 입력값을 비운다. 좌측/우측 닫기 X는 제거하고 Esc·백드롭 클릭·모바일 취소로 닫는다.
  • 검색 입력은 IME(한글 조합) 중에도 디바운스로 검색을 갱신해 처럼 조합 상태가 유지되는 입력에서도 결과가 나오게 하고, 조합 종료 시점에는 확정값으로 즉시 한 번 더 갱신한다.

v0.0.67

  • 공개 검색에서 /uploads/... 파일 경로와 마크다운 이미지 토큰(![](...))은 노이즈로 간주해 매칭 대상에서 제거, 이미지 파일명 때문에 숫자 검색이 걸리던 문제를 해결.

v0.0.68

  • 게시물 상세(pages/post/[slug].vue) 섹션 패딩을 내부 래퍼로 이동해 레이아웃 그리드 패딩과 중복되던 2중 패딩을 제거.
  • 댓글 섹션 구분선(border-y)은 패딩 없이 전체 폭으로 표시하고, 내용만 내부 래퍼에 패딩을 적용.

v0.0.69

  • 공개 레이아웃(layouts/default.vue, layouts/post.vue)에서 메뉴 닫힘 시 추가로 주던 메인 우측 패딩을 제거해 가로 패딩이 1회만 적용되도록 정리.
  • 홈/태그 목록/태그 상세 공개 페이지 섹션의 px-*를 제거하고 레이아웃 그리드 패딩만 사용하도록 통일해 2중 패딩을 해소.

v0.0.65

  • 헤더 / 단축키·검색 영역 클릭으로 통합 검색 모달(SiteSearchModal)을 연다. INPUT·TEXTAREA·SELECT·contenteditable 포커스일 때는 /를 가로채지 않는다.
  • GET /api/search?q=searchPublicContent(저장소)로 태그·게시물(제목·요약·본문) 부분 일치 검색, 모달에서 Tags·Posts 섹션·일치 구간 강조·html.site-search-open 스크롤 잠금.

v0.0.64

  • 비개발용 paths.mjs#internal/nitro를 import하는데 루트 package.json imports에 없어 Package import specifier "#internal/nitro" is not defined가 나던 문제를, scripts/node-paths-nitro-shim.mjs로 최소 useRuntimeConfig().app만 제공하고 #internal/nitro를 매핑해 해결.

v0.0.63

  • tailwindcss.cssPath~/assets/css/main.css로 지정해, 없는 기본 경로 때문에 node_modules/tailwindcss/tailwind.css가 추가로 주입되던 이중 @tailwind 로딩을 제거.
  • tailwind.config.js contentcomposables·modules·plugins 스캔 경로 추가.

v0.0.62

  • 다크 인증 페이지에서 input이 UA 기본색으로 남아 글자·아이콘이 안 보이던 문제를 main.css.auth-form-input(글자색·캐럿·placeholder·autofill)로 보정.
  • AuthPasswordVisibilityToggle은 Tailwind 의존을 줄이고 scoped CSS로 버튼·아이콘 크기·포커스 링을 고정.
  • signin/signup 루트에 [color-scheme:dark], signup 패널에 border·bg-[#0d1116](auth-signup__panel)로 카드 대비 보강.

v0.0.61

  • 로그인·회원가입 비밀번호 표시 토글을 AuthPasswordVisibilityToggle(Material 스타일 SVG 눈 아이콘)으로 통일, 텍스트 보기/숨기기 제거.
  • 회원가입 비밀번호·비밀번호 확인 각각 독립 토글·포커스 링을 가진 입력 행으로 정리.

v0.0.60

  • 홈 Featured 가로 트랙에 touch-pan-x·-webkit-overflow-scrolling:touch·overscroll-x-contain을 두어 모바일에서 손가락으로 가로 슬라이드(스크롤·스냅)가 잘 먹도록 함.
  • Featured 이전/다음 화살표는 스크롤 시작·끝에 따라 disabled와 시각적 비활성 처리, ResizeObserver·scroll로 상태 동기화.

v0.0.59

  • Nuxt 3.21 SSR이 #internal/nuxt/paths를 외부 import로 두는데 .nuxt/paths.mjs가 기본적으로 디스크에 쓰이지 않아 Node가 루트 package.json에서 해석하지 못하던 오류 수정.
  • modules/nuxt-ssr-paths-write.mjs에서 paths.mjs 템플릿에 write: true를 부여하고, 루트 package.json imports./.nuxt/paths.mjs를 매핑.
  • nuxt 의존성을 ^3.21.2로 올려 lockfile과 정렬.

v0.0.58

  • 공개 3열 그리드 중앙을 minmax(0,1fr)로 바꾸고 lg:gap-x-4·xl:gap-x-5를 두어 본문과 오른쪽 사이드 사이 시각적 간격 확보.
  • site-main의 고정 lg:w-[720px]를 제거하고 lg:max-w-[720px]·justify-self-start로 그리드 패딩·gap이 있어도 가로 넘침이 나지 않게 함.
  • 좌측 메뉴 닫힘 시 gap 제거(lg:!gap-x-0)와 본문 lg:pr-4로 우측만 호흡 유지.
  • MainColumnlg:max-w-[720px] 중심으로 정리.

v0.0.57

  • 왼쪽 사이드바 하단 푸터(left-sidebar__footer) 수평 패딩을 px-1에서 px-4·sm:px-5로 조정해 링크·테마 버튼이 가장자리에 붙지 않게 함.
  • 오른쪽 사이드바 카피라이트 푸터에 pr-3을 두어 우측 여백을 맞춤.

v0.0.56

  • lg~xl 구간에서 헤더 내부 여백·열 간격을 키우고, 검색창을 고정 470px 대신 max-w+flex-1로 줄여 아이콘·버튼이 붙지 않게 보정.
  • 브랜드 영역에 상한 max-width를 두어 좁은 데스크톱에서 제목과 검색·우측 액션이 겹치지 않게 함.
  • 공개 레이아웃 그리드(default/post)에 lg:px-5·xl:px-6을 적용해 헤더와 본문 열 가장자리를 맞춤.

v0.0.55

  • 모바일(lg 미만)에서 좌측 사이드바를 고정 슬라이드 패널+백드롭으로 표시하고, 닫기는 closeMenu/백드롭/Escape로 처리.
  • 모바일에서 본문 아래에 오른쪽 사이드바를 배치하고, 좁은 폭에서 헤더·우측 패널이 화면 가장자리에 붙지 않도록 여백·구독 폼 레이아웃을 보정.
  • 좌측 메뉴 열림 시 모바일에서 문서 스크롤 잠금(html.site-mobile-nav-open) 적용.
  • 데스크톱에서만 메뉴 닫힘 시 max-width가 줄어들도록 보정(lg:max-w-[1007px]).

v0.0.54

  • 회원가입 화면(signup)을 모바일 우선 여백·카드 패널 구조로 보정해 가독성 개선.
  • 회원가입 2단계에 로그인 진입 링크 추가.
  • 회원가입 3단계 상태 메시지(aria-live)와 재전송 안내 문구를 정리.
  • 로그인 화면(signin) 비밀번호 보기/숨기기 토글 추가.
  • 로그인 화면 상태 메시지를 오류/안내로 분리하고 홈 이동 링크 추가.

v0.0.53

  • 게시물 상세 제목 우측 공유 버튼에 공유 모달 추가(X/Bluesky/Facebook/LinkedIn/Email/링크복사).
  • 헤더 우측 Account 링크 제거, 사용자 아바타 버튼+드롭다운(Anonymous/Sign up/Sign in) 추가.
  • 회원가입 화면(/signup)을 AFFiNE 참고 3단계(환영/입력/이메일 확인) 플로우로 추가.
  • 회원가입 3단계에 인증 메일 재전송(쿨다운)과 인증 완료 후 로그인 이동 흐름 추가.
  • 로그인 화면(/signin)을 동일한 다크 톤 폼 스타일로 추가.
  • 회원가입 하단 스텝 인디케이터를 min-h 기반 하단 고정 배치로 보정.
  • 회원가입 1단계 문구를 사이트 설정(site-settings.title, site-settings.description) 연동으로 변경.
  • 회원가입 페이지 타이머(setInterval)를 onMounted에서만 실행하도록 수정해 SSR 오류를 해결.

v0.0.52

  • 홈/태그 목록 Featured 아이콘이 제목 줄 높이를 흔들지 않도록 고정 크기(h-4 w-4)·정렬 방식으로 보정.
  • 게시물 상세 제목 아래 메타 정보에 / 구분자 표시를 after 규칙으로 통일.

v0.0.51

  • 좌·우 사이드바 데스크톱 열 높이를 calc(100vh - 57px)로 고정해 내부 스크롤·하단 푸터 배치가 뷰포트 기준으로 맞도록 수정.
  • 사이드 푸터에 상단 보더 추가(스크롤 영역과 시각적 구분).
  • 공개 피드·게시 상세·아카이브 발행일 YYYY.MM.DD 통일, composables/formatPostDate.js 사용·<time datetime> 보강.
  • pages/tag/[slug].vue 동일 날짜·datetime 처리.

v0.0.50

  • 데스크톱(lg+)에서 긴 본문은 문서 스크롤(브라우저 오른쪽 스크롤바)로 처리하고, main 단독 스크롤은 제거.
  • 좌·우 사이드바는 sticky+max-h로 뷰포트에 맞추고, 내부 스크롤은 .site-sidebar-scroll로 스크롤바만 숨김(휠·트랙패드 스크롤 유지).

v0.0.49

  • 데스크톱(lg+) 공개 레이아웃을 뷰포트 높이에 고정하고 중앙 컬럼만 세로 스크롤되도록 변경.
  • 좌·우 사이드바는 열 높이 안에서 본문만 스크롤하고 푸터(링크·테마·카피라이트)는 항상 열 하단에 고정.

v0.0.48

  • 공개 본문에 Thred형 북마크 카드(ProseBookmark, :::bookmark)와 회원가입 CTA(ProseSignup, :::signup) 추가.
  • ProseEmbed에서 Twitter/X 게시물 URL을 공식 embed iframe으로 렌더링하고 테마와 동기화.
  • Callout 왼쪽 강조선·이미지 캡션 변수 색상 등 카드/미디어 스타일을 Thred에 가깝게 보정.

v0.0.47

  • 공개 본문 렌더러에서 Ordered list(숫자 목록) 문법을 지원.
  • 공개 본문 인용구를 멀티라인 처리하고 대체(Alternative) 인용구 스타일 문법을 추가.
  • 공개 본문 리스트/인용/이미지/갤러리/카드류 기본 스타일을 Thred 톤(보더/라운드/패널/타이포)으로 통일.
  • 기술 명세에 공개 본문 스타일 가이드를 추가.

v0.0.46

  • 홈 Latest 피드 보기 방식 토글(4종) 드롭다운과 localStorage 저장 추가.
  • 홈 Latest 피드 Default 아이콘을 원본(restore) SVG로 보정.
  • 홈/태그 상세 목록 Featured 번개 아이콘을 SVG로 교체.
  • 홈/태그 상세 목록 댓글 아이콘을 SVG로 교체.
  • Nuxt future 호환성 버전을 명시해 설정 resolve 오류를 예방.
  • 개발 서버 실행 스크립트에서 종료 시 최근 로그를 함께 출력하도록 보강.
  • 로컬 개발 환경 파일 감시(EMFILE) 이슈 완화를 위해 Vite watch polling 옵션 추가.
  • 게시물 레이아웃에서 누락된 그리드 클래스를 복구해 /post/:slug 화면 깨짐을 수정.
  • 게시물 상세 헤더를 Thred 패턴(제목+메타+썸네일) 기준으로 재구성.
  • 태그 목록 카드의 ↗ 텍스트 아이콘을 SVG 아이콘으로 교체.

v0.0.45

  • 사용자 화면 기본 배경을 #fcfcfc로 통일하고 보더 기준 구분으로 정리.
  • 오른쪽 사이드바 왼쪽 경계선이 항상 보이도록 보더 추가.
  • 왼쪽 사이드바 열림/닫힘 시 폭이 스르륵 줄어드는 전환 애니메이션 추가.
  • 왼쪽 네비게이션 항목 왼쪽에 회색 세로 바 표시를 추가하고 hover 시 원형 아이콘으로 전환되도록 수정.
  • 왼쪽 네비게이션 hover 배경색을 더 연하게 조정하고, 마우스 오버 시 텍스트가 함께 이동하도록 전환 효과 보정.
  • 왼쪽 사이드바 전환과 네비게이션 hover 효과 구현을 커스텀 CSS에서 Tailwind 유틸리티 클래스로 전환.
  • 왼쪽 네비게이션과 카테고리 영역의 패딩, 간격, hover 동작을 원본 Thred 마크업 패턴에 맞춰 재정렬.
  • 왼쪽 사이드바 네비게이션/카테고리/작성자 섹션의 내부 패딩과 텍스트 이동량을 미세 조정.
  • 태그 목록 페이지를 원본 Thred 구조에 맞춰 중앙 히어로와 3열 태그 카드 레이아웃으로 재구성.
  • 태그 상세 페이지(tag/[slug])를 원본 Thred 구조에 맞춰 헤더 간격과 리스트형 게시물 카드 레이아웃으로 재구성.
  • 태그 상세 페이지 게시물 메타 영역에 featured 강조, 태그 컬러 배지, 구분자 스타일을 원본 패턴에 맞춰 보정.
  • 태그 상세 페이지에서 복수 태그 글은 첫 번째 태그만 배지로 표시하고, 배지와 / 구분자가 겹치지 않도록 메타 구조 수정.
  • 오른쪽 사이드바 Follow 영역을 원본 패턴의 소셜 아이콘 링크 행으로 교체.
  • 홈 중앙 메인 영역을 원본 Thred 구조에 맞춰 Hero/Featured/Latest 섹션 간격과 내부 보더 정렬 기준으로 재구성.
  • 홈 Latest와 태그 상세 목록 카드 우하단 hover 화살표 액션 버튼 추가.
  • 홈 Latest와 태그 상세 목록 카드의 우하단 액션 화살표를 텍스트에서 SVG 아이콘으로 교체.
  • 홈 Featured 영역을 그리드에서 가로 슬라이드 트랙(좌우 버튼 이동) 구조로 변경.
  • 홈 Featured 슬라이드 폭을 브레이크포인트별 1.4/1.6/2.6 카드 비율 계산식으로 보정.
  • 기술 명세 현재 버전을 v0.0.45로 갱신.

v0.0.44

  • 사용자 화면 다크/라이트 테마 전환 composable 추가.
  • 헤더와 좌측 사이드바에 테마 전환 버튼 연결.
  • 사용자 화면 링크, 카드, 입력, 버튼 hover 인터랙션 보강.
  • ZCF-v1.0.5 및 샘플 폴더가 Git에 포함되지 않도록 제외 규칙 추가.
  • 기술 명세 현재 버전을 v0.0.44로 갱신.

v0.0.43

  • 대표 이미지가 설정된 상태의 변경/삭제 액션을 이미지 아래 버튼 영역이 아니라 이미지 hover 오버레이로 수정.
  • 대표 이미지 선택 모달에서 미디어 클릭 시 즉시 적용하지 않고 선택 상태만 표시하도록 수정.
  • 대표 이미지 선택 모달 하단의 대표 이미지로 적용 버튼으로 선택 이미지를 확정하도록 수정.
  • 기술 명세 현재 버전을 v0.0.43으로 갱신.
  • 패키지 버전을 0.0.43으로 갱신.

v0.0.42

  • 관리자 글쓰기 화면의 문서 스크롤 잠금 클래스를 html/body에 직접 적용하도록 보강.
  • 관리자 글 설정의 태그 입력을 Figma 기준 배지형 입력으로 수정.
  • 태그 입력 중 Enter가 게시물 저장으로 이어지던 문제 수정.
  • 관리자 글 설정에서 Canonical URL과 OG 이미지 입력 UI 제거.
  • 게시물 저장 시 Canonical URL은 기본 글 주소, OG 이미지는 대표 이미지를 따르도록 정리.
  • 대표 이미지 선택 모달에 이미지 업로드와 미디어 라이브러리 탭 추가.
  • 기술 명세 현재 버전을 v0.0.42로 갱신.
  • 패키지 버전을 0.0.42로 갱신.

v0.0.41

  • 관리자 블록 에디터 / 명령 메뉴가 아래 블록 텍스트와 겹쳐 보이던 문제 수정.
  • 관리자 블록 에디터 드래그 종료 시 삽입선 위치 기준으로 블록 이동이 확정되도록 보정.
  • 개발 서버에서 Nuxt DevTools 도킹 패널로 보이는 하단 검은 영역을 막기 위해 DevTools 비활성화.
  • 기술 명세 현재 버전을 v0.0.41로 갱신.
  • 패키지 버전을 0.0.41로 갱신.

v0.0.40

  • 관리자 글쓰기 화면에서 바깥 문서가 함께 스크롤되어 하단 배경이 노출되던 문제 수정.
  • 관리자 블록 에디터 드래그 중 드롭 위치를 위/아래 삽입선으로 표시하도록 추가.
  • 관리자 블록 에디터 드롭 이동 위치가 표시된 삽입선과 일치하도록 수정.
  • 관리자 블록 에디터 한글 조합 중 Shift+Enter 입력 시 조합 완료 후 줄바꿈이 바로 적용되도록 보정.
  • 기술 명세 현재 버전을 v0.0.40으로 갱신.
  • 패키지 버전을 0.0.40으로 갱신.

v0.0.39

  • 관리자 블록 에디터 Shift+Enter 줄바꿈이 문단 첫 위치로 커서를 이동시키던 문제 수정.
  • 관리자 블록 에디터 텍스트 DOM 동기화를 textContent 기준으로 보정.
  • 관리자 블록 에디터 왼쪽 블록 핸들을 AFFiNE 참고 스타일의 세로 막대형 hover 표시로 수정.
  • 기술 명세 현재 버전을 v0.0.39로 갱신.
  • 패키지 버전을 0.0.39로 갱신.

v0.0.38

  • 관리자 블록 에디터 슬래시 메뉴 필터가 입력 즉시 동기화되도록 보정.
  • 관리자 블록 에디터에서 /갤 Enter 입력 시 필터링된 갤러리 명령이 적용되도록 수정.
  • 관리자 블록 에디터에서 Shift+Enter 줄바꿈과 Enter 문단 생성을 구분하도록 수정.
  • 관리자 블록 에디터 구조형 블록의 자체 위아래 여백을 제거하고 블록 행 사이 margin-top 기준으로 정리.
  • 관리자 블록 에디터 하단의 불필요한 최소 높이로 생기던 빈 영역 제거.
  • 관리자 글 수정 화면의 보기/삭제 액션을 Figma 기준에 맞춰 게시물 설정 패널 내부로 이동.
  • 기술 명세 현재 버전을 v0.0.38로 갱신.
  • 패키지 버전을 0.0.38로 갱신.

v0.0.37

  • 관리자 블록 에디터의 한글 조합 입력 종료 후 Enter 처리 보정.
  • 관리자 블록 에디터의 슬래시 메뉴 필터가 한글 조합 완료 뒤 갱신되도록 수정.
  • 관리자 블록 에디터에서 ``` 입력 시 코드 블록으로 즉시 변환되도록 추가.
  • 관리자 코드 블록 글자색과 caret 색상 보정.
  • 관리자 블록 에디터에 블록 핸들 선택, Delete/Backspace 삭제, 드래그 이동 기능 추가.
  • 할 일 문서에 블록 핸들 액션 메뉴 후속 작업 추가.
  • 기술 명세 현재 버전을 v0.0.37로 갱신.
  • 패키지 버전을 0.0.37로 갱신.

v0.0.36

  • 할 일 문서에서 완료 또는 현재 기준 불필요한 QA 항목 정리.
  • 기술 명세 현재 버전을 v0.0.36으로 갱신.
  • 패키지 버전을 0.0.36으로 갱신.

v0.0.35

  • 관리자 공통 레이아웃의 기본 내부 패딩 제거.
  • 관리자 글 작성/수정 화면에서 좌측 관리자 네비게이션을 숨기도록 수정.
  • 관리자 글 작성/수정 폼을 에디터 작업 영역과 우측 설정 패널의 1차 좌우 분할 구조로 수정.
  • 게시물 설정 패널 열림/닫힘 너비 전환 애니메이션 추가.
  • 관리자 글 작성/수정 화면의 버튼, 입력, 미디어 선택 요소 hover/focus 효과 보강.
  • 기술 명세 현재 버전을 v0.0.35로 갱신.
  • 패키지 버전을 0.0.35로 갱신.

v0.0.34

  • 배포 문서에 개발/운영 DB 분리 검증 절차 추가.
  • 로컬 개발 DB 실행 안내에 Docker Desktop과 Colima 기준 병기.
  • 할 일에서 개발 DB와 운영 DB 분리 검증 절차 작성 항목 정리.
  • 기술 명세 현재 버전을 v0.0.34로 갱신.
  • 패키지 버전을 0.0.34로 갱신.

v0.0.33

  • 개발 서버 실행 링크 출력을 개발 서버, Admin, Tailwind Viewer 3개 주소로 정리.
  • 개발 서버 실행 링크가 Nuxt 출력 URL 대신 프로젝트 고정 포트 43117 기준으로 표시되도록 수정.
  • 배포 문서에 로컬 PostgreSQL DB 확인 방법 추가.
  • 할 일에서 CloudBeaver PostgreSQL 연결 방식 확정 항목 정리.
  • 기술 명세 현재 버전을 v0.0.33으로 갱신.
  • 패키지 버전을 0.0.33으로 갱신.

v0.0.32

  • 관리자 글 작성/수정 화면의 별도 제목 헤더 제거.
  • 관리자 글 작성/수정 폼을 Ghost 스타일 상단 바와 중앙 에디터 구조로 수정.
  • 대표 이미지 추가 영역을 에디터 본문 상단으로 이동.
  • 게시물 설정 패널을 420px 우측 패널과 토글 구조로 정리.
  • 관리자 글 에디터 컬럼을 좌우 32px 패딩 포함 804px로 보정해 실제 본문 폭 740px 유지.
  • 블록 에디터 첫 placeholder 문구를 간결하게 수정.
  • 패키지 버전을 0.0.32로 갱신.

v0.0.31

  • 관리자 글 작성/수정 폼에 미리보기 버튼 추가.
  • 저장 전 게시물 입력값을 브라우저 저장소에 담아 새 미리보기 탭으로 전달하도록 추가.
  • 관리자 게시물 미리보기 화면 추가.
  • 미리보기 화면이 공개 게시물 본문 렌더러와 같은 컴포넌트를 사용하도록 연결.
  • 패키지 버전을 0.0.31로 갱신.

v0.0.30

  • 게시물 OG 이미지 필드 추가.
  • 관리자 글 작성/수정 폼에 OG 이미지 선택, 업로드, 변경, 삭제 기능 추가.
  • 공개 게시물 상세 화면에 OG 이미지와 Twitter large image 카드 메타 연결.
  • 미디어 라이브러리 사용 현황에 게시물 OG 이미지 사용처 표시 추가.
  • 패키지 버전을 0.0.30으로 갱신.

v0.0.29

  • 게시물 SEO 메타데이터 컬럼 추가.
  • 관리자 글 작성/수정 폼에 SEO 제목, SEO 설명, canonical URL, 검색엔진 노출 제외 설정 추가.
  • 관리자 게시물 생성/수정 API가 SEO 값을 저장하도록 수정.
  • 공개 게시물 상세 화면에 SEO 제목, description, canonical, robots, 기본 OG 메타 연결.
  • 패키지 버전을 0.0.29로 갱신.

v0.0.28

  • 관리자 글 작성/수정 폼에 발행 시각 입력 기능 추가.
  • 발행 상태에서 미래 발행 시각을 저장하면 예약 발행으로 처리하도록 추가.
  • 공개 게시물 목록과 상세 API가 미래 발행 글을 노출하지 않도록 수정.
  • 관리자 글 목록에서 발행/예약/초안/비공개 상태 표시를 구분하도록 수정.
  • 예약 발행 글은 공개 보기 버튼을 숨기도록 수정.
  • 패키지 버전을 0.0.28로 갱신.

v0.0.27

  • 미디어 폴더 테이블 추가.
  • 관리자 미디어 폴더 목록/생성 API 추가.
  • 관리자 미디어 화면을 왼쪽 폴더 트리와 오른쪽 썸네일 갤러리 구조로 수정.
  • 미디어 Ctrl/Command 클릭 및 Shift 클릭 복수 선택 기능 추가.
  • 선택 미디어를 폴더로 드래그해 일괄 이동하는 기능 추가.
  • 미디어 폴더 이동은 실제 파일 경로가 아닌 메타데이터 경로를 갱신하도록 유지.
  • 패키지 버전을 0.0.27로 갱신.

v0.0.26

  • 미디어 메타데이터 테이블 추가.
  • 미디어 URL별 카테고리 저장 기능 추가.
  • 관리자 미디어 목록에 카테고리 필터 추가.
  • 관리자 미디어 상세 모달에 카테고리 수정 기능 추가.
  • 미디어 파일명 변경/삭제 시 메타데이터도 함께 갱신하도록 수정.
  • 패키지 버전을 0.0.26으로 갱신.

v0.0.25

  • 관리자 블록 에디터에서 빈 문단 placeholder를 마지막 보조 입력 블록에만 표시하도록 수정.
  • 네비게이션 항목 데이터베이스 테이블 추가.
  • 공개 네비게이션 조회 API 추가.
  • 관리자 네비게이션 조회/일괄 저장 API 추가.
  • 관리자 메뉴 관리 화면 추가.
  • 공개 왼쪽 사이드바 상단/하단 메뉴를 네비게이션 API와 연결.
  • 패키지 버전을 0.0.25로 갱신.

v0.0.24

  • 관리자 블록 에디터에서 마지막 빈 문단 Enter 입력 시 연속 빈 줄이 유지되도록 수정.
  • 사이트 설정 데이터베이스 테이블 추가.
  • 공개 사이트 설정 조회 API 추가.
  • 관리자 사이트 설정 조회/수정 API 추가.
  • 관리자 사이트 설정 화면을 실제 저장 API와 연결.
  • 공개 헤더와 오른쪽 사이드바에 사이트 설정 값을 연결.
  • 패키지 버전을 0.0.24로 갱신.

v0.0.23

  • 관리자 고정 페이지 목록 화면을 실제 API와 연결.
  • 관리자 고정 페이지 생성 화면 추가.
  • 관리자 고정 페이지 수정 화면 추가.
  • 관리자 고정 페이지 생성/수정/삭제 API 추가.
  • 고정 페이지 작성 폼에 블록 에디터와 대표 이미지 선택 기능 연결.
  • 패키지 버전을 0.0.23으로 갱신.

v0.0.22

  • 관리자 블록 에디터 마지막에 클릭 가능한 빈 문단 블록을 항상 유지하도록 수정.
  • 빈 마지막 문단 블록은 저장 콘텐츠에 포함하지 않도록 유지.
  • 한글 조합 입력 직후 Enter가 새 블록 입력으로 중복 처리되는 문제 보정.
  • 관리자 글 저장/수정/삭제 진행 상태를 토스트로 표시하도록 추가.
  • 새 글 저장 후 수정 화면으로 이동해도 저장 성공 토스트를 표시하도록 추가.
  • 패키지 버전을 0.0.22로 갱신.

v0.0.21

  • 관리자 글 작성/수정 폼에 로컬 자동 저장 기능 추가.
  • 자동 저장본이 있으면 복원 또는 삭제 안내를 표시하도록 추가.
  • 글 저장 성공 시 해당 자동 저장본을 삭제하도록 연결.
  • 자동 저장 상태 시간을 글 작성 화면 하단에 표시하도록 추가.
  • 패키지 버전을 0.0.21로 갱신.

v0.0.20

  • 관리자 블록 에디터에 콜아웃 블록 추가.
  • 관리자 블록 에디터에 토글 블록 추가.
  • 관리자 블록 에디터에 임베드 블록 추가.
  • 공개 본문 렌더러에 콜아웃, 토글, 임베드 마크다운 확장 파싱 추가.
  • YouTube 임베드 URL을 공개 화면에서 iframe으로 렌더링하도록 수정.
  • 패키지 버전을 0.0.20으로 갱신.

v0.0.19

  • 관리자 블록 에디터의 한글 조합 입력 중복 방지 처리 추가.
  • 이미지/갤러리 삽입 시 파일명을 alt/caption으로 자동 표시하지 않도록 수정.
  • 이미지 블록 alt 입력을 이미지 hover 또는 focus 상태에서만 표시하도록 수정.
  • 공개 게시물 카드에 대표 이미지 썸네일 표시 추가.
  • ProseImage Wide/Full-width 화면 이탈 보정 작업을 할 일에 기록.
  • 패키지 버전을 0.0.19로 갱신.

v0.0.18

  • 새 글 작성 화면에서 빈 본문 블록이 생성되지 않던 문제 수정.
  • 공개 게시물 목록 경로 /posts 추가.
  • 공개 게시물 상세 경로를 /post/:slug 기준으로 추가.
  • 기존 /posts/:slug 상세 경로를 /post/:slug로 리다이렉트하도록 수정.
  • 공개 태그 목록 경로 /tags 추가.
  • 공개 태그 상세 경로를 /tag/:slug 기준으로 추가.
  • 기존 /tags/:slug 상세 경로를 /tag/:slug로 리다이렉트하도록 수정.
  • 공개 화면과 관리자 미리보기 링크를 단수형 상세 경로 기준으로 정리.
  • 패키지 버전을 0.0.18로 갱신.

v0.0.17

  • 관리자 글 작성/수정 폼의 대표 이미지 URL 직접 입력을 이미지 선택 UI로 변경.
  • 대표 이미지 썸네일, 삭제, 변경, 새 업로드 기능 추가.
  • 대표 이미지를 기존 미디어 라이브러리에서 선택할 수 있도록 추가.
  • 관리자 미디어 화면을 고밀도 썸네일 갤러리 구조로 변경.
  • 미디어 경로, 사용 현황, 용량, 파일명 변경, 삭제 정보를 상세 모달로 이동.
  • 패키지 버전을 0.0.17로 갱신.

v0.0.16

  • 관리자 미디어 목록에 게시물/페이지 사용 현황 표시 추가.
  • 미디어 사용처를 대표 이미지와 본문 위치로 구분해 표시.
  • 사용 중인 미디어의 파일명 변경과 삭제를 차단하도록 수정.
  • 미디어 검색 대상에 사용 중인 게시물/페이지 제목 추가.
  • 패키지 버전을 0.0.16으로 갱신.

v0.0.15

  • 관리자 블록 에디터 / 메뉴 항목 제목 색상을 진한 본문색으로 수정.
  • 관리자 미디어 목록 API 추가.
  • 관리자 미디어 파일명 변경 API 추가.
  • 관리자 미디어 삭제 API 추가.
  • 관리자 미디어 관리 화면 추가.
  • 관리자 사이드바에 미디어 메뉴 추가.
  • 글쓰기 이미지/갤러리 블록에서 기존 업로드 미디어 선택 기능 추가.
  • 패키지 버전을 0.0.15로 갱신.

v0.0.14

  • 관리자 블록 에디터에 단일 이미지 블록 추가.
  • 관리자 블록 에디터에 복수 이미지 갤러리 블록 추가.
  • 이미지 블록의 기본/와이드/풀사이즈 표시 옵션 추가.
  • 관리자 이미지 업로드 API 추가.
  • 공개 본문 렌더러에 이미지와 갤러리 렌더링 추가.
  • 공개 갤러리 이미지 클릭 시 라이트박스로 크게 보는 기능 추가.
  • 업로드 파일이 Git에 포함되지 않도록 public/uploads/ 제외 처리.
  • 향후 미디어 라이브러리 관리 기능 범위 정리.
  • 패키지 버전을 0.0.14로 갱신.

v0.0.13

  • 개발 서버 실행 로그를 프로젝트 전용 링크 요약 출력으로 정리.
  • npm run devscripts/dev-server.js를 통해 Nuxt 개발 서버를 실행하도록 수정.
  • 패키지 버전을 0.0.13으로 갱신.

v0.0.12

  • 관리자 글 제목 입력에서 Enter 입력 시 본문 첫 블록으로 이동하도록 수정.
  • 관리자 블록 에디터 본문 글자 색상을 관리자 화면 기준으로 고정.
  • 패키지 버전을 0.0.12로 갱신.

v0.0.11

  • 관리자 블록 에디터에서 빈 문단 Enter 입력 시 새 빈 블록이 생성되도록 수정.
  • 관리자 블록 에디터의 / 명령 메뉴에서 Enter로 선택 항목을 적용하도록 수정.
  • 관리자 블록 에디터의 / 명령 메뉴에 위/아래 방향키 선택 이동 추가.
  • 관리자 글 에디터 후속 작업 순서 정리.
  • 패키지 버전을 0.0.11로 갱신.

v0.0.10

  • 관리자 블록 에디터의 contenteditable 입력 중복 문제 수정.
  • 관리자 블록 에디터의 / 명령 메뉴가 화면 하단에서 위로 열리도록 수정.
  • 빈 블록 placeholder가 활성 블록에만 표시되도록 수정.
  • 관리자 글 제목 입력을 본문 흐름 안의 큰 제목 필드로 변경.
  • 패키지 버전을 0.0.10으로 갱신.

v0.0.9

  • 관리자 글 작성/수정 폼을 textarea 방식에서 블록형 에디터 방식으로 변경.
  • 관리자 블록 에디터에 / 명령 메뉴 추가.
  • 관리자 블록 에디터에 #, ##, ###, >, - 입력 단축 변환 추가.
  • 공개 게시물과 고정 페이지 본문을 마크다운 렌더러에 연결.
  • 패키지 버전을 0.0.9로 갱신.

v0.0.8

  • 관리자 글 작성/수정 폼에 마크다운 미리보기 탭 추가.
  • 관리자 글 작성/수정 폼에 제목, 굵게, 목록, 인용, 코드 문법 삽입 버튼 추가.
  • 패키지 버전을 0.0.8로 갱신.

v0.0.7

  • 태그 정렬 순서와 색상 코드 필드 추가.
  • 태그 표시 필드 마이그레이션 추가.
  • 관리자 태그 생성/수정 화면을 개별 페이지로 분리.
  • 관리자 태그 목록 화면의 인라인 수정 제거.
  • 공개 좌측 사이드바 카테고리를 실제 태그 색상과 정렬 순서 기준으로 연결.
  • 관리자 태그 상세 조회 API 추가.
  • 관리자 태그 목록 API 추가.
  • 관리자 태그 생성 API 추가.
  • 관리자 태그 수정 API 추가.
  • 관리자 태그 삭제 API 추가.
  • 관리자 태그 관리 화면을 실제 API에 연결.
  • 관리자 글 삭제 API 추가.
  • 관리자 글 목록과 수정 화면에 삭제 액션 추가.
  • 관리자 글 작성 API 추가.
  • 관리자 글 상세 조회 API 추가.
  • 관리자 글 수정 API 추가.
  • 관리자 글 작성/수정 공통 폼 추가.
  • 관리자 새 글 작성 화면과 수정 화면을 실제 저장 API에 연결.
  • 관리자 글 상태를 초안/발행/비공개로 저장할 수 있도록 수정.
  • 관리자 접근 미들웨어의 서버 인증 확인 방식 수정.
  • 환경 변수 기반 관리자 로그인 기능 추가.
  • 관리자 세션 쿠키 인증 유틸리티 추가.
  • 관리자 로그아웃 및 세션 조회 API 추가.
  • 관리자 글 목록 API와 화면 연결.
  • 개발 서버의 #app-manifest 가상 모듈 분석 오류를 피하도록 Nuxt app manifest 실험 기능 비활성화.
  • Nuxt 컴포넌트 자동 import 설정을 문서의 컴포넌트명 기준에 맞게 수정.
  • 홈, 태그, 게시물, 고정 페이지 공개 화면을 실제 API 데이터에 연결.
  • 로컬 PostgreSQL 마이그레이션 실행 스크립트 추가.
  • 개발 DB 마이그레이션 npm 명령 추가.
  • Homebrew, Docker CLI, Docker Compose, Colima 기반 로컬 컨테이너 실행 환경 구성.
  • Docker Compose가 ENV_FILE 값으로 로컬/운영 환경 파일을 선택할 수 있도록 수정.
  • 로컬 PostgreSQL 개발 DB 컨테이너 실행 및 시드 데이터 확인.
  • Nuxt 개발/프리뷰 스크립트가 .env.development를 명시적으로 읽도록 수정.
  • 새 개발 환경에서 Node.js 22 LTS 기준 의존성 설치 및 빌드 검증.
  • 로컬 개발 필수 조건 문서의 Node.js 권장 버전 정리.
  • 패키지 버전을 0.0.7로 갱신.

v0.0.6

  • .env.example의 실제 계정/비밀번호 값을 예시 전용 placeholder로 교체.
  • 로컬 개발 전용 .env.development 파일 생성.
  • 개발 DB 비밀번호와 관리자 비밀번호를 랜덤 값으로 분리.
  • 환경 변수 파일 관리 기준 문서 정리.
  • 패키지 버전을 0.0.6으로 갱신.
  • 이미 원격에 올라간 비밀번호 사용 여부 점검 항목 추가.

v0.0.5

  • PostgreSQL 초기 스키마 마이그레이션 추가.
  • 개발용 시드 데이터 SQL 추가.
  • Nuxt 서버 API 저장소 계층 추가.
  • DATABASE_URL이 있으면 PostgreSQL을 사용하고, 없으면 샘플 데이터를 사용하도록 수정.
  • Docker Compose에 PostgreSQL 서비스와 전용 DB 포트 43119 추가.
  • 공개 API가 저장소 계층을 통해 게시물, 페이지, 태그를 조회하도록 수정.

v0.0.4

  • 헤더 좌측 아이콘을 브랜드 마크에서 메뉴 토글 버튼으로 수정.
  • Vue/Nuxt 상태 기반 좌측 사이드바 열기/닫기 기능 추가.
  • 메뉴 열림 상태를 localStorageMENU_STATE에 저장하도록 추가.
  • 메뉴 닫힘 상태에서 공개 레이아웃 그리드가 좌측 사이드바 폭을 제거하도록 수정.

v0.0.3

  • Thred 참고 화면 기준 공개 레이아웃 색상 토큰 정리.
  • 라이트/다크 모드 CSS 변수 기반 테마 추가.
  • 헤더 아래 3단 컬럼 최소 높이를 화면 전체 높이로 수정.
  • 좌우 사이드바를 본문과 별개로 전체 높이 패널처럼 표시하도록 수정.
  • 홈 화면 히어로, 추천 영역, 최신 글 영역 구조 보강.
  • 사이트 헤더 검색 영역과 구독/계정 액션 구조 추가.
  • 좌우 사이드바 임시 콘텐츠 구조 보강.
  • 로컬 개발/프리뷰 포트 43117 유지.

v0.0.2

  • Nuxt 3 프로젝트 기본 실행 구조 추가.
  • Tailwind CSS 설정과 전역 Pretendard 기준 스타일 추가.
  • 공개 레이아웃, 게시물 레이아웃, 고정 페이지 레이아웃, 관리자 레이아웃 골격 추가.
  • 사이트 컴포넌트와 콘텐츠 컴포넌트 초기 골격 추가.
  • 홈, 게시물 상세, 태그, 고정 페이지, 관리자 기본 화면 추가.
  • Nuxt server/api 기반 백엔드 골격 추가.
  • Zod 기반 콘텐츠 스키마와 샘플 API 추가.
  • .env.example, Dockerfile, docker-compose.yml, .dockerignore 추가.
  • 로컬 개발 포트 43117, NAS Docker 외부 포트 43118 기준 추가.

v0.0.1

  • sori.studio 개인 블로그/CMS 방향 정리.
  • note.md 원본 기획 기준 문서 재점검.
  • Ghost 스타일 관리자와 Thred 스타일 공개 화면 기준 명세 정리.
  • Nuxt SSR, JavaScript, JSDoc, Zod, Tailwind CSS 기본 전제 정리.
  • Git 원격 저장소와 작성자 기준 문서화.
  • 로컬 개발 DB와 NAS 운영 DB 분리 원칙 추가.
  • 공개 레이아웃, 콘텐츠 컴포넌트, 관리자 화면 계획 정리.
  • pages 전체 화면 표시 기준 정리.
  • 배포 가이드에 clone, 개발/운영 환경 변수, NAS 운영 DB 기준 추가.
  • 초기 할 일, 배포 초안, 파일-화면 매핑 문서 정리.
  • note.md 삭제 정리.
  • Git 저장소 초기 기준점 설정 진행.