そうですね、これがおそらく最善の選択肢だと思います。私は 2020 年 6 月に着手したのですが、作業量が膨大になり、他のプロジェクトに移らざるを得ませんでした。\u003cimg タグ内で upload:// URL を許可するためのいくつかのアプローチを試しましたが、どれも完璧ではありません。私のメモによると:
実装案 1:
Markdown パイプライン内で、各 html_block の内容を解析し(xss.js ライブラリを少し乱用して)、upload:// 属性を持つ画像タグを処理します。
メリット: すべて Markdown パイプライン内で完結し、html_block トークンに対してのみこの処理を行います。
デメリット: xss.js サニタイザーを誤用している感じがあります。完璧な HTML5 パーサーではないかもしれません。
このオプションは、サーバー上で標準準拠の JavaScript DOM 実装(例: jsdom)を使用することで改善できますが、かなり重たいアプローチのようです。
実装案 2:
Markdown パイプライン全体で upload:// src 属性を許可し、後で置換します。クライアント側では実際には非常にシンプルです。調理(cooking)後に非同期で upload:// URL を置換していました。サーバー側では、Nokogiri を使用して追加の処理ステップを実行します。
メリット: パーサーが HTML5 標準準拠である。
デメリット: クライアントとサーバーで実装が異なり、パイプラインが少し複雑になります。
私はオプション 2 が進むべき道だと思います。その後、pull_hotlinked_images ジョブを更新して、Markdown に置換することなく \u003cimg タグを維持する必要があります。この作業にすぐに戻れる時間を見つけられることを願っています ![]()