127 KiB
127 KiB
업데이트 이력
v1.5.52
- 게시물 글쓰기: 라이브 모드 fenced 블록의 원본 범위가 닫는
:::다음 줄까지 포함되던 문제 수정. - 게시물 글쓰기: 연속 콜아웃에서 위 콜아웃 편집 시 아래 콜아웃 선언 줄이 삭제되던 문제 수정.
- 게시물 글쓰기: 한글 조합 종료 직후 Enter 중복 이벤트를 전역 capture 단계에서 1회 차단하도록 보강.
v1.5.51
- 게시물 글쓰기: 라이브 모드 인용·콜아웃에서 한글 조합 Enter가 줄 추가를 중복 실행하지 않도록 보정.
- 게시물 글쓰기: 라이브 모드 콜아웃 마지막 줄 아래 방향키가 새 본문 줄을 만들지 않도록 수정.
- 게시물 글쓰기: 라이브 모드 인용 마지막 줄 아래 방향키만 외부 문단을 만들도록 분리.
v1.5.50
- 게시물 글쓰기: 라이브 모드 인용 Enter가 한글 조합 입력 뒤에도 내부 다음 인용 줄을 만들도록 수정.
- 게시물 글쓰기: 라이브 모드 인용 마지막 줄에서 아래 방향키로 외부 문단을 만들며 빠져나오도록 보강.
- 게시물 글쓰기: 라이브 모드 콜아웃 본문을 줄 단위 편집으로 전환하고 한글 조합 Enter 중복 줄 생성 문제를 완화.
v1.5.49
- 게시물 글쓰기: 라이브 모드
Cmd+Shift+K가 코드·콜아웃·토글 블록 내부 현재 줄을 삭제하도록 수정. - 게시물 글쓰기: 코드·콜아웃·토글 블록 내부 마지막 본문 줄에서
Cmd+Shift+K를 누르면 fenced 블록 전체를 삭제하도록 수정. - 게시물 글쓰기: 콜아웃 라이브 편집에서 내부 줄 삭제와 마지막 줄 아래 방향키 이탈 이벤트가 부모 에디터로 전달되도록 수정.
- 게시물 글쓰기: 라이브 슬래시 명령 Enter 적용 시 키 이벤트 전파를 더 강하게 차단해 한글 IME 입력 잔여 문자가 블록 본문에 남을 가능성을 줄임.
v1.5.48
- 게시물 글쓰기: 상단 상태 표시에서 외부 이동 아이콘과 게시물 링크 이동 기능 제거.
- 게시물 글쓰기: 상단 상태 영역은 현재 상태 텍스트만 표시하도록 정리.
v1.5.47
- 공개 RSS 피드: 게시물 대표 이미지 또는 OG 이미지를
media:thumbnail·media:content로 포함하도록 추가. - 공개 RSS 피드: 상대 이미지 경로를 사이트 URL 기준 절대 URL로 변환하도록 추가.
- 공개 RSS 피드: Media RSS 네임스페이스 선언 추가.
v1.5.46
- 게시물 글쓰기: 콜아웃 배경색에서 분홍 옵션 제거.
- 게시물 글쓰기: 콜아웃 배경색을 인용 블록과 같은 색상 팔레트로 통일.
- 게시물 글쓰기: 라이브 모드 방향키 이동 시 콜아웃·인용 블록 선언 줄에 커서가 걸려 사라지던 문제 수정.
- 게시물 글쓰기: 작은 화면에서 게시물 설정 패널이 본문 폭을 압축하지 않도록 고정 오버레이로 표시.
v1.5.45
- 게시물 글쓰기: 인용 블록 기본 배경색을 회색으로 변경.
- 게시물 글쓰기: 인용 블록 배경색 선택에서 분홍 옵션 제거.
- 게시물 글쓰기: 인용 블록 오른쪽 설정 패널의 색상 배지를 실제 인용 블록 색상과 동일하게 수정.
- 게시물 글쓰기: 라이브 모드에서 콜아웃·인용 블록에 포커스가 들어오면 오른쪽 블록 설정 패널이 열리도록 수정.
- 게시물 글쓰기: 라이브 모드 콜아웃 내부 설정 모달을 제거하고 소스 모드와 같은 오른쪽 패널 방식으로 통일.
v1.5.44
- 관리자 사이트 설정: 블로그 제목·설명 읽기 화면을 라벨/값 세로 행 레이아웃으로 정리.
- 관리자 사이트 설정: 사이트 정보 읽기 화면에서 로고 등록 상태 텍스트를 제거하고, 미등록 시 점선 박스로 표시하도록 수정.
- 관리자 사이트 설정: 사이트 코드 읽기 화면을 가로 3분할 대신 라벨/값 세로 행 레이아웃으로 정리.
- 관리자 사이트 설정: 읽기 행의 라벨·값을 14px 일반 두께로 통일하고 행 내부 세로 중앙 정렬을 맞춤.
v1.5.43
- 공개 RSS 피드:
/rss.xml,/feed.xml,/rss경로 추가. - 공개 RSS 피드: 최근 공개 발행글 최대 50개를 RSS 2.0 XML로 응답하도록 추가.
- 사이트 설정 SNS 프리셋: RSS 기본 주소를 실제 피드 경로
/rss.xml로 변경.
v1.5.42
- 공개 오른쪽 사이드바: 직접 SVG SNS 아이콘도 기존 프리셋 아이콘과 같은 16px 크기와 중앙 정렬로 표시되도록 수정.
v1.5.41
- 관리자 사이트 설정: SNS 링크가 JSONB 배열이 아닌 JSON 문자열로 저장되어 저장 후 목록이 비어 보이던 문제 수정.
- 관리자 사이트 설정: 기존에 잘못 저장된 SNS 링크 JSON 문자열을 배열로 복구하는 DB 마이그레이션 추가.
- 관리자 사이트 설정: SNS 편집 UI에서 불필요한 이름 입력칸을 제거하고 아이콘·주소 중심 레이아웃으로 정리.
v1.5.40
- 관리자 사이트 설정: SNS 링크 주소 입력 시
https://를 생략해도 자동 보정되도록 수정. - 관리자 사이트 설정: SNS 아이콘 프리셋에
직접 SVG옵션을 추가해 새 SNS 아이콘을 코드 수정 없이 등록할 수 있도록 수정. - 관리자 사이트 설정: SNS 링크 편집에서 표시 이름과 사용자 SVG 아이콘 입력을 지원하도록 추가.
- 공개 오른쪽 사이드바: 사용자 지정 SVG SNS 아이콘을 FOLLOW 영역에 표시하도록 수정.
v1.5.39
- 관리자 사이트 설정: 일반 섹션에 SNS 정보 카드 추가.
- 관리자 사이트 설정: SNS 링크를 아이콘 프리셋과 주소 조합의 목록형으로 입력·저장할 수 있도록 추가.
- 공개 오른쪽 사이드바: 사이트 설정에 등록된 SNS 링크만 FOLLOW 영역에 표시하도록 수정.
- DB:
site_settings.social_linksJSONB 컬럼 추가.
v1.5.38
- 관리자 사이트 설정: 어나운스 바 배경색을 프리셋뿐 아니라 직접 hex 색상으로 선택·입력할 수 있도록 수정.
- 관리자 사이트 설정: 어나운스 바 텍스트 정렬을 중앙 또는 왼쪽으로 선택할 수 있도록 추가.
- 공개 어나운스 바: 설정된 배경색과 텍스트 정렬을 반영하도록 수정.
- 게시물 글쓰기: 한글 IME 조합 입력 중 코드·콜아웃·토글 블록 설정 패널이 줄바꿈 뒤 닫히지 않도록 보강.
- DB:
site_settings.announcement_alignment컬럼 추가.
v1.5.37
- 게시물 글쓰기: 콜아웃 블록 오른쪽 설정 패널에서 아이콘 표시 여부·아이콘·배경색을 수정할 수 있도록 추가.
- 게시물 글쓰기: 코드 블록 오른쪽 설정 패널에서 언어와 줄번호 표시 여부를 수정할 수 있도록 추가.
- 게시물 글쓰기: 토글 블록 오른쪽 설정 패널에서 기본 펼침·닫힘 상태를 선택할 수 있도록 추가.
- 콘텐츠 파일 카드: 파일명 반복 표시를 줄이고 제목에는 확장자 포함 파일명을, 보조 영역에는 용량 중심 정보를 표시하도록 수정.
v1.5.36
- 관리자 사이트 설정: 메인 화면 아래 브랜드 컬러 설정 카드 추가.
- 공개 화면: 사이트 설정의 브랜드 컬러를
--site-accent에 반영하도록 수정. - 게시물 글쓰기: 인용문(
>) 블록에서도 배경색 프리셋을 선택할 수 있도록 추가. - DB:
site_settings.brand_color컬럼 추가.
v1.5.35
- 관리자 대시보드: 검색·SNS·직접·기타 유입 정보 카드 추가.
- 관리자 대시보드: 디바이스·OS별 방문 집계와 유입 키워드 목록 추가.
- 관리자 대시보드: 인기 게시물에 월간 조회수와 작성일 표시 추가.
- Analytics: 페이지뷰 수집 시 referrer·현재 URL을 받아 유입원과 키워드를 집계하도록 추가.
- DB:
analytics_traffic_daily와 유입 중복 방문자 집계 컬럼 추가.
v1.5.34
- 공개 화면: Nuxt 전역 404/오류 페이지 추가.
- 사이트 설정:
ads.txt, 공통 헤더 코드, 공통 푸터 코드 입력·저장 추가. - 공개 응답:
/ads.txttext/plain 응답과 공개 HTML 헤더·푸터 코드 삽입 플러그인 추가. - 외부 위젯: gethomepage customapi 연동용
/api/homepage-widget요약 API 추가. - DB:
site_settings.ads_txt,custom_head_code,custom_footer_code컬럼 추가.
v1.5.33
- 관리자 사이트 설정: 최근 내보내기 작업이 준비 완료 상태일 때 상단 상태 배지를 숨기도록 수정.
v1.5.32
- 관리자 사이트 설정: 최근 내보내기 작업 카드에서 요청일·목표 용량·분할 설정 표시를 제거하고 만료일만 표시하도록 정리.
- 관리자 사이트 설정: 완료된 내보내기 작업은 진행도 영역을 숨기고 대기·생성 중 작업에서만 진행도를 표시하도록 수정.
- 관리자 사이트 설정: 내보내기 파일 목록을 체크 선택 방식으로 바꾸고 전체 선택·선택 파일 다운로드 기능 추가.
v1.5.31
- 관리자 사이트 설정: 게시물 내보내기 요청 설정 카드와 최근 내보내기 작업 다운로드 카드를 분리.
- 관리자 사이트 설정: 최근 내보내기 작업은 작업이 있을 때만 별도 카드로 표시하도록 수정.
v1.5.30
- 관리자 사이트 설정: 메인 화면 커버 읽기 모드 프리뷰가 카드 너비를 벗어나던 레이아웃 수정.
- 관리자 사이트 설정: 게시물 Import/Export 통합 영역을
게시물 내보내기와게시물 가져오기독립 카드로 분리. - 관리자 사이트 설정: 게시물 가져오기는 ZIP 선택 후
적용버튼을 눌러 실행되도록 수정. - 관리자 사이트 설정: 내보내기·가져오기 상세 조작은 각 카드 버튼을 눌렀을 때만 펼쳐지도록 정리.
v1.5.29
- 관리자 사이트 설정: 메인 화면 커버를 라이트모드·다크모드 상하 개별 프리뷰로 표시하도록 수정.
- 관리자 사이트 설정: 커버 이미지가 비어 있는 모드는 점선 드롭존으로 표시하고 파일 선택·드래그 앤 드롭 업로드를 지원하도록 추가.
- 관리자 사이트 설정: 타임존 준비 중 섹션을 제거하고
기타 설정명칭을사이트 정보로 변경.
v1.5.28
- 게시물 Import: Obsidian에서 흔히 쓰는 YAML 블록 배열(
tags:\n- tag) 형태를 읽을 수 있도록 frontmatter 파서 보강. - 게시물 Import: ZIP 내부에서 찾지 못한 자산을 조용히 무시하지 않고 Import 결과 경고로 반환하도록 수정.
- 관리자 사이트 설정: Import 완료 후 누락 자산 등 경고 목록을 표시하도록 수정.
v1.5.27
- 게시물 Import: Export ZIP을 업로드해 Markdown frontmatter 기반 게시물로 복원하는 관리자 API 추가.
- 게시물 Import: ZIP 내부
images/·files/자산을/uploads/posts/YYYY/MM/로 저장하고 본문 경로를 새 URL로 재매핑하도록 추가. - 게시물 Import: 기존 슬러그와 충돌하면 덮어쓰지 않고
-2,-3식 새 슬러그로 가져오도록 정리. - 관리자 사이트 설정: Import 패널에서 ZIP 선택, Import 진행 상태, 완료 요약을 표시하도록 수정.
v1.5.26
- 관리자 사이트 설정: 게시물 Import/Export 섹션 기본 화면을 요청 버튼과 최근 작업 중심으로 축소.
- 관리자 사이트 설정: Export 범위·분할 설정은
Export 요청버튼을 눌렀을 때만 펼쳐지도록 수정. - 관리자 사이트 설정: Import 영역은
Import 하기버튼을 눌렀을 때 접힌 안내 패널로 표시하도록 정리. - 관리자 사이트 설정: 구역 이동·Export 범위 셀렉트의 화살표 SVG와 오른쪽 간격 통일.
v1.5.25
- 게시물 Export: 분할 ZIP 계획을 고정 100개 단위가 아니라 목표 ZIP 용량 기준으로 나누도록 수정.
- 게시물 Export: 설정 화면에서 목표 ZIP 용량과 ZIP당 최대 게시물 수를 지정할 수 있도록 추가.
- 게시물 Export: 작업 레코드에
max_file_size_bytes,error_detail저장 추가. - 게시물 Export: 실패 작업 카드에서 상세 오류 원인을 확인할 수 있도록 추가.
v1.5.24
- 게시물 Export: 준비 완료 분할 파일을 브라우저에서 순차적으로 일괄 다운로드하는 버튼 추가.
- 게시물 Export: 실패한 작업을 준비 완료 파일은 유지한 채 실패 지점부터 재시도할 수 있도록 추가.
- 게시물 Export: 완료 시 Resend 설정이 있으면 요청 관리자 이메일로 준비 완료 알림을 보내도록 추가.
- 게시물 Export: 만료된 완료·실패 작업과 생성 ZIP 파일을 작업 목록 조회·새 요청 시 자동 정리하도록 추가.
v1.5.23
- 게시물 Export: 전체·특정년·특정월·직접 지정 날짜 범위 백업 요청 추가.
- 게시물 Export: 작업 레코드에
date_from,date_to,range_label저장 추가. - 게시물 Export: 날짜 범위 기준 게시물만 분할 ZIP 대상에 포함하도록 수정.
- 관리자 사이트 설정: Export 요청 카드에 범위 선택 UI 추가.
- 관리자 사이트 설정: 완료·실패한 Export 작업과 생성 ZIP 파일을 삭제할 수 있도록 추가.
v1.5.22
- 게시물 Export: 대기 작업을 백그라운드에서 실제 ZIP 파일로 생성하는 서버 실행부 추가.
- 게시물 Export: 게시물별 폴더와
제목.md, 내부images/·files/자산 폴더를 ZIP에 포함하도록 추가. - 게시물 Export: 내부
/uploads이미지·파일 URL을 ZIP 내부 상대 경로로 재작성하도록 추가. - 게시물 Export: 준비 완료된 분할 ZIP 파일을 관리자 다운로드 API로 내려받을 수 있도록 추가.
- 관리자 사이트 설정: 대기 중·생성 중 Export 작업이 있으면 Export 요청 버튼을 비활성화하도록 수정.
v1.5.21
- 게시물 Export: 작업 진행 확인용
processed_count,current_part_index,progress_message,started_at컬럼 추가. - 관리자 사이트 설정: Export 작업 카드에 진행 숫자, 진행률 바, 진행 설명, 마지막 갱신 시각 표시 추가.
- 관리자 사이트 설정: 대기 중·생성 중 Export 작업이 있으면 작업 목록을 5초 간격으로 자동 새로고침하도록 수정.
- 게시물 Export: 실제 zip 생성 워커가 붙으면
1201 / 30002같은 진행도가 표시되도록 기반 정리.
v1.5.20
- 게시물 Export: 백그라운드 작업 요청용
post_export_jobs와 분할 파일 계획용post_export_files테이블 추가. - 게시물 Export: 관리자 API에서 최근 Export 작업 목록 조회와 새 Export 작업 요청을 지원하도록 추가.
- 관리자 사이트 설정: 게시물 Import/Export 섹션에서 Export 요청, 최근 작업, 분할 파일 계획을 확인할 수 있도록 수정.
- 게시물 Export: zip 생성 워커·이메일 알림·다운로드 연결 전 1차 작업 등록 단계로 정리.
v1.5.19
- 게시물 Export: 대용량 게시물 환경을 고려해 백그라운드 분할 생성, 이메일 완료 알림, 분할/일괄 다운로드, 100일 보존 정책 방향 문서화.
v1.5.18
- 게시물 Import/Export: 백업 목적에 맞게 게시물별 폴더와 로컬 자산 폴더를 포함하는 Obsidian 호환 번들 구조로 방향 수정.
v1.5.17
- 관리자 사이트 설정: 읽기 모드의 POST·어나운스 토글을 켜진 상태여도 조작 불가로 보이도록 비활성 톤 강화.
- 게시물 Import/Export: Obsidian 호환 Markdown frontmatter 기반 1차 구현 방향 문서화.
v1.5.16
- 공개 게시글 TOC: 본문 스크롤 위치에 맞춰 현재 제목 항목을 시각적으로 강조하도록 수정.
- 공개 게시글 TOC: 목차 항목이 많을 때 TOC 영역이 자체 스크롤되며 활성 항목을 자동으로 따라가도록 수정.
- 공개 댓글: 댓글·답글 등록 버튼이 입력값이 있을 때만 활성화되도록 수정.
- 공개 댓글: 정렬 라벨 한글화와 답글 입력 영역 스타일 정리 사용자 편집분 반영.
v1.5.15
- 공개 헤더: 비로그인 상태의 사용자 메뉴 기본 아바타도
?텍스트 대신 사람 아이콘으로 표시하도록 수정.
v1.5.14
- 공개 헤더: 로그인 사용자의 아바타 이미지가 없을 때 이니셜 대신 사람 아이콘을 표시하도록 수정.
- 공개 게시글 상세: 모바일처럼 오른쪽 사이드바가 하단으로 내려가는 화면에서는 TOC를 숨기도록 수정.
- 관리자 미디어: 검색창을 글·멤버 검색과 같은 아이콘 포함 입력 스타일로 통일.
- 관리자 미디어: 미디어 라이브러리에서 파일 직접 추가 버튼을 추가하고, 현재 폴더 업로드 시 해당 폴더로 배치되도록 수정.
- 관리자 미디어: 현재 검색·필터 결과 기준 전체 선택과 선택 삭제 기능 추가.
v1.5.13
- 공개 게시글 TOC: 목차 클릭 시 기본 해시 점프 대신 부드러운 스크롤로 이동하도록 수정.
- 공개 게시글 제목 앵커: 고정 상단 헤더 높이와 여백을 반영한 scroll margin으로 이동 위치를 안정화.
v1.5.12
- 공개 게시글 상세: 오른쪽 사이드바의 Recommended 영역을 숨기고, 같은 위치에 H1~H3 기반 TOC를 표시하도록 수정.
- 공개 게시글 본문: H1~H3 제목에 TOC 링크용 앵커 ID를 부여하도록 수정.
- DB: 로컬 개발 DB에서
zenn계정을 소유자로 보정하고 기존 비활성 소유자 계정을 일반 멤버로 정리.
v1.5.11
- 관리자 멤버 상세: 기존 회원 진입 시 읽기 전용 보기 모드로 표시하고 상단 버튼을
수정하기로 변경. - 관리자 멤버 상세: 수정 모드에서만 입력 필드·셀렉트를 편집 컨트롤로 표시하고, 변경 사항이 있을 때만 저장 버튼을 활성화하도록 수정.
- 관리자 멤버 상세: 저장·업로드·비밀번호 변경 오류/성공 피드백을 우측 상단 토스트로 통일.
- 관리자 멤버 목록: 검색창 스타일을 글 목록 검색창과 같은 테두리형 입력으로 통일.
v1.5.10
- 관리자 멤버 상세: 소유자 본인, 관리자끼리 등 변경 불가한 등급 셀렉트는 UI에서 비활성화하도록 수정.
- 관리자 멤버 상세: 등급 변경 권한이 없는 세션에서는 멤버 등급을 일반 텍스트로 표시하도록 수정.
- 관리자 글 목록: 제목·슬러그·요약·본문·태그 기준 검색 입력 추가.
- 관리자 글 목록: 필터 셀렉트 화살표를 공통 SVG 아이콘과 오른쪽 여백으로 통일.
- 관리자 글 목록: 추천 표시와 제목 사이에 대표 이미지 썸네일 열 추가.
- 관리자 페이지 작성: HTML 문서 모드에서 빈 본문 또는
!입력 후 Tab으로 기본 HTML 골격을 자동 완성하도록 추가.
v1.5.9
- 관리자 대시보드: 페이지별 조회·방문자·체류·스크롤 통계 수집 및 인기 페이지 목록 추가.
- 공개 HTML 문서 페이지: Nuxt 클라이언트 통계를 거치지 않는 원문 HTML 응답도 서버에서 페이지 조회를 기록하도록 수정.
- 관리자 네비게이션 추천 사이트: 대체 텍스트와 썸네일 URL 입력 추가.
- 공개 오른쪽 사이드바 추천 사이트: 대체 텍스트가 있으면 URL 대신 표시하고, 썸네일이 있으면 파비콘 대신 표시하도록 수정.
- DB: 페이지 통계 테이블과 추천 사이트 메타데이터 컬럼 추가.
v1.5.8
- 관리자 멤버 권한 변경: 소유자가 본인 권한을 직접 낮출 수 없도록 수정.
- 관리자 멤버 목록: 상태 열에 멤버 등급을 표시하고, 비활성 회원만 보조 상태로 표시하도록 수정.
- DB: 소유자가 없는 상태일 때 기존 관리자 중 가장 오래된 계정을 소유자로 복구하는 마이그레이션 추가.
v1.5.7
- 관리자 페이지 작성/수정: 일반 텍스트 모드에서도 페이지 형식 선택창이 계속 보이도록 수정.
- 관리자 페이지 작성/수정: HTML 자산 업로드는 HTML 문서 모드에서만 보이도록 수정.
- 회원 활동 IP 기록: 로그인·회원가입·댓글·좋아요·이메일 OTP 요청에서 프록시 헤더(
x-forwarded-for)를 포함해 요청 IP를 저장하도록 수정.
v1.5.6
- 관리자 멤버 상세: 멤버 등급 선택이 즉시 저장되지 않고 저장 버튼으로만 반영되도록 수정.
- 회원 권한 변경 API: 소유자·관리자만 권한 변경 가능하도록 규칙 강화.
- 회원 권한 변경 API: 관리자는 다른 관리자·소유자를 조작할 수 없고, 소유자·관리자 등급을 부여할 수 없도록 수정.
- 회원 권한 변경 API: 마지막 소유자 권한이 사라지지 않도록 트랜잭션 잠금 안에서 검증하도록 수정.
v1.5.5
- 회원 권한에
VIP등급 추가. - 공개 게시물 API: 멤버십 글은 로그인 여부가 아니라 VIP 이상 등급(
vip/admin/owner)일 때만 조회되도록 수정. - 관리자 멤버 상세: 멤버 등급 선택 UI 추가.
- 관리자 글쓰기: 멤버십 상태 안내 문구를 VIP 이상 공개 기준으로 수정.
- 관리자 미디어: 사용자 편집분을 포함해 썸네일 탭 문구를 프로필 이미지 기준으로 정리.
- DB:
users.user_role제약에vip를 허용하는 마이그레이션 추가.
v1.5.4
- 게시물 상태:
멤버십,비공개상태 추가. - 공개 게시물 API: 멤버십 글을 공개 기본 목록에서 분리하도록 수정.
- 공개 게시물 API: 비공개 글은 사용자 화면과 공개 API에서 숨기도록 정리.
- 관리자 글쓰기: 상태 선택·툴바·목록 필터에 멤버십/비공개 상태 반영.
- 고정 페이지 상태:
초안,공개,비공개상태 추가. - 공개 페이지 API/HTML 문서 응답: 공개 상태 페이지에서만 접근되도록 수정.
- 관리자 페이지 작성/목록: 페이지 상태 선택과 목록 상태 표시 추가.
- DB: 게시물·페이지 공개 상태 제약을 확장하는 마이그레이션 추가.
v1.5.3
- 관리자 페이지 작성/수정: 새 페이지 기본 형식을 HTML 문서 모드로 변경.
- 관리자 페이지 작성/수정: 페이지 슬러그도 게시글처럼 한글 제목을 영문 슬러그로 자동 변환하도록 수정.
- 관리자 페이지 작성/수정: 페이지 형식의
기본라벨을일반 텍스트로 변경. - 관리자 페이지 작성/수정: 대표 이미지 UI 제거 및 저장 시 페이지 대표 이미지를 사용하지 않도록 정리.
- 관리자 페이지 작성/수정: HTML 자산 업로드 버튼 추가, 업로드된 파일 URL을 HTML textarea 현재 커서 위치에 삽입하도록 추가.
- DB:
pages.render_mode기본값을html_document로 변경하는 마이그레이션 추가.
v1.5.2
- 관리자 페이지 작성/수정: 게시글 작성 화면과 같은 전체 화면 에디터, 상단 저장 툴바, 접이식 오른쪽 설정 패널 구조로 변경.
- 관리자 페이지 작성/수정: 페이지 형식 선택, Page URL, 대표 이미지, 삭제 액션을 오른쪽 설정 패널로 이동.
- 관리자 페이지 작성/수정: 기본 모드 본문 에디터를 게시글과 같은 Markdown-first 에디터로 통일.
- 관리자 레이아웃: 페이지 작성/수정 경로도 전체 화면 에디터 모드로 처리하도록 수정.
v1.5.1
- 고정 페이지: 기본 Markdown 모드와 원문 HTML 문서 모드 선택 추가.
- 관리자 페이지 작성: HTML 문서 모드에서 전체 HTML 붙여넣기용 코드형 textarea 추가.
- 공개 페이지: HTML 문서 모드 페이지는
/pages/:slug에서 저장된 HTML을text/html원문으로 응답하도록 추가. - DB:
pages.render_mode컬럼과markdown/html_document제약 추가.
v1.5.0
- 관리자 글 목록: 태그 컬럼에 첫 번째 태그만 대표 태그로 표시하도록 수정.
- 관리자 글쓰기: 태그 입력 오른쪽 트리거를 기존 태그 제거가 아닌 메인 태그 선택 드롭다운으로 동작하도록 수정.
- 관리자 글쓰기: 기존 태그 부분 검색과 방향키·Enter 선택 추가.
- 관리자 글 목록·글쓰기: 태그 배지에 태그별 고유 색상 반영.
- 관리자 글쓰기: 게시물 설정 사이드바의 상태·태그 드롭다운 화살표와 닫기 버튼 아이콘 정리.
- 관리자 글·페이지 목록: 마지막 행 더보기 메뉴가 테이블 영역에 잘리던 문제 수정.
v1.4.7
- 관리자 글쓰기 라이브 모드: 문단 이동(방향키) 시 굵게·기울임 등 인라인 마크다운이 사라지던 문제 수정.
- 콘텐츠 렌더러: 인용(
>) 블록에> [!bg=색상]옵션 줄을 추가해 콜아웃과 같은 배경 프리셋 지정 지원. - 관리자 글쓰기: 소스 모드에서 라이브 모드로 전환할 때 현재 커서 줄을 라이브 화면 중앙에 가깝게 스크롤하도록 보정.
v1.4.6
- 관리자 설정: 로고 업로드가 저장 버튼 없이 즉시 DB에 반영되던 흐름을 파일 업로드 후 저장 버튼으로 반영하도록 수정.
- 관리자 설정: 메인 화면 커버에 다크모드 전용 이미지 필드 추가.
- 공개 홈:
HomeHero가 라이트·다크 커버 이미지를 테마에 맞춰 교체 표시하도록 수정. - DB:
site_settings.home_cover_dark_image_url컬럼 추가.
v1.4.5
- 공개 게시글 상세: 게시물 메타 영역의 수정 시각 표시 제거, 글쓴이용 편집 링크는 요청 SVG 아이콘으로 교체.
- 공개 목록: 홈 Latest·게시물 목록·태그 목록에서 요약이 비어 있으면 본문에서 짧은 설명을 생성해 표시.
- 공개 목록: 목록용 설명은 수동 말줄임을 붙이지 않고 전용
post-summary-clamp2줄/3줄 클래스가 실제 표시 줄 끝에서 처리하도록 보정. composables/createPostSummary.js: 게시물 요약·본문 fallback 공통 유틸 추가, 빈 단락 마커 HTML 주석은 요약에서 제거.- 게시물 작성자:
posts.author_id마이그레이션 추가 및 owner/admin 단일 계정 환경에서만 기존 글 작성자 backfill. - 관리자 게시물 저장: 새 글 작성 시 현재 관리자 세션 사용자 ID를 작성자로 저장하고, 기존 글 작성자가 비어 있으면 수정자 ID로 보정.
- 공개 게시글 상세: 관리자 여부가 아니라 로그인 회원 ID와 게시물 작성자 ID가 같을 때만 새 탭 편집 링크 표시.
- 공개 게시글 상세: 요약이 비어 있으면 본문에서 짧은 텍스트를 만들어 SEO·공유 설명에 사용.
- 회원 세션 API: 공개 화면 권한 분기를 위해
isAdmin,role응답 필드 추가.
v1.4.3
HomeHero: 오버레이 본문 줄바꿈(\n)이 미리보기·홈에서도 보이도록whitespace-pre-line적용.- 관리자 설정: 메인 화면 커버 편집 모드에서도 미리보기를 버튼 영역과 분리해 카드 폭 기준으로 크게 표시.
- 관리자 설정: 메인 화면 커버 미리보기를 실제
HomeHero오버레이 구조로 표시해 긴 텍스트 줄바꿈도 공개 화면과 동일하게 확인하도록 수정. - 관리자 설정: 메인 화면 커버 이미지 미리보기에서 이미지 폭만 360px로 제한되어 오른쪽이 비어 보이던 표시 문제 수정.
- 배포 TODO: 다음달 작업 대상으로 PostgreSQL·업로드 파일 백업/복구 시스템 설계 및 구현 항목 추가.
- 관리자 레이아웃: 공개 다크모드가 글쓰기 에디터 입력에 영향을 주지 않도록 라이트 폼 보정 스코프 축소.
- 관리자 레이아웃: 대시보드 메뉴를
/admin활성 링크로 연결. - 관리자 로그인: 일반 로그인과 동일한 다크 인증 스타일, 폼을 화면 오른쪽·내부 오른쪽 정렬.
- 관리자 대시보드: 통계 추이 막대 차트 높이·툴팁·기간별 묶음 집계 보정.
- 홈 Latest: 컴팩트 기본 보기, 리스트/컴팩트 표시 조건 수정, Featured·Latest UI 보정.
- 관리자 미디어: 종류 필터(전체·이미지·영상·음악·파일), 미사용 필터, 비디오 프레임 썸네일 추가.
- 배포 문서: NAS 운영 업데이트 절차 추가.
v1.4.2
- 관리자 글쓰기: 소스 모드 긴 문장 자동 줄바꿈 시 라인 번호 높이를 실제 wrap 높이에 맞춰 보정.
- 관리자 글쓰기: 라이브 모드에서 소스 모드로 전환할 때 현재 포커스·화면 위치에 가까운 원본 줄로 커서와 스크롤 복원.
- 관리자 글쓰기: 소스 모드에서 라이브 모드로 전환할 때 현재 textarea 커서 줄을 라이브 편집 블록에 포커스하도록 보정.
- 콘텐츠 렌더러: 단독 이미지 파일 URL은 임베드가 아니라 이미지 블록으로 렌더링하도록 보정.
- 관리자 글쓰기: 라이브 모드 이미지 블록 hover/focus 시 편집·삭제 버튼 표시, 편집 버튼으로 기존 오른쪽 이미지 설정 패널 연결.
ProseImage: URL 비어 있음·로드 실패 시 최소 높이 placeholder와 오류 안내 표시.- 관리자 라이브 미리보기: 이미지 블록을 다른 이미지 블록에 드롭하면
:::gallery로 병합(merge-images-to-gallery). - 관리자 라이브 미리보기: 갤러리 이미지를 블록 사이 삽입선에 드롭하면 단일 이미지 블록으로 분리(
extract-gallery-image), 갤러리 1장 남으면 단일 이미지로 정리·0장이면 제거. - 관리자 라이브 미리보기: 단독 이미지 URL 줄도 이미지 드래그 병합·갤러리 추가 대상으로 인식하도록 보정.
- 관리자 라이브 미리보기: 단일 이미지 블록을 기존 갤러리 셀에 드롭해 갤러리에 추가(
insert-image-to-gallery). - 콘텐츠 렌더러: 갤러리를 최대 3개 단위 행으로 나누고 이미지 자연 비율에 따라 셀 너비를 조정.
- 관리자 라이브 미리보기: 갤러리 블록도 포커스·방향키 이동·편집/삭제 버튼 접근이 가능하도록 보정.
- 관리자 라이브 미리보기: 갤러리 전체 편집/삭제 버튼을 개별 이미지 편집/삭제 버튼으로 변경.
- 관리자 글쓰기: 블록 설정 패널 바깥 클릭 시 닫힘, 갤러리 이미지 추가 미디어 모달 중 패널 유지.
- 콘텐츠 렌더러: 다크모드 기본 인용 블록 텍스트를 어두운 색으로 고정해 가독성 보정.
- 콘텐츠 렌더러: 공개 본문 리스트 번호·점 색상을 글쓰기 화면과 같은 파란 계열로 통일.
- 공개 레이아웃: 다크모드에서 좌우 사이드바 배경을 홈페이지 기본 배경(
--site-bg)과 동일하게 통일. - 배포 문서: NAS 운영 업데이트 절차(
git pull→ DB 마이그레이션 →docker compose up -d --build) 추가. - 홈 Latest: 기본·Default 보기 방식이 컴팩트 형태로 보이도록 리스트/컴팩트 썸네일 표시 조건 수정.
- 홈 Featured: 대표 이미지 없는 추천 글 썸네일을 게시물 제목 placeholder로 통일.
- 홈 Latest: 게시물이 적을 때 보기 방식 메뉴가 잘리지 않도록 섹션 최소 높이 추가.
- 관리자 로그인: 일반 로그인과 같은 다크 인증 스타일을 적용하고, 관리자 구분용으로 폼을 오른쪽 배치 및 내부 오른쪽 정렬.
- 관리자 대시보드: 통계 추이 막대 차트가 보이지 않던 CSS 높이 비율 문제 수정.
- 관리자 대시보드: 통계 추이 막대 hover/focus 시 날짜와 정확한 값을 표시하는 툴팁 추가.
- 관리자 대시보드: 30일 이상 통계 추이 차트는 기간별 묶음 집계로 표시해 카드 폭 넘침 방지.
- 관리자 레이아웃: 사이드바 대시보드 항목을 비활성 표시에서
/admin활성 링크로 변경. - 관리자 레이아웃: 공개 사이트 다크모드가 관리자 입력·패널 색상에 영향을 주지 않도록
admin-layout라이트 테마 스코프 추가. - 관리자 글쓰기: 라이트 폼 컨트롤 보정이 글쓰기 에디터 입력까지 덮지 않도록 스코프 축소.
- 관리자 미디어: 미디어 라이브러리에 전체·이미지·영상·음악·파일 종류 필터 추가.
- 관리자 미디어: 게시물·페이지·사이트 설정·회원 프로필에서 참조되지 않는 미사용 미디어만 보는 필터 추가.
- 관리자 미디어: 비디오 항목은 초반 프레임을 브라우저에서 추출해 목록 썸네일로 표시.
v1.4.1
- 관리자 미디어 업로드: 이미지·비디오·오디오·문서별 최대 크기 한도 분리(
MAX_VIDEO_FILE_SIZE등). 기본 비디오 200MB. - 관리자 글쓰기: 업로드 크기 초과·API 413 시 토스트 오류 표시, 미디어 모달에 최대 용량 안내 추가.
lib/upload-size-limit.js: 클라이언트 번들에서node:path제거(500·hydration 경고 수정).- 임베드 저장 형식: 새 임베드 삽입·라이브 편집·레거시 블록 변환 시
:::embed대신 단독 URL 한 줄로 저장하도록 통일, 단독 URL 줄도 블록 설정 패널 대상으로 인식. - 관리자 글쓰기: 라이브 모드 임베드를 URL 입력 카드 없이 즉시 프리뷰로 표시, 임베드·비디오·오디오·파일 카드 삭제 버튼과 방향키 이동·삭제·아래 줄 추가 키보드 조작 지원.
- 관리자 글쓰기: 라이브 모드 제목 Enter 시 현재 제목 저장 후 아래 빈 문단 추가, 원문 편집 상태로 전환되던 흐름 수정.
- 관리자 글쓰기: 게시물 상단 제목 Enter 시 소스 모드 강제 전환 제거, 라이브 모드 상단 스크롤·본문 첫 줄 포커스 보정.
v1.4.0
- 콘텐츠 렌더러:
:::video,:::audio,:::filefenced block 파싱과ProseVideo·ProseAudio·ProseFile카드 렌더링 연결. - 관리자 글쓰기: 슬래시 명령에 비디오·오디오·파일 블록 템플릿 추가.
- 임베드: X/Twitter iframe 폭·높이·외곽 여백 보정, Mastodon 공개 게시물
/embed렌더링과 postMessage 기반 자동 높이 조절 추가. - 관리자 글쓰기: 라이브/스타일 모드의
:::embed블록에 URL 입력 카드와 적용 미리보기 전환 버튼 표시. - 관리자 글쓰기:
/video,/audio,/file슬래시 명령을 미디어 선택·업로드 모달과 연결해 업로드 후 URL 자동 채우기 지원. - 콘텐츠 렌더러: 단독
http(s)URL 한 줄을:::embed블록과 동일하게 자동 임베드 렌더링. - 미디어 라이브러리: 이미지 외 비디오·오디오·문서 파일 업로드와 목록 표시 지원.
v1.3.9
- NAS 마이그레이션:
psql이 while 루프 stdin을 소비해 001만 처리되던migrate-production-db.sh버그 수정.
v1.3.8
- NAS 마이그레이션:
.env.production이 없을 때.env또는 실행 중 DB 컨테이너 환경 변수로 동작하도록migrate-production-db.sh보정.
v1.3.7
- NAS 마이그레이션: npm 없는 NAS 호스트에서도 실행 가능한
scripts/migrate-production-db.sh추가. - 운영 문서:
db:migrate:prod:*안내를sh scripts/migrate-production-db.sh기준으로 수정.
v1.3.6
- DB 마이그레이션:
schema_migrations적용 이력 관리와db:migrate:prod,db:migrate:prod:status,db:migrate:prod:baseline명령 추가. - 운영 보호: 기존 운영 스키마가 있는데 적용 이력이 없으면 001부터 자동 실행하지 않고 baseline 안내 후 중단.
v1.3.5
- 관리자 로그인: 자동완성 값 동기화·제출 중만 버튼 비활성. 운영 HTTP에서 Secure 쿠키 미저장으로 로그인 루프되던 문제 수정.
server/utils/session-cookie.js로 path/·x-forwarded-protoSecure 통일. - 통계:
lib/analytics-shared.js분리로 클라이언트node:crypto오류 수정. 통계 조회 시작일 JS 계산으로date >= integer오류 수정. - 관리자 대시보드: 상단 요약 한 줄·7일~12개월 차트·접속자 목록(게시물 제목·유지시간).
trends일자별 0 채움. - 통계 보관: 일별 집계 누적 보관, 방문자 해시 32일 초과 정리, 실시간 세션 90초 TTL.
v1.3.4
- 통계 확장: 체류시간·스크롤 구간(25/50/75/100%)·실시간 접속 세션. 마이그레이션
031_analytics_engagement_and_realtime.sql. POST /api/analytics/heartbeat,GET /admin/api/analytics/realtime. 로그인 사용자는 닉네임·아바타·현재 경로로 접속자 목록 표시.- 관리자 대시보드: 현재 접속자·평균 체류·50% 스크롤·실시간 접속자 목록·인기 글 참여 지표 추가.
v1.3.3
- 자체 최소 통계: 일별 익명 방문자 해시·사이트/게시물 일별 집계. 마이그레이션
030_analytics_daily_stats.sql. 원문 IP·User-Agent 미저장. POST /api/analytics/pageview,plugins/site-analytics.client.js(pageview·15초+50% 스크롤 read).- 관리자 대시보드: 오늘/7일 방문·30일 조회·인기 게시물 Top 5.
GET /admin/api/analytics/summary,GET /admin/api/analytics/posts.
v1.3.2
- 스플래시:
SITE_BRAND_LOGO_TEXTlocalStorage 사용 중단·레거시 키 제거. 스플래시 문구는 사이트 제목, 이미지는SITE_BRAND_LOGO_URL만 캐시. - 관리자 설정 내비: 타임존·메인 화면·어나운스 바·Import/Export·스팸 필터 아이콘 추가.
- 어나운스 바: 클라이언트에서 숨김 여부 확인 후 아래로 슬라이드 인. 닫기·7일간 보지 않기 시 위로 슬라이드 아웃 후 제거(깜빡임 방지).
- 어나운스 바: X는 이번 방문(세션)만 숨김,
7일간 보지 않기텍스트 버튼으로 localStorage 7일 스누즈.
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으로 표시, 저장은
형식(레거시호환). - 미리보기 문단 클릭→작성 모드 전환은 제거(요청과 다름). 미리보기 그대로 편집(WYSIWYG)은 후속 작업.
- 패키지 버전
1.2.5로 갱신.
v1.2.4
- 이미지 캡션:
ProseImagecaption 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: 따옴표 캡션 우선, 레거시
만 대괄호 문구를 표시용으로 유지. - 패키지 버전
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 파일명을 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제거: DB025_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.location에recommended추가(마이그레이션024_navigation_recommended_location.sql), 관리자 메뉴에 추천 사이트 탭·공개 APIrecommended·우측 사이드 카드 목록.- 외부 링크 파비콘 표시용
lib/external-favicon-url.js(Googles2/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
- 관리자 게시물/페이지 입력 스키마에서 레거시 블록 배열·객체 본문 값을 저장용 마크다운 문자열로 정규화하도록 보강.
AdminMarkdownEditor와AdminPostForm에서 기존 자동 저장본 또는 레거시 블록 본문을 복원할 때 마크다운 문자열로 변환하도록 수정.- 공통
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-firstAdminMarkdownEditor로 교체. - 새 에디터에 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.dPermission 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_PASSWORDfallback 없이MEMBER_SESSION_SECRET필수 사용으로 분리. - JavaScript 문법 점검 스크립트(
scripts/check-js-syntax.js)와lint·test·verifynpm 스크립트 추가. npm audit fix로 Nitro 취약점 권고를 반영하고 취약점 0건 확인.- Docker compose 설정 검증과 Docker 앱 이미지 빌드 검증 진행.
.env.production의MEMBER_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.jsbuildPublicPrimaryTree: 평면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.configruntimeConfig:resendApiKey,resendFromEmail,emailOtpPepper.
v0.0.98
SidebarPrimaryNavList:navRowShell에w-full추가해site-panel-hover배경이 행 가로 전체를 쓰도록 함.LeftSidebar: 푸터 APIfooter링크flex-wrap·navmin-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/navigation의primary는 트리 응답, 좌측 사이드바는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및 목록 논리 폴더는 **미분류**로 통일; 회원 아바타 메타는썸네일. listMediaItems에avatarOwner부착, 썸네일 파일의 관리자 삭제·이름 변경·임의 논리 폴더 이동 차단, 예약 폴더썸네일의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/reorderAPI를 추가해 관리용 태그의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영역에PostCommentsUI를 연결해 로그인 회원 댓글/답글 작성과 댓글 목록 표시를 구현. 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.jsonimports에 없어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.jscontent에composables·modules·plugins스캔 경로 추가.
v0.0.62
- 다크 인증 페이지에서
input이 UA 기본색으로 남아 글자·아이콘이 안 보이던 문제를main.css의.auth-form-input(글자색·캐럿·placeholder·autofill)로 보정. AuthPasswordVisibilityToggle은 Tailwind 의존을 줄이고scopedCSS로 버튼·아이콘 크기·포커스 링을 고정.- 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.jsonimports로./.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로 우측만 호흡 유지. MainColumn을lg: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 dev가scripts/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 상태 기반 좌측 사이드바 열기/닫기 기능 추가.
- 메뉴 열림 상태를
localStorage의MENU_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 저장소 초기 기준점 설정 진행.