generated at
ScrapRunの開発ログ兼ね作業ログ

2024-02-18
kvoptionsが必要だった
10:39:11 missing $ insertedが出た
サンプルコードが間違っていたのか?
他のコードで試す
あー、数式環境内でのみ有効なのか
10:41:18 成功
tex
\usepackage{fitch} \begin{document} $\begin{nd} \hypo {1} {\forall y \neg P(y)} \open \hypo {2} {\exists x P(x)} \open[u] \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/tikzjaxfitch packageのassetsを追加した
10:51:15 .gz を抜いたfilenameを要求するようにした
2024-01-16
18:05:23
インデントを前の行に合わせる
これでMermaid記法のnative previewと同じ挙動になった
PlantumlのencodingにCompressionStreamを使う
~1 をつけたら通った
2023-12-17
14:59:28 localの変更の一部をPRし忘れてた
13:46:10 コードブロックと関係のない行を編集しても、全てのコードブロックのpreviewが再読込されてしまうバグをなおした
13:03:15 あとはPlantUMLのテストかあ
denoflateのwasmのData URLが長すぎて貼り付けづらい
13:14:35 jsonにして入れてみたが、denoflate自体が使えないことに気づく
Data URLのfetchがCSPに引っかかってしまう
versionを落とそう
13:30:06 成功!
エラー処理はしなくてよさそうだ
13:33:00 merged
13:03:12 GlslCanvasを導入中
型定義が死んでる?
13:02:41 型定義を作って導入した
悪くない
13:36:39 merged
12:11:52 その他やりたいこと
indentをpreviewerに入れる
✅svgの描画バグ修正
エラーが出たらエラーメッセージを出す
SVG live editor on Scrapboxのコードを参考にする
SVGのxmlns属性が無い場合など、DOMParser.parseFromString()でエラーがでなくても画像読み込みでエラーが出るものがある
ここまでは対処しきれない
11:10:56 単体テスト作成終了。scrapboxで試す
11:36:34 コードの表示切替を本体実装と遜色ない挙動にできた
10:45:47 SVGとPlantUMLの実装までした
denoflateの定義がちょっと変わってた
今単体テストを書いているところ
終わったらscrapboxで動かしてみる
08:56:02 実装ほぼおわり
viewerはclassにした
UI挿入時のdom構造を、Mermaid記法previewから調べる
hoge.mmd
flowchart LR A[Hard] -->|あ| B(Round) B --> C{Decision} C -->|い| D[Result 1] C -->|う| E[Result 2]
.indent > div.mermaid-preview の直下にsvgがある
コードブロックはcssで隠しているのではなく、dom自体がなくなっている
動的に生成しているようだ
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の座標計算で次の行を判定していたはずだが、データ上の次の行に飛ぶような処理に変わってしまったようだ

07:27:03 viewerはclassにしたほうがいいな
viewerの表示非表示切り替えなど、状態変数がいくつかある
renderの dispose を保持しておきたいし
07:36:55 あー、そうするとMapでblocksを管理すると二重管理になってしまうのか
その場合viewer classをmapで持つことになるが、比較が面倒だ
比較に使うデータ構造を変更すれば解決するか
06:58:07 昨夜Mermaid記法可視化UserScriptにメモしたコードを移す
06:55:03 実装開始

#2024-01-16 18:06:57
#2023-12-17 13:56:25