microcms-richedit-processer
Version:
microCMSのリッチエディタから取得した値を加工したり、目次リストを作成します。
84 lines (63 loc) • 2.66 kB
Markdown
[](https://www.npmjs.com/package/microcms-richedit-processer) [](https://github.com/dc7290/microcms-richedit-processer/blob/master/LICENSE) [](https://www.npmjs.com/package/microcms-richedit-processer)
<img src="https://microcms-richedit-processer.vercel.app/img/logo-bg-black.svg" />
microCMSのリッチエディタから取得できるHTMLデータを自動処理します。
- img タグ
- 遅延読み込み(現在、遅延読み込みライブラリの`lazysizes`のクラス名をサポート)
- レスポンシブ画像のサポート(srcSet, sizes 属性によってウインドウ幅に合わせて最適な画像を配信する技術)
- placeholder 画像の設定
- imgix パラメータの追加
- width, height 属性の自動設定
- iframe タグ
- 遅延読み込み(現在、遅延読み込みライブラリの`lazysizes`のクラス名をサポート)
- レスポンシブ対応
- pre タグ内の code タグ
- シンタックスハイライトのためにクラス名の追加(現在、`highlight.js`をサポート)
- 共通
- クラス名の追加
- 任意の属性値の追加
- 目次リストの作成
```bash
npm i microcms-richedit-processer
```
Next.jsの場合
```typescript
import { GetStaticProps, NextPage } from "next";
import { createTableOfContents, processer } from "microcms-richedit-processer";
type Props = {
body: string;
toc: {
id: string;
text: string;
name: string;
}[];
};
export const getStaticProps: GetStaticProps<Props> = async () => {
const { contents } = await fetch(
"https://{サービスID}.microcms.io/api/v1/{エンドポイント}",
{
headers: {
"X-API-KEY": "{APIキー}",
},
}
).then((res) => res.json());
// contents.bodyにHTMLデータが取得できる想定です。
return {
props: {
body: await processer(contents.body),
// オプションを渡す場合
// body: processer(contents.body, {}),
toc: createTableOfContents(contents.body),
// オプションを渡す場合
// toc: createTableOfContents(contents.body, {}),
},
};
};
```
詳しい使い方はZennの記事に書いています!
https://zenn.dev/d_suke/articles/e18352797bbe00bdabb6