generated at
takker用UserScriptのbundle設定

一つずつCLIでcommandを叩くのが面倒なので、各project用UserScriptを一度にbundleしてjson fileにできるscriptを新しく作った
sh
deno run -A --unstable https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/build.ts
build.ts
import {run} from '../UserScriptをbundleするDeno_script/script.ts'; const fileNames = ['takker-memex', 'takker', 'any-project']; let codes: {[key: string]: string} = {};
bundleする
build.ts
for (const fileName of fileNames) { const {outputFiles} = await run( `https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/${fileName}.js`, { '../date-fns.min.js/script.js': 'https://deno.land/x/date_fns@v2.15.0/index.js', }, { external: [ '/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js', '/api/code/takker-memex/Google_API_for_Scrapbox/script.js', '/api/code/takker-memex/takkerのGoogle_Calendar/script.js', ], charset: 'utf8', bundle: true, minify: true, write: false, // 標準出力やfileにbundleしたコードを出力しない sourcemap: 'inline', } ); codes[fileName] = outputFiles?.[0]?.text ?? ''; }
build.ts
let json: {pages: {title: string; lines: string[];}[];} = {pages: []}; for (const key in codes) { const page = { title: `for-${key}`, lines: [ `for-${key}`, `[/${key}]で使うUserScript`, ' [UserScriptをbundleするDeno script]でbundleした', ' 設定ファイルは[takker用UserScriptのbundle設定]に置いてある', '', 'code:script.js', ...codes[key].split('\n').map(line => ` ${line}`), ], }; json.pages.push(page); } await Deno.writeTextFile('import.json', JSON.stringify(json));

takker-memex.js
import '../import/common.js'; import '../import/takker-memex.js';
sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/takker-memex.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 --outfile=takker-memex.min.js
takker.js
import '../import/common.js'; import '../import/takker.js';
sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/takker.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 | xsel
共通
any-project.js
import '../import/common.js';
sh
deno run --allow-net --allow-read --allow-write --allow-run --allow-env --unstable https://scrapbox.io/api/code/takker/UserScriptをbundleするDeno_script/build.ts https://scrapbox.io/api/code/takker/import/common.js --bundle --minify --external=/api/code/takker-memex/GYAZO_ACCESS_TOKEN/auth.js --external=/api/code/takker-memex/Google_API_for_Scrapbox/script.js --external=/api/code/takker-memex/takkerのGoogle_Calendar/script.js --charset=utf8 --outfile=any-project.min.js

scrapbox json dataに変換するscript
まとめて一つのjsonに入れられるようにした
sh
deno run --allow-read=./ --allow-write=./ https://scrapbox.io/api/code/takker/takker用UserScriptのbundle設定/make-json.ts takker takker-memex any-project
make-json.ts
import { parse } from "https://deno.land/std@0.97.0/flags/mod.ts"; type Page = {title: string; lines: string[];}; const {_: projects} = parse(Deno.args); const json: {pages: Page[]} = {pages: []}; for (const project of projects) { const script = await Deno.readTextFile(`${project}.min.js`); const page = { title: `for-${project}`, lines: [ `for-${project}`, `[/${project}]で使うUserScript`, ' [UserScriptをbundleするDeno script]でbundleした', ' 設定ファイルは[takker用UserScriptのbundle設定]に置いてある', '', 'code:script.js', ...script.split('\n').map(line => ` ${line}`), ], }; json.pages.push(page); } await Deno.writeTextFile('import.json', JSON.stringify(json));

#2021-09-24 10:52:59
#2021-06-05 13:15:54
#2021-05-30 13:55:36
#2021-05-26 19:42:11