はじめに
hkob の雑記録の第124回目は、昨日紹介した Alfred Workflow の Copy to Clipboard output を使って Notion に CodeBlock を追加するショートカットを作成します。以前、Notion API を使った NotionCodeBlockShortcut を紹介しましたが、それの Alfred 版です。以前の記事はこちらになります。今回の Alfred 版の方が圧倒的に使い勝手がいいと思います。
前提条件
このアプリの利用条件は以下のとおりです。
- Notion のアプリ版を使っていること
- CodeBlock を追加したいページを開いており、その場所にカーソルが存在すること
逆にいうと、Notion API 版とは異なり、ページの途中に CodeBlock を挿入することも可能です。
ワークフローの作成
まずワークフローの全体図を示します。前から順番に解説します。

1. External trigger
最初は External trigger です。設定は以下のようになります。こちらは後で作成するショートカットのサービスから呼び出されるために、URL scheme を設定するものです。

ここに書かれているように URL は以下のようになります。今回は引数は使わないので、? の前までが必要となります。
alfred://runtrigger/jp.ac.metro-cit.hkob/NotionCodeBlock/?argument=test
2. List Filter input
2番目は List Filter input です。設定画面は以下のようになります。言語の選択をするところです。

言語の部分は量が多いのでここに書いてあるように CSV ファイルを用意してドラッグしました。Notion API のものをそのまま持ってきたので、うまく動かないものもありました。例えば、shell はそのままではうまく動かず、bash とすると Shell が選ばれました。あと、自分が使わなそうな言語は後で外してしまおうと思います。
abap,,abap arduino,,arduino bash,,bash basic,,basic c,,c clojure,,clojure coffeescript,,coffeescript c++,,c++ c#,,c# css,,css dart,,dart diff,,diff docker,,docker elixir,,elixir elm,,elm erlang,,erlang flow,,flow fortran,,fortran f#,,f# gherkin,,gherkin glsl,,glsl go,,go graphql,,graphql groovy,,groovy haskell,,haskell html,,html java,,java javascript,,javascript json,,json julia,,julia kotlin,,kotlin latex,,latex less,,less lisp,,lisp livescript,,livescript lua,,lua makefile,,makefile markdown,,markdown markup,,markup matlab,,matlab mermaid,,mermaid nix,,nix notion formula,,notion formula objective-c,,objective-c ocaml,,ocaml pascal,,pascal perl,,perl php,,php plain text,,plain text powershell,,powershell prolog,,prolog protobuf,,protobuf python,,python r,,r reason,,reason ruby,,ruby rust,,rust sass,,sass scala,,scala scheme,,scheme scss,,scss shell,,shell sql,,sql swift,,swift typescript,,typescript vb.net,,vb.net verilog,,verilog vhdl,,vhdl visual basic,,visual basic webassembly,,webassembly xml,,xml yaml,,yaml
3. Arg and Vars utility
3番目は Arg and Vars utility です。今、入力されたデータが lang という変数に代入されます。

4. Launch Apps / Files action
4番目は Launch Apps / Files action です。これは単純で Notion.app を開くだけです。

5. Copy to Clipboard output
5番目は Copy to Clipboard output です。

中のテキストは以下のようにしました。Notion API 版では、CodeBlock は箇条書きのサブブロックに設定しています。テキスト貼り付けの場合、インデントをすることでサブブロックにすることはできるのですが、空行が含まれる時に CodeBlock から抜けてしまい、空行以降のテキストが標準テキストに戻ってしまいました。このため、今回はサブブロック化は諦めて同じ階層に記載することにしました。
- {datetime:long}
{clipboard}
6. Delay utility
当初は 5 までで終わっていたのですが、貼り付けた段階でこの部分が選択された状態になってしまい、連続して実行すると上書きされてしまうことに気づきました。そこで、カーソルを下に移動する作業を追加しました。しかし、すぐに実行してしまうと貼り付け処理が終わる前にカーソル移動が発生してしまい、思い通りの処理になりませんでした。そこで、Delay utility で 1 秒時間待ちをしています。

7. Dispatch Key Combo output
最後はカーソル移動を行う、Dispatch Key Combo output です。これはまだ紹介前でしたが、ここまで記事を書いてしまったので、使ってしまいます。見てわかるようにキーを押したことにする処理になります。これによって、貼り付けたコードブロックの下にカーソルが移動することになります。

サービスショートカットの作成
サービスを受けるショートカットは非常に簡単です。サービスで受け取ったものをクリップボードに書き込み、Alfred の URL scheme を呼び出すだけとなっています。

処理結果
せっかくなので動作の様子を動画にして X にポストしました。API 版よりキビキビ動いてかなりよい感じです。@now を使っていないので、秒まで表示されているのも嬉しい改良点になっています。
昨日の Copy to Clipboard output を使うと Notion API を使わずに NotionCodeBlockShortcut と同じことができるようになってしまった。しかも API 使わないからかなり高速で動いて嬉しい。#Notion #Alfred pic.twitter.com/Q2CXv74NN8
— hkob|Notion Ambassador (@hkob) 2025年5月3日
おわりに
今回は、昨日紹介した Copy to Clipboard output を使って、NotionCodeBlockByAlfred を作成しました。インデントがつかないのが残念ですが、Notion API 版よりも高速で便利です。