# 🏆MVP ## Feniceがbeta版に近づく [[📰2024年14週 Weekly Report]]で既に[[🦉Fenice]]が実用レベルに達したことをお伝えしたが、この週は更にブラッシュアップしてクオリティを上げることに成功した。主なコミットは以下の通り。 - **引用句に対応** - 存在しないユーザーのメンションがあるとカードが表示されない不具合修正 - WIP: ボットやattachmentsの投稿を表示する (mrkdwnそのままなので見にくい) - **DM(Multi DM含む)の名前表示とprefixアイコンの変更** - OAuth認証処理の例外メッセージとUX向上 - **Botなど人間以外が送信してくるメッセージを一通り必要な情報が伝わるレベルで表示する** - Feniceからフォーカスを外しても投稿成功トーストを停止しないようにする (必ず3秒後に消えるようにする) - 成功トーストのプログレスバーを表示しない - attachmentsの表示改善 - **カードにブラウザで開くボタンを追加** - 通知欄に通知元channelの一覧を表示 - attachmentsの表示改善 - **通知をクリックしたらFeniceタブをアクティブにして重要メッセージ画面に遷移する** - 画面名の変更 『禅 times画面』『重要メッセージ画面』 - サイドメニューのアイコンサイズを調整 - **禅 time画面: channel選択方法のリニューアル** - 拡張アイコンクリックで直接トップページを開く - 『すべて既読にする』クリック時の既読設定スピードを23倍高速化 - **グループメンションをサポート** - **添付画像表示対応 (png, jpg, gif, webp)** - サポートしていなかった引用に関する描画パターンを一部追加 主にbot投稿やattachmentsに関する表示のサポートや、通知機能の改善、パフォーマンスやUX改善が挙げられる。特に太字のコミットは是非確認してみてほしい。 中でも『**禅 time画面: channel選択方法のリニューアル**』は[[🦉Fenice]]の思想に沿った機能と言える。今まではjoinしている全channelの中から (最近選択した順とはいえ) インクリメンタルサーチして絞り込んだchannelを指定し、投稿する必要があった。しかし、**『timesのように投稿するchannelは大抵の場合は数channelに限定されており、それ以外のchannelに誤って投稿するリスクの方が集中力を阻害する要因なりかねない』** という判断の元で、UIを変更した。 ![[Pasted image 20240416140331.png|frame]] *禅 times画面の新しいchannel選択方法* 新しいUIでは、①に設定した候補の中から1つを選び投稿する形となる。①に設定するchannelの増減は、`EDIT`ボタンを押して表示される②のUIから検索して選択する形だ。 この変更は既存ユーザーからも好評で、私自身も気に入っているので良い対応ができたと思っている。今後も[[🦉Fenice]]の思想を軸に少しクセのある本質的なUIを追求していきたい。 今月中にはbeta版としてストア公開できたらと思っている。 # ✨Evolution Highlights ## SlackのChrome拡張 (Fenice) ### Slack - [[Slackのアクセストークンに期限を設定]] - [[Slackのアクセストークンはデフォルトで有効期限が設定されていない]]ので、それを設定する方法 - ユーザーとしては無期限の方が便利だけど、セキュリティ面でよろしくないので期限を設定した ([[🦉Fenice]]) - [[📜2024-04-09 SlackのmrkdwnをBlock Kitのオブジェクトに変換してみる]] - 引用やattachments内で [[mrkdwn]] によるテキストブロックがいくつかあり、それを描画するために対応が必要だった - [[slack-message-parser]] - [[mrkdwn]]をパースしてくれるライブラリ. 他にないので便利 - [[HTML]]構築に最適化された形式へとパースされるが、個人的には[[Block Kit]]形式の方が嬉しかった - [[📜2024-04-13 Slackのrefresh tokenを使ってaccess tokenを更新する]] ### OAuth 2.0 - 改めて用語を整理 - [[アクセストークン (OAuth 2.0)]] - [[リフレッシュトークン (OAuth 2.0)]] ### Vue - [[KeepAlive]] - [[Vue Router]]のようなルーティングをページ情報保持したまま切り替えるような機能を、[[Vue Router]]なしで実現するために使える機能. [[SPA]]では必須 - [[onActivated (Vue)]], [[onDeactivated (Vue)]] といった特別なライフサイクルも ### WXT - [[拡張機能アイコンクリックで新しいタブにページを表示 (WXT)]] - 以前はpopupにボタンを設置してクリックしたら遷移するようにしていたが、更にシンプルになった ## Another Quick SwitcherのBun移行 - [[📜2024-04-14 Node.jsのObsidianプラグインプロジェクトをBunに移行してみた]] ### Bun - [[huskyでプッシュ前に自動でTypeScriptの型チェックとテスト実行 (Bun)]] - 最新バージョンでコマンドが変わっていたり、[[Node.js]]とは少しやり方が違うので切り出し - [[コマンドライン引数を取得 (Bun)]] - `mts`ファイルをタスク実行ファイルとして使うときに便利 - [[📝Bunでnpm versionのようにpackage.jsonのバージョンをインクリメントしたい]] - これはできなかったので、同様の処理を`version-bump.mts`に記載した ### GitHub Actions - [[GitHub Actionsを使用 (Bun)]] - [[setup-bun (GitHub Actions)]] - [[📝CheckoutのGitHub Actionsでtest Unexpected input(s) 'repo-token'エラー]] - `repo-token`は必要なくなったのかな... 検証はできていないが外して今のところは動いている... ### Biome [[Bun]]化とは直接関係ないが、ついでに[[Biome]]にもした。100以上のエラーに対処して地味に面倒だった。 - [[Biomeのフォーマッターはデフォルトだとインデントにタブが使用]] - [[Biome]]デフォルト設定で唯一不満な点. ただ、[[Neovim]]で[[Biome]]プロジェクトとして認知させるため `biome.json` は必須にしているので個人的に困ってはいない - [[フォーマッターのインデントをスペースに (Biome)]] - [[リント・フォーマット・import並び替えをすべて実行 (Biome)]] - はじめは `biome lint` と `biome format` を別々に使っていたが、これ1つで解決. しかもimport最適化のオマケ付き ## Playwright - [[📝UIモードでタグの否定フィルタができない (Playwright)]] - [[Playwright]] 1.42で`tag`が指定できるようになったが、[[UIモード (Playwright)|UIモード]]では否定条件にまだ対応できてなさそう ## Git - [[📕ステージングした内容を過去のコミットにマージ (Lazygit)]] - [[amend (Git)|amend]]ではなく2つ以上前のコミットにマージしたいケースはそれなりにあるので覚えておいた方がいい. 忘れたらまた見に来ればいい. その繰り返しが記憶に定着させる ## Vitest - [[特定ディレクトリ配下のテストを無視 (Vitest)]] - [[Playwright]]などで[[E2Eテスト]]を書いているとき、こちらが反応してしまいエラーになるので ## その他 - [[drawDB]] - [[draw.io]]っぽい[[ER図作成ツール]]. 機会があったら使ってみたい - [[Freeze]] - ソースコードをキャプチャに変換する系は大体自分の環境だとうまく動かないのだけど、これは特に依存関係なしでいきなり動いたので好印象 - 今年度はソースコード画像を使う機会も増えそうなので使いこなしていきたい. ローカルなのでセキュリティ面でも安心できる - できれば clipboard -> clipboard で動いてほしいので、そこは自作でなんか作るかも - [[通知の表示時間を設定 (Windows11)]] - [[🦉Fenice]]の通知をしばらく表示したままにしたかったので.. 5分までは通知を表示できるようになった. 個人的には実用的なレベルなので満足 # 🚀Releases - [[🦉Another Quick Switcher]] - [Another Quick Switcher v11.2.4リリース](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/11.2.4) - [Another Quick Switcher v11.3.0リリース](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/11.3.0) # 👀Most Visited Page 113セクション。先週に引き続きV2。 <div class="link-card"> <div class="link-card-header"> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/> <span class="link-card-site-name">minerva.mamansoft.net</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">📝pip installするとexternally-managed-environmentエラーが出る</p> </div> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" /> </div> <a class="internal-link" data-href="Notes/📝pip installするとexternally-managed-environmentエラーが出る.md"></a> </div> %%[[📝pip installするとexternally-managed-environmentエラーが出る]]%% ちょうど今週から[[Python]]のキャッチアップをしようと思っていたので、狼煙としてちょうどいいかも。 # 📚New Notes - [[Biomeのフォーマッターはデフォルトだとインデントにタブが使用]] - [[ER図作成ツール]] - [[Freeze]] - [[GitHub Actionsを使用 (Bun)]] - [[KeepAlive]] - [[Slackのアクセストークンに期限を設定]] - [[Slackのアクセストークンはデフォルトで有効期限が設定されていない]] - [[UIモード (Playwright)]] - [[drawDB]] - [[huskyでプッシュ前に自動でTypeScriptの型チェックとテスト実行 (Bun)]] - [[huskyでプッシュ前に自動でTypeScriptの型チェックとテスト実行 (Node.js)]] - [[onActivated (Vue)]] - [[onDeactivated (Vue)]] - [[setup-bun (GitHub Actions)]] - [[slack-message-parser]] - [[アクセストークン (OAuth 2.0)]] - [[コマンドライン引数を取得 (Bun)]] - [[📕ステージングした内容を過去のコミットにマージ (Lazygit)]] - [[フォーマッターのインデントをスペースに (Biome)]] - [[リフレッシュトークン (OAuth 2.0)]] - [[リント・フォーマット・import並び替えをすべて実行 (Biome)]] - [[拡張機能アイコン (Chrome Extension)]] - [[拡張機能アイコンクリックで新しいタブにページを表示 (WXT)]] - [[特定ディレクトリ配下のテストを無視 (Vitest)]] - [[通知の表示時間を設定 (Windows11)]] - [[📜2024-04-09 SlackのmrkdwnをBlock Kitのオブジェクトに変換してみる]] - [[📜2024-04-13 Slackのrefresh tokenを使ってaccess tokenを更新する]] - [[📜2024-04-14 Node.jsのObsidianプラグインプロジェクトをBunに移行してみた]] - [[📝Bunでnpm versionのようにpackage.jsonのバージョンをインクリメントしたい]] - [[📝CheckoutのGitHub Actionsでtest Unexpected input(s) 'repo-token'エラー]] - [[📝UIモードでタグの否定フィルタができない (Playwright)]] - [[📰2024年14週 Weekly Report]]