カスタム絵文字の検証: Notion Tips (126)

はじめに

Notion Tips の第126回目からは Make with Notion で追加された新機能を順番に検証していきます。まず最初は簡単なところからカスタム絵文字を検証していきます。

カスタム絵文字の登録

カスタム絵文字の登録方法は三つあります。順番に紹介します。

アイコンから登録

一つはページやコールアウトのアイコンから登録する方法です。コールアウトのアイコンをクリックすると、これまでカスタムとなっていた部分がアップロードと変わっています。

アイコンから登録

ファイルをドラッグするとこんな感じでダークモード時、ライトモード時の二種類の絵文字が確認できます。今回は、座談会に参加してくれた Hirokazu さんの AIR DO の画像を投げ込んでみました。ここで、「ワークスペースの絵文字ライブラリに追加する」をチェックしてみます。

ファイルをドラッグ

チェックを入れると絵文字の名前を設定できるようになります。デフォルトでは、アップロードしたファイル名のものが自動的に設定されるようです。使用できるのは小文字のみなので、大文字のファイル名だったものが小文字に変換されて自動的にテキストエリアに用意されていました。

名前を設定

保存するとアイコンの部分が絵文字になっています。アイコンの画像と異なり、絵文字なので本文中に利用することが可能です。先ほど設定した絵文字の名前を : の後ろに書くことで自動的に選択されることがわかります。

本文中へのカスタム絵文字の挿入方法

結果としてはこんな感じになりました。

挿入結果

絵文字パレットから登録

もう一つの登録方法は絵文字パレットから生成する方法です。「/emoji」とすると絵文字パレットが表示されます。この一番右側に「 +」マークがあり、絵文字を追加となっています。

絵文字パレットから追加

クリックすると以下のような「カスタム絵文字を追加」というダイアログが表示されます。その後の手順は同様です。

カスタム絵文字を追加

:文字列から登録

次に jal の絵文字を追加してみようと思います。ここで :jal という絵文字名を設定します。:jal とすると登録された絵文字がないので、「該当なし」と表示され「+絵文字を追加」ボタンも表示されます。

:文字列から登録

その後の手順は上と同様です。

データ構造の確認

まず、NotionRubyMapping を用いて確認したところ、以下のようなエラーが出ました。Rich text object で custom_emoji というメンションタイプがないと言われています。

/Users/hkob/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/notion_ruby_mapping-0.8.8/lib/notion_ruby_mapping/objects/rich_text_object.rb:52:in `create_from_json': Unknown mention type: custom_emoji (StandardError)

仕方がないので、Talend API Tester でブロックを取得してみると以下のようになりました。これまでと異なるは以下の2点です。

  • icon の type に custom_emoji が追加されています。
  • rmention_object の type に custom_emoji が追加されています。

どちにも NotionRubyMapping で対応できていないので、近日中に対応します。

Talend API Tester で検証

別のワークスペースにコピー

別のワークスペースにこの Callout をコピーしてみました。空白になるかと想像していましたが、絵文字自体は参照できるようになっていました。uuid で管理されているので、それを元に参照して表示することができるようです。ただし、カスタム絵文字が入っているわけではないので、新しいワークスペースで再度設定し直す必要があるようです。このような外部からの参照が残るためか、一度登録されたカスタム絵文字の削除方法は用意されていないようです。

別のワークスペースにコピー

おわりに

今回は、カスタム絵文字の設定方法を解説しました。また、Notion API を使って、カスタム絵文字の内部構造を確認しました。別のワークスペースにコピーした場合には、カスタム絵文字自体は参照されるものの、絵文字につけた名前などはコピーされないことがわかりました。

hkob.notion.site