generated at
ページタイトルに絵文字を入れて状態管理する
Scrapboxのタイトルに絵文字を入れて状況表示に使ったりはしてますakix
なるほどyosider
ですです。akix
先頭に絵文字を入れておくと、タスクの状況が一番左に整列して気持ちいいですakix
リンクが切れない機能で状態を一括して変更できるのが最高ですtakker
わかるakix
なるほどtetsuya-k
2018年頃の記事ですが、/akiroom/Sprint.24#5a6f0980af5c5a000091ae80こういう感じでDaily MTGのページにタスク列挙していますakix
当時は記事タイトルじゃなくてリストに絵文字を置いてる
ワンクリックで書けたりしたらよさそうですけどね~
タイトルで発動するUserScriptを作れば行けそうですね
全然テストしていませんが、多分これで動くと思いますtakker
クラッカークラッカー
2021-03-11 21:17:26 テストしました。動作確認取れました
以下のコードを自分のページか開発コンソールに貼り付けて実行すると動きます
js
import('/api/code/nota-techconf/ページタイトルに絵文字を入れて状態管理する/script.js');
ページを開いている状態で Ctrl+p を押すとタイトルに絵文字が挿入されます
連打で変化します
switch case を増やせば、いろんな絵文字に対応できると思います
本文にカーソルがなくても動きます
バグだらけで1日放置してしまってすみません……
script.js
import {press} from '/api/code/programming-notes/scrapbox-keyboard-emulation/script.js'; import {goHeadLine} from '/api/code/takker/scrapbox-cursor-emulation/cursor.js'; let repeat = false; document.addEventListener('keyup', e => { const {ctrlKey, key} = e; if (key !== 'p' || !ctrlKey) return; e.preventDefault(); e.stopPropagation(); repeat = false; }); document.addEventListener('keydown', e => { const {ctrlKey, key} = e; if (key !== 'p' || !ctrlKey) return; e.preventDefault(); e.stopPropagation(); if (repeat) return; goHeadLine(); (async () => { await sleep(100); // scrapbox.Page.titleへの反映までにタイムラグがある // 代わりにDOMから取得する const icon = document.getElementsByClassName('lines')[0] .firstElementChild.textContent[0]; switch (icon) { case '⬜': press('Delete'); insertText(`✅`); break; case '✅': press('Delete'); insertText(`⬜`); break; default: insertText(`⬜`); break; } })(); repeat = true; }); const sleep = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds)); function insertText(text) { const cursor = document.getElementById('text-input'); cursor.focus(); cursor.value = text; const uiEvent = document.createEvent('UIEvent'); uiEvent.initEvent('input', true, false); cursor.dispatchEvent(uiEvent); }
おいおいついに開発しはじめる人まで現れたぞ…yosiderstatakker
一体誰なんだろうな~(すっとぼけ)takker