콘텐츠 작업

이 페이지

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

관리자 접근

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

대시보드에 표시되는 항목:

  • 사이드바 - Collection, 미디어, 설정으로의 내비게이션
  • 콘텐츠 목록 - 선택한 Collection의 항목들
  • 빠른 작업 - 새 콘텐츠 생성, 일괄 작업

콘텐츠 생성

  1. 사이드바에서 Collection 이름 클릭 (예: Posts)

  2. New Post (또는 해당 Collection에 맞는 버튼) 클릭

  3. 필수 필드 입력:

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

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

    • Status - 초안, 게시됨, 또는 보관됨
    • 게시 날짜 - 게시 시점
    • 카테고리와 태그 - 택소노미 할당
  6. 저장 클릭

초안은 관리자에서만 표시됩니다. 상태를 게시됨으로 변경하면 사이트에서 콘텐츠가 표시됩니다.

콘텐츠 상태

모든 항목에는 세 가지 상태 중 하나가 있습니다:

상태표시 범위용도
초안관리자만작업 중
게시됨공개라이브 콘텐츠
보관됨관리자만폐기된 콘텐츠

편집기 사이드바의 드롭다운으로 상태를 변경합니다.

리치 텍스트 편집기

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. 삽입 클릭

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

콘텐츠 편집

  1. 콘텐츠가 포함된 Collection으로 이동

  2. 편집할 항목 클릭

  3. 변경 사항 적용

  4. 저장 클릭

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

수정 기록

EmDash는 콘텐츠 변경 사항을 추적합니다. 편집기 사이드바에서 수정 기록에 접근:

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

  2. 타임스탬프가 있는 이전 버전 목록 확인

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

  4. 복원을 클릭하여 해당 버전으로 되돌리기

수정을 복원하면 복원된 콘텐츠로 새 수정이 생성됩니다. 원래 수정 기록은 보존됩니다.

일괄 작업

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

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

  2. 일괄 작업 드롭다운 클릭

  3. 작업 선택:

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

검색 및 필터링

검색

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

필터

콘텐츠 목록 필터링:

  • 상태 - 초안, 게시됨, 보관됨
  • 날짜 범위 - 생성 또는 수정 날짜
  • 작성자 - 콘텐츠 생성자
  • 택소노미 - 카테고리 또는 태그 할당

필터 초기화를 클릭하여 리셋.

콘텐츠 예약

미래 날짜에 콘텐츠 게시 예약:

  1. 콘텐츠 생성 또는 편집

  2. 상태를 초안으로 설정

  3. 게시 날짜를 미래 날짜와 시간으로 설정

  4. 저장 클릭

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

콘텐츠 삭제

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

편집기에서

  1. 삭제할 콘텐츠 열기

  2. 도구 모음에서 삭제 클릭

  3. 삭제 확인

목록에서

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

  2. 일괄 작업 > 삭제 클릭

  3. 삭제 확인

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

번역 생성

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

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

  3. 대상 언어 옆의 번역 클릭

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

  5. 저장 클릭

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

번역 간 전환

번역 패널에는 구성된 모든 언어가 표시됩니다. 기존 번역 옆의 편집을 클릭하여 직접 이동합니다. 현재 언어는 체크 표시로 표시됩니다.

언어 필터

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

각 번역에는 자체 슬러그, 상태, 수정 기록이 있습니다. 번역을 독립적으로 게시, 예약, 관리할 수 있습니다.

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

다음 단계