0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BlockNoteの基本的な使い方

Posted at

BlockNoteとは

BlockNoteは、Reactアプリケーション向けのブロックベースのリッチテキストエディタです。最小限のセットアップで優れたユーザー体験を提供することに焦点を当てています。

サンプル:
image.png

BlockNoteの特徴:

  • ブロックベースの設計により、ドキュメントの構造化が容易
  • NotionみたいなUIを提供
  • 拡張性を考慮して設計され、カスタマイズが可能
  • 最小限のセットアップで使用可能

なぜBlockNoteを使うのか

リッチテキストエディタのライブラリは多数存在しますが、BlockNoteは以下の点で優れています:

  1. 使いやすさ - 他のライブラリ(ProseMirror、TipTapなど)は強力ですが、学習曲線が急で、エディタの細部までカスタマイズする必要があります。BlockNoteは最小限のセットアップで優れた体験を提供します。

  2. モダンなブロックベース設計 - ドキュメントにより多くの構造を与え、より豊かなユーザー体験を可能にすると同時に、エディタの機能をカスタマイズしやすくします。

  3. アニメーション付きの既製UI - すぐに使えるUIコンポーネントが含まれています。

インストール方法

BlockNoteをReactプロジェクトに追加するには、以下のコマンドを実行します:

# npmを使用する場合
npm install @blocknote/core @blocknote/react @blocknote/mantine

# yarnを使用する場合
yarn add @blocknote/core @blocknote/react @blocknote/mantine

# pnpmを使用する場合
pnpm add @blocknote/core @blocknote/react @blocknote/mantine

基本的な使い方

1. 最小限のセットアップ

最も基本的な実装は以下のようになります:

import "@blocknote/core/fonts/inter.css";
import { BlockNoteView, useBlockNote } from "@blocknote/react";
import "@blocknote/mantine/style.css";

function Editor() {
  // エディタインスタンスを作成
  const editor = useCreateBlockNote();

  // エディタビューを表示
  return <BlockNoteView editor={editor} />;
}

export default Editor;

2. 初期コンテンツの設定

エディタに初期コンテンツを設定するには:

import { BlockNoteView, useBlockNote } from "@blocknote/react";
import "@blocknote/react/style.css";

function Editor() {
  // 初期コンテンツを持つエディタインスタンスを作成
  const editor = useCreateBlockNote({
    initialContent: [
      {
        type: "paragraph",
        content: "これはBlockNoteエディタです!",
      },
    ],
  });

  return <BlockNoteView editor={editor} />;
}

3. エディタの内容を取得する

エディタの内容を取得するには:

// JSONとして内容を取得
const blocks = editor.document;
console.log(JSON.stringify(blocks));

// マークダウンとして内容を取得
const markdown = editor.blocksToMarkdownLossy();
console.log(markdown);

// HTMLとして内容を取得
const html = editor.blocksToFullHTML();
console.log(html);

主要な機能

1. ブロックタイプ

BlockNoteは以下のようなデフォルトのブロックタイプを提供しています:

  • 段落(Paragraph)
  • 見出し(Heading)- レベル1〜6
  • 箇条書きリスト(Bulleted List)
  • 番号付きリスト(Numbered List)
  • チェックリスト(To-do List)
  • 引用(Block Quote)
  • コードブロック(Code Block)

2. テキストフォーマット

以下のようなインラインフォーマットが可能です:

  • 太字(Bold)
  • イタリック(Italic)
  • 下線(Underline)
  • 取り消し線(Strikethrough)
  • コード(Code)
  • リンク(Link)

3. UIコンポーネント

BlockNoteには以下のUIコンポーネントが含まれています:

  • フォーマットツールバー - テキスト選択時に表示されるフォーマットオプション
  • スラッシュメニュー - 「/」を入力すると表示されるブロック挿入メニュー
  • サイドメニュー - ブロックの横に表示される操作メニュー

カスタマイズ

BlockNoteは様々な方法でカスタマイズできます:

  1. テーマのカスタマイズ - CSSを上書きしてエディタの外観を変更
  2. UIコンポーネントのカスタマイズ - ツールバーやメニューのカスタマイズ
  3. カスタムブロックの作成 - 独自のブロックタイプを定義
  4. カスタムインラインコンテンツ - 独自のインラインフォーマットを追加

ここら辺のカスタマイズは割愛します。

まとめ

簡単にNotionみたいに使えて最高だった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?