이 가이드는 EmDash 관리 대시보드를 사용하여 콘텐츠를 생성, 편집 및 관리하는 방법을 다룹니다.
관리자 접근
사이트의 /_emdash/admin을 브라우저에서 엽니다. 설정 중에 생성한 자격 증명으로 로그인합니다.
대시보드에는 다음이 표시됩니다:
- 사이드바 - 컬렉션, 미디어 및 설정으로의 탐색
- 콘텐츠 목록 - 선택한 컬렉션의 항목
- 빠른 작업 - 새 콘텐츠 생성, 일괄 작업
콘텐츠 생성
-
사이드바에서 컬렉션 이름(예: Posts)을 클릭
-
New Post(또는 컬렉션에 해당하는 버튼)를 클릭
-
필수 필드를 입력:
- Title - 콘텐츠 표시 이름
- Slug - URL 식별자(제목에서 자동 생성, 편집 가능)
-
리치 텍스트 편집기로 콘텐츠 추가
-
사이드바에서 메타데이터 설정:
- Status - Draft, Published 또는 Archived
- Publication date - 게시 시점
- Categories and tags - 분류 할당
-
Save 클릭
콘텐츠 상태
각 항목에는 세 가지 상태 중 하나가 있습니다:
| 상태 | 표시 | 사용 사례 |
|---|---|---|
| Draft | 관리자만 | 진행 중인 작업 |
| Published | 공개 | 라이브 콘텐츠 |
| Archived | 관리자만 | 은퇴한 콘텐츠 |
편집기 사이드바의 드롭다운으로 상태를 변경합니다.
리치 텍스트 편집기
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 |
이미지 삽입
-
도구 모음의 이미지 버튼 클릭
-
미디어 라이브러리에서 기존 이미지 선택 또는 새 이미지 업로드
-
대체 텍스트 추가(접근성에 필수)
-
정렬 및 크기 옵션 조정
-
Insert 클릭
HTML 블록
/html을 사용하여 원시 HTML 블록을 삽입합니다. 서드파티 위젯, 사용자 지정 마크업 또는 표준 블록 유형에 맞지 않는 콘텐츠 임베드에 유용합니다. EmDash가 네이티브 Portable Text 블록으로 변환할 수 없는 마크업이 포함된 WordPress 또는 Contentful에서 콘텐츠를 가져올 때도 HTML 블록이 자동으로 생성됩니다.
추가 제공업체의 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
// Add your providers here
],
});
---
<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 } }}
/>
콘텐츠 편집
-
콘텐츠가 포함된 컬렉션으로 이동
-
편집할 항목 클릭
-
변경 사항 적용
-
Save 클릭
게시된 콘텐츠의 변경 사항은 사이트에 즉시 표시됩니다.
개정 기록
EmDash는 콘텐츠 변경 사항을 추적합니다. 편집기 사이드바에서 개정 기록에 액세스:
-
편집기 사이드바에서 Revisions 클릭
-
타임스탬프가 있는 이전 버전 목록 보기
-
개정을 클릭하여 미리보기
-
Restore를 클릭하여 해당 버전으로 되돌리기
일괄 작업
여러 항목에 대해 한 번에 작업 수행:
-
체크박스를 사용하여 콘텐츠 목록에서 항목 선택
-
Bulk Actions 드롭다운 클릭
-
작업 선택:
- Publish - 선택한 모든 항목을 게시됨으로 설정
- Archive - 선택한 모든 항목을 보관됨으로 설정
- Delete - 선택한 항목 영구 삭제
-
작업 확인
검색 및 필터링
검색
검색 상자를 사용하여 제목 또는 콘텐츠로 검색. 검색은 대소문자를 구분하지 않으며 부분 단어와 일치합니다.
필터
콘텐츠 목록 필터링:
- Status - Draft, Published, Archived
- Date range - 생성 또는 수정 날짜
- Author - 콘텐츠 생성자
- Taxonomy - 카테고리 또는 태그 할당
Clear Filters를 클릭하여 재설정.
콘텐츠 예약
향후 날짜에 게시할 콘텐츠 예약:
-
콘텐츠 생성 또는 편집
-
상태를 Draft로 설정
-
Publication date를 미래 날짜 및 시간으로 설정
-
Save 클릭
게시 날짜가 되면 콘텐츠가 자동으로 게시됩니다.
콘텐츠 삭제
편집 화면 또는 콘텐츠 목록에서 콘텐츠 삭제:
편집기에서
-
삭제할 콘텐츠 열기
-
도구 모음에서 Delete 클릭
-
삭제 확인
목록에서
-
체크박스를 사용하여 항목 선택
-
Bulk Actions > Delete 클릭
-
삭제 확인
콘텐츠 API
프로그래밍 방식 액세스에는 EmDash 관리 API를 사용합니다.
콘텐츠 생성
다음 요청은 초안 게시물을 생성합니다:
POST /_emdash/api/content/posts
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "My New Post",
"slug": "my-new-post",
"content": "<p>Post content here</p>",
"status": "draft"
}
콘텐츠 업데이트
다음 요청은 기존 게시물을 업데이트하고 게시합니다:
PUT /_emdash/api/content/posts/my-new-post
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "Updated Title",
"status": "published"
}
콘텐츠 삭제
다음 요청은 게시물을 영구적으로 삭제합니다:
DELETE /_emdash/api/content/posts/my-new-post
Authorization: Bearer YOUR_API_TOKEN
콘텐츠 번역
i18n이 활성화된 경우, 모든 콘텐츠 항목의 번역을 생성할 수 있습니다.
번역 생성
-
번역할 콘텐츠 항목 열기
-
편집기 사이드바에서 Translations 패널 찾기
-
대상 로케일 옆의 Translate 클릭
-
미리 채워진 콘텐츠 편집 — 새 언어에 맞게 제목, 슬러그, 본문 조정
-
Save 클릭
새 번역은 원본 항목에 연결되며 초안으로 시작됩니다. 번역이 준비되면 독립적으로 게시합니다.
번역 간 전환
Translations 패널에 구성된 모든 로케일이 표시됩니다. 기존 번역 옆의 Edit를 클릭하여 직접 이동합니다. 현재 로케일은 체크 표시로 표시됩니다.
로케일 필터
콘텐츠 목록에서 도구 모음의 로케일 드롭다운을 사용하여 언어별로 항목을 필터링합니다. 각 항목은 전용 열에 로케일을 표시합니다.
구성, 쿼리 및 언어 전환기에 대한 전체 세부 정보는 국제화 가이드를 참조하세요.
다음 단계
- Querying Content - 템플릿에서 콘텐츠 검색
- Media Library - 파일 업로드 및 관리
- Taxonomies - 카테고리 및 태그로 콘텐츠 구성
- Internationalization - 다국어 콘텐츠 및 번역