コードブロック記法に書いたsvgを表示する
作ったtakker.icon
勿論codeを書き換えると画像も変化します
reloadすると変更が反映されます
/icons/すごい.iconerniogi.iconyanma.icon増井俊之.icon
PR is welcome!
security周りがなっていないと思うので、そのへん修正していただけたら嬉しいです
とりあえずstarだけつけた(意訳:ブクマしたsta.icon
/emoji/thx.icontakker.icon
APIの書式
https://svg-hosting.vercel.app/api/svg?url=$url
https://svg-hosting.vercel.app/scrapbox.io/$project/$page/$filename
テスト
https://svg-hosting.vercel.app/scrapbox.io/villagepump/コードブロック記法に書いたsvgを表示する/animation.svg
MITライセンス、著作権はdefghi1977に帰属
拡大しても劣化しない
https://svg-hosting.vercel.app/scrapbox.io/villagepump/コードブロック記法に書いたsvgを表示する/animation.svg
コードブロック記法に書いたsvgを表示する.icon アイコンになる
どれも表示されてない?wogikaze.icon
今見たら復活してた
既知の問題点
security checkがない
<foreignObject>でscriptを埋め込まれたら実行されてしまう
一応、別タブで画像を開かないと実行されないっぽい
最近ブラウザセキュリティに興味が出てきたので、分析してみたくなってちょっと調べてみたら、こんな記事がありましたyuki_minoh.icon
CSPを厳しく設定しましょうということらしいですね ただ、「ジャンプすると任意JavaScriptを実行できるサイトの用意」のは誰でもできてしまうので気にしなくていいかもです
静的ファイルホスティングさえできればそういう悪質サイト自体の作成は可能
「外部から有害リンクを差し込める」わけではないので良い。。。?
ページ名が変わるとリンク切れになる
こればっかりはしょうがないか
ソースを変更してから、反映されるまで時間がかかり過ぎていませんか? suto3.icon
こっちだとreloadしてすぐ反映されますtakker.icon
2021-05-12 16:10:39 cacheを無効にしました
Popup menu
code:popup.js
scrapbox.PopupMenu.addButton({
title: 'SVG',
onClick: text => {
if (!/https?:\/\/\S+\.svg\s*/.test(text)) return; // SVG URLがなければ何もしない
return text.replace(/(https?:\/\/\S+\.svg)\s*/g,[https://svg-hosting.vercel.app/api/svg?url=$1]);
},
});
code:animation.svg
<path d="M 25 175 L 25 25" stroke="black" stroke-dasharray="2"/>
<path d="M 175 25 L 175 175" stroke="black" stroke-dasharray="2"/>
<path d="M 25 25 L 175 25" stroke="black" stroke-dasharray="2"/>
<path d="M 25 175 Q 25 25 175 25" stroke="black" stroke-dasharray="2" fill="none"/>
<path d="M 25 25 Q 175 25 175 175" stroke="black" stroke-dasharray="2" fill="none"/>
<path d="M 25 175 C 25 25 175 25 175 175" stroke="blue" fill="none"/>
<path stroke="red">
<animate attributeName="d" calcMode="linear" from="M 25 175 L 25 25" to="M 25 25 L 175 25" begin="0s" dur="6s" repeatCount="indefinite"/>
</path>
<path stroke="red">
<animate attributeName="d" calcMode="linear" from="M 25 25 L 175 25" to="M 175 25 L 175 175" begin="0s" dur="6s" repeatCount="indefinite"/>
</path>
<circle fill="red" r="5">
<animateMotion path="M 25 175 Q 25 25 175 25" begin="0s" dur="6s" calcMode="linear" repeatCount="indefinite"/>
</circle>
<circle fill="orange" r="5">
<animateMotion path="M 25 25 Q 175 25 175 175" begin="0s" dur="6s" calcMode="linear" repeatCount="indefinite"/>
</circle>
<circle fill="red" r="5">
<animateMotion path="M 25 175 C 25 25 175 25 175 175" begin="0s" dur="6s" calcMode="linear" repeatCount="indefinite"/>
</circle>
</svg>
MITライセンス、著作権はdefghi1977に帰属
コード書き換えてリロードしても変化しない気がするのですが 増井俊之.icon
おかしいですね。cacheは無効にしたのですg……有効になってる!?takker.icon
肝心のcache無効化の変更がgit addされてないじゃん……
おお、ありがたい! 増井俊之.icon