2023.02.25
$ yarn add highlight.js cheerio
$ yarn add --dev @types/highlightjs @types/cheerio
getStaticProps
内の記述を修正します// ライブラリのインポート
import cheerio from 'cheerio';
import hljs from 'highlight.js';
import 'highlight.js/styles/hybrid.css';
// 省略
export const getStaticProps: GetStaticProps<Props, Params> = async (context) => {
const id = context.params?.id;
const blog = await client.get({ endpoint: 'blog', contentId: id });
// コードハイライトを実装
const $ = cheerio.load(blog.body);
$('pre code').each((_, elm) => {
const result = hljs.highlightAuto($(elm).text());
$(elm).html(result.value);
$(elm).addClass('hljs');
});
return {
props: {
// bodyをコードハイライト実装ずみのものに入れ替え
blog: { ...blog, body: $.html() },
},
};
};
// 省略
highlight.js/styles/XXXX
を変更してください© 2023 Wenpe