본문 바로가기
소프트웨어

[Docusaurus] Utterances 다크 모드 적용하기

by TaeGyeong Lee 2024. 8. 10.

개요 

Docusaurus 프로젝트 다크 모드 활성화 시 Utterances 테마도 다크 모드가 되도록 만들어 보겠습니다. 

 

적용 

/src/components/HomepageFeatures/Comment.js에 아래 코드 몇 줄을 추가해 주세요.

import React, { useEffect, useRef } from "react";
import { useColorMode } from "@docusaurus/theme-common"; // <-- 추가해 주세요.

function Comment() {
  const containerRef = useRef(null);
  const { colorMode } = useColorMode(); // <-- 추가해 주세요.

  useEffect(() => {
    const createUtterancesEl = () => {
      const script = document.createElement("script");

      script.src = "https://utteranc.es/client.js";
      script.setAttribute("repo", "hanarotg/hanarotg.github.io");
      script.setAttribute("issue-term", "title");
      script.setAttribute("label", "comment");
      script.setAttribute(
        "theme",
        colorMode == "light" ? "github-light" : "github-dark" // <-- 추가해 주세요.
      );
      script.crossOrigin = "anonymous";
      script.async = true;

      containerRef.current.appendChild(script);
    };

    createUtterancesEl();
  }, []);

  return <div ref={containerRef} />;
}

export default Comment;

 

참고 자료 

 

Theme configuration | Docusaurus

This configuration applies to all main themes.

docusaurus.io

 

Docusaurus Canary - Can't resolve useThemeContext · Issue #116 · rohit-gohri/redocusaurus

Running against Docusaurus canary (which has some fixes for docs sidebar issues - redocusaurus is throwing an error: Module not found: Error: Can't resolve '@theme/hooks/useThemeContext' in 'X:\Dev...

github.com

아래 블로그 글은 많은 도움 되었지만 현재 Docusaurus 버전에서 적용되는 방법은 아닙니다. 

 

Docusaurus로 문서 관리하기 - 2

이전 글에서는 Docusaurus를 간단히 알아보고, 설치 방법, 문서 설정 및 배포 방법을 알아봤다. 이번 글에서는 간단한 테마 커스터마이징 방법, Utterance 를 이용한 소셜 댓글 추가 방법, Algolia 문서

younho9.dev