r7kamura / nippo_old

https://r7kamura.github.io/nippo/
MIT License
0 stars 0 forks source link

日報 #3

Open r7kamura opened 2 years ago

r7kamura commented 2 years ago

ここ数年間Chrome拡張を触っていなかったので、2022年のChrome拡張のつくり方を調べた。

Twitterで尋ねたらk0kubunが良さそうなページを教えてくれた。感謝…

TypeScriptで書き始めたいところではある。

r7kamura commented 2 years ago

という運用が良いのでは無いだろうか。

r7kamura commented 2 years ago

最近はVSCodeのターミナルを常に使うようにしたので、Windows Terminalを使う機会が無くなったというのを思い出した。Windowsを使いはじめた頃はまだVSCodeのターミナルを使う慣習が無かったので、常にそこで作業していた。

とはいえ、VSCodeで、そのプロジェクト (ワークスペース) ではない別のプロジェクトの物事を何かしたくなったときには、少し変な感じがする。関係の無い適当なプロジェクトを開いて、そこのターミナルでリポジトリを新たにつくるコマンドを叩いたりしている。

r7kamura commented 2 years ago

vite (比較的新し目のフロントエンド向けビルドツール) が良さそうだったので、Webpackではなくこちらを試してみることにした。

npm init vite@latest

上のコマンドでひな形が作れるようだったので試した。実際には、プロジェクトを既に作った後だったので、それを一時ディレクトリで叩いたあと、必要なファイルを持ってくる、という大変な作業をこなした。

npm initにそういうコマンドを利用できるのも知らなかったけど、便利だなーこれは。npm help init を叩くと説明されていて、上のコマンド例だと npm exec create-vite@latest が実行されているらしい。

npm exec は普段使っている npx のalias。npm initnpm create というaliasもある。

Jack Steamさんのこの記事を参考につくっていっている。

r7kamura commented 2 years ago

とりあえずリポジトリをつくった。

r7kamura commented 2 years ago

viteのChrome extension向け機能を入れた。

npm i -D @crxjs/vite-plugin

vite.config.ts でこのプラグインを利用して「manifest.jsonフを元にいい感じにしてくれ」と伝えると、ビルド時にmanifest.jsonを見て必要なものを全部ビルドしてくれるらしい。例えばmanifest.jsonに「Chrome extensionのアイコンがクリックされたときはこのHTMLを表示する」と定義されていたら、そのHTMLファイルをビルド対象に含めてくれるし、更にそのHTMLファイルで参照されているJavaScriptも含めてくれる。

npm run build
explorer.exe .

ビルドするとdistディレクトリが出来上がるので、これを chrome://extensions のダッシュボードにDrag & Dropすると、無事拡張が読み込まれた。

image

r7kamura commented 2 years ago
npm run dev

とやっている状態でChrome拡張を読み込ませて、ポップアップを開いたままにしてソースコードを書き換えると、HMRで自動的に内容を書き換えてくれる。 1

r7kamura commented 2 years ago

navigator.clipboard.write をpopupから呼ぼうとしているが、

DOMException: Document is not focused.

というエラーが出てしまう。popupで呼ぶのがまずいのか、それとも回避策があるのか不明

r7kamura commented 2 years ago

permissionとかをガチャガチャやったら動いた。多分permissionが必要だったんだ。多分。

r7kamura commented 2 years ago

キーボードショートカットが見た感じ設定できているのに (Chromeから見ても設定されている)、押しても何も実行されなくて困っている。押したら自動的にポップアップが出るのだと思っていたが、そうではない?

…とおもったら、他の拡張がそのショートカットキーを使っていたのでダメだったという話だった。

r7kamura commented 2 years ago

Clipboard APIが動かない問題、再発していた。動いたり動かなかったりするので、フォーカス次第で変わるのだと思う。

r7kamura commented 2 years ago

大体できた気がする。あとはパッケージングするだけ。

r7kamura commented 2 years ago

navigator.clipboard.write をpopupから呼ぼうとしているが、

DOMException: Document is not focused.

というエラーが出てしまう。popupで呼ぶのがまずいのか、それとも回避策があるのか不明

Clipboard APIはpopupから動かすと動かない (しかも動くときもある!) らしいので、結局使うのをやめた。

execCommandでもリッチテキストがコピーできるようだったので、こっちを使うことに。

r7kamura commented 2 years ago

Chrome拡張をウェブストアに申請した。

r7kamura commented 2 years ago

書いた:

r7kamura commented 2 years ago

OBSでは、Segoe UI Emojiというフォントを選択すると絵文字が出せることが分かった。Macでは使えないとある。

この情報はRedditのOBSスレで知った。Redditは本当にすごいなあ。実際はGoogle検索から辿り着いただけなのだけど。OBS関係の話は英語で検索するとほしい情報に有りつけることが多い。

r7kamura commented 2 years ago

remark-github-diff-viewer (GitHubのcommitのdiffの行指定表示なURLを書いておくと、GitHub APIを叩いて自動的に差分表示のHTMLに置き換えてくれる君) があると、Markdownでdiff埋め込みながら解説記事書きやすく成るよなと思った。

r7kamura commented 2 years ago

みりんって意味あるのか?と思って調べたら、真の情報を見つけた。

食品の見た目に関する基礎知識 | おいしさづくりの基礎知識 | 加工・業務用調味料 | 商品紹介 | 宝酒造株式会社