ScrapRun
動作例
使い方
very easy ver.
ここをクリックして生成されたコードを自分のページの
script.js
に貼り付けてください
TikZも使いたい人ver.
1.
ここをクリックして生成されたコードを、適当なページの適当なコードブロックに
複数回に分けて貼り付けてください
コピペ一回では貼りきれないコードサイズなので、複数回に分けてください
以降、 /project/worker
の mod.js
に貼り付けたとします
2. 以下のURLの "https://scrapbox.io/api/code/takker-dist/scrapbox-tikz/mod.js"
を "https://scrapbox.io/api/code/project/worker/mod.js"
に書き換えてアクセスしてください
$ https://scrapbox-bundler.vercel.app/?url=https://scrapbox.io/api/code/villagepump/ScrapRun/with-tikz.ts&define=WORKER_URL:"https://scrapbox.io/api/code/takker-dist/scrapbox-tikz/mod.js"&define=ASSETS_URL:"https://scrapbox.io/files/65b701e5197ff10023e9b9ae"&bundle&minify&run&reload
3. 生成されたコードを自分のページの script.js
に貼り付けてください
installation
⚠ScrapRunだけでは何も動きません
コードブロックの中身をどうpreviewするかは、各自で実装する必要がある
Userが自由にpreviewerを作れるよう設計しているため
TikZのpreviewer以外はいつもの
製UserScriptと要領は同じです
TikZのpreviewerはweb workerを使っているため、worker codeもbuildする必要があります
with-tikz.tsimport { setup, previewSVG, previewGLSL, previewPlantUML, previewTikZ } from "https://raw.githubusercontent.com/takker99/ScrapRun/0.3.1/mod.ts";
setup({ previewers: [
{ when: /(?:^|\.)svg$/, preview: previewSVG },
{ when: /(?:^|\.)glsl$/, preview: previewGLSL },
{ when: /(?:^|\.)(?:plantuml|puml|pu)$/, preview: previewPlantUML },
{ when: /(?:^|\.)tikz\(tex\)$/, preview: previewTikZ(WORKER_URL, ASSETS_URL) },
]});
previewers
(型: Previewer[]
)に使いたいpreviewerの設定を書く
Previewer
の when
に指定した正規表現に一致するファイルネームのコードブロックに対して、 preview
を実行する
previewTikZ
にはworker codeのURLと、texのwasmやpackages,フォントデータを圧縮したzipファイルへのURLを渡す必要がある
Previewerの作成方法
preview
の型定義は以下の通り
引数にコードブロックの filename
と、更新前のコードブロック情報 before
、更新後のコードブロック情報 after
が渡される
Preview
内で表示するDOMを組み立てたあと、 render
にわたして描画する
cleanup函数を返却できる
reference実装の技術概要
SVG:Data URLにして <img>
に表示しているだけ
TikZ:Web Workerで
TikZJaxを動かして作ったSVGをData URLにして
<img>
で表示
画像を右クリックしてダウンロードできる
システムカラーを認識してlight theme/dark themeが勝手に変わるように作ってある
TikZのpreviewが死ぬほど便利
日本語圏で主流のLuaLaTeXはcompileが遅いので、TikZのrendering結果を確認するのにかなり時間がかかり、try and errorを素早く回せない
scrapbox-TikZjax(TIkZのpreviewerの名前)は複雑な3D plotを使わない限り一瞬でrenderingされるため、編集速度をと同じ速さでrendering結果を確認できる
very-easy.tsimport { setup, previewSVG, previewGLSL, previewPlantUML } from "https://raw.githubusercontent.com/takker99/ScrapRun/0.3.1/mod.ts";
setup({ previewers: [
{ when: /(?:^|\.)svg$/, preview: previewSVG },
{ when: /(?:^|\.)glsl$/, preview: previewGLSL },
{ when: /(?:^|\.)(?:plantuml|puml|pu)$/, preview: previewPlantUML },
]});