ページタイトルに絵文字を入れて状態管理する
Scrapboxのタイトルに絵文字を入れて状況表示に使ったりはしてますakix.icon
なるほどyosider.icon
ですです。akix.icon
先頭に絵文字を入れておくと、タスクの状況が一番左に整列して気持ちいいですakix.icon
/icons/わかる.iconakix.icon
なるほどtetsuya-k.icon
当時は記事タイトルじゃなくてリストに絵文字を置いてる
ワンクリックで書けたりしたらよさそうですけどね~
タイトルで発動するUserScriptを作れば行けそうですね
全然テストしていませんが、多分これで動くと思いますtakker.icon
/icons/クラッカー.icon*2
2021-03-11 21:17:26 テストしました。動作確認取れました
https://gyazo.com/44f78d45a68e02abb48d3b3f6bd13f71
以下のコードを自分のページか開発コンソールに貼り付けて実行すると動きます
code:js
import('/api/code/nota-techconf/ページタイトルに絵文字を入れて状態管理する/script.js');
ページを開いている状態でCtrl+pを押すとタイトルに絵文字が挿入されます
連打で変化します
switchのcaseを増やせば、いろんな絵文字に対応できると思います
本文にカーソルがなくても動きます
バグだらけで1日放置してしまってすみません……
code: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.textContent0; 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);
}
おいおいついに開発しはじめる人まで現れたぞ…yosider.iconsta.icontakker.icon
一体誰なんだろうな~(すっとぼけ)takker.icon