generated at
Porterっぽい編集バーを生やすUserScript


導入方法(簡単版)
2. 自分のページの script.js に貼り付ける
ボタンの説明
最後のカーソルボタンは、モバイル版Scrapboxでキャレットを外してみたいの機能と同じ
カーソル (scrapbox)の付け外しがtoggleされる
導入方法(カスタム)
1. このリンクを踏んでコードを取得し、適当なページに貼り付ける
( [/A/porter] mod.js に貼り付けたとする)
2. ↓のように書いてボタンを追加する
js
import { addButton } from "../../A/porter/mod.js"; const insertText = (text) => { const cursor = document.getElementById("text-input"); cursor.focus(); cursor.value = text; const event = new InputEvent("input", { bubbles: true }); cursor.dispatchEvent(event); }; addButton({ display: "T", onClick: () => { const now = new Date(); const year = now.getFullYear(); const month = `${now.getMonth() + 1}`.padStart("0", 2); const date = `${now.getDate()}`.padStart("0", 2); insertText(`${year}-${month}-${date}`); }, }); addButton({ display: ({ selection }) => selection.hasSingleLineSelection() ? "link" : "", onClick: ({ selection }) => { if (!selection.hasSingleLineSelection()) return; insertText(selection.getSelectedText()); }, }); // ほしい数だけ書く


使ったみた。便利!!!!meganii
インデントを直接操作できる
行ごとではなくブロックごとに操作できるの便利Mijinko_SDMijinko_SDMijinko_SD
PCで言うAlt+方向キーと同等の機能
切り取り・コピーも楽
よかったですtakker
常時編集バーがあると、アプリを閉じるときに誤作動(切り取り、ペースト)しそうなのがちょっと怖いmeganii
開閉ボタン作ってなかったtakker
Android版Porterとして使えるかな?takker
天才かな?Mijinko_SDyosider
すごすぎる
スマホの縦画面だと1ボタン分はみ出してしまうので、ちょっと改変してペーストボタン(clipboard)を削除した
ここらへん、ちゃんと収めようと思ったらCSSのGridとかが適してるのかな
スクロールできればいいかなtakker
max-width: 80vw; overflow: auto;
うまくいったかも
script更新しておきました
2行にすると邪魔くさいのでやる気はしないけれど
特にキャレットを簡単に外せるのがありがたいMijinko_SD
kuuoteさんの成果を使わせていただいているtakker
過去の資産の積み重ねでできている
iPadのSafariだとビルドでエラーが起きてコードが表示できなかった><基素
これに限らないと思うけど
どんなbuild errorが出ましたか?takker
iOSだとボタンを押すごとにIMEが出てきてしまうので連続して操作できない。Androidだとできているってことなんだろうなぁ基素
これAndroidでも発生したので、少しevent周りを調整して直しましたtakker
その上でiOSで依然同じ問題が発生するとしたら、さらにもう一工夫する必要があるということかな
.status-bar.left > div ではなく、上流の .app 辺りにlistenerを生やす
document.getElementsByClassName("app")[0].addEventListener("click", (e) => { if(!e.target.matches(".status-bar.left > div")) return;/*...*/}, { capture: true }); みたいなコードを使えばいいかな
これでも十分そう
だめみたい
2022/5/6 17:05:37 Androidですが、まだ発生していますyosider
えっそんなーtakker
やっぱstopPropagetion()入れないとだめかな?
Androidでブラウザの間の実装の違いがあって起こる?基素
最新版/takker/Porterっぽい編集バーを生やすUserScript@1.0.0 stopPropagation() しましたtakker
試してみてください
iOS出ちゃいました基素
押すたびにIMEの出し入れが起きますか?takker
ボタンを押す→IMEが閉じる→IMEが開く→……
iPhoneからアップしたらこうなった基素
どうやって動画を出してるんですか基素
scrapboxのparseの正規表現が、拡張子MOVを動画URLとして認識していなかったようですtakker
末尾に #.mp4 を付けて動画扱いにしたら読み込まれました
なるほど基素
録画ありがとうございますtakker
これ通信ステータス部分自体が仮想キーボードの下に隠れてしまっていますね
この現象自体はこちらでもときどき起きます
画面回転させたりスワイプしてみたりして再描画させると治る
そんなの嘘でしょ・・・何故なんですか・・・(ボ並感)takker
Android 12 & Chrome 101 & GBoardなのですが、やはり出ます。。yosider
どんな挙動か録画できますか?takker
情報があまりない気もしますが、左右の矢印ボタンを押してます
録画ありがとうございますtakker
うわーtakker
原因が検討つかない……
ほかにやってほしい操作があったら言って下さい
大丈夫ですtakker
コード中の "click" "touchstart" に書き換えて実行してみてもらえますか?
click より前のイベントで伝播を止めればいけるかも?
これでもだめだったらPorterっぽい編集バーを生やすUserScript#627497021280f00000fb4955で実装し直します
いっその事上部にstatus barを設置するのもありか?
nav barの下辺りに表示する
書き換えると良い感じになりました!yosider
IMEが閉じた状態でボタンを押すとIMEが開くが、IMEが開いた状態でボタンを押してもIMEが閉じなくなった(+操作が反映されるようになった)感じ
感謝
IMEが閉じている状態で押すと操作が反映されてIMEが開き、IMEが開いている状態で押すと操作が反映されずにIMEが閉じるみたいyosider
カーソルが外れる操作のlistenerが優先されている?takker
IMEのせいかな、と思ってAQUOS Sense 4 & Android 12 & Chrome 101 & GBoardでやってみましたが、再現できませんでしたtakker
再現できた
アウトライン編集以外のボタンを押すとキーボードが閉じる
閉じないときもある
アウトライン編集だとなぜかボタンを押しても閉じない
yosiderさんの結果と合わせると、takkerの環境でアウトライン編集のボタンを押してもキーボードが閉じない挙動のほうが異常っぽい?
Mijinko_SDさんのスマホだとどうなんだろう
同様に矢印ボタンを押した時にキーボードが出ましたが、最新版を試していないので…Mijinko_SD
undoボタンとかでは出ないっぽいですね
個人的に追加したアイコンを表示するボタンは逆にキーボードが閉じてしまっていたので、 takeCursor().focus を入れて強制的に表示するようにした
バーを横にスクロールできないyosider
takkerさんのようにIMEを透過させて横向きで使えばいい?
Mijinko_SDさんのように2段にすればいい?
キャレットが表示されていない状態でも操作できてしまうのが意外な挙動だったyosider
キャレットが表示されていないときは操作できないようにするといいかも
画面下からスワイプしてホーム画面に戻るタイプの機種だと、このバーに誤タッチして誤って切り取りとかしてしまうことがあるyosider

後で改造してscrapboxのタイムスタンプを入れるボタンを追加するのもアリかなーと思ったMijinko_SD
ただ、これだと画面からはみ出すので、スクロールではなく自動的に二段にする仕組みも作ってみたいところ
Grid(CSS)で実装できるのかな
flexでもいける?
スクロールだとなにか不便がありましたか?takker
あ、ごめんなさいMijinko_SD
まだ試してないです…
二段にした方が一覧性やアクセスのしやすさが向上するかなーって思ったので
アクセスはしやすそうtakker
なるほどtakker
あそうだ。ひとつ不便があったtakker
スクロールとアプリの切り替えジェスチャーとが干渉する
タイムスタンプを入れるボタンを追加した
本家を使ったのではなく自分で勝手にソースコードを改造して入れたものだから、ここに書いたら紛らわしい気がしたMijinko_SD
アイコンを探すのがめんどくさくて T をそのまま入れた