scrapbox-bundle-all
1. 以下をterminalから実行
shdeno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/yosider-scripts/scrapbox-bundle-all/build.ts
build.tsimport {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} = {};
bundleする
build.tsfor (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したコードを出力しない
}
);
codes[fileName] = outputFiles?.[0]?.text ?? '';
}
build.tslet 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',
...codes[key].split('\n').map(line => ` ${line}`),
],
};
json.pages.push(page);
}
await Deno.writeTextFile('import.json', JSON.stringify(json));