콘텐츠 작업

이 페이지

이 가이드는 EmDash 관리 대시보드를 사용하여 콘텐츠를 생성, 편집 및 관리하는 방법을 다룹니다.

관리자 접근

사이트의 /_emdash/admin을 브라우저에서 엽니다. 설정 중에 생성한 자격 증명으로 로그인합니다.

대시보드에는 다음이 표시됩니다:

  • 사이드바 - 컬렉션, 미디어 및 설정으로의 탐색
  • 콘텐츠 목록 - 선택한 컬렉션의 항목
  • 빠른 작업 - 새 콘텐츠 생성, 일괄 작업

콘텐츠 생성

  1. 사이드바에서 컬렉션 이름(예: Posts)을 클릭

  2. New Post(또는 컬렉션에 해당하는 버튼)를 클릭

  3. 필수 필드를 입력:

    • Title - 콘텐츠 표시 이름
    • Slug - URL 식별자(제목에서 자동 생성, 편집 가능)
  4. 리치 텍스트 편집기로 콘텐츠 추가

  5. 사이드바에서 메타데이터 설정:

    • Status - Draft, Published 또는 Archived
    • Publication date - 게시 시점
    • Categories and tags - 분류 할당
  6. 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

이미지 삽입

  1. 도구 모음의 이미지 버튼 클릭

  2. 미디어 라이브러리에서 기존 이미지 선택 또는 새 이미지 업로드

  3. 대체 텍스트 추가(접근성에 필수)

  4. 정렬 및 크기 옵션 조정

  5. 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 } }}
/>

콘텐츠 편집

  1. 콘텐츠가 포함된 컬렉션으로 이동

  2. 편집할 항목 클릭

  3. 변경 사항 적용

  4. Save 클릭

게시된 콘텐츠의 변경 사항은 사이트에 즉시 표시됩니다.

개정 기록

EmDash는 콘텐츠 변경 사항을 추적합니다. 편집기 사이드바에서 개정 기록에 액세스:

  1. 편집기 사이드바에서 Revisions 클릭

  2. 타임스탬프가 있는 이전 버전 목록 보기

  3. 개정을 클릭하여 미리보기

  4. Restore를 클릭하여 해당 버전으로 되돌리기

일괄 작업

여러 항목에 대해 한 번에 작업 수행:

  1. 체크박스를 사용하여 콘텐츠 목록에서 항목 선택

  2. Bulk Actions 드롭다운 클릭

  3. 작업 선택:

    • Publish - 선택한 모든 항목을 게시됨으로 설정
    • Archive - 선택한 모든 항목을 보관됨으로 설정
    • Delete - 선택한 항목 영구 삭제
  4. 작업 확인

검색 및 필터링

검색

검색 상자를 사용하여 제목 또는 콘텐츠로 검색. 검색은 대소문자를 구분하지 않으며 부분 단어와 일치합니다.

필터

콘텐츠 목록 필터링:

  • Status - Draft, Published, Archived
  • Date range - 생성 또는 수정 날짜
  • Author - 콘텐츠 생성자
  • Taxonomy - 카테고리 또는 태그 할당

Clear Filters를 클릭하여 재설정.

콘텐츠 예약

향후 날짜에 게시할 콘텐츠 예약:

  1. 콘텐츠 생성 또는 편집

  2. 상태를 Draft로 설정

  3. Publication date를 미래 날짜 및 시간으로 설정

  4. Save 클릭

게시 날짜가 되면 콘텐츠가 자동으로 게시됩니다.

콘텐츠 삭제

편집 화면 또는 콘텐츠 목록에서 콘텐츠 삭제:

편집기에서

  1. 삭제할 콘텐츠 열기

  2. 도구 모음에서 Delete 클릭

  3. 삭제 확인

목록에서

  1. 체크박스를 사용하여 항목 선택

  2. Bulk Actions > Delete 클릭

  3. 삭제 확인

콘텐츠 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이 활성화된 경우, 모든 콘텐츠 항목의 번역을 생성할 수 있습니다.

번역 생성

  1. 번역할 콘텐츠 항목 열기

  2. 편집기 사이드바에서 Translations 패널 찾기

  3. 대상 로케일 옆의 Translate 클릭

  4. 미리 채워진 콘텐츠 편집 — 새 언어에 맞게 제목, 슬러그, 본문 조정

  5. Save 클릭

새 번역은 원본 항목에 연결되며 초안으로 시작됩니다. 번역이 준비되면 독립적으로 게시합니다.

번역 간 전환

Translations 패널에 구성된 모든 로케일이 표시됩니다. 기존 번역 옆의 Edit를 클릭하여 직접 이동합니다. 현재 로케일은 체크 표시로 표시됩니다.

로케일 필터

콘텐츠 목록에서 도구 모음의 로케일 드롭다운을 사용하여 언어별로 항목을 필터링합니다. 각 항목은 전용 열에 로케일을 표시합니다.

구성, 쿼리 및 언어 전환기에 대한 전체 세부 정보는 국제화 가이드를 참조하세요.

다음 단계