이 가이드는 EmDash 관리자 대시보드를 사용하여 콘텐츠를 생성, 편집, 관리하는 방법을 다룹니다.
관리자 접근
사이트의 /_emdash/admin을 브라우저에서 엽니다. 설정 시 생성한 자격 증명으로 로그인합니다.
대시보드에 표시되는 항목:
- 사이드바 - Collection, 미디어, 설정으로의 내비게이션
- 콘텐츠 목록 - 선택한 Collection의 항목들
- 빠른 작업 - 새 콘텐츠 생성, 일괄 작업
콘텐츠 생성
-
사이드바에서 Collection 이름 클릭 (예: Posts)
-
New Post (또는 해당 Collection에 맞는 버튼) 클릭
-
필수 필드 입력:
- Title - 콘텐츠의 표시 이름
- Slug - URL 식별자 (제목에서 자동 생성, 편집 가능)
-
리치 텍스트 편집기로 콘텐츠 추가
-
사이드바에서 메타데이터 설정:
- Status - 초안, 게시됨, 또는 보관됨
- 게시 날짜 - 게시 시점
- 카테고리와 태그 - 택소노미 할당
-
저장 클릭
초안은 관리자에서만 표시됩니다. 상태를 게시됨으로 변경하면 사이트에서 콘텐츠가 표시됩니다.
콘텐츠 상태
모든 항목에는 세 가지 상태 중 하나가 있습니다:
| 상태 | 표시 범위 | 용도 |
|---|---|---|
| 초안 | 관리자만 | 작업 중 |
| 게시됨 | 공개 | 라이브 콘텐츠 |
| 보관됨 | 관리자만 | 폐기된 콘텐츠 |
편집기 사이드바의 드롭다운으로 상태를 변경합니다.
리치 텍스트 편집기
EmDash 편집기는 다음을 지원합니다:
- 제목 - H2부터 H6
- 서식 - 굵게, 기울임, 밑줄, 취소선
- 목록 - 순서 있는 목록과 순서 없는 목록
- 링크 - 내부 및 외부
- 이미지 - 미디어 라이브러리에서 삽입
- 코드 블록 - 구문 강조 포함
- HTML 블록 - 사용자 정의 임베드 및 위젯을 위한 원시 HTML
- 임베드 - YouTube, Vimeo, Twitter
- 섹션 -
/section명령을 통한 재사용 가능한 콘텐츠 블록
슬래시 명령
/를 입력하여 빠른 삽입 명령에 접근:
| 명령 | 작업 |
|---|---|
/section | 재사용 가능한 섹션 삽입 |
/image | 미디어 라이브러리에서 이미지 삽입 |
/code | 코드 블록 삽입 |
/html | 원시 HTML 블록 삽입 |
키보드 단축키
| 작업 | 단축키 |
|---|---|
| 굵게 | Ctrl/Cmd + B |
| 기울임 | Ctrl/Cmd + I |
| 링크 | Ctrl/Cmd + K |
| 실행 취소 | Ctrl/Cmd + Z |
| 다시 실행 | Ctrl/Cmd + Shift + Z |
| 저장 | Ctrl/Cmd + S |
이미지 삽입
-
도구 모음의 이미지 버튼 클릭
-
미디어 라이브러리에서 기존 이미지를 선택하거나 새 이미지를 업로드
-
대체 텍스트 추가 (접근성을 위해 필수)
-
정렬 및 크기 옵션 조정
-
삽입 클릭
HTML 블록
/html을 사용하여 원시 HTML 블록을 삽입합니다. 이것은 서드파티 위젯, 사용자 정의 마크업 또는 표준 블록 유형에 맞지 않는 콘텐츠를 임베드하는 데 유용합니다. HTML 블록은 EmDash가 네이티브 Portable Text 블록으로 변환할 수 없는 마크업을 포함하는 WordPress 또는 Contentful에서 콘텐츠를 가져올 때도 자동으로 생성됩니다.
추가 프로바이더의 iframe을 허용하려면 Portable Text 렌더링에서 htmlBlock 컴포넌트를 오버라이드합니다:
---
// src/components/MyHtmlBlock.astro
import sanitizeHtml from "sanitize-html";
const { node } = Astro.props;
if (!node?.html) {
return null;
}
const sanitized = sanitizeHtml(node.html, {
allowedTags: [...sanitizeHtml.defaults.allowedTags, "img", "span", "iframe"],
allowedAttributes: {
...sanitizeHtml.defaults.allowedAttributes,
"*": ["class", "id", "data-*", "style"],
iframe: ["src", "width", "height", "frameborder", "allow", "allowfullscreen"],
img: ["src", "srcset", "alt", "title", "width", "height", "loading"],
},
allowedIframeHostnames: [
"www.youtube.com",
"player.vimeo.com",
"iframe.videodelivery.net", // Cloudflare Stream
// 여기에 프로바이더 추가
],
});
---
<div class="html-block" set:html={sanitized} />
그런 다음 <PortableText>에 전달합니다:
---
import { PortableText } from "emdash/ui";
import MyHtmlBlock from "../components/MyHtmlBlock.astro";
---
<PortableText
value={post.data.content}
components={{ type: { htmlBlock: MyHtmlBlock } }}
/>
콘텐츠 편집
-
콘텐츠가 포함된 Collection으로 이동
-
편집할 항목 클릭
-
변경 사항 적용
-
저장 클릭
게시된 콘텐츠의 변경 사항은 사이트에 즉시 반영됩니다.
수정 기록
EmDash는 콘텐츠 변경 사항을 추적합니다. 편집기 사이드바에서 수정 기록에 접근:
-
편집기 사이드바에서 Revisions 클릭
-
타임스탬프가 있는 이전 버전 목록 확인
-
수정을 클릭하여 미리보기
-
복원을 클릭하여 해당 버전으로 되돌리기
수정을 복원하면 복원된 콘텐츠로 새 수정이 생성됩니다. 원래 수정 기록은 보존됩니다.
일괄 작업
여러 항목에 대해 한 번에 작업 수행:
-
콘텐츠 목록의 체크박스를 사용하여 항목 선택
-
일괄 작업 드롭다운 클릭
-
작업 선택:
- 게시 - 선택한 모든 항목을 게시됨으로 설정
- 보관 - 선택한 모든 항목을 보관됨으로 설정
- 삭제 - 선택한 항목을 영구 삭제
-
작업 확인
검색 및 필터링
검색
검색 상자를 사용하여 제목이나 콘텐츠로 검색합니다. 검색은 대소문자를 구분하지 않으며 부분 단어도 일치합니다.
필터
콘텐츠 목록 필터링:
- 상태 - 초안, 게시됨, 보관됨
- 날짜 범위 - 생성 또는 수정 날짜
- 작성자 - 콘텐츠 생성자
- 택소노미 - 카테고리 또는 태그 할당
필터 초기화를 클릭하여 리셋.
콘텐츠 예약
미래 날짜에 콘텐츠 게시 예약:
-
콘텐츠 생성 또는 편집
-
상태를 초안으로 설정
-
게시 날짜를 미래 날짜와 시간으로 설정
-
저장 클릭
게시 날짜가 되면 콘텐츠가 자동으로 게시됩니다.
콘텐츠 삭제
편집 화면 또는 콘텐츠 목록에서 콘텐츠 삭제:
편집기에서
-
삭제할 콘텐츠 열기
-
도구 모음에서 삭제 클릭
-
삭제 확인
목록에서
-
체크박스를 사용하여 항목 선택
-
일괄 작업 > 삭제 클릭
-
삭제 확인
콘텐츠 API
프로그래밍 방식의 접근에는 EmDash 관리자 API를 사용합니다.
콘텐츠 생성
다음 요청은 초안 게시물을 생성합니다:
POST /_emdash/api/content/posts
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "새 게시물",
"slug": "new-post",
"content": "<p>게시물 내용</p>",
"status": "draft"
}
콘텐츠 업데이트
다음 요청은 기존 게시물을 업데이트하고 게시합니다:
PUT /_emdash/api/content/posts/new-post
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "업데이트된 제목",
"status": "published"
}
콘텐츠 삭제
다음 요청은 게시물을 영구 삭제합니다:
DELETE /_emdash/api/content/posts/new-post
Authorization: Bearer YOUR_API_TOKEN
콘텐츠 번역
i18n이 활성화된 경우 모든 콘텐츠 항목의 번역을 만들 수 있습니다.
번역 생성
-
번역할 콘텐츠 항목 열기
-
편집기 사이드바에서 Translations 패널 찾기
-
대상 언어 옆의 번역 클릭
-
사전 채워진 콘텐츠 편집 — 새 언어에 맞게 제목, 슬러그, 본문 조정
-
저장 클릭
새 번역은 원본 항목에 연결되며 초안으로 시작됩니다. 번역이 준비되면 독립적으로 게시하세요.
번역 간 전환
번역 패널에는 구성된 모든 언어가 표시됩니다. 기존 번역 옆의 편집을 클릭하여 직접 이동합니다. 현재 언어는 체크 표시로 표시됩니다.
언어 필터
콘텐츠 목록에서 도구 모음의 언어 드롭다운을 사용하여 언어별로 항목을 필터링합니다. 각 항목은 전용 열에 언어를 표시합니다.
각 번역에는 자체 슬러그, 상태, 수정 기록이 있습니다. 번역을 독립적으로 게시, 예약, 관리할 수 있습니다.
구성, 쿼리, 언어 전환기에 대한 전체 세부 사항은 국제화 가이드를 참조하세요.