Skip to content

microCMSのリッチエディタから取得した値を加工したり、目次リストを作成します。

License

Notifications You must be signed in to change notification settings

dc7290/microcms-richedit-processer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c2fdfa0 · Jan 15, 2023
Jan 15, 2023
May 24, 2022
Jan 15, 2023
Mar 19, 2022
Jan 15, 2023
Jun 29, 2021
Jan 15, 2023
Jan 15, 2023
Jul 1, 2021
Jun 29, 2021
Jun 29, 2021
Jan 15, 2023
May 24, 2022
Jun 30, 2021
Oct 4, 2021
May 24, 2022
May 24, 2022
May 24, 2022
Jun 29, 2021
Jan 15, 2023
May 24, 2022
May 24, 2022
Jul 4, 2021
Jan 15, 2023

Repository files navigation

microcms-richedit-processer

npm version license downloads

microCMSのリッチエディタから取得できるHTMLデータを自動処理します。

Feature

HTML データの加工機能について

  • img タグ
    • 遅延読み込み(現在、遅延読み込みライブラリのlazysizesのクラス名をサポート)
    • レスポンシブ画像のサポート(srcSet, sizes 属性によってウインドウ幅に合わせて最適な画像を配信する技術)
    • placeholder 画像の設定
    • imgix パラメータの追加
    • width, height 属性の自動設定
  • iframe タグ
    • 遅延読み込み(現在、遅延読み込みライブラリのlazysizesのクラス名をサポート)
    • レスポンシブ対応
  • pre タグ内の code タグ
    • シンタックスハイライトのためにクラス名の追加(現在、highlight.jsをサポート)
  • 共通
    • クラス名の追加
    • 任意の属性値の追加

HTML データから別データの自動作成機能について

  • 目次リストの作成

Usage

npm i microcms-richedit-processer
# yarn add microcms-richedit-processer

Next.jsの場合

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