코드 블록
문서 내에서 코드 블록을 사용하는 것은 매우 강력한 기능입니다 💪.
코드 제목
프로그래밍 언어 설정 뒤에 title
항목을 입력(공백 문자로 구분합니다)하면 코드 블록 내에 제목을 추가할 수 있습니다.
```jsx title="/src/components/HelloCodeTitle.js"
function HelloCodeTitle(props) {
return <h1>Hello, {props.name}</h1>;
}
```
function HelloCodeTitle(props) {
return <h1>Hello, {props.name}</h1>;
}
구문 강조
코드 블록은 3개의 억음부호(`)로 감싼 텍스트 블록입니다. 문법과 관련된 내용은 MDX 명세서를 참조하세요.
```js
console.log('Every repo must come with a mascot.');
```
코드 블록에서 사용할 적절한 프로그래밍 언어 메타 문자열을 설정해주면 도큐사우루스에서는 Prism React Renderer를 사용해 자동으로 구문 강조를 처리합니다.
console.log('Every repo must come with a mascot.');
테마
By default, the Prism syntax highlighting theme we use is Palenight. docusaurus.config.js 파일에서 themeConfig
항목 안에 prism
항목을 찾아서 theme
항목을 수정하면 다른 테마를 적용할 수 있습니다.
예를 들어 구문 강조 테마를 dracula
로 적용하고 싶다면 아래와 같이 설정합니다.
import {themes as prismThemes} from 'prism-react-renderer';
export default {
themeConfig: {
prism: {
theme: prismThemes.dracula,
},
},
};
Prism 테마는 JS 오브젝트일 뿐이므로 기본 설정이 맘에 들지 않는다면 자신만의 테마를 만들 수 있습니다. Docusaurus enhances the github
and vsDark
themes to provide richer highlight, and you can check our implementations for the light and dark code block themes.
지원 언어
By default, Docusaurus comes with a subset of commonly used languages.
자바, C#, PHP 같은 일부 인기있는 언어도 기본적으로 활성화되지 않습니다.
Prism 지원 프로그래밍 언어 목록에 포함된 언어의 구 문 강조를 추가하고 싶다면 배열 형태로 항목 설정을 추가합니다.
각 추가적인 언어는 유효한 Prism 컴포넌트 이름이어야 합니다. 예를 들어 Prism은 language cs
를 csharp
에 연결하지만 prism-csharp.js
만 _컴포넌트_로 제공되므로 additionalLanguages: ['csharp']
를 사용해야 합니다. node_modules/prismjs/components
에서 사용할 수 있는 모든 컴포넌트(언어)를 확인할 수 있습니다.
예를 들어 PowerShell 언어에 대한 구문 강조를 추가하려면 아래와 같이 설정합니다.
export default {
// ...
themeConfig: {
prism: {
additionalLanguages: ['powershell'],
},
// ...
},
};
additionalLanguages
을 추가하면 도큐사우루스를 재시작합니다.
Prism에서 지원하지 않는 프로그래밍 언어의 구문 강조를 추가하고 싶다면 prism-include-languages
를 아래와 같이 대체할 수 있습니다.
- npm
- Yarn
- pnpm
npm run swizzle @docusaurus/theme-classic prism-include-languages
yarn swizzle @docusaurus/theme-classic prism-include-languages
pnpm run swizzle @docusaurus/theme-classic prism-include-languages
명령을 실행하면 src/theme
디렉터리 안에 prism-include-languages.js
파일을 만듭니다. prism-include-languages.js
파일을 수정해서 원하는 프로그래밍 언어에 대한 구문 강조를 추가할 수 있습니다.
const prismIncludeLanguages = (Prism) => {
// ...
additionalLanguages.forEach((lang) => {
require(`prismjs/components/prism-${lang}`);
});
require('/path/to/your/prism-language-definition');
// ...
};
해당 언어에 대한 구문 강조 스크립트 작성 시에는 Prism official language definitions를 참조하세요.
사용자 정의 언어 정의를 추가할 때는 도큐사우루스가 Prism에서 제공하는 언어의 additionalLanguages
문자열만 찾기 때문에 additionalLanguages
설정 배열값에 해당 언어를 추가할 필요는 없습니다. prism-include-languages.js
에서 언어 가져오기만 추가해주면 충분합니다.