scrapbox-bundle-all
(wip) scrapbox-bundlerとimportへ移行
/icons/hr.icon
UserScriptをbundleしてimportするコマンドの、複数プロジェクトに一気に適用するversion
from /takker/takker用UserScriptのbundle設定
1. 以下をterminalから実行
deno
code:sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/yosider-scripts/scrapbox-bundle-all/build.ts
2. https://scrapbox.io/projects/yosider-scripts/settings/page-data からimportする
UserScriptをbundleするDeno_script
↓build.tsを更新したときはDenoのcacheを再読込する必要あり
code:build.ts
import {run} from '../UserScriptをbundleするDeno_script/script.ts';
const fileNames = [
'AGI',
'private',
'yosider',
'programming-notes',
'villagepump',
'symbolic-computation',
'kyopro-notes',
'minecraft-notes',
'english-notes',
'Unity-memo',
'yosider-scripts',
'project01',
'project13',
'project41',
'project98',
'clusterwiki',
'projectEC',
];
let codes: {key: string: string} = {};
TODO: for-nota-techconf, for-comments, for-kakeru
bundleする
code:build.ts
for (const fileName of fileNames) {
const {outputFiles} = await run(
https://scrapbox.io/api/code/yosider-scripts/for-${fileName}/script.js,
{},
{
external: [
],
charset: 'utf8',
bundle: true,
minify: true,
write: false, // 標準出力やfileにbundleしたコードを出力しない
}
);
codesfileName = outputFiles?.0?.text ?? '';
}
scrapbox json dataにする
code:build.ts
let json: {pages: {title: string; lines: string[];}[];} = {pages: []};
for (const key in codes) {
const page = {
title: for-${key}-min,
lines: [
for-${key}-min,
[/${key}]で使うUserScript,
[for-${key}]を[UserScriptをbundleするDeno script]でbundleしたもの,
via [scrapbox-bundle-all],
'',
'code:script.js',
...codeskey.split('\n').map(line => ${line}),
],
};
json.pages.push(page);
}
await Deno.writeTextFile('import.json', JSON.stringify(json));
https://gyazo.com/e2c1732c6142d1b639c642cba413c28b