esbuild-cosense-loader
お風呂入っているときにひらめいたので取り急ぎメモtakker.icon
思いついた方法
scrapboxのページそのものをbunld対象にする
もちろん、ほかのURLに置いてもいい
entrypointsが複数あれば、buildしたページを一つのjsonにまとめる
利点
scrapbox/JS/CSS etc.の記法以外を使う必要がない
これはおもしろいかもtakker.icon
templateを用意しなくても、UserScript/UserCSSを書いたページを渡せば、scrapboxで実行可能な形式になったページが帰ってくるということ
interface
plugins as JS API
CLI
deno runで起動
server
deno runで起動
細かい仕様
base URLは最初に渡したentrypointのURLにする
filenameは、コードブロックのタイトルにする
適当にuntitleとかの名前でも付けておくか
もしくはbuildから除外する?
拡張子
TS(X)系は.jsにする
css系は.cssにする
ほかの言語のコードは無視する
さすがに分割を維持するのは難しい
最初のコードブロックに全て書き込み、2番目以降は空欄にしておく
buildしたコードブロックの次の行に、同じインデントでsource mapを書き込む
対応むずそう。とりあえずパスで
1つのファイルを複数のファイルとみなす方法はないか?
1つのページに複数のコードブロックがあった場合、それぞれ別のソースファイルとみなして個別にbundleしたい
どうやらonEndでmetafileから取り出したコード情報から組み立て直しているようだ そんなことできるのか?
code:test.ts
import { CsvParseStream } from "jsr:@std/csv@1";
const res = await fetch(
);
const stream = res.body!.pipeThrough(new TextDecoderStream()).pipeThrough(
new CsvParseStream(),
);
const reader = stream.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
console.log(value);
}