SVG画像を、メインのsvg要素のheight属性またはwidth属性のどちらかが「1」未満の数値サイズ(関連する単位は無視)で設定された投稿にアップロード(含める)すると、以下のメッセージで失敗します。
お詫び申し上げますが、画像のサイズを特定できませんでした。画像が破損している可能性があります。
どうやら、height属性とwidth属性がチェックされ、実際の表示サイズを計算するために単位情報を参照するコード(https://github.com/discourse/discourse/pull/12230)が実行される前に、アップロードが却下されているようです。以下の検索クエリでフォーラムを検索すると、現在9件の結果が返ってきます。
svg “determine the size of the image” “maybe your image is corrupted”
How to include fontawesome icons in posts? という投稿も同様の原因によるものと思われますが、その報告は古く、修正済みとされています。
調査したところ、これは使用されているfastimageライブラリに起因する問題のようです。SVG images with small dimension detected as zero pixels, ignoring units という件名で同ライブラリ側にissueを作成し、ここで参照しています。fastimageライブラリが修正されれば、Discourse側でも更新されたバージョンを取得するための変更が必要になるでしょう。
以下は、失敗したサンプルSVGファイルのXMLソースです。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"
width="1.2in" height="0.9in"
viewBox="0 0 1200 900"
>
<line x1="1100" x2="100" y1="100" y2="800" stroke="#000000" stroke-width="50"/>
</svg>
以下は、上記の画像がフォーラムで動作するようにしたわずかな修正を示す画像です。これらは、参照しているGitHub issueの添付ファイルと一致します。