ScrapRunの開発ログ兼ね作業ログ
from ScrapRun
2024-02-18
scrapbox-TikZjaxにfitch packageを入れる
kvoptionsが必要だった
10:39:11 missing $ insertedが出た
サンプルコードが間違っていたのか?
他のコードで試す
あー、数式環境内でのみ有効なのか
10:41:18 成功
https://scrapbox.io/files/65d1675b19545d0025d82b6c.svg
code:tex
\usepackage{fitch}
\begin{document}
$\begin{nd}
\hypo {1} {\forall y \neg P(y)}
\open
\hypo {2} {\exists x P(x)}
\openu
\hypo {3} {P(u)}
\have {4}{\forall y \neg P(y)} \r{1}
\have {5} {\neg P(u)} \Ae{4}
\have {6} {\bot} \ne{3,5}
\close
\have {6a} {\bot} \Ee{2,3-6}
\close
\have {7} {\neg \exists x P(x)} \ni{2-6a}
\end{nd}$
\end{document}
10:44:55 takker99/tikzjaxにfitch packageのassetsを追加した
https://github.com/takker99/tikzjax/pull/5
10:51:15 .gzを抜いたfilenameを要求するようにした
https://github.com/takker99/tikzjax/pull/6
2024-01-16
18:05:23
インデントを前の行に合わせる
これでMermaid記法のnative previewと同じ挙動になった
https://github.com/takker99/ScrapRun/pull/10
PlantumlのencodingにCompressionStreamを使う
https://github.com/takker99/ScrapRun/pull/11
~1をつけたら通った
2023-12-17
14:59:28 localの変更の一部をPRし忘れてた
https://github.com/takker99/ScrapRun/pull/5
https://github.com/takker99/ScrapRun/pull/4
13:46:10 コードブロックと関係のない行を編集しても、全てのコードブロックのpreviewが再読込されてしまうバグをなおした
https://github.com/takker99/ScrapRun/pull/4
13:03:15 あとはPlantUMLのテストかあ
denoflateのwasmのData URLが長すぎて貼り付けづらい
13:14:35 jsonにして入れてみたが、denoflate自体が使えないことに気づく
Data URLのfetchがCSPに引っかかってしまう
versionを落とそう
13:30:06 成功!
https://gyazo.com/ea9664886e96be2015c75d6b986cbb24
エラー処理はしなくてよさそうだ
13:33:00 merged
13:03:12 GlslCanvasを導入中
型定義が死んでる?
13:02:41 型定義を作って導入した
悪くない
https://gyazo.com/f3cfdb5aa4e4ddf2d7f1a9b933c35eb8
13:36:39 merged
12:11:52 その他やりたいこと
indentをpreviewerに入れる
11:56:36 https://github.com/takker99/ScrapRun/pull/1
✅svgの描画バグ修正
エラーが出たらエラーメッセージを出す
SVG live editor on Scrapboxのコードを参考にする
SVGのxmlns属性が無い場合など、DOMParser.parseFromString()でエラーがでなくても画像読み込みでエラーが出るものがある
https://gyazo.com/814e660562a15022132bf334a43127fd
ここまでは対処しきれない
11:10:56 単体テスト作成終了。scrapboxで試す
11:36:34 コードの表示切替を本体実装と遜色ない挙動にできた
https://gyazo.com/f2287c5834bb5514ad12bc5be84442de
10:45:47 SVGとPlantUMLの実装までした
denoflateの定義がちょっと変わってた
今単体テストを書いているところ
終わったらscrapboxで動かしてみる
08:56:02 実装ほぼおわり
viewerはclassにした
UI挿入時のdom構造を、Mermaid記法previewから調べる
code:hoge.mmd
flowchart LR
AHard -->|あ| B(Round)
B --> C{Decision}
C -->|い| DResult 1
C -->|う| EResult 2
.indent > div.mermaid-previewの直下にsvgがある
コードブロックはcssで隠しているのではなく、dom自体がなくなっている
動的に生成しているようだ
code:style
.line .mermaid-preview {
display: block;
width: 95%
}
.line .mermaid-preview svg {
background-color: #fff;
cursor: default
}
.line .mermaid-preview.error {
color: #fd7373;
background-color: var(--code-bg, rgba(0, 0, 0, 0.04));
font-family: Monaco,Courier;
font-size: 90%
}
09:11:17 行を隠す機能はつけないか、カーソルが侵入したときのみうまいこと表示するようにしたほうがいい
/customize/Mermaid記法可視化UserScriptで試したところ、display: none内でカーソルが動いてしまっているようだ
箇条書きを折り畳むUserScript (takker)を作ったときはdomの座標計算で次の行を判定していたはずだが、データ上の次の行に飛ぶような処理に変わってしまったようだ
https://gyazo.com/f032130bd5a0e64a0db2c83657205023
07:27:03 viewerはclassにしたほうがいいな
viewerの表示非表示切り替えなど、状態変数がいくつかある
renderのdisposeを保持しておきたいし
07:36:55 あー、そうするとMapでblocksを管理すると二重管理になってしまうのか
その場合viewer classをmapで持つことになるが、比較が面倒だ
比較に使うデータ構造を変更すれば解決するか
06:58:07 昨夜Mermaid記法可視化UserScriptにメモしたコードを移す
06:55:03 実装開始
https://github.com/takker99/ScrapRun
#2024-01-16 18:06:57
#2023-12-17 13:56:25