Workflows

ワークフローと manifest.json

ワークフローは、Web アプリの起動や検索コマンドを conduit に追加するパッケージです。manifest.json をひとつ書いて zip にし、ウィンドウへドロップするだけでインストールできます。

インストール

  1. manifest.json を含むフォルダを zip 圧縮する
  2. conduit のウィンドウに zip をドラッグ&ドロップする

manifest.json は zip のルート直下か、1 階層下にあれば認識されます。GitHub の「Code → Download ZIP」で落としたアーカイブ(repo-main/manifest.json の形)もそのまま使えます。

manifest.json の仕様

トップレベル:

フィールド説明
id必須 string パッケージの識別子。英数字と - _ . のみ(インストール先のフォルダ名になります)。同じ id は上書き対象
name必須 string 表示名
description string 説明。管理ビューのワークフロータブに表示
icon string 絵文字 1 文字。アプリ側に icon がないときの既定アイコン
apps必須 array アプリ定義の配列。1 件以上

apps[] の各要素:

フィールド説明
name必須 string アプリ名。キーワードなしの検索はこの名前へのあいまい一致
url必須 string 開く URL。http://https:// で始まること{query} を含めると検索コマンドになります
keyword string トリガーキーワード。yt cats のように「キーワード + 空白 + 検索語」で起動し、検索語が URL エンコードされて {query} に入ります
icon string 絵文字 1 文字。なければパッケージの icon、それもなければ 🌐
description string 検索結果のサブタイトルに表示

フルサンプル

{
  "id": "web-essentials",
  "name": "Web Essentials",
  "description": "よく使う Web アプリ集(サンプル)",
  "icon": "🌐",
  "apps": [
    { "name": "GitHub", "url": "https://github.com", "icon": "🐙" },
    {
      "name": "YouTube 検索",
      "url": "https://www.youtube.com/results?search_query={query}",
      "keyword": "yt",
      "icon": "▶️",
      "description": "yt <キーワード> で YouTube 検索"
    },
    {
      "name": "Google 翻訳",
      "url": "https://translate.google.com/?sl=auto&tl=ja&text={query}",
      "keyword": "tr",
      "icon": "🌏"
    }
  ]
}

このサンプルはリポジトリの docs/workflows-example にもあります。インストールすると:

検索での振る舞い

バリデーション

次のいずれかに当てはまる zip はインポート時にエラーになります:

セキュリティ上、開けるのは http(s) の URL だけです。file:// やカスタムスキームは実行時にも拒否されます。zip 内のパスはトラバーサル(zip-slip)対策済みです。