generated at
from-programming-notes
/programming-notesから引っ張ってきたUserScript
ここでtakker用にbundleする

2023-05-01 04:51:05 もう使っていない

bundle方法
%2F がdecodeされないよう、二重にencodeをかけた %252F を使っている
(deprecated)コピペできるコードサイズではなくなってきたので、importを使うことにした
sh
deno run -A --unstable https://scrapbox.io/api/code/takker/from-programming-notes/build.ts
build.ts
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));
(deprecated)以下を実行してコードを貼り付ける
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/from-programming-notes/index.js" --bundle --minify --external=../scrapbox-parser@7.1.0/script.js --external=../scrapbox-access-nodes@0.1.0 /script.js --external=../scrapbox-cursor-position-2/script.js --external=../scrapbox-dom-accessor/script.js --external=../scrapbox-keyboard-emulation/script.js --external=../date-fns.min.js/script.js --charset=utf8 | sed -e 's/履歴スライダー/Open commit viewer/' | sed -e 's/addMenu/addItem/' | sed -e 's/scrapbox-cursor-position-2/scrapbox-cursor-position-6/g' | sed -e 's/scrapbox-keyboard-emulation/scrapbox-keyboard-emulation-2/g' | xsel

befor bundling
importmap.json
{ "imports": { "https://scrapbox.io/api/code/programming-notes/scrapbox-parser@7.1.0/script.js": "https://esm.sh/@progfay/scrapbox-parser@7.1.0", "https://scrapbox.io/api/code/programming-notes/scrapbox-access-nodes@0.1.0/script.js": "https://scrapbox.io/api/code/takker/scrapbox-access-nodes@0.1.0/script.js", "https://scrapbox.io/api/code/programming-notes/scrapbox-cursor-position-2/script.js": "https://scrapbox.io/api/code/takker/scrapbox-cursor-position-6/script.js", "https://scrapbox.io/api/code/programming-notes/scrapbox-dom-accessor/script.js": "https://scrapbox.io/api/code/takker/scrapbox-dom-accessor/script.js", "https://scrapbox.io/api/code/programming-notes/scrapbox-keyboard-emulation/script.js": "https://scrapbox.io/api/code/takker/scrapbox-keyboard-emulation-2/script.js", "https://scrapbox.io/api/code/programming-notes/htm@3.0.4%2Fpreact/script.js": "https://scrapbox.io/api/code/takker/UserScriptで使うpreactの差し替えコード/mod.ts", "https://scrapbox.io/api/code/programming-notes/preact@10.5.13/script.js": "https://scrapbox.io/api/code/takker/preact@10.5.13/script.js", "https://scrapbox.io/api/code/programming-notes/preact@10.5.13/hooks.js": "https://scrapbox.io/api/code/takker/preact@10.5.13/hooks.js", "https://scrapbox.io/api/code/programming-notes/preact-custom-element@4.2.1/script.js": "https://scrapbox.io/api/code/takker/preact-custom-element@4.2.1/script.js",
UserScriptで使うpreactの差し替えコードにある preact htm をさらに差し替える
importmap.json
"preact": "https://scrapbox.io/api/code/takker/preact@10.5.13/script.js", "htm": "https://scrapbox.io/api/code/takker/htm@3.0.4/script.js",
importmap.json
"https://scrapbox.io/api/code/programming-notes/idb/with-async-ittr.js": "https://scrapbox.io/api/code/takker/idb/with-async-ittr.js" } }

2022-09-08 18:06:21 external-completion@0.4.0を外す
謎のエラーで、Preactが止まってしまう
別projectのリンクを参照できないのは痛いが、一旦外すしかない
2022-01-19 10:52:19 /colorをアイコンに加えた
index.js
import "../../programming-notes/scrapbox-incremental-fulltext-search/sample.js";
index-purged.js
import { mount as mountCompletion } from "../../programming-notes/external-completion@0.4.0/script.js"; const watchListIds = Object.keys( JSON.parse(localStorage.getItem("projectsLastAccessed")) ); const iconIds = [ '57b3fe09ec2b330f00f15382', // /icons Icons '5ebf80b491582c001e38c967', // /Icons2 Icons2 '5adc2250d5caf30014910a83', // /emoji emoji "5d5e31dffb032100170cd31c", // /color color "61fb0a7daea10100202d1372", // /vim-jp-emojis vim-jp-emojis/ ]; const internalIds = [ '5f2f02f3c4a48d00237e1534', // /takker くたくたじゅうよん '5ed109bc910d920023cd8fd5', // /takker-memex takker's memex '5edea5a1df929a001ea458a7', // /takker-collaboration-1 takker-collaboration-1 '5f47d1468338f2001ed14791', // /takker-private takker-private '607336aac050e6002217041c', // /takker-books '5c761758dfd2e10017490824', // /programming-notes programming-notes ]; switch (scrapbox.Project.name) { case 'hub': case 'villagepump': case 'verbalizing-community': internalIds.push( '5c53b72c0f34df0017239d97', // /hub hub '5e2455255664e000177a46fc', // /villagepump 井戸端 '608eae2195c39d001cdf60ff', // /verbalizing-community 言語化コミュニティ『シナプス』 ); break; case 'programming-notes': case 'customize': case 'scrapboxlab': internalIds.push( '5c26f344f7bb4f0017abe8c5', // /deno-ja deno-ja '592e2353c23398001181e38a', // /customize Scrapboxカスタマイズコレクション '5af3b5e49df3fd001499c6af', // /scrapboxlab Scrapbox研究会 ); break; }

一旦外部プロジェクトの補完を止める
Indexed DBを圧迫する
なんかこいつが原因でいつもCPUが唸っている気がする
そもそも殆ど使っていない
挙動が壊れているので余り使う気に慣れない
アイコン補完とinternal補完はそのままにする
挙動が壊れているものの、それなりに使っている
他のprojectで自分が書いたリンクを探すときに便利
index-purged.js
// watchListから現在projectと別の補完で使うprojectを除く const res = await fetch(`/api/projects/${scrapbox.Project.name}`); const { id } = await res.json(); /* const projectIds = watchListIds .filter(_id => ![...iconIds, ...internalIds, id].includes(_id)); */ // 起動 mountCompletion({ // internal-completionに使うprojectのid list internal: internalIds.filter(_id => _id !== id), // external-completionに使うprojectのid list //external: projectIds, // emoji-completionに使うprojectのid list emoji: iconIds, });

#2023-05-01 04:51:13 takker99/scrapbox-incremental-fulltext-searchを実装したので不要になった
#2022-09-08 18:06:54
#2022-08-22 22:19:02 コードを少し整形、/takker-PS/takker-booksに変更
#2022-05-16 14:46:16 履歴スライダーを削除
#2022-02-03 08:19:09 /vim-jp-emojisを追加
#2022-01-19 10:51:25
#2021-12-15 20:56:39
#2021-12-06 14:15:39
#2021-06-29 00:35:55
#2021-06-26 23:27:55
#2021-06-25 02:15:37
#2021-06-19 23:34:06