import {run} from '../UserScriptをbundleするDeno_script/script.ts'; const {outputFiles} = await run( `https://scrapbox.io/api/code/takker/from-programming-notes/index.js`, {}, { external: [ '../scrapbox-parser@7.1.0/script.js', '../scrapbox-access-nodes@0.1.0/script.js', '../scrapbox-cursor-position-2/script.js', '../scrapbox-dom-accessor/script.js', '../scrapbox-keyboard-emulation/script.js', '../date-fns.min.js/script.js', ], charset: 'utf8', bundle: true, minify: true, write: false, // 標準出力やfileにbundleしたコードを出力しない sourcemap: 'inline', } ); const code = (outputFiles?.[0]?.text ?? '') // /takker用にimport pathやその他変数を書き換える .replaceAll('履歴スライダー', 'Open commit viewer') .replaceAll('addMenu', 'addItem') .replaceAll('scrapbox-cursor-position-2', 'scrapbox-cursor-position-6') .replaceAll('scrapbox-keyboard-emulation', 'scrapbox-keyboard-emulation-2'); const json: {pages: {title: string; lines: string[];}[];} = { pages: [{ title: 'from-programming-notes-scripts', lines: [ 'from-programming-notes-scripts', '[from-programming-notes]の[index.js https://scrapbox.io/api/code/takker/from-programming-notes/index.js]をsource map付きでbundleしたもの', '[import]からはこのコードを読み込む', '', 'code:script.js', ...code.split('\n').map(line => ` ${line}`), ], }], }; await Deno.writeTextFile('import.json', JSON.stringify(json));