数式をpreviewするUserScript
Scrapboxの数式記法をリアルタイムで表示するUserScript
https://gyazo.com/15929506031f2af064957e912639db9e
目的
Scrapboxの数式記法を書き込んでいる間に、どのような数式になるのかreal-timeで確認したい
数式をミスったときに、どこをミスったのか分かるようにしたい
元ネタ
/forum-jp/texのリアルタイムプレビューが欲しい
new version
/icons/github.icontakker99/scrapbox-katex-previewer
/takker/scrapbox-katex-previewer
使い方
1. 以下のいずれかから取得したコードを適当なページの適当なコードブロックに貼り付ける
get nightly bundled code
get v0.1.2 bundled code
以下、プロジェクトuserのページscrapbox-katex-previewerのscript.jsに貼り付けたと仮定する
2. 以下を自分のページに貼り付ける
code:js
import {mount} from "/api/code/user/scrapbox-katex-previewer/script.js";
mount();
3. おしまい
変更点
開発環境をGit+Vim+Deno+TSXに移行した
scrapbox-bundlerでコードを提供するようにした
ユーザーは上記のリンク数式をpreviewするUserScript#6191f14e1280f00000fae7a3 を踏むだけでbundle済みコードを取得できる
TeX表記にプレビュー機能が付いているのと干渉しないようにした
エラー表示を分かりやすくした
https://gyazo.com/862ad3981b66d907a324b9bc23162314
old version
/programming-notes/数式をpreviewするUserScript
https://gyazo.com/52ef50b5ef74eb17cbaf365571af1d80
iine!!miyamonz.iconyosider.icon
今までの反省も兼ねて、bundlerも用意したぞいtakker.icon
コピペで安全かつ簡単に導入できる
テーブルがひっついて回るのなんか面白いtakker.icon
https://gyazo.com/006e37d1e29456042a866d5ebdc6afb3
develop
パーツを適当に組み合わせて試してみたらできてしまった
/programming-notes/popupに数式を出してみる
https://gyazo.com/c9df4e42704c51b9bd108ee556735e92
denoでminifyしてやる方で試してみたら表示がおかしかった😢
全然調べてないのでmrsekut.iconのやり方がおかしいだけかもしれませんが一応報告しときます
https://gyazo.com/580c532ef0d70afccb4343c9f821ca24
ほんとだ。表示がおかしいですねtakker.icon
https://gyazo.com/7e09c35976de9a890631c8ce1ecde22e
/programming-notes/mathml版KaTeXが表示されてしまう
原因が分かったので直しますtakker.icon
2021-08-05 08:06:34 直りました!お手数おかけしました。
使ってみたいんだけど、programming-notes内の依存を把握するのがだるいmiyamonz.icon
preactとかのライブラリ使わずに実現できないのかなあ
生のDOMいじるのにうんざりしたので、Preactで組むようにしていますtakker.icon
2021/05/08#609611a01280f000004617b3
/programming-notes/数式をpreviewするUserScript#60a6e7061280f00000fa3f93のコマンドでbundleすれば楽ですyosider.icon
現在のコードを信頼する必要はある
denoのセットアップは必要
出力が大きいので直にScrapboxに貼り付けるよりjsonにしてimportするのがおすすめ
cf. /takker/takker用UserScriptのbundle設定#60baf7461280f00000f25009
ポータビリティのことではなくて、UserScriptはすべて自己責任なんですべての挙動を自分が把握すべき、と思っているので自分は読むべきだと思ってますmiyamonz.icon
バンドル方法は助かります!
UserScriptはすべて自己責任なんですべての挙動を自分が把握すべき/icons/わかる.icontakker.icon
なので複数ページに分散したmoduleを大量に読み込むようなUserScriptを書くと、申し訳ないな、と思う気持ちになることもあります
すべての依存先scriptをcode readingしないといけない
とはいえ、よく使う関数は毎回コピペするよりmoduleとして一カ所にまとめたほうがメンテナンス性も(開発者本人の)使いやすさも上がるので、たくさんmoduleを読み込んでしまっています……
GitHubにコードを移して、も少し使いやすくする予定ですtakker.icon
ちなみに依存の把握だけならdeno infoで見れます
preactとかの部分がどのくらい使われてるかはわかりませんが、jsonのステートからレンダリングするのは毎度リフレッシュしてもこのような用途なら問題ないと思うmiyamonz.icon
まあこれはmiyamonz.iconが作るならの話なので無視してもらってOK