-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(frontend): 設定の検索 #15505
feat(frontend): 設定の検索 #15505
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #15505 +/- ##
============================================
- Coverage 41.74% 14.27% -27.48%
============================================
Files 1549 779 -770
Lines 196555 71368 -125187
Branches 2767 1243 -1524
============================================
- Hits 82055 10187 -71868
+ Misses 113939 60758 -53181
+ Partials 561 423 -138 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
地道に設定項目のインデックス化をしてくださる方を募集しています |
|
今後設定項目増えたときも大変だし項目移動したとき更新を忘れる気がするのでなんか.vueファイルを探索して自動でインデックス作りたい気がする MkSearchMarkerのuuidもできたら自動で埋めたい |
vueファイルの解析は実装が困難かも
|
windowsの設定とかiosの設定の検索は自分が確認した感じインデックスを手動で用意する方式っぽい挙動してた(過去のバージョンで削除された機能が検索だと出てきたり(押しても何も起こらない)、逆に結果に漏れがあったり) |
ベストプラクティス募集中 |
misskeyjsみたいな事前生成を考えてたので アンジャッシュしてる気もしてるので明示すると |
これが難しい気がするのよね |
①「プロフィールの名前だけを変えるコンポーネント」を用意する <MkInput v-model="profile.name" :max="30" manualSave :mfmAutocomplete="['emoji']">
<template #label>{{ i18n.ts._profile.name }}</template>
</MkInput> ②既存のページコンポーネントの中身を①に置き換える(今までと同じ機能を提供させるため) |
全言語いずれもヒットするようになれば影響なしです…? |
ソースコードを解析して属性上の もしくは |
これ考えたけど、(ないとは思うけど)コンポーネント側が i18n という変数名以外でインポートしてたら壊れるなと |
(いずれにせよ、手で紐づけは現実的ではなく、動的なアプローチじゃないと厳しい認識) |
壊れたら壊れたでビルド時にエラーになって気付けそうだから別に良いか |
壊れたら気付けると思いますし、 |
というわけでマニュアルインデックス定義は廃止して <MkSearchMarker
:locationLabel="[i18n.ts.privacy, i18n.ts.makeFollowManuallyApprove]"
:icon="'ti ti-lock-open'"
:keywords="['follow', 'lock', i18n.ts.lockedAccountInfo]"
:path="'/settings/privacy'"
>
<MkSwitch v-model="isLocked" @update:modelValue="save()">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></MkSwitch>
</MkSearchMarker> でやっていくことにしました |
|
|
着手未定だけど興味はあります |
正規表現だと難しい可能性があるからXMLとかHTMLパーサーを使って解析すると柔軟にできそう |
vue独自の構文とかは存在しないため |
これはそうだと思ってます |
動的に設定項目が生成される(v-for等)ケースは対応が困難かも |
正確にそこを指し示すことができなかったとしてもページに飛ばすことはできるだろうから、キーワードにサウンド名を全部入れるのでとりあえずは良い気はする |
…y-ges enhance: 設定の検索で上下矢印を使用することで検索結果を移動できるように
…ge-window fix(frontend): PageWindowでSearchMarkerが動作するように
…ghlight-time enhance(frontend): SearchMarkerの点滅を一定時間で止める
インデックス更新のときに出る大量のログどうにかしたいわね |
コントロールパネルのインデックス化を担当してくださる人材を募集しています |
…duce-logs enhance(frontend): 検索インデックス作成時のログを削減
コンパネなどは追々 |
🙏 |
後で(機運が来れば)実装される/出来るものは、issueにしておいてもらえると助かるかもしれません 🙏 (忘れてしまいそうなので… & それを見た誰かが作業出来るかもなので) |
* wip * wip * wip * test * wip rollup pluginでsearchIndexの情報生成 * wip * SPDX * wip: markerIdを自動付与 * rollupでビルド時・devモード時に毎回uuidを生成するように * 開発サーバーでだけ必要な挙動は開発サーバーのみで * 条件が逆 * wip: childrenの生成 * update comment * update comment * rename auto generated file * hashをパスと行数から決定 * Update privacy.vue * Update privacy.vue * wip * Update general.vue * Update general.vue * wip * wip * Update SearchMarker.vue * wip * Update profile.vue * Update mute-block.vue * Update mute-block.vue * Update general.vue * Update general.vue * childrenがduplicate key errorを吐く問題をいったん解決 * マーカーの形を成形 * loggerを置きかえ * とりあえず省略記法に対応 * Refactor and Format codes * wip * Update settings-search-index.ts * wip * wip * とりあえず不確定要因の仮置きidを削除 * hashの生成を正規化(絶対パスになっていたのを緩和) * pathの入力を省略可能に * adminでもパス生成できるように * Update settings-search-index.ts * Update privacy.vue * wip * build searchIndex * wip * build * Update general.vue * build * Update sounds.vue * build * build * Update sounds.vue * 🎨 * 🎨 * Update privacy.vue * Update privacy.vue * Update security.vue * create-search-indexを多少改善 * build * Update 2fa.vue * wip * 必ずtransformCodeCacheを利用するように, キャッシュの明確な受け渡しを定義 * キャッシュはdevServerでなくても更新 * Revert "wip" This reverts commit 41bffd3. * inlining * wip * Update theme.vue * 🎨 * wip normalize * Update theme.vue * キャッシュのパス変換 * build * wip * wip * Update SearchMarker.vue * i18n.ts['key'] の形式が取り出せない問題のFix * build * 仮でpath入れ * 必ず絶対パスが使われるように * wip * 🎨 * storybookビルド時はcreateSearchIndexをしない * inliningの構造化 * format code * Update index.vue * wip * wip * 🎨 * wip * wip * wip * wip * wip * wip * wip * wip * clean up * Update navbar.vue * enhance: 検索で上下矢印を使用することで検索結果を移動できるように * refactor * fix(frontend): PageWindowでSearchMarkerが動作するように * enhance(frontend): SearchMarkerの点滅を一定時間で止める * lint fix * fix: 子要素監視が抜けていたのを修正 * アニメーションの回数はCSSで制御するように * refactor * enhance(frontend): 検索インデックス作成時のログを削減 * revert * fix * fix --------- Co-authored-by: tai-cha <dev@taichan.site> Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com> Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
これ実装落ち着いたら消そうと思ってて忘れていたやつなので感謝 🙏 |
* wip * wip * wip * test * wip rollup pluginでsearchIndexの情報生成 * wip * SPDX * wip: markerIdを自動付与 * rollupでビルド時・devモード時に毎回uuidを生成するように * 開発サーバーでだけ必要な挙動は開発サーバーのみで * 条件が逆 * wip: childrenの生成 * update comment * update comment * rename auto generated file * hashをパスと行数から決定 * Update privacy.vue * Update privacy.vue * wip * Update general.vue * Update general.vue * wip * wip * Update SearchMarker.vue * wip * Update profile.vue * Update mute-block.vue * Update mute-block.vue * Update general.vue * Update general.vue * childrenがduplicate key errorを吐く問題をいったん解決 * マーカーの形を成形 * loggerを置きかえ * とりあえず省略記法に対応 * Refactor and Format codes * wip * Update settings-search-index.ts * wip * wip * とりあえず不確定要因の仮置きidを削除 * hashの生成を正規化(絶対パスになっていたのを緩和) * pathの入力を省略可能に * adminでもパス生成できるように * Update settings-search-index.ts * Update privacy.vue * wip * build searchIndex * wip * build * Update general.vue * build * Update sounds.vue * build * build * Update sounds.vue * 🎨 * 🎨 * Update privacy.vue * Update privacy.vue * Update security.vue * create-search-indexを多少改善 * build * Update 2fa.vue * wip * 必ずtransformCodeCacheを利用するように, キャッシュの明確な受け渡しを定義 * キャッシュはdevServerでなくても更新 * Revert "wip" This reverts commit 41bffd3. * inlining * wip * Update theme.vue * 🎨 * wip normalize * Update theme.vue * キャッシュのパス変換 * build * wip * wip * Update SearchMarker.vue * i18n.ts['key'] の形式が取り出せない問題のFix * build * 仮でpath入れ * 必ず絶対パスが使われるように * wip * 🎨 * storybookビルド時はcreateSearchIndexをしない * inliningの構造化 * format code * Update index.vue * wip * wip * 🎨 * wip * wip * wip * wip * wip * wip * wip * wip * clean up * Update navbar.vue * enhance: 検索で上下矢印を使用することで検索結果を移動できるように * refactor * fix(frontend): PageWindowでSearchMarkerが動作するように * enhance(frontend): SearchMarkerの点滅を一定時間で止める * lint fix * fix: 子要素監視が抜けていたのを修正 * アニメーションの回数はCSSで制御するように * refactor * enhance(frontend): 検索インデックス作成時のログを削減 * revert * fix * fix --------- Co-authored-by: tai-cha <dev@taichan.site> Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com> Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
What
Resolve #13189
TODO
Why
Additional info (optional)
Checklist