diff --git a/README.md b/README.md index 8dcd8f5..201a258 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ Right-click on the shard to use. For shards that have been modified, using this ## 2024-09-23 -* Open new window to bottom, otherwise to the right +* Open new window: 0 do not open, 1 open to front, 2 open to back, 3 open to right, 4 open to bottom ## 2024-09-21 diff --git a/README_zh_CN.md b/README_zh_CN.md index 8b1e667..79bbfd8 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -508,7 +508,7 @@ ctrl+f4,分片右键使用。 ## 2024-09-23 -* 新开窗口到底部否则弹到右边 +* 新开窗: 0不打开,1打开到前台,2打开到后台,3打开到右边,4打开到底部 ## 2024-09-21 diff --git a/dist/README.md b/dist/README.md index 8dcd8f5..201a258 100644 --- a/dist/README.md +++ b/dist/README.md @@ -470,7 +470,7 @@ Right-click on the shard to use. For shards that have been modified, using this ## 2024-09-23 -* Open new window to bottom, otherwise to the right +* Open new window: 0 do not open, 1 open to front, 2 open to back, 3 open to right, 4 open to bottom ## 2024-09-21 diff --git a/dist/README_zh_CN.md b/dist/README_zh_CN.md index 8b1e667..79bbfd8 100644 --- a/dist/README_zh_CN.md +++ b/dist/README_zh_CN.md @@ -508,7 +508,7 @@ ctrl+f4,分片右键使用。 ## 2024-09-23 -* 新开窗口到底部否则弹到右边 +* 新开窗: 0不打开,1打开到前台,2打开到后台,3打开到右边,4打开到底部 ## 2024-09-21 diff --git a/dist/index.js b/dist/index.js index a1a8f58..25a15fd 100644 --- a/dist/index.js +++ b/dist/index.js @@ -235,10 +235,10 @@ it means that as long as one of these keywords appears, it will match.< nor Boss.


-`}}get 整理assets下的图片视频音频(){switch(this.conf.appearance.lang){case"zh_CN":return"整理 assets 下的图片、视频、音频";case"es_ES":return"Organizando imágenes, videos y audios en assets";case"fr_FR":return"Organiser les images, vidéos et audios dans assets";case"ja_JP":return"assetsの画像、ビデオ、オーディオを整理する";case"zh_CHT":return"整理 assets 下的圖片、視頻、音頻";case"en_US":default:return"Organizing images, videos, and audios under assets"}}get 即将创建快照(){switch(this.conf.appearance.lang){case"zh_CN":return"即将创建快照,如果有问题,可从快照恢复。(建议自己手动 alt+h 创建快照保险一些)";case"es_ES":return"Pronto se creará una instantánea, si hay un problema, se puede restaurar desde la instantánea. (Se recomienda que cree una instantánea manualmente con alt+h para mayor seguridad)";case"fr_FR":return"Une capture sera bientôt créée, en cas de problème, vous pouvez restaurer à partir de la capture. (Il est recommandé de créer une capture manuellement avec alt+h pour plus de sécurité)";case"ja_JP":return"スナップショットを作成しようとしています。問題がある場合は、スナップショットから復元できます。(手動でalt+hを使用してスナップショットを作成することをお勧めします)";case"zh_CHT":return"即將創建快照,如果有問題,可從快照恢復。(建議自己手動 alt+h 創建快照保險一些)";case"en_US":default:return"About to create a snapshot, if there's a problem, you can restore from the snapshot. (It's recommended to manually create a snapshot with alt+h for more security)"}}get 已经刷新虚拟引用(){switch(this.conf.appearance.lang){case"zh_CN":return"已经刷新虚拟引用";case"es_ES":return"Se han actualizado las referencias virtuales";case"fr_FR":return"Les références virtuelles ont été mises à jour";case"ja_JP":return"仮想参照が更新されました";case"zh_CHT":return"已經刷新虛擬引用";case"en_US":default:return"Virtual references have been refreshed"}}get 正在转移引用(){switch(this.conf.appearance.lang){case"zh_CN":return"正在转移引用……";case"es_ES":return"Transfiriendo referencias...";case"fr_FR":return"Transfert des références...";case"ja_JP":return"参照を移動しています...";case"zh_CHT":return"正在轉移引用……";case"en_US":default:return"Transferring references..."}}get 正在尝试删除闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"正在尝试删除闪卡……";case"es_ES":return"Intentando eliminar tarjetas flash...";case"fr_FR":return"Tentative de suppression des cartes flash...";case"ja_JP":return"フラッシュカードを削除しようとしています...";case"zh_CHT":return"正在嘗試刪除閃卡……";case"en_US":default:return"Trying to delete flashcards..."}}get 正在删除老文件(){switch(this.conf.appearance.lang){case"zh_CN":return"正在删除老文件……";case"es_ES":return"Eliminando archivos antiguos...";case"fr_FR":return"Suppression des anciens fichiers...";case"ja_JP":return"古いファイルを削除しています...";case"zh_CHT":return"正在刪除老文件……";case"en_US":default:return"Deleting old files..."}}get assets整理还在进行中(){switch(this.conf.appearance.lang){case"zh_CN":return"assets: 整理还在进行中……";case"es_ES":return"assets: La organización todavía está en progreso...";case"fr_FR":return"assets: L'organisation est toujours en cours...";case"ja_JP":return"assets: 整理はまだ進行中です...";case"zh_CHT":return"assets: 整理仍在進行中...";case"en_US":default:return"assets: The organization is still in progress..."}}assets整理了x个文件(e){switch(this.conf.appearance.lang){case"zh_CN":return`assets: 整理了[${e}]个文件`;case"es_ES":return`assets: Se han organizado [${e}] archivos`;case"fr_FR":return`assets: [${e}] fichiers ont été organisés`;case"ja_JP":return`assets: [${e}]つのファイルを整理しました`;case"zh_CHT":return`assets: 整理了[${e}]個文件`;case"en_US":default:return`assets: [${e}] files have been organized`}}已经处理了x个块(e,z,b){switch(this.conf.appearance.lang){case"zh_CN":return`已经处理了[${e}/${z}]个文件,[${b}]个块。`;case"es_ES":return`Se han procesado [${e}/${z}] archivos, [${b}] bloques.`;case"fr_FR":return`[${e}/${z}] fichiers ont été traités, [${b}] blocs.`;case"ja_JP":return`[${e}/${z}]つのファイル、[${b}]つのブロックを処理しました。`;case"zh_CHT":return`已經處理了[${e}/${z}]個文件,[${b}]個塊。`;case"en_US":default:return`Processed [${e}/${z}] files, [${b}] blocks.`}}准备删除失效闪卡(e){switch(this.conf.appearance.lang){case"zh_CN":return`准备删除失效闪卡${e}个`;case"es_ES":return`Preparándose para eliminar ${e} tarjetas flash no válidas`;case"fr_FR":return`Préparation à la suppression de ${e} cartes flash non valides`;case"ja_JP":return`無効なフラッシュカード${e}枚を削除する準備ができています`;case"zh_CHT":return`準備刪除失效閃卡${e}個`;case"en_US":default:return`Preparing to delete ${e} invalid flashcards`}}get 默认关闭自动刷新(){switch(this.conf.appearance.lang){case"zh_CN":return"默认关闭自动刷新";case"es_ES":return"Deshabilitar la actualización automática por defecto";case"fr_FR":return"Désactiver le rafraîchissement automatique par défaut";case"ja_JP":return"デフォルトで自動更新を無効にする";case"zh_CHT":return"預設關閉自動刷新";case"en_US":default:return"Disable auto-refresh by default"}}get 自动选择一个笔记本(){switch(this.conf.appearance.lang){case"zh_CN":return"自动选择一个笔记本";case"es_ES":return"Seleccionar automáticamente un cuaderno";case"fr_FR":return"Sélectionner automatiquement un cahier";case"ja_JP":return"自動的にノートを選択する";case"zh_CHT":return"自動選擇一個筆記本";case"en_US":default:return"Automatically select a notebook"}}get 自动(){switch(this.conf.appearance.lang){case"zh_CN":return"自动";case"es_ES":return"Automático";case"fr_FR":return"Automatique";case"ja_JP":return"自動";case"zh_CHT":return"自動";case"en_US":default:return"Automatic"}}get 选择(){switch(this.conf.appearance.lang){case"zh_CN":return"选择";case"es_ES":return"Seleccionar";case"fr_FR":return"Sélectionner";case"ja_JP":return"選択する";case"zh_CHT":return"選擇";case"en_US":default:return"Select"}}get 知识库问答(){switch(this.conf.appearance.lang){case"zh_CN":return"知识库问答";case"es_ES":return"Preguntas y respuestas de la base de conocimientos";case"fr_FR":return"Questions et réponses de la base de connaissances";case"ja_JP":return"知識ベースの質問と回答";case"zh_CHT":return"知識庫問答";case"en_US":default:return"Knowledge Base Q&A"}}get 隐藏闪卡暂停按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"隐藏闪卡暂停按钮";case"es_ES":return"Ocultar botón de pausa de tarjetas rápidas";case"fr_FR":return"Masquer le bouton de pause des cartes flash";case"ja_JP":return"フラッシュカードのポーズボタンを非表示";case"zh_CHT":return"隱藏閃卡暫停按鈕";case"en_US":default:return"Hide Flashcard Pause Button"}}get 隐藏优先级滑动块(){switch(this.conf.appearance.lang){case"zh_CN":return"隐藏优先级滑动块";case"es_ES":return"Ocultar control deslizante de prioridad";case"fr_FR":return"Masquer la barre de défilement de priorité";case"ja_JP":return"優先度スライダーを非表示";case"zh_CHT":return"隱藏優先級滑動塊";case"en_US":default:return"Hide Priority Slider"}}get 使内容模糊(){switch(this.conf.appearance.lang){case"zh_CN":return"使内容模糊";case"es_ES":return"Hacer contenido borroso";case"fr_FR":return"Rendre le contenu flou";case"ja_JP":return"コンテンツをぼやかす";case"zh_CHT":return"使內容模糊";case"en_US":default:return"Make content blurry"}}get 请将上面的内容制作为表格(){switch(this.conf.appearance.lang){case"zh_CN":return"请将上面的内容制作为表格";case"es_ES":return"Por favor, convierte el contenido de arriba en una tabla";case"fr_FR":return"Veuillez transformer le contenu ci-dessus en tableau";case"ja_JP":return"上の内容をテーブルにまとめます";case"zh_CHT":return"請將上面的內容製成表格";case"en_US":default:return"Please format the above content into a table"}}get 内容制表(){switch(this.conf.appearance.lang){case"zh_CN":return"把有‘|’隔开的内容制表,可选择多行";case"es_ES":return"Formatea el contenido separado por '|', puedes seleccionar múltiples líneas";case"fr_FR":return"Met en forme le contenu séparé par '|', vous pouvez sélectionner plusieurs lignes";case"ja_JP":return"'|'で区切られた内容を表形式にします。複数行を選択できます";case"zh_CHT":return"將有‘|’分隔的內容製成表格,可選擇多行";case"en_US":default:return"Format the content separated by '|', multi-line selection is available"}}get 在文档树中定位(){switch(this.conf.appearance.lang){case"zh_CN":return"在文档树中定位";case"es_ES":return"Localizar en el árbol de documentos";case"fr_FR":return"Localiser dans l'arborescence des documents";case"ja_JP":return"ドキュメントツリーで位置を特定";case"zh_CHT":return"在文檔樹中定位";case"en_US":default:return"Locate in the document tree"}}get 番茄钟在状态栏的右边(){switch(this.conf.appearance.lang){case"zh_CN":return"番茄钟在状态栏的右边";case"es_ES":return"El pomodoro está a la derecha de la barra de estado";case"fr_FR":return"Le pomodoro est à droite de la barre d'état";case"ja_JP":return"ステータスバーの右側にトマト時計があります";case"zh_CHT":return"番茄鐘在狀態欄的右邊";case"en_US":default:return"Pomodoro is on the right side of the status bar"}}get 复制为图片(){switch(this.conf.appearance.lang){case"zh_CN":return"复制为图片";case"es_ES":return"Copiar como imagen";case"fr_FR":return"Copier en tant qu'image";case"ja_JP":return"画像としてコピー";case"zh_CHT":return"複製為圖片";case"en_US":default:return"Copy as Picture"}}get 正在复制为图片请等待(){switch(this.conf.appearance.lang){case"zh_CN":return"正在复制为图片请等待";case"es_ES":return"Copiando como imagen, por favor espere";case"fr_FR":return"Copie en cours sous forme d'image, veuillez patienter";case"ja_JP":return"画像としてコピー中です。お待ちください";case"zh_CHT":return"正在複製為圖片請等待";case"en_US":default:return"Copying as image, please wait"}}get 复制完成(){switch(this.conf.appearance.lang){case"zh_CN":return"复制完成";case"es_ES":return"Copia completada";case"fr_FR":return"Copie terminée";case"ja_JP":return"コピーが完了しました";case"zh_CHT":return"複製完成";case"en_US":default:return"Copy completed"}}get 显示备注(){switch(this.conf.appearance.lang){case"zh_CN":return"显示备注Memo于内容上方";case"es_ES":return"Mostrar notas memo encima del contenido";case"fr_FR":return"Afficher les notes memo au-dessus du contenu";case"ja_JP":return"内容の上にメモを表示";case"zh_CHT":return"顯示備註Memo於內容上方";case"en_US":default:return"Show memo notes above content"}}get 锁定内容(){switch(this.conf.appearance.lang){case"zh_CN":return"锁定内容/解锁内容";case"es_ES":return"Bloquear contenido/Desbloquear contenido";case"fr_FR":return"Verrouiller le contenu/Déverrouiller le contenu";case"ja_JP":return"コンテンツをロック/ロック解除";case"zh_CHT":return"鎖定內容/解鎖內容";case"en_US":default:return"Lock Content/Unlock Content"}}get 百度千帆转发器监听地址(){switch(this.conf.appearance.lang){case"zh_CN":return"百度千帆转发器监听地址";case"es_ES":return"Dirección de escucha del transmisor de Baidu Qianfan";case"fr_FR":return"Adresse d'écoute du transmetteur Baidu Qianfan";case"ja_JP":return"百度千帆転送器リスニングアドレス";case"zh_CHT":return"百度千帆轉發器監聽地址";case"en_US":default:return"Baidu Qianfan Transmitter Listening Address"}}get 添加百度千帆的密钥(){switch(this.conf.appearance.lang){case"zh_CN":return"添加百度千帆的密钥";case"es_ES":return"Agregar clave de Baidu Qianfan";case"fr_FR":return"Ajouter la clé de Baidu Qianfan";case"ja_JP":return"百度千帆のキーを追加";case"zh_CHT":return"添加百度千帆的密鑰";case"en_US":default:return"Add Baidu Qianfan Key"}}get 添加知识库得到ID(){switch(this.conf.appearance.lang){case"zh_CN":return"添加知识库得到ID";case"es_ES":return"Agregar base de conocimientos para obtener ID";case"fr_FR":return"Ajouter une base de connaissances pour obtenir l'ID";case"ja_JP":return"知識ベースを追加してIDを取得";case"zh_CHT":return"添加知識庫得到ID";case"en_US":default:return"Add Knowledge Base to Get ID"}}get 添加AI应用(){switch(this.conf.appearance.lang){case"zh_CN":return"添加AI应用,配置刚加上的知识库,最后发布,得到应用ID";case"es_ES":return"Agregar aplicación de IA, configurar la base de conocimientos recién agregada, publicar y obtener el ID de la aplicación";case"fr_FR":return"Ajouter une application AI, configurer la base de connaissances nouvellement ajoutée, publier et obtenir l'ID de l'application";case"ja_JP":return"AIアプリケーションを追加し、新しく追加された知識ベースを設定し、最後に公開してアプリケーションIDを取得";case"zh_CHT":return"添加AI應用,配置剛加上的知識庫,最後發布,得到應用ID";case"en_US":default:return"Add AI Application, Configure the Recently Added Knowledge Base, Publish, and Get Application ID"}}get 更新所有文档成功(){switch(this.conf.appearance.lang){case"zh_CN":return"更新所有文档成功";case"es_ES":return"Actualización exitosa de todos los documentos";case"fr_FR":return"Mise à jour réussie de tous les documents";case"ja_JP":return"すべてのドキュメントの更新に成功";case"zh_CHT":return"更新所有文檔成功";case"en_US":default:return"Successfully Updated All Documents"}}get 删除多余的(){switch(this.conf.appearance.lang){case"zh_CN":return"删除多余的";case"es_ES":return"Eliminar lo sobrante";case"fr_FR":return"Supprimer le superflu";case"ja_JP":return"余分なものを削除";case"zh_CHT":return"刪除多餘的";case"en_US":default:return"Delete Excess"}}get 清理完成(){switch(this.conf.appearance.lang){case"zh_CN":return"清理完成";case"es_ES":return"Limpieza completada";case"fr_FR":return"Nettoyage terminé";case"ja_JP":return"クリーンアップ完了";case"zh_CHT":return"清理完成";case"en_US":default:return"Cleanup completed"}}get 删除重复的(){switch(this.conf.appearance.lang){case"zh_CN":return"删除重复的";case"es_ES":return"Eliminar duplicados";case"fr_FR":return"Supprimer les doublons";case"ja_JP":return"重複を削除";case"zh_CHT":return"刪除重複的";case"en_US":default:return"Delete duplicates"}}get 向知识库提问(){switch(this.conf.appearance.lang){case"zh_CN":return"向知识库提问";case"es_ES":return"Preguntar a la base de conocimientos";case"fr_FR":return"Poser une question à la base de connaissances";case"ja_JP":return"知識ベースに質問する";case"zh_CHT":return"向知識庫提問";case"en_US":default:return"Ask the knowledge base"}}get 向知识库提问stream(){switch(this.conf.appearance.lang){case"zh_CN":return"向知识库提问(流式)";case"es_ES":return"Preguntar a la base de conocimientos (stream)";case"fr_FR":return"Poser une question à la base de connaissances (stream)";case"ja_JP":return"知識ベースに質問する(ストリーム)";case"zh_CHT":return"向知識庫提問(流式)";case"en_US":default:return"Ask the knowledge base (stream)"}}get 清理百度千帆多余文件(){switch(this.conf.appearance.lang){case"zh_CN":return"清理百度千帆多余文件";case"es_ES":return"Limpiar archivos innecesarios de Baidu Qianfan";case"fr_FR":return"Nettoyer les fichiers superflus de Baidu Qianfan";case"ja_JP":return"百度千帆の不要なファイルをクリーンアップ";case"zh_CHT":return"清理百度千帆多餘文件";case"en_US":default:return"Clean up unnecessary files from Baidu Qianfan"}}get 打开知识库(){switch(this.conf.appearance.lang){case"zh_CN":return"打开知识库";case"es_ES":return"Abrir base de conocimientos";case"fr_FR":return"Ouvrir la base de connaissances";case"ja_JP":return"知識ベースを開く";case"zh_CHT":return"打開知識庫";case"en_US":default:return"Open knowledge base"}}get 上传当前文档以及所有子文档到百度千帆(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档以及所有子文档到百度千帆";case"es_ES":return"Subir el documento actual y todos los subdocumentos a Baidu Qianfan";case"fr_FR":return"Télécharger le document actuel et tous les sous-documents sur Baidu Qianfan";case"ja_JP":return"現在のドキュメントとすべてのサブドキュメントを百度千帆にアップロード";case"zh_CHT":return"上傳當前文件及所有子文件至百度千帆";case"en_US":default:return"Upload the current document and all sub-documents to Baidu Qianfan"}}get 在检索问答时(){switch(this.conf.appearance.lang){case"zh_CN":return"在检索问答时,系统通过检索知识点召回对应的切片。开启知识增强,会调用大模型抽取更加丰富的知识点,增加切片的召回率。开启后,会增加文档的处理时长和资源消耗。";case"es_ES":return"Al buscar respuestas, el sistema recupera las rebanadas correspondientes mediante la búsqueda de conocimientos. Al activar el enriquecimiento del conocimiento, se llama a un modelo grande para extraer conocimientos más ricos, aumentando la tasa de recuperación de las rebanadas. Después de activarlo, aumentará la duración del procesamiento del documento y el consumo de recursos.";case"fr_FR":return"Lors de la recherche de réponses, le système récupère les tranches correspondantes en recherchant des connaissances. En activant l'enrichissement des connaissances, un grand modèle est appelé pour extraire des connaissances plus riches, augmentant ainsi le taux de récupération des tranches. Après l'avoir activé, cela augmentera la durée de traitement du document et la consommation de ressources.";case"ja_JP":return"回答を検索する際、システムは知識を検索して対応するスライスを呼び出します。知識の強化を有効にすると、大規模なモデルを呼び出してより豊富な知識を抽出し、スライスの呼び出し率を向上させます。有効にすると、ドキュメントの処理時間とリソース消費が増加します。";case"zh_CHT":return"在檢索問答時,系統通過檢索知識點召回對應的切片。開啟知識增強,會調用大模型抽取更加豐富的知識點,增加切片的召回率。開啟後,會增加文檔的處理時長和資源消耗。";case"en_US":default:return"When retrieving answers, the system retrieves the corresponding slices by searching for knowledge points. By enabling knowledge enhancement, a large model is called to extract more rich knowledge points, increasing the recall rate of slices. After enabling, it will increase the processing time and resource consumption of documents."}}get 上传当前文档以及所有子文档到百度千帆Enhance(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档以及所有子文档到百度千帆(知识增强)";case"es_ES":return"Subir el documento actual y todos los subdocumentos a Baidu Qianfan (Mejora del Conocimiento)";case"fr_FR":return"Télécharger le document actuel et tous les sous-documents vers Baidu Qianfan (Amélioration des Connaissances)";case"ja_JP":return"現在のドキュメントとすべてのサブドキュメントを百度千帆(知識強化)にアップロードする";case"zh_CHT":return"上傳當前文件及所有子文件到百度千帆(知識增強)";case"en_US":default:return"Upload the current document and all sub-documents to Baidu Qianfan (Knowledge Enhance)"}}get 上传当前文档Enchance(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档(知识增强)";case"es_ES":return"Subir documento actual (mejora de conocimiento)";case"fr_FR":return"Télécharger le document actuel (amélioration des connaissances)";case"ja_JP":return"現在のドキュメントをアップロード(知識強化)";case"zh_CHT":return"上傳當前文檔(知識增強)";case"en_US":default:return"Upload current document (knowledge enhancement)"}}get 上传当前文档(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档";case"es_ES":return"Subir documento actual";case"fr_FR":return"Télécharger le document actuel";case"ja_JP":return"現在のドキュメントをアップロード";case"zh_CHT":return"上傳當前文檔";case"en_US":default:return"Upload current document"}}get 从百度千帆删除当前文件(){switch(this.conf.appearance.lang){case"zh_CN":return"从百度千帆删除当前文件";case"es_ES":return"Eliminar el archivo actual de Baidu Qianfan";case"fr_FR":return"Supprimer le fichier actuel de Baidu Qianfan";case"ja_JP":return"百度千帆から現在のファイルを削除";case"zh_CHT":return"從百度千帆刪除當前文件";case"en_US":default:return"Delete current file from Baidu Qianfan"}}get 从百度千帆删除当前文件以及子文件(){switch(this.conf.appearance.lang){case"zh_CN":return"从百度千帆删除当前文件以及子文件";case"es_ES":return"Eliminar el archivo actual y sus subarchivos de Baidu Qianfan";case"fr_FR":return"Supprimer le fichier actuel et ses sous-fichiers de Baidu Qianfan";case"ja_JP":return"百度千帆から現在のファイルとサブファイルを削除";case"zh_CHT":return"從百度千帆刪除當前文件以及子文件";case"en_US":default:return"Delete current file and subfiles from Baidu Qianfan"}}get 移动到DailyNote时总是移动到底部(){switch(this.conf.appearance.lang){case"zh_CN":return"移动、复制到DailyNote时总是在底部";case"es_ES":return"Mover o copiar a DailyNote siempre al final";case"fr_FR":return"Déplacer ou copier vers DailyNote toujours en bas";case"ja_JP":return"DailyNoteに移動またはコピーするときは常に最後に";case"zh_CHT":return"移動、複製到DailyNote時總是在底部";case"en_US":default:return"Move or copy to DailyNote always at the bottom"}}get 插入阅读点时记录当前所有打开的页签(){switch(this.conf.appearance.lang){case"zh_CN":return"插入阅读点时,记录当前所有打开的页签";case"es_ES":return"Al insertar un punto de lectura, registrar todas las pestañas abiertas actualmente";case"fr_FR":return"Lors de l'insertion d'un point de lecture, enregistrer toutes les onglets ouverts actuellement";case"ja_JP":return"読書ポイントを挿入するとき、現在開いているすべてのタブを記録する";case"zh_CHT":return"插入閱讀點時,記錄當前所有打開的頁籤";case"en_US":default:return"When inserting a reading point, record all currently open tabs"}}get 鼠标悬浮显示闪卡挖空的内容(){switch(this.conf.appearance.lang){case"zh_CN":return"鼠标悬浮时,显示闪卡被挖空的内容";case"es_ES":return"Mostrar el contenido oculto de la tarjeta flash al pasar el ratón por encima";case"fr_FR":return"Afficher le contenu masqué de la carte mémoire lors du survol de la souris";case"ja_JP":return"マウスオーバー時に、カードの隠された内容を表示する";case"zh_CHT":return"鼠標懸浮時,顯示閃卡被挖空的内容";case"en_US":default:return"Show the cloze content of the flashcard on mouse hover"}}get 收集当前文档与子文档所有的未完成任务(){switch(this.conf.appearance.lang){case"zh_CN":return"收集当前文档与子文档所有的未完成任务";case"es_ES":return"Recopilar todas las tareas pendientes del documento actual y sus subdocumentos";case"fr_FR":return"Collecter toutes les tâches incomplètes du document actuel et de ses sous-documents";case"ja_JP":return"現在のドキュメントとそのサブドキュメントのすべての未完了タスクを収集する";case"zh_CHT":return"收集當前文檔與子文檔所有的未完成任務";case"en_US":default:return"Collect all incomplete tasks in the current document and its subdocuments"}}get 列出当前文档与子文档中没被引用的文档(){switch(this.conf.appearance.lang){case"zh_CN":return"列出当前文档与子文档中,没被引用的文档";case"es_ES":return"Listar los documentos no referenciados en el documento actual y sus subdocumentos";case"fr_FR":return"Lister les documents non référencés dans le document actuel et ses sous-documents";case"ja_JP":return"現在のドキュメントとそのサブドキュメントの中で、参照されていないドキュメントをリストアップする";case"zh_CHT":return"列出當前文檔與子文檔中,沒被引用的文檔";case"en_US":default:return"List documents in the current document and its subdocuments that are not referenced"}}get 定位所有引用Menu(){switch(this.conf.appearance.lang){case"zh_CN":return"定位指定块的所有引用";case"es_ES":return"Localizar todas las referencias del bloque especificado";case"fr_FR":return"Localiser toutes les références du bloc spécifié";case"ja_JP":return"指定されたブロックのすべての参照を見つける";case"zh_CHT":return"定位指定塊的所有引用";case"en_US":default:return"Locate all references of the specified block"}}get 定位所有引用(){switch(this.conf.appearance.lang){case"zh_CN":return"快捷键与右键菜单,可定位指定块的反链,以及虚拟正链";case"es_ES":return"Atajos de teclado y menú contextual para localizar las contrapartes de un bloque específico, así como las contrapartes virtuales positivas";case"fr_FR":return"Raccourcis clavier et menu contextuel pour localiser les contreparties d'un bloc spécifique, ainsi que les contreparties virtuelles positives";case"ja_JP":return"ショートカットキーと右クリックメニューで、指定ブロックの逆リンクと仮想正リンクを特定できます";case"zh_CHT":return"快捷鍵與右鍵選單,可定位指定塊的反鏈,以及虛擬正鏈";case"en_US":default:return"Keyboard shortcuts and context menu to locate the backlinks of a specified block, as well as virtual forward links"}}get 点击引用数打开所有引用(){switch(this.conf.appearance.lang){case"zh_CN":return"点击引用数,可以定位所有引用";case"es_ES":return"Haga clic en el número de citas para localizar todas las citas";case"fr_FR":return"Cliquez sur le nombre de citations pour localiser toutes les citations";case"ja_JP":return"引用数をクリックすると、すべての引用を見つけることができます";case"zh_CHT":return"點擊引用數,可以定位所有引用";case"en_US":default:return"Click on the citation count to locate all citations"}}get 背景图透明度(){switch(this.conf.appearance.lang){case"zh_CN":return"背景图透明度,0到1之间。";case"es_ES":return"Opacidad de la imagen de fondo, entre 0 y 1.";case"fr_FR":return"Opacité de l'image de fond, entre 0 et 1.";case"ja_JP":return"背景画像の透明度、0から1の間。";case"zh_CHT":return"背景圖透明度,0到1之間。";case"en_US":default:return"Background image opacity, between 0 and 1."}}get 创建文件时制卡(){switch(this.conf.appearance.lang){case"zh_CN":return"创建文件时制卡";case"es_ES":return"Crear tarjeta al generar archivo";case"fr_FR":return"Créer une carte lors de la création de fichier";case"ja_JP":return"ファイル作成時のカード作成";case"zh_CHT":return"建立檔案時製卡";case"en_US":default:return"Create card when creating file"}}get 快速笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"快速笔记";case"es_ES":return"Notas rápidas";case"fr_FR":return"Notes rapides";case"ja_JP":return"クイックノート";case"zh_CHT":return"快速筆記";case"en_US":default:return"Quick notes"}}get 创建快速笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"创建快速笔记 Ctrl+N";case"es_ES":return"Crear nota rápida Ctrl+N";case"fr_FR":return"Créer une note rapide Ctrl+N";case"ja_JP":return"クイックノートを作成する Ctrl+N";case"zh_CHT":return"建立快速筆記 Ctrl+N";case"en_US":default:return"Create quick note Ctrl+N"}}get 打开最后一个笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"打开最后一个笔记 Ctrl+Alt+N";case"es_ES":return"Abrir última nota Ctrl+Alt+N";case"fr_FR":return"Ouvrir la dernière note Ctrl+Alt+N";case"ja_JP":return"最後のノートを開く Ctrl+Alt+N";case"zh_CHT":return"打開最後一個筆記 Ctrl+Alt+N";case"en_US":default:return"Open last note Ctrl+Alt+N"}}get 给链接加文字(){switch(this.conf.appearance.lang){case"zh_CN":return"给链接加文字";case"es_ES":return"Añadir texto al enlace";case"fr_FR":return"Ajouter du texte au lien";case"ja_JP":return"リンクにテキストを追加";case"zh_CHT":return"給連結加文字";case"en_US":default:return"Add text to link"}}get 列数量留空为自动计算(){switch(this.conf.appearance.lang){case"zh_CN":return"列数量,留空为自动计算";case"es_ES":return"Número de columnas, dejar en blanco para cálculo automático";case"fr_FR":return"Nombre de colonnes, laisser vide pour calcul automatique";case"ja_JP":return"列数、空白の場合は自動計算";case"zh_CHT":return"列數量,留空為自動計算";case"en_US":default:return"Number of columns, leave blank for automatic calculation"}}get 复制文档为标准Markdown(){switch(this.conf.appearance.lang){case"zh_CN":return"复制文档为标准Markdown到剪贴板";case"es_ES":return"Copiar documento como Markdown estándar al portapapeles";case"fr_FR":return"Copier le document en Markdown standard dans le presse-papiers";case"ja_JP":return"標準Markdownとしてドキュメントをクリップボードにコピー";case"zh_CHT":return"複製文件為標準Markdown到剪貼簿";case"en_US":default:return"Copy document as standard Markdown to clipboard"}}get 修复双向链接(){switch(this.conf.appearance.lang){case"zh_CN":return"修复双向链接";case"es_ES":return"Reparar enlaces bidireccionales";case"fr_FR":return"Réparer les liens bidirectionnels";case"ja_JP":return"双方向リンクを修正";case"zh_CHT":return"修復雙向連結";case"en_US":default:return"Fix bidirectional links"}}get 永久显示文档右侧的HomeEnd图标(){switch(this.conf.appearance.lang){case"zh_CN":return"永久显示文档右侧的Home,End图标。";case"es_ES":return"Mostrar permanentemente los iconos Home, End en el lado derecho del documento.";case"fr_FR":return"Afficher en permanence les icônes Home, End à droite du document.";case"ja_JP":return"ドキュメントの右側にHome,Endアイコンを常に表示します。";case"zh_CHT":return"永久顯示文件右側的Home,End圖標。";case"en_US":default:return"Permanently display Home, End icons on the right side of the document."}}get 复制到dailynote(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到 dailynote";case"es_ES":return"Copiar a dailynote";case"fr_FR":return"Copier dans dailynote";case"ja_JP":return"dailynoteにコピー";case"zh_CHT":return"複製到 dailynote";case"en_US":default:return"Copy to dailynote"}}get 复制到dailynote使用的锚文本(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到dailynote使用的锚文本";case"es_ES":return"Texto de anclaje para copiar a la nota diaria";case"fr_FR":return"Texte d'ancrage à copier dans la note quotidienne";case"ja_JP":return"dailynoteにコピーするアンカーテキスト";case"zh_CHT":return"複製到dailynote使用的錨文本";case"en_US":default:return"Anchor text to copy to daily note"}}get 复制的内容显示原文的路径(){switch(this.conf.appearance.lang){case"zh_CN":return"复制的内容显示原文的路径";case"es_ES":return"Ruta del contenido copiado muestra el original";case"fr_FR":return"Chemin du contenu copié affiche l'original";case"ja_JP":return"コピーした内容が原文のパスを表示";case"zh_CHT":return"複製的內容顯示原文的路徑";case"en_US":default:return"Copied content shows original path"}}get 改变原文的背景(){switch(this.conf.appearance.lang){case"zh_CN":return"改变原文的背景";case"es_ES":return"Cambiar el fondo del original";case"fr_FR":return"Changer l'arrière-plan de l'original";case"ja_JP":return"原文の背景を変更";case"zh_CHT":return"改變原文的背景";case"en_US":default:return"Change the background of the original text"}}get 在原文中同时插入阅读点(){switch(this.conf.appearance.lang){case"zh_CN":return"在原文中同时插入阅读点";case"es_ES":return"Insertar puntos de lectura simultáneamente en el original";case"fr_FR":return"Insérer des points de lecture simultanément dans l'original";case"ja_JP":return"原文中に同時に読書ポイントを挿入";case"zh_CHT":return"在原文中同時插入閱讀點";case"en_US":default:return"Insert reading points simultaneously in the original text"}}get 使用引用来回溯(){switch(this.conf.appearance.lang){case"zh_CN":return"使用引用来回溯,否则用超链接";case"es_ES":return"Usar referencias para retroceder, de lo contrario usar hipervínculos";case"fr_FR":return"Utiliser des références pour revenir en arrière, sinon utiliser des hyperliens";case"ja_JP":return"参照を使用して戻る、それ以外の場合はハイパーリンクを使用する";case"zh_CHT":return"使用引用來回溯,否則用超連結";case"en_US":default:return"Use references to backtrack, otherwise use hyperlinks"}}get 添加批注(){switch(this.conf.appearance.lang){case"zh_CN":return"添加批注";case"es_ES":return"Agregar anotación";case"fr_FR":return"Ajouter une annotation";case"ja_JP":return"注釈を追加";case"zh_CHT":return"添加批註";case"en_US":default:return"Add annotation"}}get 删除块以及闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"删除块以及闪卡(可删除文档)";case"es_ES":return"Eliminar bloque y tarjetas flash (puede eliminar documentos)";case"fr_FR":return"Supprimer le bloc et les fiches mémoire (peut supprimer les documents)";case"ja_JP":return"ブロックとフラッシュカードを削除(ドキュメントを削除可能)";case"zh_CHT":return"刪除塊以及閃卡(可刪除文檔)";case"en_US":default:return"Delete block and flashcards (can delete documents)"}}get 添加到新文件(){switch(this.conf.appearance.lang){case"zh_CN":return"添加到新文件";case"es_ES":return"Agregar a un nuevo archivo";case"fr_FR":return"Ajouter à un nouveau fichier";case"ja_JP":return"新しいファイルに追加";case"zh_CHT":return"添加到新檔案";case"en_US":default:return"Add to new file"}}get 加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"加入闪卡";case"es_ES":return"Agregar a tarjetas flash";case"fr_FR":return"Ajouter à des fiches mémo";case"ja_JP":return"フラッシュカードに追加";case"zh_CHT":return"加入閃卡";case"en_US":default:return"Add to flashcards"}}get 复制到dailynoteNewFile(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到新文件";case"es_ES":return"Copiar a nuevo archivo";case"fr_FR":return"Copier dans un nouveau fichier";case"ja_JP":return"新しいファイルにコピー";case"zh_CHT":return"複製到新檔案";case"en_US":default:return"Copy to new file"}}get 请先打开阅读点功能(){switch(this.conf.appearance.lang){case"zh_CN":return"请先打开阅读点功能";case"es_ES":return"Por favor, activa la función de puntos de lectura primero";case"fr_FR":return"Veuillez d'abord activer la fonction de points de lecture";case"ja_JP":return"読書ポイント機能を先に有効にしてください";case"zh_CHT":return"請先打開閱讀點功能";case"en_US":default:return"Please enable the reading point feature first"}}get 设置图标放左边(){switch(this.conf.appearance.lang){case"zh_CN":return"设置图标放左边";case"es_ES":return"Colocar icono a la izquierda";case"fr_FR":return"Placer l'icône à gauche";case"ja_JP":return"アイコンを左に配置";case"zh_CHT":return"設置圖標放左邊";case"en_US":default:return"Set icon to the left"}}get 末尾添加空行(){switch(this.conf.appearance.lang){case"zh_CN":return"末尾添加空行";case"es_ES":return"Agregar línea en blanco al final";case"fr_FR":return"Ajouter une ligne vide à la fin";case"ja_JP":return"末尾に空行を追加";case"zh_CHT":return"末尾添加空行";case"en_US":default:return"Add blank line at the end"}}get 显示topbar(){switch(this.conf.appearance.lang){case"zh_CN":return"显示topbar";case"es_ES":return"Mostrar barra superior";case"fr_FR":return"Afficher la barre supérieure";case"ja_JP":return"トップバーを表示";case"zh_CHT":return"顯示topbar";case"en_US":default:return"Show topbar"}}get 简洁模式切换(){switch(this.conf.appearance.lang){case"zh_CN":return"正常/简洁模式切换";case"es_ES":return"Cambio entre modo normal/simplificado";case"fr_FR":return"Basculement entre le mode normal/simplifié";case"ja_JP":return"通常/シンプルモード切り替え";case"zh_CHT":return"正常/簡潔模式切換";case"en_US":default:return"Toggle normal/concise mode"}}get 显示文档属性(){switch(this.conf.appearance.lang){case"zh_CN":return"显示文档属性";case"es_ES":return"Mostrar propiedades del documento";case"fr_FR":return"Afficher les propriétés du document";case"ja_JP":return"ドキュメントのプロパティを表示";case"zh_CHT":return"顯示文件屬性";case"en_US":default:return"Show document properties"}}get HomeEnd图标放到左边(){switch(this.conf.appearance.lang){case"zh_CN":return"HomeEnd图标放到左边";case"es_ES":return"Iconos HomeEnd a la izquierda";case"fr_FR":return"Icônes HomeEnd à gauche";case"ja_JP":return"HomeEndアイコンを左に配置";case"zh_CHT":return"HomeEnd圖標放到左邊";case"en_US":default:return"HomeEnd icons to the left"}}get 链接到块底部(){switch(this.conf.appearance.lang){case"zh_CN":return"链接到块底部";case"es_ES":return"Enlazar al fondo del bloque";case"fr_FR":return"Lier au bas du bloc";case"ja_JP":return"ブロックの底にリンク";case"zh_CHT":return"鏈接到塊底部";case"en_US":default:return"Link to block bottom"}}get 创建时间升序(){switch(this.conf.appearance.lang){case"zh_CN":return"创建时间升序";case"es_ES":return"Orden ascendente por fecha de creación";case"fr_FR":return"Ordre croissant par date de création";case"ja_JP":return"作成日時昇順";case"zh_CHT":return"創建時間升序";case"en_US":default:return"Ascending order by creation time"}}get 修改时间升序(){switch(this.conf.appearance.lang){case"zh_CN":return"修改时间升序";case"es_ES":return"Orden ascendente por fecha de modificación";case"fr_FR":return"Ordre croissant par date de modification";case"ja_JP":return"修正日時昇順";case"zh_CHT":return"修改時間升序";case"en_US":default:return"Ascending order by modification time"}}get 创建时间降序(){switch(this.conf.appearance.lang){case"zh_CN":return"创建时间降序";case"es_ES":return"Tiempo de creación descendente";case"fr_FR":return"Date de création décroissante";case"ja_JP":return"作成時間降順";case"zh_CHT":return"創建時間降序";case"en_US":default:return"Creation time descending"}}get 修改时间降序(){switch(this.conf.appearance.lang){case"zh_CN":return"修改时间降序";case"es_ES":return"Tiempo de modificación descendente";case"fr_FR":return"Date de modification décroissante";case"ja_JP":return"修正時間降順";case"zh_CHT":return"修改時間降序";case"en_US":default:return"Modification time descending"}}get 阅读点加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读点加入闪卡";case"es_ES":return"Punto de lectura añadido a la tarjeta flash";case"fr_FR":return"Point de lecture ajouté à la carte mémoire";case"ja_JP":return"読書ポイントをフラッシュカードに追加";case"zh_CHT":return"閱讀點加入閃卡";case"en_US":default:return"Reading point added to flashcard"}}get 跳到底部反链(){switch(this.conf.appearance.lang){case"zh_CN":return"跳到底部反链";case"es_ES":return"Ir a las referencias inversas al final";case"fr_FR":return"Aller aux références inverses en bas";case"ja_JP":return"ページ下部の逆リンクに移動";case"zh_CHT":return"跳到底部反鏈";case"en_US":default:return"Jump to Backlinks at the Bottom"}}get 在标题下添加跳转到底部的按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"在标题下添加跳转到底部的按钮";case"es_ES":return"Agregar botón para saltar al final debajo del título";case"fr_FR":return"Ajouter un bouton pour sauter en bas sous le titre";case"ja_JP":return"タイトルの下にページの最後にジャンプするボタンを追加";case"zh_CHT":return"在標題下添加跳轉到底部的按鈕";case"en_US":default:return"Add jump to bottom button under the title"}}get 跳转顶部(){switch(this.conf.appearance.lang){case"zh_CN":return"跳转顶部";case"es_ES":return"Saltar al inicio";case"fr_FR":return"Sauter en haut";case"ja_JP":return"ページの先頭にジャンプ";case"zh_CHT":return"跳轉頂部";case"en_US":default:return"Jump to top"}}get 默认折叠概念栏(){switch(this.conf.appearance.lang){case"zh_CN":return"默认折叠概念栏";case"es_ES":return"Barra de conceptos plegable predeterminada";case"fr_FR":return"Barre de concepts repliable par défaut";case"ja_JP":return"デフォルトで折りたたまれるコンセプトバー";case"zh_CHT":return"預設摺疊概念欄";case"en_US":default:return"Default collapsible concept bar"}}get conceptBarTitle点击(){switch(this.conf.appearance.lang){case"zh_CN":return"点击(打开链接), ctrl点击(并且), shift点击(排除), alt点击(单选)";case"es_ES":return"Clic (abrir enlace), clic con Ctrl (y), clic con Mayús (excluir), clic con Alt (selección única)";case"fr_FR":return"Clic (ouvrir le lien), clic avec Ctrl (et), clic avec Maj (exclure), clic avec Alt (sélection unique)";case"ja_JP":return"クリック(リンクを開く)、Ctrl クリック(および)、Shift クリック(除外)、Alt クリック(単一選択)";case"zh_CHT":return"點擊(打開連結)、Ctrl 點擊(並且)、Shift 點擊(排除)、Alt 點擊(單選)";case"en_US":default:return"Click (open link), Ctrl-click (and), Shift-click (exclude), Alt-click (single selection)"}}get 反链启用只读模式(){switch(this.conf.appearance.lang){case"zh_CN":return"反链启用只读模式,提高性能";case"es_ES":return"El modo de solo lectura para enlaces inversos se activa y mejora el rendimiento.";case"fr_FR":return"Le mode lecture seule pour les liens entrants est activé et améliore les performances.";case"ja_JP":return"バックリンクの読み取り専用モードが有効になり、パフォーマンスが向上します。";case"zh_CHT":return"反向鏈接啟用唯讀模式,提高性能。";case"en_US":default:return"Backlink enable read-only mode to improve performance."}}get 过滤下面显示的反链提及(){switch(this.conf.appearance.lang){case"zh_CN":return"在下面显示的反链提及中过滤。可点击问号查看语法。";case"es_ES":return"Filtrar las menciones de enlaces inversos mostrados a continuación.";case"fr_FR":return"Filtrer les mentions de liens inverses affichées ci-dessous.";case"ja_JP":return"以下に表示されるバックリンクの言及をフィルタリングします。疑問符をクリックして構文を確認できます。";case"zh_CHT":return"在下面顯示的反向鏈接提及中過濾。可點擊問號查看語法。";case"en_US":default:return"Filter the backlink mentions shown below. Click the question mark to view the syntax."}}get 搜索反链提及(){switch(this.conf.appearance.lang){case"zh_CN":return"搜索本文档所有反链提及,搜索范围不受最大展开数限制。";case"es_ES":return"Buscar todas las menciones de enlaces inversos en este documento. El alcance de búsqueda no está limitado por el número máximo de expansiones.";case"fr_FR":return"Rechercher toutes les mentions de liens inverses dans ce document. La portée de la recherche n'est pas limitée par le nombre maximal d'expansions.";case"ja_JP":return"この文書内のすべてのバックリンクの言及を検索します。検索範囲は最大展開数に制限されません。";case"zh_CHT":return"搜尋本文檔所有反向鏈接提及,搜索範圍不受最大展開數限制。";case"en_US":default:return"Search for all backlink mentions in this document. The search scope is not limited by the maximum number of expansions."}}get 标题字母升序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题字母升序";case"es_ES":return"Título alfabético ascendente";case"fr_FR":return"Titre par ordre alphabétique croissant";case"ja_JP":return"タイトルアルファベット昇順";case"zh_CHT":return"標題字母升序";case"en_US":default:return"Title Alphabetical Ascending"}}get 标题字母降序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题字母降序";case"es_ES":return"Título alfabético descendente";case"fr_FR":return"Titre par ordre alphabétique décroissant";case"ja_JP":return"タイトルアルファベット降順";case"zh_CHT":return"標題字母降序";case"en_US":default:return"Title Alphabetical Descending"}}get 标题自然数升序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题自然数升序";case"es_ES":return"Título numérico natural ascendente";case"fr_FR":return"Titre par ordre numérique naturel croissant";case"ja_JP":return"タイトル自然数昇順";case"zh_CHT":return"標題自然數升序";case"en_US":default:return"Title Natural Number Ascending"}}get 标题自然数降序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题自然数降序";case"es_ES":return"Título numérico natural descendente";case"fr_FR":return"Titre par ordre numérique naturel décroissant";case"ja_JP":return"タイトル自然数降順";case"zh_CHT":return"標題自然數降序";case"en_US":default:return"Title Natural Number Descending"}}get 草稿切换(){switch(this.conf.appearance.lang){case"zh_CN":return"草稿切换";case"es_ES":return"Cambio de borrador";case"fr_FR":return"Changement de brouillon";case"ja_JP":return"下書き切り替え";case"zh_CHT":return"草稿切換";case"en_US":default:return"Draft Switch"}}get 快速笔记Doc(){switch(this.conf.appearance.lang){case"zh_CN":return"快捷键如有冲突请调整。
ctrl+n: 创建快速笔记。
ctrl+alt+n: 打开最新的快速笔记。
f4: 对任意文档,快速切其正面与背面。";case"es_ES":return"Ajuste los accesos directos si hay conflictos.
ctrl+n: Crear una nota rápida.
ctrl+alt+n: Abrir la nota rápida más reciente.
f4: Cambiar rápidamente entre la parte frontal y trasera de cualquier documento.";case"fr_FR":return"Ajustez les raccourcis si des conflits existent.
ctrl+n: Créer une note rapide.
ctrl+alt+n: Ouvrir la dernière note rapide.
f4: Passer rapidement entre l'avant et l'arrière de n'importe quel document.";case"ja_JP":return"ショートカットキーが競合する場合は調整してください。
ctrl+n: クイックノートを作成。
ctrl+alt+n: 最新のクイックノートを開く。
f4: 任意のドキュメントの表と裏を素早く切り替える。";case"zh_CHT":return"快捷鍵如有衝突請調整。
ctrl+n: 創建快速筆記。
ctrl+alt+n: 打開最新的快速筆記。
f4: 對任意文檔,快速切其正面與背面。";case"en_US":default:return"Adjust shortcuts if there are conflicts.
ctrl+n: Create a quick note.
ctrl+alt+n: Open the latest quick note.
f4: Quickly toggle between the front and back of any document."}}get 将指定的引用渲染为标签(){switch(this.conf.appearance.lang){case"zh_CN":return"把包含指定前缀的引用,渲染为标签。每个前缀用逗号隔开。";case"es_ES":return"Renderizar referencias que contienen un prefijo específico como etiquetas. Separe cada prefijo con una coma.";case"fr_FR":return"Rendre les références contenant un préfixe spécifié en tant qu'étiquettes. Séparez chaque préfixe par une virgule.";case"ja_JP":return"指定されたプレフィックスを含む参照をタグとしてレンダリングします。各プレフィックスはカンマで区切ります。";case"zh_CHT":return"把包含指定前綴的引用,渲染為標籤。每個前綴用逗號隔開。";case"en_US":default:return"Render references containing a specified prefix as tags. Separate each prefix with a comma."}}get 使用链接否则用引用(){switch(this.conf.appearance.lang){case"zh_CN":return"打开使用链接,关闭使用引用。";case"es_ES":return"Abra usando el enlace, cierre usando la referencia.";case"fr_FR":return"Ouvrez en utilisant le lien, fermez en utilisant la référence.";case"ja_JP":return"リンクを使用して開き、参照を使用して閉じます。";case"zh_CHT":return"打開使用連結,關閉使用引用。";case"en_US":default:return"Open using the link, close using the reference."}}get 总是保持已经加载的内容(){switch(this.conf.appearance.lang){case"zh_CN":return"总是保持已经加载的内容";case"es_ES":return"Mantener siempre el contenido ya cargado";case"fr_FR":return"Toujours conserver le contenu déjà chargé";case"ja_JP":return"常に既にロードされたコンテンツを保持する";case"zh_CHT":return"總是保持已經加載的內容";case"en_US":default:return"Always keep the already loaded content"}}get 阅读点统一保存(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读点统一保存";case"es_ES":return"Guardar uniformemente los puntos de lectura";case"fr_FR":return"Enregistrer uniformément les points de lecture";case"ja_JP":return"読書ポイントを統一して保存する";case"zh_CHT":return"閱讀點統一保存";case"en_US":default:return"Uniformly save reading points"}}get aaa(){switch(this.conf.appearance.lang){case"zh_CN":return"bbb";case"es_ES":return;case"fr_FR":return;case"ja_JP":return;case"zh_CHT":return;case"en_US":default:return}}}const qM=new Ou;function dz(n){return n.startsWith("```")||n.startsWith("> ")||n.startsWith("$$")||n.startsWith("
")||n.startsWith("{{{row")||n.startsWith("{{{col")}class iu{constructor(e){B(this,"openedTab");B(this,"plugin");this.plugin=e}async open(e,z){var b;e&&((b=this.openedTab)==null||b.close(),this.openedTab=await u1(this.plugin,e,["cb-get-hl","cb-get-context"],!1,z))}}function su(n){return n==null?void 0:n.map(e=>{const z=e.cloneNode(!0);Ne(z);const b=A2(z);return _o(b.textContent)}).filter(e=>!!e).reduce((e,z)=>(e.push(z),e),[]).join(` -`)}async function u1(n,e,z,b,M,t){if(r0.isMobile)m0.openMobileFileById(n.app,e);else return m0.openTab({app:n.app,doc:{id:e,action:z,zoomIn:b},position:M,afterOpen:t})}class Au{constructor(){B(this,"conf")}init(){this.conf=ub.config}get aaaaaaaaaaaa(){switch(this.conf.appearance.lang){case"zh_CN":return"aaaaaaaaaaaa";case"es_ES":return;case"fr_FR":return;case"ja_JP":return;case"zh_CHT":return;case"en_US":default:return}}get 新开窗口到底部否则弹到右边(){switch(this.conf.appearance.lang){case"zh_CN":return"新开窗口到底部否则弹到右边";case"es_ES":return"Abrir nueva ventana al fondo, de lo contrario a la derecha";case"fr_FR":return"Ouvrir une nouvelle fenêtre en bas, sinon à droite";case"ja_JP":return"新しいウィンドウを下に開く、それ以外の場合右に開く";case"zh_CHT":return"新開視窗到底部否則彈到右邊";case"en_US":default:return"Open new window to bottom, otherwise to the right"}}get 对分片制卡额外链接到分片(){switch(this.conf.appearance.lang){case"zh_CN":return"对分片制卡,闪卡除了链接到原文,还额外链接到分片。";case"es_ES":return"Para las tarjetas fragmentadas, las tarjetas flash están adicionalmente vinculadas a los fragmentos además de estar vinculadas al texto original.";case"fr_FR":return"Pour les cartes fragmentées, les cartes flash sont en outre liées aux fragments en plus d'être liées au texte original.";case"ja_JP":return"分割されたカードについて、フラッシュカードは原文にリンクするだけでなく、分割にも追加でリンクします。";case"zh_CHT":return"對分片制卡,閃卡除了鏈接到原文,還額外鏈接到分片。";case"en_US":default:return"For fragmented card making, flashcards are additionally linked to fragments in addition to being linked to the original text."}}get 闪卡的回溯使用链接(){switch(this.conf.appearance.lang){case"zh_CN":return"闪卡的回溯使用链接,否则用引用。";case"es_ES":return"Enlace de retroceso de la tarjeta flash, de lo contrario usa la referencia.";case"fr_FR":return"Lien de retour de la carte flash, sinon utilisez la référence.";case"ja_JP":return"フラッシュカードのリグレッションリンク、それ以外の場合は参照を使用します。";case"zh_CHT":return"閃卡的回溯使用連結,否則用引用。";case"en_US":default:return"Flashcard regression link, otherwise use reference."}}get 制卡时在末尾添加空行(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡时,在末尾添加空行";case"es_ES":return"Al crear una tarjeta, agrega una línea en blanco al final";case"fr_FR":return"Lors de la création d'une carte, ajoutez une ligne vide à la fin";case"ja_JP":return"カード作成時に、末尾に空行を追加します";case"zh_CHT":return"制卡時,在末尾添加空行";case"en_US":default:return"When creating a card, add a blank line at the end"}}get 摘抄不加入回溯链接(){switch(this.conf.appearance.lang){case"zh_CN":return"摘抄不加入回溯链接";case"es_ES":return"Extracto sin enlace retrospectivo";case"fr_FR":return"Extrait sans lien rétrospectif";case"ja_JP":return"引用にリンクを含めない";case"zh_CHT":return"摘抄不加入回溯鏈接";case"en_US":default:return"Excerpt without backlink"}}get 分片不加入回溯链接(){switch(this.conf.appearance.lang){case"zh_CN":return"分片不加入回溯链接";case"es_ES":return"Fragmento no incluido en enlaces retrospectivos";case"fr_FR":return"Fragment non inclus dans les liens de rétrospection";case"ja_JP":return"フラグメントを遡及リンクに含めない";case"zh_CHT":return"分片不加入回溯鏈接";case"en_US":default:return"Fragment not included in backtrace links"}}get 合并所有分片到新文件(){switch(this.conf.appearance.lang){case"zh_CN":return"合并所有分片到新文件";case"es_ES":return"Combinar todos los fragmentos en un nuevo archivo";case"fr_FR":return"Fusionner tous les fragments dans un nouveau fichier";case"ja_JP":return"すべてのフラグメントを新しいファイルにマージ";case"zh_CHT":return"合併所有分片到新文件";case"en_US":default:return"Merge all fragments into a new file"}}get 请先配置AI(){switch(this.conf.appearance.lang){case"zh_CN":return"请先配置 AI";case"es_ES":return"Configure la IA primero";case"fr_FR":return"Configurez l'IA d'abord";case"ja_JP":return"まず AI を設定してください";case"zh_CHT":return"請先配置 AI";case"en_US":default:return"Please configure the AI first"}}get 摘录单词并加入闪卡并用AI解释(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词并加入闪卡并用AI解释";case"es_ES":return"Extraer palabras y añadir a tarjetas flash con explicación de IA";case"fr_FR":return"Extraire des mots et ajouter aux fiches flash avec explication par IA";case"ja_JP":return"単語を抜粋してフラッシュカードに追加し、AIによる説明を行う";case"zh_CHT":return"摘錄單詞並加入閃卡並用AI解釋";case"en_US":default:return"Extract words and add to flashcards with AI explanation"}}get 请选择词语(){switch(this.conf.appearance.lang){case"zh_CN":return"请选择词语";case"es_ES":return"Por favor, selecciona la palabra";case"fr_FR":return"Veuillez sélectionner le mot";case"ja_JP":return"単語を選択してください";case"zh_CHT":return"請選擇詞語";case"en_US":default:return"Please select the word"}}get 摘录单词(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词";case"es_ES":return"Extraer palabras";case"fr_FR":return"Extraire des mots";case"ja_JP":return"単語を抜粋する";case"zh_CHT":return"摘錄單詞";case"en_US":default:return"Extract words"}}get 摘录单词并加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词并加入闪卡";case"es_ES":return"Extraer palabras y añadir a tarjetas flash";case"fr_FR":return"Extraire des mots et ajouter aux fiches";case"ja_JP":return"単語を抜粋してフラッシュカードに追加";case"zh_CHT":return"摘錄單詞並加入閃卡";case"en_US":default:return"Extract words and add to flashcards"}}get 渐进学习的设置(){switch(this.conf.appearance.lang){case"zh_CN":return"渐进学习的设置";case"es_ES":return"Configuración de aprendizaje progresivo";case"fr_FR":return"Paramètres d'apprentissage progressif";case"ja_JP":return"段階的な学習の設定";case"zh_CHT":return"漸進學習的設定";case"en_US":default:return"Progressive Learning Settings"}}get 渐进学习(){switch(this.conf.appearance.lang){case"zh_CN":return"渐进学习";case"es_ES":return"Aprendizaje progresivo";case"fr_FR":return"Apprentissage progressif";case"ja_JP":return"段階的学習";case"zh_CHT":return"漸進學習";case"en_US":default:return"Progressive learning"}}get 按标点断句列表(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句,形成列表/大纲";case"es_ES":return"Segmentar por puntuación, formar lista/esquema";case"fr_FR":return"Segmenter par ponctuation, former une liste/un plan";case"ja_JP":return"句読点で区切り、リスト/アウトラインを作成する";case"zh_CHT":return"按標點斷句,形成列表/大綱";case"en_US":default:return"Segment by punctuation, form list/outline"}}get 按标点断句Checkbox(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句,形成任务列表(可以ctrl+enter勾选任务)";case"es_ES":return"Segmentar por puntuación, formar lista de tareas (puede seleccionar tareas con ctrl+enter)";case"fr_FR":return"Segmenter par ponctuation, former une liste de tâches (vous pouvez cocher les tâches avec ctrl+enter)";case"ja_JP":return"句読点で区切り、タスクリストを作成する(ctrl+enterでタスクをチェックできます)";case"zh_CHT":return"按標點斷句,形成任務列表(可以ctrl+enter勾選任務)";case"en_US":default:return"Segment by punctuation, form task list (you can check tasks with ctrl+enter)"}}get 按标点断句(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句";case"es_ES":return"Segmentar por puntuación";case"fr_FR":return"Segmenter par ponctuation";case"ja_JP":return"句読点で区切る";case"zh_CHT":return"按標點斷句";case"en_US":default:return"Segment by punctuation"}}get 不再推送本书(){switch(this.conf.appearance.lang){case"zh_CN":return"不再为我推送本书,可在顶栏的[查看所有渐进学习文档]中开启推送";case"es_ES":return"No enviar más este libro, puedes habilitar el envío en [Ver todos los documentos de aprendizaje progresivo] en la barra superior";case"fr_FR":return"Ne plus envoyer ce livre, vous pouvez activer l'envoi dans [Voir tous les documents d'apprentissage progressif] dans la barre supérieure";case"ja_JP":return"この本をもう送らないでください、トップバーの[すべての段階的学習ドキュメントを表示]で送信を有効にできます";case"zh_CHT":return"不再為我推送本書,可在頂欄的[查看所有漸進學習文檔]中開啟推送";case"en_US":default:return"No longer push this book for me, can turn on push in [View all progressive learning documents] in the top bar"}}get 删除分片并退出(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片并结束阅读";case"es_ES":return"Eliminar fragmento y terminar la lectura";case"fr_FR":return"Supprimer le fragment et terminer la lecture";case"ja_JP":return"フラグメントを削除して読み終える";case"zh_CHT":return"刪除分片並結束閱讀";case"en_US":default:return"Delete fragment and end reading"}}get 删除文档闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"删除文档闪卡";case"es_ES":return"Eliminar tarjeta de documento";case"fr_FR":return"Supprimer la fiche document";case"ja_JP":return"ドキュメントカードを削除する";case"zh_CHT":return"刪除文檔閃卡";case"en_US":default:return"Delete document flashcard"}}get 将文档加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"将文档加入闪卡";case"es_ES":return"Agregar el documento a la tarjeta";case"fr_FR":return"Ajouter le document à la fiche";case"ja_JP":return"ドキュメントをカードに追加する";case"zh_CHT":return"將文檔加入閃卡";case"en_US":default:return"Add document to flashcard"}}get 换一本书看(){switch(this.conf.appearance.lang){case"zh_CN":return"换一本书来看";case"es_ES":return"Cambia a otro libro para leer";case"fr_FR":return"Changez de livre à lire";case"ja_JP":return"別の本を読む";case"zh_CHT":return"換一本書來看";case"en_US":default:return"Switch to another book to read"}}get 删除分片看下一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片,看下一个分片";case"es_ES":return"Eliminar fragmento, ver el siguiente fragmento";case"fr_FR":return"Supprimer le fragment, voir le prochain fragment";case"ja_JP":return"フラグメントを削除し、次のフラグメントを見る";case"zh_CHT":return"刪除分片,看下一個分片";case"en_US":default:return"Delete fragment, see the next fragment"}}get 删除分片看上一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片,看上一个分片";case"es_ES":return"Eliminar fragmento, ver el fragmento anterior";case"fr_FR":return"Supprimer le fragment, voir le fragment précédent";case"ja_JP":return"フラグメントを削除し、前のフラグメントを見る";case"zh_CHT":return"刪除分片,看上一個分片";case"en_US":default:return"Delete fragment, see the previous fragment"}}get 打开本书的闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"打开本书的闪卡";case"es_ES":return"Abre las tarjetas flash de este libro";case"fr_FR":return"Ouvrez les flashcards de ce livre";case"ja_JP":return"この本のフラッシュカードを開く";case"zh_CHT":return"打開本書的閃卡";case"en_US":default:return"Open the flashcards of this book"}}get 关闭分片(){switch(this.conf.appearance.lang){case"zh_CN":return"关闭分片";case"es_ES":return"Cerrar fragmento";case"fr_FR":return"Fermer le fragment";case"ja_JP":return"フラグメントを閉じる";case"zh_CHT":return"關閉分片";case"en_US":default:return"Close fragment"}}get 重新插入分片内容(){switch(this.conf.appearance.lang){case"zh_CN":return"重新插入分片的内容";case"es_ES":return"Reinsertar el contenido del fragmento";case"fr_FR":return"Réinsérer le contenu du fragment";case"ja_JP":return"フラグメントの内容を再挿入する";case"zh_CHT":return"重新插入分片的內容";case"en_US":default:return"Reinsert fragment content"}}get 删除原文(){switch(this.conf.appearance.lang){case"zh_CN":return"删除原文";case"es_ES":return"Eliminar el texto original";case"fr_FR":return"Supprimer le texte original";case"ja_JP":return"オリジナルのテキストを削除する";case"zh_CHT":return"刪除原文";case"en_US":default:return"Delete original text"}}get 下一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"下一个分片";case"es_ES":return"Siguiente fragmento";case"fr_FR":return"Prochain fragment";case"ja_JP":return"次の断片";case"zh_CHT":return"下一個片段";case"en_US":default:return"Next fragment"}}get 上一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"上一个分片";case"es_ES":return"Fragmento anterior";case"fr_FR":return"Fragment précédent";case"ja_JP":return"前の断片";case"zh_CHT":return"上一個片段";case"en_US":default:return"Previous fragment"}}get 打开目录(){switch(this.conf.appearance.lang){case"zh_CN":return"打开目录";case"es_ES":return"Abrir directorio";case"fr_FR":return"Ouvrir le répertoire";case"ja_JP":return"ディレクトリを開く";case"zh_CHT":return"開啟目錄";case"en_US":default:return"Open directory"}}get altshift总是收集到dailynote(){switch(this.conf.appearance.lang){case"zh_CN":return"alt+shift+z总是收集到dailynote";case"es_ES":return"alt+shift+z siempre recoge a dailynote";case"fr_FR":return"alt+shift+z recueille toujours à dailynote";case"ja_JP":return"alt+shift+zは常にdailynoteに集めます";case"zh_CHT":return"alt+shift+z總是收集到dailynote";case"en_US":default:return"alt+shift+z always collects to dailynote"}}get 制卡后追加时间与标题路径(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡后追加时间与标题路径";case"es_ES":return"Después de hacer la tarjeta, añada tiempo y ruta del título";case"fr_FR":return"Après avoir fait la carte, ajoutez du temps et le chemin du titre";case"ja_JP":return"カード作成後、時間とタイトルパスを追加";case"zh_CHT":return"製卡後追加時間與標題路徑";case"en_US":default:return"After card creation, append time and title path"}}get 制卡摘抄改变原文背景(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡、摘抄改变原文背景";case"es_ES":return"Crear tarjetas, extractos cambian el fondo del texto original";case"fr_FR":return"Créer des cartes, extraits changent l'arrière-plan du texte original";case"ja_JP":return"カード作成、抜粋は原文の背景を変更する";case"zh_CHT":return"制卡、摘抄改變原文背景";case"en_US":default:return"Card making, excerpts change the background of the original text"}}get 制卡摘抄在原文处做标记(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡、摘抄在原文处做标记";case"es_ES":return"Hacer tarjeta, hacer anotaciones en el texto original";case"fr_FR":return"Faire une carte, faire des notes dans le texte original";case"ja_JP":return"カードを作り、原文でマークをつける";case"zh_CHT":return"製卡、摘抄在原文處做標記";case"en_US":default:return"Make card, make notes in the original text"}}get 分片内制卡放于分片的子文档内(){switch(this.conf.appearance.lang){case"zh_CN":return"分片内制卡,放于分片的子文档内";case"es_ES":return"Hacer tarjeta dentro del fragmento, colocar en el subdocumento del fragmento";case"fr_FR":return"Faire une carte à l'intérieur du fragment, placer dans le sous-document du fragment";case"ja_JP":return"フラグメント内でカードを作り、フラグメントのサブドキュメントに置く";case"zh_CHT":return"分片內製卡,放於分片的子文檔內";case"en_US":default:return"Make card within fragment, put in the subdocument of the fragment"}}get cards前缀文件(){switch(this.conf.appearance.lang){case"zh_CN":return"'cards-'前缀文件: 每本书用于保存闪卡的文件";case"es_ES":return"Archivo con prefijo 'cards-': Cada libro se utiliza para guardar el archivo de tarjetas";case"fr_FR":return"Fichier avec préfixe 'cards-': Chaque livre sert à sauvegarder le fichier de cartes";case"ja_JP":return"'cards-'プレフィックスのファイル:各書籍はフラッシュカードのファイルを保存するために使用されます";case"zh_CHT":return"'cards-'前綴文件: 每本書用於保存閃卡的文件";case"en_US":default:return"'cards-' prefix file: Each book is used to save the flashcard file"}}get 打开分片的同时打开cards文档(){switch(this.conf.appearance.lang){case"zh_CN":return"打开分片的同时打开cards文档";case"es_ES":return"Abrir el documento de tarjetas al mismo tiempo que se abre el fragmento";case"fr_FR":return"Ouvrir le document de cartes en même temps que le fragment";case"ja_JP":return"フラグメントを開くと同時にカードのドキュメントを開く";case"zh_CHT":return"打開分片的同時打開cards文檔";case"en_US":default:return"Open cards document while opening the fragment"}}get 在闪卡内复习整个分片时隐藏分片下方按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"在闪卡内复习整个分片时,隐藏分片下方按钮";case"es_ES":return"Al revisar todo el fragmento dentro de la tarjeta, ocultar el botón debajo del fragmento";case"fr_FR":return"Lors de la révision de l'ensemble du fragment à l'intérieur de la carte, cacher le bouton sous le fragment";case"ja_JP":return"フラッシュカード内でフラグメント全体を復習する際、フラグメント下のボタンを隠す";case"zh_CHT":return"在閃卡內復習整個分片時,隱藏分片下方按鈕";case"en_US":default:return"When reviewing the entire fragment within the flashcard, hide the button under the fragment"}}get 断句并插入下方(){switch(this.conf.appearance.lang){case"zh_CN":return"断句并插入下方";case"es_ES":return"Fractura e inserta debajo";case"fr_FR":return"Casser et insérer ci-dessous";case"ja_JP":return"文を分割して下に挿入";case"zh_CHT":return"斷句並插入下方";case"en_US":default:return"Break and insert below"}}get 切换单卡多卡模式(){switch(this.conf.appearance.lang){case"zh_CN":return"切换单卡多卡模式";case"es_ES":return"Cambiar modo de tarjeta única a múltiple";case"fr_FR":return"Passer du mode carte unique au mode multi-cartes";case"ja_JP":return"シングルカードモードからマルチカードモードに切り替え";case"zh_CHT":return"切換單卡多卡模式";case"en_US":default:return"Switch single card to multi-card mode"}}get 清理已经完成的摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"清理已经完成的摘抄";case"es_ES":return"Limpiar las citas completadas";case"fr_FR":return"Nettoyer les citations terminées";case"ja_JP":return"完了した引用をクリア";case"zh_CHT":return"清理已經完成的摘抄";case"en_US":default:return"Clean up completed quotes"}}get 这并不是一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"这并不是一个摘抄";case"es_ES":return"Esto no es una cita";case"fr_FR":return"Ce n'est pas une citation";case"ja_JP":return"これは引用ではありません";case"zh_CHT":return"這並不是一個摘抄";case"en_US":default:return"This is not a quote"}}get 标记摘抄为完成状态并转移闪卡到其他摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"标记摘抄为完成状态,并转移闪卡到其他摘抄";case"es_ES":return"Marcar la cita como completada y trasladar las tarjetas a otra cita";case"fr_FR":return"Marquer la citation comme terminée et déplacer les flashcards vers une autre citation";case"ja_JP":return"引用を完了とマークし、フラッシュカードを他の引用に移動";case"zh_CHT":return"標記摘抄為完成狀態,並轉移閃卡到其他摘抄";case"en_US":default:return"Mark the quote as completed and move flashcards to another quote"}}get 打开下一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"打开下一个摘抄";case"es_ES":return"Abrir la siguiente cita";case"fr_FR":return"Ouvrir la citation suivante";case"ja_JP":return"次の引用を開く";case"zh_CHT":return"打開下一個摘抄";case"en_US":default:return"Open the next quote"}}get 打开前一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"打开前一个摘抄";case"es_ES":return"Abrir la cita anterior";case"fr_FR":return"Ouvrir la citation précédente";case"ja_JP":return"前の引用を開く";case"zh_CHT":return"打開前一個摘抄";case"en_US":default:return"Open the previous quote"}}get 查看摘抄轨迹链(){switch(this.conf.appearance.lang){case"zh_CN":return"查看摘抄轨迹链";case"es_ES":return"Ver cadena de trazas de extracto";case"fr_FR":return"Voir la chaîne de traces d'extrait";case"ja_JP":return"抽出トレースチェーンを見る";case"zh_CHT":return"查看摘抄軌跡鏈";case"en_US":default:return"View excerpt trace chain"}}get 摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"摘抄";case"es_ES":return"Extracto";case"fr_FR":return"Extrait";case"ja_JP":return"抽出";case"zh_CHT":return"摘抄";case"en_US":default:return"Excerpt"}}get 不删除已经产生的分片等文件(){switch(this.conf.appearance.lang){case"zh_CN":return"不删除已经产生的分片等文件";case"es_ES":return"No eliminar archivos de fragmentos ya generados, etc.";case"fr_FR":return"Ne pas supprimer les fichiers de fragments déjà générés, etc.";case"ja_JP":return"既に生成されたフラグメントなどのファイルを削除しない";case"zh_CHT":return"不刪除已經產生的分片等文件";case"en_US":default:return"Do not delete already generated fragment files, etc."}}get 删除(){switch(this.conf.appearance.lang){case"zh_CN":return"删除";case"es_ES":return"Eliminar";case"fr_FR":return"Supprimer";case"ja_JP":return"削除";case"zh_CHT":return"刪除";case"en_US":default:return"Delete"}}get 重新分片(){switch(this.conf.appearance.lang){case"zh_CN":return"重新分片";case"es_ES":return"Refragmentar";case"fr_FR":return"Refragmenter";case"ja_JP":return"再フラグメンテーション";case"zh_CHT":return"重新分片";case"en_US":default:return"Refragment"}}get 阅读(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读";case"es_ES":return"Leer";case"fr_FR":return"Lire";case"ja_JP":return"読む";case"zh_CHT":return"閱讀";case"en_US":default:return"Read"}}get 断句(){switch(this.conf.appearance.lang){case"zh_CN":return"断句";case"es_ES":return"Segmentación de frases";case"fr_FR":return"Segmentation de phrases";case"ja_JP":return"フレーズのセグメンテーション";case"zh_CHT":return"斷句";case"en_US":default:return"Sentence segmentation"}}get 末尾(){switch(this.conf.appearance.lang){case"zh_CN":return"末尾块";case"es_ES":return"último bloque";case"fr_FR":return"dernier bloc";case"ja_JP":return"最後のブロック";case"zh_CHT":return"最後一個塊";case"en_US":default:return"last block"}}get 标号(){switch(this.conf.appearance.lang){case"zh_CN":return"添加标号";case"es_ES":return"Agregar etiqueta";case"fr_FR":return"Ajouter une étiquette";case"ja_JP":return"ラベルを追加";case"zh_CHT":return"添加標號";case"en_US":default:return"Add label"}}get 制卡(){switch(this.conf.appearance.lang){case"zh_CN":return"加入闪卡";case"es_ES":return"Añadir tarjeta";case"fr_FR":return"Ajouter une carte";case"ja_JP":return"カードを追加";case"zh_CHT":return"加入閃卡";case"en_US":default:return"Add card"}}get 忽略(){switch(this.conf.appearance.lang){case"zh_CN":return"忽略";case"es_ES":return"Ignorar";case"fr_FR":return"Ignorer";case"ja_JP":return"無視する";case"zh_CHT":return"忽略";case"en_US":default:return"Ignore"}}get 进度(){switch(this.conf.appearance.lang){case"zh_CN":return"进度";case"es_ES":return"Progreso";case"fr_FR":return"Progression";case"ja_JP":return"進行状況";case"zh_CHT":return"進度";case"en_US":default:return"Progress"}}get 书名(){switch(this.conf.appearance.lang){case"zh_CN":return"书名";case"es_ES":return"Título del libro";case"fr_FR":return"Titre du livre";case"ja_JP":return"書籍名";case"zh_CHT":return"書名";case"en_US":default:return"Book title"}}get 只删除记录与辅助数据不删除分片不删除闪卡等删除(){switch(this.conf.appearance.lang){case"zh_CN":return"只删除记录与辅助数据,不删除分片,不删除闪卡等。
删除:";case"es_ES":return"Solo elimina registros y datos auxiliares, no elimina fragmentos, tarjetas, etc.
Eliminar:";case"fr_FR":return"Supprime uniquement les enregistrements et les données d'assistance, sans supprimer les fragments, les cartes, etc.
Supprimer:";case"ja_JP":return"レコードと補助データのみを削除し、フラグメントやカードなどは削除しません。
削除:";case"zh_CHT":return"只刪除記錄與輔助數據,不刪除分片,不刪除閃卡等。
刪除:";case"en_US":default:return"Only delete records and auxiliary data, do not delete fragments, flash cards, etc.
Delete:"}}get 找不到此书籍(){switch(this.conf.appearance.lang){case"zh_CN":return"找不到此书籍";case"es_ES":return"No se puede encontrar este libro";case"fr_FR":return"Impossible de trouver ce livre";case"ja_JP":return"この本が見つかりません";case"zh_CHT":return"找不到此書籍";case"en_US":default:return"Cannot find this book"}}x处修改完成(e){switch(this.conf.appearance.lang){case"zh_CN":return`${e}处修改完成!`;case"es_ES":return`${e} cambios realizados!`;case"fr_FR":return`${e} modifications effectuées!`;case"ja_JP":return`${e}箇所の変更が完了しました!`;case"zh_CHT":return`${e}處修改完成!`;case"en_US":default:return`${e} changes made!`}}get 扫描索引中请耐心等待(){switch(this.conf.appearance.lang){case"zh_CN":return"扫描索引中,请耐心等待……";case"es_ES":return"Indexando, por favor espere...";case"fr_FR":return"Indexation en cours, veuillez patienter...";case"ja_JP":return"インデックス作成中、お待ちください...";case"zh_CHT":return"掃描索引中,請耐心等待……";case"en_US":default:return"Indexing, please wait..."}}get 正在替换start与add替换为超链接(){switch(this.conf.appearance.lang){case"zh_CN":return"正在替换'*'与'@'替换为超链接……";case"es_ES":return"Reemplazando '*' y '@' con enlaces...";case"fr_FR":return"Remplacement de '*' et '@' par des liens...";case"ja_JP":return"'*'と'@'をリンクに置き換え中...";case"zh_CHT":return"正在替換'*'與'@'替換為超連結……";case"en_US":default:return"Replacing '*' and '@' with links..."}}get 即将创建本地备份(){switch(this.conf.appearance.lang){case"zh_CN":return"即将创建本地备份";case"es_ES":return"Creando una copia de seguridad local...";case"fr_FR":return"Création d'une sauvegarde locale...";case"ja_JP":return"ローカルバックアップを作成します...";case"zh_CHT":return"即將創建本地備份";case"en_US":default:return"Creating a local backup..."}}get startAdd替换为超链接(){switch(this.conf.appearance.lang){case"zh_CN":return"⚠️'*'与'@'替换为超链接";case"es_ES":return"⚠️'*' y '@' se reemplazan por enlaces";case"fr_FR":return"⚠️'*' et '@' sont remplacés par des liens";case"ja_JP":return"⚠️'*'と'@'はリンクに置き換えられます";case"zh_CHT":return"⚠️'*'與'@'替換為超連結";case"en_US":default:return"⚠️'*' and '@' are replaced with links"}}get 给分片内段落标上序号(){switch(this.conf.appearance.lang){case"zh_CN":return"给分片内段落标上序号";case"es_ES":return"Numerando párrafos en fragmentos";case"fr_FR":return"Numérotation des paragraphes dans les fragments";case"ja_JP":return"フラグメント内の段落に番号を付ける";case"zh_CHT":return"給分片內段落標上序號";case"en_US":default:return"Numbering paragraphs in fragments"}}get 自动断句(){switch(this.conf.appearance.lang){case"zh_CN":return"自动断句";case"es_ES":return"Autopuntuación";case"fr_FR":return"Auto-punctuation";case"ja_JP":return"自動句点";case"zh_CHT":return"自動斷句";case"en_US":default:return"Auto-punctuation"}}get cancel取消(){switch(this.conf.appearance.lang){case"zh_CN":return"取消";case"es_ES":return"cancelar";case"fr_FR":return"annuler";case"ja_JP":return"キャンセル";case"zh_CHT":return"取消";case"en_US":default:return"cancel"}}get 显示上一分片最后一个内容块(){switch(this.conf.appearance.lang){case"zh_CN":return"显示上一分片最后一个内容块";case"es_ES":return"mostrar el último bloque de contenido del fragmento anterior";case"fr_FR":return"afficher le dernier bloc de contenu du fragment précédent";case"ja_JP":return"前のフラグメントの最後のコンテンツブロックを表示";case"zh_CHT":return"顯示上一分片最後一個內容塊";case"en_US":default:return"show the last content block of the previous fragment"}}get 断句为无序表(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为无序表";case"es_ES":return"frasear como lista desordenada";case"fr_FR":return"phraser comme une liste non ordonnée";case"ja_JP":return"無秩序なリストとしてフレーズ";case"zh_CHT":return"斷句為無序表";case"en_US":default:return"phrase as an unordered list"}}get 断句为任务块(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为任务块";case"es_ES":return"frasear como bloque de tarea";case"fr_FR":return"phraser comme un bloc de tâche";case"ja_JP":return"タスクブロックとしてフレーズ";case"zh_CHT":return"斷句為任務塊";case"en_US":default:return"phrase as a task block"}}get 断句为段落块(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为段落块";case"es_ES":return"frasear como bloque de párrafo";case"fr_FR":return"phraser comme un bloc de paragraphe";case"ja_JP":return"段落ブロックとしてフレーズ";case"zh_CHT":return"斷句為段落塊";case"en_US":default:return"phrase as a paragraph block"}}get 不断句(){switch(this.conf.appearance.lang){case"zh_CN":return"不断句";case"es_ES":return"no frases";case"fr_FR":return"pas de phrases";case"ja_JP":return"フレーズなし";case"zh_CHT":return"不斷句";case"en_US":default:return"no phrases"}}get 新建分片时给段落标上序号(){switch(this.conf.appearance.lang){case"zh_CN":return"新建分片时,给段落标上序号";case"es_ES":return"al crear un nuevo fragmento, numerar los párrafos";case"fr_FR":return"lors de la création d'un nouveau fragment, numéroter les paragraphes";case"ja_JP":return"新しいフラグメントを作成するときに段落に番号をつける";case"zh_CHT":return"新建分片時,給段落標上序號";case"en_US":default:return"when creating a new fragment, number the paragraphs"}}get 把阅读到的分片设置为闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"把阅读到的分片设置为闪卡";case"es_ES":return"Establecer el fragmento leído como tarjeta de memoria";case"fr_FR":return"Définir le fragment lu comme flashcard";case"ja_JP":return"読んだフラグメントをフラッシュカードに設定する";case"zh_CHT":return"將讀到的片段設置為閃卡";case"en_US":default:return"Set the read fragment as flashcard"}}get 只有一个摘抄加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"只有一个摘抄加入闪卡";case"es_ES":return"Sólo un extracto se añade a la tarjeta de memoria";case"fr_FR":return"Seul un extrait est ajouté à la flashcard";case"ja_JP":return"抜粋はフラッシュカードに一つだけ追加されます";case"zh_CHT":return"只有一個摘錄加入閃卡";case"en_US":default:return"Only one excerpt is added to flashcard"}}get 每个摘抄都加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"每个摘抄都加入闪卡";case"es_ES":return"Cada extracto se añade a la tarjeta de memoria";case"fr_FR":return"Chaque extrait est ajouté à la flashcard";case"ja_JP":return"各抜粋がフラッシュカードに追加されます";case"zh_CHT":return"每個摘錄都加入閃卡";case"en_US":default:return"Each excerpt is added to flashcard"}}get 移动到下一分片内(){switch(this.conf.appearance.lang){case"zh_CN":return"移动到下一分片内";case"es_ES":return"Mover al siguiente fragmento";case"fr_FR":return"Passer au fragment suivant";case"ja_JP":return"次のフラグメントに移動する";case"zh_CHT":return"移動到下一片段內";case"en_US":default:return"Move to the next fragment"}}get 移动到上一分片内(){switch(this.conf.appearance.lang){case"zh_CN":return"移动到上一分片内";case"es_ES":return"Mover al fragmento anterior";case"fr_FR":return"Passer au fragment précédent";case"ja_JP":return"前のフラグメントに移動する";case"zh_CHT":return"移動到上一片段內";case"en_US":default:return"Move to the previous fragment"}}get 构建打开目录中请稍后片刻(){switch(this.conf.appearance.lang){case"zh_CN":return"构建/打开目录中,请稍后片刻……";case"es_ES":return"Construyendo/abriendo el directorio, por favor espere un momento...";case"fr_FR":return"Construction/ouverture du répertoire, veuillez patienter un instant...";case"ja_JP":return"ディレクトリを作成/開く中、少々お待ちください...";case"zh_CHT":return"建立/開啟目錄中,請稍後片刻……";case"en_US":default:return"Building/opening directory, please wait a moment..."}}get 首次构建目录请稍后片刻(){switch(this.conf.appearance.lang){case"zh_CN":return"首次,构建目录,请稍后片刻……";case"es_ES":return"Primera vez, construyendo el directorio, por favor espere un momento...";case"fr_FR":return"Première fois, construction du répertoire, veuillez patienter un instant...";case"ja_JP":return"初めて、ディレクトリを作成中、少々お待ちください...";case"zh_CHT":return"首次,建立目錄,請稍後片刻……";case"en_US":default:return"First time, building directory, please wait a moment..."}}get 找不到分片内容(){switch(this.conf.appearance.lang){case"zh_CN":return"找不到分片内容";case"es_ES":return"No se puede encontrar el contenido del fragmento";case"fr_FR":return"Contenu du fragment introuvable";case"ja_JP":return"フラグメントの内容が見つかりません";case"zh_CHT":return"找不到片段內容";case"en_US":default:return"Cannot find fragment content"}}get 总字数(){switch(this.conf.appearance.lang){case"zh_CN":return"总字数";case"es_ES":return"Número total de palabras";case"fr_FR":return"Nombre total de mots";case"ja_JP":return"合計単語数";case"zh_CHT":return"總字數";case"en_US":default:return"Total word count"}}get 各级标题数(){switch(this.conf.appearance.lang){case"zh_CN":return"各级标题数";case"es_ES":return"Número de títulos de cada nivel";case"fr_FR":return"Nombre de titres de chaque niveau";case"ja_JP":return"各レベルのタイトル数";case"zh_CHT":return"各級標題數";case"en_US":default:return"Number of titles at each level"}}get 总内容块数(){switch(this.conf.appearance.lang){case"zh_CN":return"总内容块数";case"es_ES":return"Número total de bloques de contenido";case"fr_FR":return"Nombre total de blocs de contenu";case"ja_JP":return"総コンテンツブロック数";case"zh_CHT":return"總內容塊數";case"en_US":default:return"Total number of content blocks"}}平均每个标题下有x块(e){switch(this.conf.appearance.lang){case"zh_CN":return`平均每个标题下有: [${e}] 个块`;case"es_ES":return`En promedio, hay [${e}] bloques bajo cada título`;case"fr_FR":return`En moyenne, il y a [${e}] blocs sous chaque titre`;case"ja_JP":return`各タイトルには平均して [${e}] ブロックがあります`;case"zh_CHT":return`每個標題下平均有: [${e}] 個區塊`;case"en_US":default:return`On average, there are [${e}] blocks under each title`}}平均每个块有x字(e){switch(this.conf.appearance.lang){case"zh_CN":return`平均每个块有 : [${e}] 字`;case"es_ES":return`En promedio, cada bloque tiene [${e}] palabras`;case"fr_FR":return`En moyenne, chaque bloc contient [${e}] mots`;case"ja_JP":return`各ブロックには平均して [${e}] 文字があります`;case"zh_CHT":return`每個區塊平均有: [${e}] 字`;case"en_US":default:return`On average, each block has [${e}] words`}}}const h=new Au;class uu{constructor(e,z,b,M){B(this,"asList");B(this,"noteID");B(this,"bookID");B(this,"textAreas");B(this,"plugin");this.noteID=b,this.asList=M,this.plugin=z,this.bookID=e}async insert(e=!0){return navigator.locks.request("prog.SplitSentence.insert",{ifAvailable:!0},async z=>{if(z){let b;const M=[];for(const t of this.textAreas)!b&&t.blocks.length>0&&(b=t.blocks[0].id),M.push(t.blocks.map(p=>p.text).join(""));await r.insertBlockAsChildOf(M.join(` +`}}get 整理assets下的图片视频音频(){switch(this.conf.appearance.lang){case"zh_CN":return"整理 assets 下的图片、视频、音频";case"es_ES":return"Organizando imágenes, videos y audios en assets";case"fr_FR":return"Organiser les images, vidéos et audios dans assets";case"ja_JP":return"assetsの画像、ビデオ、オーディオを整理する";case"zh_CHT":return"整理 assets 下的圖片、視頻、音頻";case"en_US":default:return"Organizing images, videos, and audios under assets"}}get 即将创建快照(){switch(this.conf.appearance.lang){case"zh_CN":return"即将创建快照,如果有问题,可从快照恢复。(建议自己手动 alt+h 创建快照保险一些)";case"es_ES":return"Pronto se creará una instantánea, si hay un problema, se puede restaurar desde la instantánea. (Se recomienda que cree una instantánea manualmente con alt+h para mayor seguridad)";case"fr_FR":return"Une capture sera bientôt créée, en cas de problème, vous pouvez restaurer à partir de la capture. (Il est recommandé de créer une capture manuellement avec alt+h pour plus de sécurité)";case"ja_JP":return"スナップショットを作成しようとしています。問題がある場合は、スナップショットから復元できます。(手動でalt+hを使用してスナップショットを作成することをお勧めします)";case"zh_CHT":return"即將創建快照,如果有問題,可從快照恢復。(建議自己手動 alt+h 創建快照保險一些)";case"en_US":default:return"About to create a snapshot, if there's a problem, you can restore from the snapshot. (It's recommended to manually create a snapshot with alt+h for more security)"}}get 已经刷新虚拟引用(){switch(this.conf.appearance.lang){case"zh_CN":return"已经刷新虚拟引用";case"es_ES":return"Se han actualizado las referencias virtuales";case"fr_FR":return"Les références virtuelles ont été mises à jour";case"ja_JP":return"仮想参照が更新されました";case"zh_CHT":return"已經刷新虛擬引用";case"en_US":default:return"Virtual references have been refreshed"}}get 正在转移引用(){switch(this.conf.appearance.lang){case"zh_CN":return"正在转移引用……";case"es_ES":return"Transfiriendo referencias...";case"fr_FR":return"Transfert des références...";case"ja_JP":return"参照を移動しています...";case"zh_CHT":return"正在轉移引用……";case"en_US":default:return"Transferring references..."}}get 正在尝试删除闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"正在尝试删除闪卡……";case"es_ES":return"Intentando eliminar tarjetas flash...";case"fr_FR":return"Tentative de suppression des cartes flash...";case"ja_JP":return"フラッシュカードを削除しようとしています...";case"zh_CHT":return"正在嘗試刪除閃卡……";case"en_US":default:return"Trying to delete flashcards..."}}get 正在删除老文件(){switch(this.conf.appearance.lang){case"zh_CN":return"正在删除老文件……";case"es_ES":return"Eliminando archivos antiguos...";case"fr_FR":return"Suppression des anciens fichiers...";case"ja_JP":return"古いファイルを削除しています...";case"zh_CHT":return"正在刪除老文件……";case"en_US":default:return"Deleting old files..."}}get assets整理还在进行中(){switch(this.conf.appearance.lang){case"zh_CN":return"assets: 整理还在进行中……";case"es_ES":return"assets: La organización todavía está en progreso...";case"fr_FR":return"assets: L'organisation est toujours en cours...";case"ja_JP":return"assets: 整理はまだ進行中です...";case"zh_CHT":return"assets: 整理仍在進行中...";case"en_US":default:return"assets: The organization is still in progress..."}}assets整理了x个文件(e){switch(this.conf.appearance.lang){case"zh_CN":return`assets: 整理了[${e}]个文件`;case"es_ES":return`assets: Se han organizado [${e}] archivos`;case"fr_FR":return`assets: [${e}] fichiers ont été organisés`;case"ja_JP":return`assets: [${e}]つのファイルを整理しました`;case"zh_CHT":return`assets: 整理了[${e}]個文件`;case"en_US":default:return`assets: [${e}] files have been organized`}}已经处理了x个块(e,z,b){switch(this.conf.appearance.lang){case"zh_CN":return`已经处理了[${e}/${z}]个文件,[${b}]个块。`;case"es_ES":return`Se han procesado [${e}/${z}] archivos, [${b}] bloques.`;case"fr_FR":return`[${e}/${z}] fichiers ont été traités, [${b}] blocs.`;case"ja_JP":return`[${e}/${z}]つのファイル、[${b}]つのブロックを処理しました。`;case"zh_CHT":return`已經處理了[${e}/${z}]個文件,[${b}]個塊。`;case"en_US":default:return`Processed [${e}/${z}] files, [${b}] blocks.`}}准备删除失效闪卡(e){switch(this.conf.appearance.lang){case"zh_CN":return`准备删除失效闪卡${e}个`;case"es_ES":return`Preparándose para eliminar ${e} tarjetas flash no válidas`;case"fr_FR":return`Préparation à la suppression de ${e} cartes flash non valides`;case"ja_JP":return`無効なフラッシュカード${e}枚を削除する準備ができています`;case"zh_CHT":return`準備刪除失效閃卡${e}個`;case"en_US":default:return`Preparing to delete ${e} invalid flashcards`}}get 默认关闭自动刷新(){switch(this.conf.appearance.lang){case"zh_CN":return"默认关闭自动刷新";case"es_ES":return"Deshabilitar la actualización automática por defecto";case"fr_FR":return"Désactiver le rafraîchissement automatique par défaut";case"ja_JP":return"デフォルトで自動更新を無効にする";case"zh_CHT":return"預設關閉自動刷新";case"en_US":default:return"Disable auto-refresh by default"}}get 自动选择一个笔记本(){switch(this.conf.appearance.lang){case"zh_CN":return"自动选择一个笔记本";case"es_ES":return"Seleccionar automáticamente un cuaderno";case"fr_FR":return"Sélectionner automatiquement un cahier";case"ja_JP":return"自動的にノートを選択する";case"zh_CHT":return"自動選擇一個筆記本";case"en_US":default:return"Automatically select a notebook"}}get 自动(){switch(this.conf.appearance.lang){case"zh_CN":return"自动";case"es_ES":return"Automático";case"fr_FR":return"Automatique";case"ja_JP":return"自動";case"zh_CHT":return"自動";case"en_US":default:return"Automatic"}}get 选择(){switch(this.conf.appearance.lang){case"zh_CN":return"选择";case"es_ES":return"Seleccionar";case"fr_FR":return"Sélectionner";case"ja_JP":return"選択する";case"zh_CHT":return"選擇";case"en_US":default:return"Select"}}get 知识库问答(){switch(this.conf.appearance.lang){case"zh_CN":return"知识库问答";case"es_ES":return"Preguntas y respuestas de la base de conocimientos";case"fr_FR":return"Questions et réponses de la base de connaissances";case"ja_JP":return"知識ベースの質問と回答";case"zh_CHT":return"知識庫問答";case"en_US":default:return"Knowledge Base Q&A"}}get 隐藏闪卡暂停按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"隐藏闪卡暂停按钮";case"es_ES":return"Ocultar botón de pausa de tarjetas rápidas";case"fr_FR":return"Masquer le bouton de pause des cartes flash";case"ja_JP":return"フラッシュカードのポーズボタンを非表示";case"zh_CHT":return"隱藏閃卡暫停按鈕";case"en_US":default:return"Hide Flashcard Pause Button"}}get 隐藏优先级滑动块(){switch(this.conf.appearance.lang){case"zh_CN":return"隐藏优先级滑动块";case"es_ES":return"Ocultar control deslizante de prioridad";case"fr_FR":return"Masquer la barre de défilement de priorité";case"ja_JP":return"優先度スライダーを非表示";case"zh_CHT":return"隱藏優先級滑動塊";case"en_US":default:return"Hide Priority Slider"}}get 使内容模糊(){switch(this.conf.appearance.lang){case"zh_CN":return"使内容模糊";case"es_ES":return"Hacer contenido borroso";case"fr_FR":return"Rendre le contenu flou";case"ja_JP":return"コンテンツをぼやかす";case"zh_CHT":return"使內容模糊";case"en_US":default:return"Make content blurry"}}get 请将上面的内容制作为表格(){switch(this.conf.appearance.lang){case"zh_CN":return"请将上面的内容制作为表格";case"es_ES":return"Por favor, convierte el contenido de arriba en una tabla";case"fr_FR":return"Veuillez transformer le contenu ci-dessus en tableau";case"ja_JP":return"上の内容をテーブルにまとめます";case"zh_CHT":return"請將上面的內容製成表格";case"en_US":default:return"Please format the above content into a table"}}get 内容制表(){switch(this.conf.appearance.lang){case"zh_CN":return"把有‘|’隔开的内容制表,可选择多行";case"es_ES":return"Formatea el contenido separado por '|', puedes seleccionar múltiples líneas";case"fr_FR":return"Met en forme le contenu séparé par '|', vous pouvez sélectionner plusieurs lignes";case"ja_JP":return"'|'で区切られた内容を表形式にします。複数行を選択できます";case"zh_CHT":return"將有‘|’分隔的內容製成表格,可選擇多行";case"en_US":default:return"Format the content separated by '|', multi-line selection is available"}}get 在文档树中定位(){switch(this.conf.appearance.lang){case"zh_CN":return"在文档树中定位";case"es_ES":return"Localizar en el árbol de documentos";case"fr_FR":return"Localiser dans l'arborescence des documents";case"ja_JP":return"ドキュメントツリーで位置を特定";case"zh_CHT":return"在文檔樹中定位";case"en_US":default:return"Locate in the document tree"}}get 番茄钟在状态栏的右边(){switch(this.conf.appearance.lang){case"zh_CN":return"番茄钟在状态栏的右边";case"es_ES":return"El pomodoro está a la derecha de la barra de estado";case"fr_FR":return"Le pomodoro est à droite de la barre d'état";case"ja_JP":return"ステータスバーの右側にトマト時計があります";case"zh_CHT":return"番茄鐘在狀態欄的右邊";case"en_US":default:return"Pomodoro is on the right side of the status bar"}}get 复制为图片(){switch(this.conf.appearance.lang){case"zh_CN":return"复制为图片";case"es_ES":return"Copiar como imagen";case"fr_FR":return"Copier en tant qu'image";case"ja_JP":return"画像としてコピー";case"zh_CHT":return"複製為圖片";case"en_US":default:return"Copy as Picture"}}get 正在复制为图片请等待(){switch(this.conf.appearance.lang){case"zh_CN":return"正在复制为图片请等待";case"es_ES":return"Copiando como imagen, por favor espere";case"fr_FR":return"Copie en cours sous forme d'image, veuillez patienter";case"ja_JP":return"画像としてコピー中です。お待ちください";case"zh_CHT":return"正在複製為圖片請等待";case"en_US":default:return"Copying as image, please wait"}}get 复制完成(){switch(this.conf.appearance.lang){case"zh_CN":return"复制完成";case"es_ES":return"Copia completada";case"fr_FR":return"Copie terminée";case"ja_JP":return"コピーが完了しました";case"zh_CHT":return"複製完成";case"en_US":default:return"Copy completed"}}get 显示备注(){switch(this.conf.appearance.lang){case"zh_CN":return"显示备注Memo于内容上方";case"es_ES":return"Mostrar notas memo encima del contenido";case"fr_FR":return"Afficher les notes memo au-dessus du contenu";case"ja_JP":return"内容の上にメモを表示";case"zh_CHT":return"顯示備註Memo於內容上方";case"en_US":default:return"Show memo notes above content"}}get 锁定内容(){switch(this.conf.appearance.lang){case"zh_CN":return"锁定内容/解锁内容";case"es_ES":return"Bloquear contenido/Desbloquear contenido";case"fr_FR":return"Verrouiller le contenu/Déverrouiller le contenu";case"ja_JP":return"コンテンツをロック/ロック解除";case"zh_CHT":return"鎖定內容/解鎖內容";case"en_US":default:return"Lock Content/Unlock Content"}}get 百度千帆转发器监听地址(){switch(this.conf.appearance.lang){case"zh_CN":return"百度千帆转发器监听地址";case"es_ES":return"Dirección de escucha del transmisor de Baidu Qianfan";case"fr_FR":return"Adresse d'écoute du transmetteur Baidu Qianfan";case"ja_JP":return"百度千帆転送器リスニングアドレス";case"zh_CHT":return"百度千帆轉發器監聽地址";case"en_US":default:return"Baidu Qianfan Transmitter Listening Address"}}get 添加百度千帆的密钥(){switch(this.conf.appearance.lang){case"zh_CN":return"添加百度千帆的密钥";case"es_ES":return"Agregar clave de Baidu Qianfan";case"fr_FR":return"Ajouter la clé de Baidu Qianfan";case"ja_JP":return"百度千帆のキーを追加";case"zh_CHT":return"添加百度千帆的密鑰";case"en_US":default:return"Add Baidu Qianfan Key"}}get 添加知识库得到ID(){switch(this.conf.appearance.lang){case"zh_CN":return"添加知识库得到ID";case"es_ES":return"Agregar base de conocimientos para obtener ID";case"fr_FR":return"Ajouter une base de connaissances pour obtenir l'ID";case"ja_JP":return"知識ベースを追加してIDを取得";case"zh_CHT":return"添加知識庫得到ID";case"en_US":default:return"Add Knowledge Base to Get ID"}}get 添加AI应用(){switch(this.conf.appearance.lang){case"zh_CN":return"添加AI应用,配置刚加上的知识库,最后发布,得到应用ID";case"es_ES":return"Agregar aplicación de IA, configurar la base de conocimientos recién agregada, publicar y obtener el ID de la aplicación";case"fr_FR":return"Ajouter une application AI, configurer la base de connaissances nouvellement ajoutée, publier et obtenir l'ID de l'application";case"ja_JP":return"AIアプリケーションを追加し、新しく追加された知識ベースを設定し、最後に公開してアプリケーションIDを取得";case"zh_CHT":return"添加AI應用,配置剛加上的知識庫,最後發布,得到應用ID";case"en_US":default:return"Add AI Application, Configure the Recently Added Knowledge Base, Publish, and Get Application ID"}}get 更新所有文档成功(){switch(this.conf.appearance.lang){case"zh_CN":return"更新所有文档成功";case"es_ES":return"Actualización exitosa de todos los documentos";case"fr_FR":return"Mise à jour réussie de tous les documents";case"ja_JP":return"すべてのドキュメントの更新に成功";case"zh_CHT":return"更新所有文檔成功";case"en_US":default:return"Successfully Updated All Documents"}}get 删除多余的(){switch(this.conf.appearance.lang){case"zh_CN":return"删除多余的";case"es_ES":return"Eliminar lo sobrante";case"fr_FR":return"Supprimer le superflu";case"ja_JP":return"余分なものを削除";case"zh_CHT":return"刪除多餘的";case"en_US":default:return"Delete Excess"}}get 清理完成(){switch(this.conf.appearance.lang){case"zh_CN":return"清理完成";case"es_ES":return"Limpieza completada";case"fr_FR":return"Nettoyage terminé";case"ja_JP":return"クリーンアップ完了";case"zh_CHT":return"清理完成";case"en_US":default:return"Cleanup completed"}}get 删除重复的(){switch(this.conf.appearance.lang){case"zh_CN":return"删除重复的";case"es_ES":return"Eliminar duplicados";case"fr_FR":return"Supprimer les doublons";case"ja_JP":return"重複を削除";case"zh_CHT":return"刪除重複的";case"en_US":default:return"Delete duplicates"}}get 向知识库提问(){switch(this.conf.appearance.lang){case"zh_CN":return"向知识库提问";case"es_ES":return"Preguntar a la base de conocimientos";case"fr_FR":return"Poser une question à la base de connaissances";case"ja_JP":return"知識ベースに質問する";case"zh_CHT":return"向知識庫提問";case"en_US":default:return"Ask the knowledge base"}}get 向知识库提问stream(){switch(this.conf.appearance.lang){case"zh_CN":return"向知识库提问(流式)";case"es_ES":return"Preguntar a la base de conocimientos (stream)";case"fr_FR":return"Poser une question à la base de connaissances (stream)";case"ja_JP":return"知識ベースに質問する(ストリーム)";case"zh_CHT":return"向知識庫提問(流式)";case"en_US":default:return"Ask the knowledge base (stream)"}}get 清理百度千帆多余文件(){switch(this.conf.appearance.lang){case"zh_CN":return"清理百度千帆多余文件";case"es_ES":return"Limpiar archivos innecesarios de Baidu Qianfan";case"fr_FR":return"Nettoyer les fichiers superflus de Baidu Qianfan";case"ja_JP":return"百度千帆の不要なファイルをクリーンアップ";case"zh_CHT":return"清理百度千帆多餘文件";case"en_US":default:return"Clean up unnecessary files from Baidu Qianfan"}}get 打开知识库(){switch(this.conf.appearance.lang){case"zh_CN":return"打开知识库";case"es_ES":return"Abrir base de conocimientos";case"fr_FR":return"Ouvrir la base de connaissances";case"ja_JP":return"知識ベースを開く";case"zh_CHT":return"打開知識庫";case"en_US":default:return"Open knowledge base"}}get 上传当前文档以及所有子文档到百度千帆(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档以及所有子文档到百度千帆";case"es_ES":return"Subir el documento actual y todos los subdocumentos a Baidu Qianfan";case"fr_FR":return"Télécharger le document actuel et tous les sous-documents sur Baidu Qianfan";case"ja_JP":return"現在のドキュメントとすべてのサブドキュメントを百度千帆にアップロード";case"zh_CHT":return"上傳當前文件及所有子文件至百度千帆";case"en_US":default:return"Upload the current document and all sub-documents to Baidu Qianfan"}}get 在检索问答时(){switch(this.conf.appearance.lang){case"zh_CN":return"在检索问答时,系统通过检索知识点召回对应的切片。开启知识增强,会调用大模型抽取更加丰富的知识点,增加切片的召回率。开启后,会增加文档的处理时长和资源消耗。";case"es_ES":return"Al buscar respuestas, el sistema recupera las rebanadas correspondientes mediante la búsqueda de conocimientos. Al activar el enriquecimiento del conocimiento, se llama a un modelo grande para extraer conocimientos más ricos, aumentando la tasa de recuperación de las rebanadas. Después de activarlo, aumentará la duración del procesamiento del documento y el consumo de recursos.";case"fr_FR":return"Lors de la recherche de réponses, le système récupère les tranches correspondantes en recherchant des connaissances. En activant l'enrichissement des connaissances, un grand modèle est appelé pour extraire des connaissances plus riches, augmentant ainsi le taux de récupération des tranches. Après l'avoir activé, cela augmentera la durée de traitement du document et la consommation de ressources.";case"ja_JP":return"回答を検索する際、システムは知識を検索して対応するスライスを呼び出します。知識の強化を有効にすると、大規模なモデルを呼び出してより豊富な知識を抽出し、スライスの呼び出し率を向上させます。有効にすると、ドキュメントの処理時間とリソース消費が増加します。";case"zh_CHT":return"在檢索問答時,系統通過檢索知識點召回對應的切片。開啟知識增強,會調用大模型抽取更加豐富的知識點,增加切片的召回率。開啟後,會增加文檔的處理時長和資源消耗。";case"en_US":default:return"When retrieving answers, the system retrieves the corresponding slices by searching for knowledge points. By enabling knowledge enhancement, a large model is called to extract more rich knowledge points, increasing the recall rate of slices. After enabling, it will increase the processing time and resource consumption of documents."}}get 上传当前文档以及所有子文档到百度千帆Enhance(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档以及所有子文档到百度千帆(知识增强)";case"es_ES":return"Subir el documento actual y todos los subdocumentos a Baidu Qianfan (Mejora del Conocimiento)";case"fr_FR":return"Télécharger le document actuel et tous les sous-documents vers Baidu Qianfan (Amélioration des Connaissances)";case"ja_JP":return"現在のドキュメントとすべてのサブドキュメントを百度千帆(知識強化)にアップロードする";case"zh_CHT":return"上傳當前文件及所有子文件到百度千帆(知識增強)";case"en_US":default:return"Upload the current document and all sub-documents to Baidu Qianfan (Knowledge Enhance)"}}get 上传当前文档Enchance(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档(知识增强)";case"es_ES":return"Subir documento actual (mejora de conocimiento)";case"fr_FR":return"Télécharger le document actuel (amélioration des connaissances)";case"ja_JP":return"現在のドキュメントをアップロード(知識強化)";case"zh_CHT":return"上傳當前文檔(知識增強)";case"en_US":default:return"Upload current document (knowledge enhancement)"}}get 上传当前文档(){switch(this.conf.appearance.lang){case"zh_CN":return"上传当前文档";case"es_ES":return"Subir documento actual";case"fr_FR":return"Télécharger le document actuel";case"ja_JP":return"現在のドキュメントをアップロード";case"zh_CHT":return"上傳當前文檔";case"en_US":default:return"Upload current document"}}get 从百度千帆删除当前文件(){switch(this.conf.appearance.lang){case"zh_CN":return"从百度千帆删除当前文件";case"es_ES":return"Eliminar el archivo actual de Baidu Qianfan";case"fr_FR":return"Supprimer le fichier actuel de Baidu Qianfan";case"ja_JP":return"百度千帆から現在のファイルを削除";case"zh_CHT":return"從百度千帆刪除當前文件";case"en_US":default:return"Delete current file from Baidu Qianfan"}}get 从百度千帆删除当前文件以及子文件(){switch(this.conf.appearance.lang){case"zh_CN":return"从百度千帆删除当前文件以及子文件";case"es_ES":return"Eliminar el archivo actual y sus subarchivos de Baidu Qianfan";case"fr_FR":return"Supprimer le fichier actuel et ses sous-fichiers de Baidu Qianfan";case"ja_JP":return"百度千帆から現在のファイルとサブファイルを削除";case"zh_CHT":return"從百度千帆刪除當前文件以及子文件";case"en_US":default:return"Delete current file and subfiles from Baidu Qianfan"}}get 移动到DailyNote时总是移动到底部(){switch(this.conf.appearance.lang){case"zh_CN":return"移动、复制到DailyNote时总是在底部";case"es_ES":return"Mover o copiar a DailyNote siempre al final";case"fr_FR":return"Déplacer ou copier vers DailyNote toujours en bas";case"ja_JP":return"DailyNoteに移動またはコピーするときは常に最後に";case"zh_CHT":return"移動、複製到DailyNote時總是在底部";case"en_US":default:return"Move or copy to DailyNote always at the bottom"}}get 插入阅读点时记录当前所有打开的页签(){switch(this.conf.appearance.lang){case"zh_CN":return"插入阅读点时,记录当前所有打开的页签";case"es_ES":return"Al insertar un punto de lectura, registrar todas las pestañas abiertas actualmente";case"fr_FR":return"Lors de l'insertion d'un point de lecture, enregistrer toutes les onglets ouverts actuellement";case"ja_JP":return"読書ポイントを挿入するとき、現在開いているすべてのタブを記録する";case"zh_CHT":return"插入閱讀點時,記錄當前所有打開的頁籤";case"en_US":default:return"When inserting a reading point, record all currently open tabs"}}get 鼠标悬浮显示闪卡挖空的内容(){switch(this.conf.appearance.lang){case"zh_CN":return"鼠标悬浮时,显示闪卡被挖空的内容";case"es_ES":return"Mostrar el contenido oculto de la tarjeta flash al pasar el ratón por encima";case"fr_FR":return"Afficher le contenu masqué de la carte mémoire lors du survol de la souris";case"ja_JP":return"マウスオーバー時に、カードの隠された内容を表示する";case"zh_CHT":return"鼠標懸浮時,顯示閃卡被挖空的内容";case"en_US":default:return"Show the cloze content of the flashcard on mouse hover"}}get 收集当前文档与子文档所有的未完成任务(){switch(this.conf.appearance.lang){case"zh_CN":return"收集当前文档与子文档所有的未完成任务";case"es_ES":return"Recopilar todas las tareas pendientes del documento actual y sus subdocumentos";case"fr_FR":return"Collecter toutes les tâches incomplètes du document actuel et de ses sous-documents";case"ja_JP":return"現在のドキュメントとそのサブドキュメントのすべての未完了タスクを収集する";case"zh_CHT":return"收集當前文檔與子文檔所有的未完成任務";case"en_US":default:return"Collect all incomplete tasks in the current document and its subdocuments"}}get 列出当前文档与子文档中没被引用的文档(){switch(this.conf.appearance.lang){case"zh_CN":return"列出当前文档与子文档中,没被引用的文档";case"es_ES":return"Listar los documentos no referenciados en el documento actual y sus subdocumentos";case"fr_FR":return"Lister les documents non référencés dans le document actuel et ses sous-documents";case"ja_JP":return"現在のドキュメントとそのサブドキュメントの中で、参照されていないドキュメントをリストアップする";case"zh_CHT":return"列出當前文檔與子文檔中,沒被引用的文檔";case"en_US":default:return"List documents in the current document and its subdocuments that are not referenced"}}get 定位所有引用Menu(){switch(this.conf.appearance.lang){case"zh_CN":return"定位指定块的所有引用";case"es_ES":return"Localizar todas las referencias del bloque especificado";case"fr_FR":return"Localiser toutes les références du bloc spécifié";case"ja_JP":return"指定されたブロックのすべての参照を見つける";case"zh_CHT":return"定位指定塊的所有引用";case"en_US":default:return"Locate all references of the specified block"}}get 定位所有引用(){switch(this.conf.appearance.lang){case"zh_CN":return"快捷键与右键菜单,可定位指定块的反链,以及虚拟正链";case"es_ES":return"Atajos de teclado y menú contextual para localizar las contrapartes de un bloque específico, así como las contrapartes virtuales positivas";case"fr_FR":return"Raccourcis clavier et menu contextuel pour localiser les contreparties d'un bloc spécifique, ainsi que les contreparties virtuelles positives";case"ja_JP":return"ショートカットキーと右クリックメニューで、指定ブロックの逆リンクと仮想正リンクを特定できます";case"zh_CHT":return"快捷鍵與右鍵選單,可定位指定塊的反鏈,以及虛擬正鏈";case"en_US":default:return"Keyboard shortcuts and context menu to locate the backlinks of a specified block, as well as virtual forward links"}}get 点击引用数打开所有引用(){switch(this.conf.appearance.lang){case"zh_CN":return"点击引用数,可以定位所有引用";case"es_ES":return"Haga clic en el número de citas para localizar todas las citas";case"fr_FR":return"Cliquez sur le nombre de citations pour localiser toutes les citations";case"ja_JP":return"引用数をクリックすると、すべての引用を見つけることができます";case"zh_CHT":return"點擊引用數,可以定位所有引用";case"en_US":default:return"Click on the citation count to locate all citations"}}get 背景图透明度(){switch(this.conf.appearance.lang){case"zh_CN":return"背景图透明度,0到1之间。";case"es_ES":return"Opacidad de la imagen de fondo, entre 0 y 1.";case"fr_FR":return"Opacité de l'image de fond, entre 0 et 1.";case"ja_JP":return"背景画像の透明度、0から1の間。";case"zh_CHT":return"背景圖透明度,0到1之間。";case"en_US":default:return"Background image opacity, between 0 and 1."}}get 创建文件时制卡(){switch(this.conf.appearance.lang){case"zh_CN":return"创建文件时制卡";case"es_ES":return"Crear tarjeta al generar archivo";case"fr_FR":return"Créer une carte lors de la création de fichier";case"ja_JP":return"ファイル作成時のカード作成";case"zh_CHT":return"建立檔案時製卡";case"en_US":default:return"Create card when creating file"}}get 快速笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"快速笔记";case"es_ES":return"Notas rápidas";case"fr_FR":return"Notes rapides";case"ja_JP":return"クイックノート";case"zh_CHT":return"快速筆記";case"en_US":default:return"Quick notes"}}get 创建快速笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"创建快速笔记 Ctrl+N";case"es_ES":return"Crear nota rápida Ctrl+N";case"fr_FR":return"Créer une note rapide Ctrl+N";case"ja_JP":return"クイックノートを作成する Ctrl+N";case"zh_CHT":return"建立快速筆記 Ctrl+N";case"en_US":default:return"Create quick note Ctrl+N"}}get 打开最后一个笔记(){switch(this.conf.appearance.lang){case"zh_CN":return"打开最后一个笔记 Ctrl+Alt+N";case"es_ES":return"Abrir última nota Ctrl+Alt+N";case"fr_FR":return"Ouvrir la dernière note Ctrl+Alt+N";case"ja_JP":return"最後のノートを開く Ctrl+Alt+N";case"zh_CHT":return"打開最後一個筆記 Ctrl+Alt+N";case"en_US":default:return"Open last note Ctrl+Alt+N"}}get 给链接加文字(){switch(this.conf.appearance.lang){case"zh_CN":return"给链接加文字";case"es_ES":return"Añadir texto al enlace";case"fr_FR":return"Ajouter du texte au lien";case"ja_JP":return"リンクにテキストを追加";case"zh_CHT":return"給連結加文字";case"en_US":default:return"Add text to link"}}get 列数量留空为自动计算(){switch(this.conf.appearance.lang){case"zh_CN":return"列数量,留空为自动计算";case"es_ES":return"Número de columnas, dejar en blanco para cálculo automático";case"fr_FR":return"Nombre de colonnes, laisser vide pour calcul automatique";case"ja_JP":return"列数、空白の場合は自動計算";case"zh_CHT":return"列數量,留空為自動計算";case"en_US":default:return"Number of columns, leave blank for automatic calculation"}}get 复制文档为标准Markdown(){switch(this.conf.appearance.lang){case"zh_CN":return"复制文档为标准Markdown到剪贴板";case"es_ES":return"Copiar documento como Markdown estándar al portapapeles";case"fr_FR":return"Copier le document en Markdown standard dans le presse-papiers";case"ja_JP":return"標準Markdownとしてドキュメントをクリップボードにコピー";case"zh_CHT":return"複製文件為標準Markdown到剪貼簿";case"en_US":default:return"Copy document as standard Markdown to clipboard"}}get 修复双向链接(){switch(this.conf.appearance.lang){case"zh_CN":return"修复双向链接";case"es_ES":return"Reparar enlaces bidireccionales";case"fr_FR":return"Réparer les liens bidirectionnels";case"ja_JP":return"双方向リンクを修正";case"zh_CHT":return"修復雙向連結";case"en_US":default:return"Fix bidirectional links"}}get 永久显示文档右侧的HomeEnd图标(){switch(this.conf.appearance.lang){case"zh_CN":return"永久显示文档右侧的Home,End图标。";case"es_ES":return"Mostrar permanentemente los iconos Home, End en el lado derecho del documento.";case"fr_FR":return"Afficher en permanence les icônes Home, End à droite du document.";case"ja_JP":return"ドキュメントの右側にHome,Endアイコンを常に表示します。";case"zh_CHT":return"永久顯示文件右側的Home,End圖標。";case"en_US":default:return"Permanently display Home, End icons on the right side of the document."}}get 复制到dailynote(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到 dailynote";case"es_ES":return"Copiar a dailynote";case"fr_FR":return"Copier dans dailynote";case"ja_JP":return"dailynoteにコピー";case"zh_CHT":return"複製到 dailynote";case"en_US":default:return"Copy to dailynote"}}get 复制到dailynote使用的锚文本(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到dailynote使用的锚文本";case"es_ES":return"Texto de anclaje para copiar a la nota diaria";case"fr_FR":return"Texte d'ancrage à copier dans la note quotidienne";case"ja_JP":return"dailynoteにコピーするアンカーテキスト";case"zh_CHT":return"複製到dailynote使用的錨文本";case"en_US":default:return"Anchor text to copy to daily note"}}get 复制的内容显示原文的路径(){switch(this.conf.appearance.lang){case"zh_CN":return"复制的内容显示原文的路径";case"es_ES":return"Ruta del contenido copiado muestra el original";case"fr_FR":return"Chemin du contenu copié affiche l'original";case"ja_JP":return"コピーした内容が原文のパスを表示";case"zh_CHT":return"複製的內容顯示原文的路徑";case"en_US":default:return"Copied content shows original path"}}get 改变原文的背景(){switch(this.conf.appearance.lang){case"zh_CN":return"改变原文的背景";case"es_ES":return"Cambiar el fondo del original";case"fr_FR":return"Changer l'arrière-plan de l'original";case"ja_JP":return"原文の背景を変更";case"zh_CHT":return"改變原文的背景";case"en_US":default:return"Change the background of the original text"}}get 在原文中同时插入阅读点(){switch(this.conf.appearance.lang){case"zh_CN":return"在原文中同时插入阅读点";case"es_ES":return"Insertar puntos de lectura simultáneamente en el original";case"fr_FR":return"Insérer des points de lecture simultanément dans l'original";case"ja_JP":return"原文中に同時に読書ポイントを挿入";case"zh_CHT":return"在原文中同時插入閱讀點";case"en_US":default:return"Insert reading points simultaneously in the original text"}}get 使用引用来回溯(){switch(this.conf.appearance.lang){case"zh_CN":return"使用引用来回溯,否则用超链接";case"es_ES":return"Usar referencias para retroceder, de lo contrario usar hipervínculos";case"fr_FR":return"Utiliser des références pour revenir en arrière, sinon utiliser des hyperliens";case"ja_JP":return"参照を使用して戻る、それ以外の場合はハイパーリンクを使用する";case"zh_CHT":return"使用引用來回溯,否則用超連結";case"en_US":default:return"Use references to backtrack, otherwise use hyperlinks"}}get 添加批注(){switch(this.conf.appearance.lang){case"zh_CN":return"添加批注";case"es_ES":return"Agregar anotación";case"fr_FR":return"Ajouter une annotation";case"ja_JP":return"注釈を追加";case"zh_CHT":return"添加批註";case"en_US":default:return"Add annotation"}}get 删除块以及闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"删除块以及闪卡(可删除文档)";case"es_ES":return"Eliminar bloque y tarjetas flash (puede eliminar documentos)";case"fr_FR":return"Supprimer le bloc et les fiches mémoire (peut supprimer les documents)";case"ja_JP":return"ブロックとフラッシュカードを削除(ドキュメントを削除可能)";case"zh_CHT":return"刪除塊以及閃卡(可刪除文檔)";case"en_US":default:return"Delete block and flashcards (can delete documents)"}}get 添加到新文件(){switch(this.conf.appearance.lang){case"zh_CN":return"添加到新文件";case"es_ES":return"Agregar a un nuevo archivo";case"fr_FR":return"Ajouter à un nouveau fichier";case"ja_JP":return"新しいファイルに追加";case"zh_CHT":return"添加到新檔案";case"en_US":default:return"Add to new file"}}get 加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"加入闪卡";case"es_ES":return"Agregar a tarjetas flash";case"fr_FR":return"Ajouter à des fiches mémo";case"ja_JP":return"フラッシュカードに追加";case"zh_CHT":return"加入閃卡";case"en_US":default:return"Add to flashcards"}}get 复制到dailynoteNewFile(){switch(this.conf.appearance.lang){case"zh_CN":return"复制到新文件";case"es_ES":return"Copiar a nuevo archivo";case"fr_FR":return"Copier dans un nouveau fichier";case"ja_JP":return"新しいファイルにコピー";case"zh_CHT":return"複製到新檔案";case"en_US":default:return"Copy to new file"}}get 请先打开阅读点功能(){switch(this.conf.appearance.lang){case"zh_CN":return"请先打开阅读点功能";case"es_ES":return"Por favor, activa la función de puntos de lectura primero";case"fr_FR":return"Veuillez d'abord activer la fonction de points de lecture";case"ja_JP":return"読書ポイント機能を先に有効にしてください";case"zh_CHT":return"請先打開閱讀點功能";case"en_US":default:return"Please enable the reading point feature first"}}get 设置图标放左边(){switch(this.conf.appearance.lang){case"zh_CN":return"设置图标放左边";case"es_ES":return"Colocar icono a la izquierda";case"fr_FR":return"Placer l'icône à gauche";case"ja_JP":return"アイコンを左に配置";case"zh_CHT":return"設置圖標放左邊";case"en_US":default:return"Set icon to the left"}}get 末尾添加空行(){switch(this.conf.appearance.lang){case"zh_CN":return"末尾添加空行";case"es_ES":return"Agregar línea en blanco al final";case"fr_FR":return"Ajouter une ligne vide à la fin";case"ja_JP":return"末尾に空行を追加";case"zh_CHT":return"末尾添加空行";case"en_US":default:return"Add blank line at the end"}}get 显示topbar(){switch(this.conf.appearance.lang){case"zh_CN":return"显示topbar";case"es_ES":return"Mostrar barra superior";case"fr_FR":return"Afficher la barre supérieure";case"ja_JP":return"トップバーを表示";case"zh_CHT":return"顯示topbar";case"en_US":default:return"Show topbar"}}get 简洁模式切换(){switch(this.conf.appearance.lang){case"zh_CN":return"正常/简洁模式切换";case"es_ES":return"Cambio entre modo normal/simplificado";case"fr_FR":return"Basculement entre le mode normal/simplifié";case"ja_JP":return"通常/シンプルモード切り替え";case"zh_CHT":return"正常/簡潔模式切換";case"en_US":default:return"Toggle normal/concise mode"}}get 显示文档属性(){switch(this.conf.appearance.lang){case"zh_CN":return"显示文档属性";case"es_ES":return"Mostrar propiedades del documento";case"fr_FR":return"Afficher les propriétés du document";case"ja_JP":return"ドキュメントのプロパティを表示";case"zh_CHT":return"顯示文件屬性";case"en_US":default:return"Show document properties"}}get HomeEnd图标放到左边(){switch(this.conf.appearance.lang){case"zh_CN":return"HomeEnd图标放到左边";case"es_ES":return"Iconos HomeEnd a la izquierda";case"fr_FR":return"Icônes HomeEnd à gauche";case"ja_JP":return"HomeEndアイコンを左に配置";case"zh_CHT":return"HomeEnd圖標放到左邊";case"en_US":default:return"HomeEnd icons to the left"}}get 链接到块底部(){switch(this.conf.appearance.lang){case"zh_CN":return"链接到块底部";case"es_ES":return"Enlazar al fondo del bloque";case"fr_FR":return"Lier au bas du bloc";case"ja_JP":return"ブロックの底にリンク";case"zh_CHT":return"鏈接到塊底部";case"en_US":default:return"Link to block bottom"}}get 创建时间升序(){switch(this.conf.appearance.lang){case"zh_CN":return"创建时间升序";case"es_ES":return"Orden ascendente por fecha de creación";case"fr_FR":return"Ordre croissant par date de création";case"ja_JP":return"作成日時昇順";case"zh_CHT":return"創建時間升序";case"en_US":default:return"Ascending order by creation time"}}get 修改时间升序(){switch(this.conf.appearance.lang){case"zh_CN":return"修改时间升序";case"es_ES":return"Orden ascendente por fecha de modificación";case"fr_FR":return"Ordre croissant par date de modification";case"ja_JP":return"修正日時昇順";case"zh_CHT":return"修改時間升序";case"en_US":default:return"Ascending order by modification time"}}get 创建时间降序(){switch(this.conf.appearance.lang){case"zh_CN":return"创建时间降序";case"es_ES":return"Tiempo de creación descendente";case"fr_FR":return"Date de création décroissante";case"ja_JP":return"作成時間降順";case"zh_CHT":return"創建時間降序";case"en_US":default:return"Creation time descending"}}get 修改时间降序(){switch(this.conf.appearance.lang){case"zh_CN":return"修改时间降序";case"es_ES":return"Tiempo de modificación descendente";case"fr_FR":return"Date de modification décroissante";case"ja_JP":return"修正時間降順";case"zh_CHT":return"修改時間降序";case"en_US":default:return"Modification time descending"}}get 阅读点加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读点加入闪卡";case"es_ES":return"Punto de lectura añadido a la tarjeta flash";case"fr_FR":return"Point de lecture ajouté à la carte mémoire";case"ja_JP":return"読書ポイントをフラッシュカードに追加";case"zh_CHT":return"閱讀點加入閃卡";case"en_US":default:return"Reading point added to flashcard"}}get 跳到底部反链(){switch(this.conf.appearance.lang){case"zh_CN":return"跳到底部反链";case"es_ES":return"Ir a las referencias inversas al final";case"fr_FR":return"Aller aux références inverses en bas";case"ja_JP":return"ページ下部の逆リンクに移動";case"zh_CHT":return"跳到底部反鏈";case"en_US":default:return"Jump to Backlinks at the Bottom"}}get 在标题下添加跳转到底部的按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"在标题下添加跳转到底部的按钮";case"es_ES":return"Agregar botón para saltar al final debajo del título";case"fr_FR":return"Ajouter un bouton pour sauter en bas sous le titre";case"ja_JP":return"タイトルの下にページの最後にジャンプするボタンを追加";case"zh_CHT":return"在標題下添加跳轉到底部的按鈕";case"en_US":default:return"Add jump to bottom button under the title"}}get 跳转顶部(){switch(this.conf.appearance.lang){case"zh_CN":return"跳转顶部";case"es_ES":return"Saltar al inicio";case"fr_FR":return"Sauter en haut";case"ja_JP":return"ページの先頭にジャンプ";case"zh_CHT":return"跳轉頂部";case"en_US":default:return"Jump to top"}}get 默认折叠概念栏(){switch(this.conf.appearance.lang){case"zh_CN":return"默认折叠概念栏";case"es_ES":return"Barra de conceptos plegable predeterminada";case"fr_FR":return"Barre de concepts repliable par défaut";case"ja_JP":return"デフォルトで折りたたまれるコンセプトバー";case"zh_CHT":return"預設摺疊概念欄";case"en_US":default:return"Default collapsible concept bar"}}get conceptBarTitle点击(){switch(this.conf.appearance.lang){case"zh_CN":return"点击(打开链接), ctrl点击(并且), shift点击(排除), alt点击(单选)";case"es_ES":return"Clic (abrir enlace), clic con Ctrl (y), clic con Mayús (excluir), clic con Alt (selección única)";case"fr_FR":return"Clic (ouvrir le lien), clic avec Ctrl (et), clic avec Maj (exclure), clic avec Alt (sélection unique)";case"ja_JP":return"クリック(リンクを開く)、Ctrl クリック(および)、Shift クリック(除外)、Alt クリック(単一選択)";case"zh_CHT":return"點擊(打開連結)、Ctrl 點擊(並且)、Shift 點擊(排除)、Alt 點擊(單選)";case"en_US":default:return"Click (open link), Ctrl-click (and), Shift-click (exclude), Alt-click (single selection)"}}get 反链启用只读模式(){switch(this.conf.appearance.lang){case"zh_CN":return"反链启用只读模式,提高性能";case"es_ES":return"El modo de solo lectura para enlaces inversos se activa y mejora el rendimiento.";case"fr_FR":return"Le mode lecture seule pour les liens entrants est activé et améliore les performances.";case"ja_JP":return"バックリンクの読み取り専用モードが有効になり、パフォーマンスが向上します。";case"zh_CHT":return"反向鏈接啟用唯讀模式,提高性能。";case"en_US":default:return"Backlink enable read-only mode to improve performance."}}get 过滤下面显示的反链提及(){switch(this.conf.appearance.lang){case"zh_CN":return"在下面显示的反链提及中过滤。可点击问号查看语法。";case"es_ES":return"Filtrar las menciones de enlaces inversos mostrados a continuación.";case"fr_FR":return"Filtrer les mentions de liens inverses affichées ci-dessous.";case"ja_JP":return"以下に表示されるバックリンクの言及をフィルタリングします。疑問符をクリックして構文を確認できます。";case"zh_CHT":return"在下面顯示的反向鏈接提及中過濾。可點擊問號查看語法。";case"en_US":default:return"Filter the backlink mentions shown below. Click the question mark to view the syntax."}}get 搜索反链提及(){switch(this.conf.appearance.lang){case"zh_CN":return"搜索本文档所有反链提及,搜索范围不受最大展开数限制。";case"es_ES":return"Buscar todas las menciones de enlaces inversos en este documento. El alcance de búsqueda no está limitado por el número máximo de expansiones.";case"fr_FR":return"Rechercher toutes les mentions de liens inverses dans ce document. La portée de la recherche n'est pas limitée par le nombre maximal d'expansions.";case"ja_JP":return"この文書内のすべてのバックリンクの言及を検索します。検索範囲は最大展開数に制限されません。";case"zh_CHT":return"搜尋本文檔所有反向鏈接提及,搜索範圍不受最大展開數限制。";case"en_US":default:return"Search for all backlink mentions in this document. The search scope is not limited by the maximum number of expansions."}}get 标题字母升序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题字母升序";case"es_ES":return"Título alfabético ascendente";case"fr_FR":return"Titre par ordre alphabétique croissant";case"ja_JP":return"タイトルアルファベット昇順";case"zh_CHT":return"標題字母升序";case"en_US":default:return"Title Alphabetical Ascending"}}get 标题字母降序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题字母降序";case"es_ES":return"Título alfabético descendente";case"fr_FR":return"Titre par ordre alphabétique décroissant";case"ja_JP":return"タイトルアルファベット降順";case"zh_CHT":return"標題字母降序";case"en_US":default:return"Title Alphabetical Descending"}}get 标题自然数升序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题自然数升序";case"es_ES":return"Título numérico natural ascendente";case"fr_FR":return"Titre par ordre numérique naturel croissant";case"ja_JP":return"タイトル自然数昇順";case"zh_CHT":return"標題自然數升序";case"en_US":default:return"Title Natural Number Ascending"}}get 标题自然数降序(){switch(this.conf.appearance.lang){case"zh_CN":return"标题自然数降序";case"es_ES":return"Título numérico natural descendente";case"fr_FR":return"Titre par ordre numérique naturel décroissant";case"ja_JP":return"タイトル自然数降順";case"zh_CHT":return"標題自然數降序";case"en_US":default:return"Title Natural Number Descending"}}get 草稿切换(){switch(this.conf.appearance.lang){case"zh_CN":return"草稿切换";case"es_ES":return"Cambio de borrador";case"fr_FR":return"Changement de brouillon";case"ja_JP":return"下書き切り替え";case"zh_CHT":return"草稿切換";case"en_US":default:return"Draft Switch"}}get 快速笔记Doc(){switch(this.conf.appearance.lang){case"zh_CN":return"快捷键如有冲突请调整。
ctrl+n: 创建快速笔记。
ctrl+alt+n: 打开最新的快速笔记。
f4: 对任意文档,快速切其正面与背面。";case"es_ES":return"Ajuste los accesos directos si hay conflictos.
ctrl+n: Crear una nota rápida.
ctrl+alt+n: Abrir la nota rápida más reciente.
f4: Cambiar rápidamente entre la parte frontal y trasera de cualquier documento.";case"fr_FR":return"Ajustez les raccourcis si des conflits existent.
ctrl+n: Créer une note rapide.
ctrl+alt+n: Ouvrir la dernière note rapide.
f4: Passer rapidement entre l'avant et l'arrière de n'importe quel document.";case"ja_JP":return"ショートカットキーが競合する場合は調整してください。
ctrl+n: クイックノートを作成。
ctrl+alt+n: 最新のクイックノートを開く。
f4: 任意のドキュメントの表と裏を素早く切り替える。";case"zh_CHT":return"快捷鍵如有衝突請調整。
ctrl+n: 創建快速筆記。
ctrl+alt+n: 打開最新的快速筆記。
f4: 對任意文檔,快速切其正面與背面。";case"en_US":default:return"Adjust shortcuts if there are conflicts.
ctrl+n: Create a quick note.
ctrl+alt+n: Open the latest quick note.
f4: Quickly toggle between the front and back of any document."}}get 将指定的引用渲染为标签(){switch(this.conf.appearance.lang){case"zh_CN":return"把包含指定前缀的引用,渲染为标签。每个前缀用逗号隔开。";case"es_ES":return"Renderizar referencias que contienen un prefijo específico como etiquetas. Separe cada prefijo con una coma.";case"fr_FR":return"Rendre les références contenant un préfixe spécifié en tant qu'étiquettes. Séparez chaque préfixe par une virgule.";case"ja_JP":return"指定されたプレフィックスを含む参照をタグとしてレンダリングします。各プレフィックスはカンマで区切ります。";case"zh_CHT":return"把包含指定前綴的引用,渲染為標籤。每個前綴用逗號隔開。";case"en_US":default:return"Render references containing a specified prefix as tags. Separate each prefix with a comma."}}get 使用链接否则用引用(){switch(this.conf.appearance.lang){case"zh_CN":return"打开使用链接,关闭使用引用。";case"es_ES":return"Abra usando el enlace, cierre usando la referencia.";case"fr_FR":return"Ouvrez en utilisant le lien, fermez en utilisant la référence.";case"ja_JP":return"リンクを使用して開き、参照を使用して閉じます。";case"zh_CHT":return"打開使用連結,關閉使用引用。";case"en_US":default:return"Open using the link, close using the reference."}}get 总是保持已经加载的内容(){switch(this.conf.appearance.lang){case"zh_CN":return"总是保持已经加载的内容";case"es_ES":return"Mantener siempre el contenido ya cargado";case"fr_FR":return"Toujours conserver le contenu déjà chargé";case"ja_JP":return"常に既にロードされたコンテンツを保持する";case"zh_CHT":return"總是保持已經加載的內容";case"en_US":default:return"Always keep the already loaded content"}}get 阅读点统一保存(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读点统一保存";case"es_ES":return"Guardar uniformemente los puntos de lectura";case"fr_FR":return"Enregistrer uniformément les points de lecture";case"ja_JP":return"読書ポイントを統一して保存する";case"zh_CHT":return"閱讀點統一保存";case"en_US":default:return"Uniformly save reading points"}}get aaa(){switch(this.conf.appearance.lang){case"zh_CN":return"bbb";case"es_ES":return;case"fr_FR":return;case"ja_JP":return;case"zh_CHT":return;case"en_US":default:return}}}const qM=new Ou;function dz(n){return n.startsWith("```")||n.startsWith("> ")||n.startsWith("$$")||n.startsWith("
")||n.startsWith("{{{row")||n.startsWith("{{{col")}class iu{constructor(e){B(this,"openedTab");B(this,"plugin");this.plugin=e}async open(e,z){var b;e&&((b=this.openedTab)==null||b.close(),this.openedTab=await u1(this.plugin,e,z))}}function su(n){return n==null?void 0:n.map(e=>{const z=e.cloneNode(!0);Ne(z);const b=A2(z);return _o(b.textContent)}).filter(e=>!!e).reduce((e,z)=>(e.push(z),e),[]).join(` +`)}async function u1(n,e,z,b,M){if(z!="0")if(r0.isMobile)m0.openMobileFileById(n.app,e);else{b==null&&(b=["cb-get-context","cb-get-focus"]),z==null&&(z="front");let t=null;switch(z){default:case"1":case"front":z=null,t=!1;break;case"2":case"back":z=null,t=!0;break;case"3":case"right":z="right",t=!0;break;case"4":case"bottom":z="bottom",t=!0;break}return m0.openTab({app:n.app,doc:{id:e,action:b,zoomIn:!1},position:z,keepCursor:t,afterOpen:M})}}class Au{constructor(){B(this,"conf")}init(){this.conf=ub.config}get aaaaaaaaaaaa(){switch(this.conf.appearance.lang){case"zh_CN":return"aaaaaaaaaaaa";case"es_ES":return;case"fr_FR":return;case"ja_JP":return;case"zh_CHT":return;case"en_US":default:return}}get 新开窗口如何打开(){switch(this.conf.appearance.lang){case"zh_CN":return"新开窗: 0不打开,1打开到前台,2打开到后台,3打开到右边,4打开到底部";case"es_ES":return"Abrir nueva ventana: 0 no abrir, 1 abrir al frente, 2 abrir al fondo, 3 abrir a la derecha, 4 abrir abajo";case"fr_FR":return"Ouvrir une nouvelle fenêtre : 0 ne pas ouvrir, 1 ouvrir au premier plan, 2 ouvrir en arrière-plan, 3 ouvrir à droite, 4 ouvrir en bas";case"ja_JP":return"新しいウィンドウを開く方法: 0開かない、1前面に開く、2背景に開く、3右側に開く、4下に開く";case"zh_CHT":return"新開視窗:0不打開,1打開到前台,2打開到後台,3打開到右邊,4打開到底部";case"en_US":default:return"Open new window: 0 do not open, 1 open to front, 2 open to back, 3 open to right, 4 open to bottom"}}get 对分片制卡额外链接到分片(){switch(this.conf.appearance.lang){case"zh_CN":return"对分片制卡,闪卡除了链接到原文,还额外链接到分片。";case"es_ES":return"Para las tarjetas fragmentadas, las tarjetas flash están adicionalmente vinculadas a los fragmentos además de estar vinculadas al texto original.";case"fr_FR":return"Pour les cartes fragmentées, les cartes flash sont en outre liées aux fragments en plus d'être liées au texte original.";case"ja_JP":return"分割されたカードについて、フラッシュカードは原文にリンクするだけでなく、分割にも追加でリンクします。";case"zh_CHT":return"對分片制卡,閃卡除了鏈接到原文,還額外鏈接到分片。";case"en_US":default:return"For fragmented card making, flashcards are additionally linked to fragments in addition to being linked to the original text."}}get 闪卡的回溯使用链接(){switch(this.conf.appearance.lang){case"zh_CN":return"闪卡的回溯使用链接,否则用引用。";case"es_ES":return"Enlace de retroceso de la tarjeta flash, de lo contrario usa la referencia.";case"fr_FR":return"Lien de retour de la carte flash, sinon utilisez la référence.";case"ja_JP":return"フラッシュカードのリグレッションリンク、それ以外の場合は参照を使用します。";case"zh_CHT":return"閃卡的回溯使用連結,否則用引用。";case"en_US":default:return"Flashcard regression link, otherwise use reference."}}get 制卡时在末尾添加空行(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡时,在末尾添加空行";case"es_ES":return"Al crear una tarjeta, agrega una línea en blanco al final";case"fr_FR":return"Lors de la création d'une carte, ajoutez une ligne vide à la fin";case"ja_JP":return"カード作成時に、末尾に空行を追加します";case"zh_CHT":return"制卡時,在末尾添加空行";case"en_US":default:return"When creating a card, add a blank line at the end"}}get 摘抄不加入回溯链接(){switch(this.conf.appearance.lang){case"zh_CN":return"摘抄不加入回溯链接";case"es_ES":return"Extracto sin enlace retrospectivo";case"fr_FR":return"Extrait sans lien rétrospectif";case"ja_JP":return"引用にリンクを含めない";case"zh_CHT":return"摘抄不加入回溯鏈接";case"en_US":default:return"Excerpt without backlink"}}get 分片不加入回溯链接(){switch(this.conf.appearance.lang){case"zh_CN":return"分片不加入回溯链接";case"es_ES":return"Fragmento no incluido en enlaces retrospectivos";case"fr_FR":return"Fragment non inclus dans les liens de rétrospection";case"ja_JP":return"フラグメントを遡及リンクに含めない";case"zh_CHT":return"分片不加入回溯鏈接";case"en_US":default:return"Fragment not included in backtrace links"}}get 合并所有分片到新文件(){switch(this.conf.appearance.lang){case"zh_CN":return"合并所有分片到新文件";case"es_ES":return"Combinar todos los fragmentos en un nuevo archivo";case"fr_FR":return"Fusionner tous les fragments dans un nouveau fichier";case"ja_JP":return"すべてのフラグメントを新しいファイルにマージ";case"zh_CHT":return"合併所有分片到新文件";case"en_US":default:return"Merge all fragments into a new file"}}get 请先配置AI(){switch(this.conf.appearance.lang){case"zh_CN":return"请先配置 AI";case"es_ES":return"Configure la IA primero";case"fr_FR":return"Configurez l'IA d'abord";case"ja_JP":return"まず AI を設定してください";case"zh_CHT":return"請先配置 AI";case"en_US":default:return"Please configure the AI first"}}get 摘录单词并加入闪卡并用AI解释(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词并加入闪卡并用AI解释";case"es_ES":return"Extraer palabras y añadir a tarjetas flash con explicación de IA";case"fr_FR":return"Extraire des mots et ajouter aux fiches flash avec explication par IA";case"ja_JP":return"単語を抜粋してフラッシュカードに追加し、AIによる説明を行う";case"zh_CHT":return"摘錄單詞並加入閃卡並用AI解釋";case"en_US":default:return"Extract words and add to flashcards with AI explanation"}}get 请选择词语(){switch(this.conf.appearance.lang){case"zh_CN":return"请选择词语";case"es_ES":return"Por favor, selecciona la palabra";case"fr_FR":return"Veuillez sélectionner le mot";case"ja_JP":return"単語を選択してください";case"zh_CHT":return"請選擇詞語";case"en_US":default:return"Please select the word"}}get 摘录单词(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词";case"es_ES":return"Extraer palabras";case"fr_FR":return"Extraire des mots";case"ja_JP":return"単語を抜粋する";case"zh_CHT":return"摘錄單詞";case"en_US":default:return"Extract words"}}get 摘录单词并加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"摘录单词并加入闪卡";case"es_ES":return"Extraer palabras y añadir a tarjetas flash";case"fr_FR":return"Extraire des mots et ajouter aux fiches";case"ja_JP":return"単語を抜粋してフラッシュカードに追加";case"zh_CHT":return"摘錄單詞並加入閃卡";case"en_US":default:return"Extract words and add to flashcards"}}get 渐进学习的设置(){switch(this.conf.appearance.lang){case"zh_CN":return"渐进学习的设置";case"es_ES":return"Configuración de aprendizaje progresivo";case"fr_FR":return"Paramètres d'apprentissage progressif";case"ja_JP":return"段階的な学習の設定";case"zh_CHT":return"漸進學習的設定";case"en_US":default:return"Progressive Learning Settings"}}get 渐进学习(){switch(this.conf.appearance.lang){case"zh_CN":return"渐进学习";case"es_ES":return"Aprendizaje progresivo";case"fr_FR":return"Apprentissage progressif";case"ja_JP":return"段階的学習";case"zh_CHT":return"漸進學習";case"en_US":default:return"Progressive learning"}}get 按标点断句列表(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句,形成列表/大纲";case"es_ES":return"Segmentar por puntuación, formar lista/esquema";case"fr_FR":return"Segmenter par ponctuation, former une liste/un plan";case"ja_JP":return"句読点で区切り、リスト/アウトラインを作成する";case"zh_CHT":return"按標點斷句,形成列表/大綱";case"en_US":default:return"Segment by punctuation, form list/outline"}}get 按标点断句Checkbox(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句,形成任务列表(可以ctrl+enter勾选任务)";case"es_ES":return"Segmentar por puntuación, formar lista de tareas (puede seleccionar tareas con ctrl+enter)";case"fr_FR":return"Segmenter par ponctuation, former une liste de tâches (vous pouvez cocher les tâches avec ctrl+enter)";case"ja_JP":return"句読点で区切り、タスクリストを作成する(ctrl+enterでタスクをチェックできます)";case"zh_CHT":return"按標點斷句,形成任務列表(可以ctrl+enter勾選任務)";case"en_US":default:return"Segment by punctuation, form task list (you can check tasks with ctrl+enter)"}}get 按标点断句(){switch(this.conf.appearance.lang){case"zh_CN":return"按标点断句";case"es_ES":return"Segmentar por puntuación";case"fr_FR":return"Segmenter par ponctuation";case"ja_JP":return"句読点で区切る";case"zh_CHT":return"按標點斷句";case"en_US":default:return"Segment by punctuation"}}get 不再推送本书(){switch(this.conf.appearance.lang){case"zh_CN":return"不再为我推送本书,可在顶栏的[查看所有渐进学习文档]中开启推送";case"es_ES":return"No enviar más este libro, puedes habilitar el envío en [Ver todos los documentos de aprendizaje progresivo] en la barra superior";case"fr_FR":return"Ne plus envoyer ce livre, vous pouvez activer l'envoi dans [Voir tous les documents d'apprentissage progressif] dans la barre supérieure";case"ja_JP":return"この本をもう送らないでください、トップバーの[すべての段階的学習ドキュメントを表示]で送信を有効にできます";case"zh_CHT":return"不再為我推送本書,可在頂欄的[查看所有漸進學習文檔]中開啟推送";case"en_US":default:return"No longer push this book for me, can turn on push in [View all progressive learning documents] in the top bar"}}get 删除分片并退出(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片并结束阅读";case"es_ES":return"Eliminar fragmento y terminar la lectura";case"fr_FR":return"Supprimer le fragment et terminer la lecture";case"ja_JP":return"フラグメントを削除して読み終える";case"zh_CHT":return"刪除分片並結束閱讀";case"en_US":default:return"Delete fragment and end reading"}}get 删除文档闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"删除文档闪卡";case"es_ES":return"Eliminar tarjeta de documento";case"fr_FR":return"Supprimer la fiche document";case"ja_JP":return"ドキュメントカードを削除する";case"zh_CHT":return"刪除文檔閃卡";case"en_US":default:return"Delete document flashcard"}}get 将文档加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"将文档加入闪卡";case"es_ES":return"Agregar el documento a la tarjeta";case"fr_FR":return"Ajouter le document à la fiche";case"ja_JP":return"ドキュメントをカードに追加する";case"zh_CHT":return"將文檔加入閃卡";case"en_US":default:return"Add document to flashcard"}}get 换一本书看(){switch(this.conf.appearance.lang){case"zh_CN":return"换一本书来看";case"es_ES":return"Cambia a otro libro para leer";case"fr_FR":return"Changez de livre à lire";case"ja_JP":return"別の本を読む";case"zh_CHT":return"換一本書來看";case"en_US":default:return"Switch to another book to read"}}get 删除分片看下一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片,看下一个分片";case"es_ES":return"Eliminar fragmento, ver el siguiente fragmento";case"fr_FR":return"Supprimer le fragment, voir le prochain fragment";case"ja_JP":return"フラグメントを削除し、次のフラグメントを見る";case"zh_CHT":return"刪除分片,看下一個分片";case"en_US":default:return"Delete fragment, see the next fragment"}}get 删除分片看上一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"删除分片,看上一个分片";case"es_ES":return"Eliminar fragmento, ver el fragmento anterior";case"fr_FR":return"Supprimer le fragment, voir le fragment précédent";case"ja_JP":return"フラグメントを削除し、前のフラグメントを見る";case"zh_CHT":return"刪除分片,看上一個分片";case"en_US":default:return"Delete fragment, see the previous fragment"}}get 打开本书的闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"打开本书的闪卡";case"es_ES":return"Abre las tarjetas flash de este libro";case"fr_FR":return"Ouvrez les flashcards de ce livre";case"ja_JP":return"この本のフラッシュカードを開く";case"zh_CHT":return"打開本書的閃卡";case"en_US":default:return"Open the flashcards of this book"}}get 关闭分片(){switch(this.conf.appearance.lang){case"zh_CN":return"关闭分片";case"es_ES":return"Cerrar fragmento";case"fr_FR":return"Fermer le fragment";case"ja_JP":return"フラグメントを閉じる";case"zh_CHT":return"關閉分片";case"en_US":default:return"Close fragment"}}get 重新插入分片内容(){switch(this.conf.appearance.lang){case"zh_CN":return"重新插入分片的内容";case"es_ES":return"Reinsertar el contenido del fragmento";case"fr_FR":return"Réinsérer le contenu du fragment";case"ja_JP":return"フラグメントの内容を再挿入する";case"zh_CHT":return"重新插入分片的內容";case"en_US":default:return"Reinsert fragment content"}}get 删除原文(){switch(this.conf.appearance.lang){case"zh_CN":return"删除原文";case"es_ES":return"Eliminar el texto original";case"fr_FR":return"Supprimer le texte original";case"ja_JP":return"オリジナルのテキストを削除する";case"zh_CHT":return"刪除原文";case"en_US":default:return"Delete original text"}}get 下一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"下一个分片";case"es_ES":return"Siguiente fragmento";case"fr_FR":return"Prochain fragment";case"ja_JP":return"次の断片";case"zh_CHT":return"下一個片段";case"en_US":default:return"Next fragment"}}get 上一个分片(){switch(this.conf.appearance.lang){case"zh_CN":return"上一个分片";case"es_ES":return"Fragmento anterior";case"fr_FR":return"Fragment précédent";case"ja_JP":return"前の断片";case"zh_CHT":return"上一個片段";case"en_US":default:return"Previous fragment"}}get 打开目录(){switch(this.conf.appearance.lang){case"zh_CN":return"打开目录";case"es_ES":return"Abrir directorio";case"fr_FR":return"Ouvrir le répertoire";case"ja_JP":return"ディレクトリを開く";case"zh_CHT":return"開啟目錄";case"en_US":default:return"Open directory"}}get altshift总是收集到dailynote(){switch(this.conf.appearance.lang){case"zh_CN":return"alt+shift+z总是收集到dailynote";case"es_ES":return"alt+shift+z siempre recoge a dailynote";case"fr_FR":return"alt+shift+z recueille toujours à dailynote";case"ja_JP":return"alt+shift+zは常にdailynoteに集めます";case"zh_CHT":return"alt+shift+z總是收集到dailynote";case"en_US":default:return"alt+shift+z always collects to dailynote"}}get 制卡后追加时间与标题路径(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡后追加时间与标题路径";case"es_ES":return"Después de hacer la tarjeta, añada tiempo y ruta del título";case"fr_FR":return"Après avoir fait la carte, ajoutez du temps et le chemin du titre";case"ja_JP":return"カード作成後、時間とタイトルパスを追加";case"zh_CHT":return"製卡後追加時間與標題路徑";case"en_US":default:return"After card creation, append time and title path"}}get 制卡摘抄改变原文背景(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡、摘抄改变原文背景";case"es_ES":return"Crear tarjetas, extractos cambian el fondo del texto original";case"fr_FR":return"Créer des cartes, extraits changent l'arrière-plan du texte original";case"ja_JP":return"カード作成、抜粋は原文の背景を変更する";case"zh_CHT":return"制卡、摘抄改變原文背景";case"en_US":default:return"Card making, excerpts change the background of the original text"}}get 制卡摘抄在原文处做标记(){switch(this.conf.appearance.lang){case"zh_CN":return"制卡、摘抄在原文处做标记";case"es_ES":return"Hacer tarjeta, hacer anotaciones en el texto original";case"fr_FR":return"Faire une carte, faire des notes dans le texte original";case"ja_JP":return"カードを作り、原文でマークをつける";case"zh_CHT":return"製卡、摘抄在原文處做標記";case"en_US":default:return"Make card, make notes in the original text"}}get 分片内制卡放于分片的子文档内(){switch(this.conf.appearance.lang){case"zh_CN":return"分片内制卡,放于分片的子文档内";case"es_ES":return"Hacer tarjeta dentro del fragmento, colocar en el subdocumento del fragmento";case"fr_FR":return"Faire une carte à l'intérieur du fragment, placer dans le sous-document du fragment";case"ja_JP":return"フラグメント内でカードを作り、フラグメントのサブドキュメントに置く";case"zh_CHT":return"分片內製卡,放於分片的子文檔內";case"en_US":default:return"Make card within fragment, put in the subdocument of the fragment"}}get cards前缀文件(){switch(this.conf.appearance.lang){case"zh_CN":return"'cards-'前缀文件: 每本书用于保存闪卡的文件";case"es_ES":return"Archivo con prefijo 'cards-': Cada libro se utiliza para guardar el archivo de tarjetas";case"fr_FR":return"Fichier avec préfixe 'cards-': Chaque livre sert à sauvegarder le fichier de cartes";case"ja_JP":return"'cards-'プレフィックスのファイル:各書籍はフラッシュカードのファイルを保存するために使用されます";case"zh_CHT":return"'cards-'前綴文件: 每本書用於保存閃卡的文件";case"en_US":default:return"'cards-' prefix file: Each book is used to save the flashcard file"}}get 打开分片的同时打开cards文档(){switch(this.conf.appearance.lang){case"zh_CN":return"打开分片的同时打开cards文档";case"es_ES":return"Abrir el documento de tarjetas al mismo tiempo que se abre el fragmento";case"fr_FR":return"Ouvrir le document de cartes en même temps que le fragment";case"ja_JP":return"フラグメントを開くと同時にカードのドキュメントを開く";case"zh_CHT":return"打開分片的同時打開cards文檔";case"en_US":default:return"Open cards document while opening the fragment"}}get 在闪卡内复习整个分片时隐藏分片下方按钮(){switch(this.conf.appearance.lang){case"zh_CN":return"在闪卡内复习整个分片时,隐藏分片下方按钮";case"es_ES":return"Al revisar todo el fragmento dentro de la tarjeta, ocultar el botón debajo del fragmento";case"fr_FR":return"Lors de la révision de l'ensemble du fragment à l'intérieur de la carte, cacher le bouton sous le fragment";case"ja_JP":return"フラッシュカード内でフラグメント全体を復習する際、フラグメント下のボタンを隠す";case"zh_CHT":return"在閃卡內復習整個分片時,隱藏分片下方按鈕";case"en_US":default:return"When reviewing the entire fragment within the flashcard, hide the button under the fragment"}}get 断句并插入下方(){switch(this.conf.appearance.lang){case"zh_CN":return"断句并插入下方";case"es_ES":return"Fractura e inserta debajo";case"fr_FR":return"Casser et insérer ci-dessous";case"ja_JP":return"文を分割して下に挿入";case"zh_CHT":return"斷句並插入下方";case"en_US":default:return"Break and insert below"}}get 切换单卡多卡模式(){switch(this.conf.appearance.lang){case"zh_CN":return"切换单卡多卡模式";case"es_ES":return"Cambiar modo de tarjeta única a múltiple";case"fr_FR":return"Passer du mode carte unique au mode multi-cartes";case"ja_JP":return"シングルカードモードからマルチカードモードに切り替え";case"zh_CHT":return"切換單卡多卡模式";case"en_US":default:return"Switch single card to multi-card mode"}}get 清理已经完成的摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"清理已经完成的摘抄";case"es_ES":return"Limpiar las citas completadas";case"fr_FR":return"Nettoyer les citations terminées";case"ja_JP":return"完了した引用をクリア";case"zh_CHT":return"清理已經完成的摘抄";case"en_US":default:return"Clean up completed quotes"}}get 这并不是一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"这并不是一个摘抄";case"es_ES":return"Esto no es una cita";case"fr_FR":return"Ce n'est pas une citation";case"ja_JP":return"これは引用ではありません";case"zh_CHT":return"這並不是一個摘抄";case"en_US":default:return"This is not a quote"}}get 标记摘抄为完成状态并转移闪卡到其他摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"标记摘抄为完成状态,并转移闪卡到其他摘抄";case"es_ES":return"Marcar la cita como completada y trasladar las tarjetas a otra cita";case"fr_FR":return"Marquer la citation comme terminée et déplacer les flashcards vers une autre citation";case"ja_JP":return"引用を完了とマークし、フラッシュカードを他の引用に移動";case"zh_CHT":return"標記摘抄為完成狀態,並轉移閃卡到其他摘抄";case"en_US":default:return"Mark the quote as completed and move flashcards to another quote"}}get 打开下一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"打开下一个摘抄";case"es_ES":return"Abrir la siguiente cita";case"fr_FR":return"Ouvrir la citation suivante";case"ja_JP":return"次の引用を開く";case"zh_CHT":return"打開下一個摘抄";case"en_US":default:return"Open the next quote"}}get 打开前一个摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"打开前一个摘抄";case"es_ES":return"Abrir la cita anterior";case"fr_FR":return"Ouvrir la citation précédente";case"ja_JP":return"前の引用を開く";case"zh_CHT":return"打開前一個摘抄";case"en_US":default:return"Open the previous quote"}}get 查看摘抄轨迹链(){switch(this.conf.appearance.lang){case"zh_CN":return"查看摘抄轨迹链";case"es_ES":return"Ver cadena de trazas de extracto";case"fr_FR":return"Voir la chaîne de traces d'extrait";case"ja_JP":return"抽出トレースチェーンを見る";case"zh_CHT":return"查看摘抄軌跡鏈";case"en_US":default:return"View excerpt trace chain"}}get 摘抄(){switch(this.conf.appearance.lang){case"zh_CN":return"摘抄";case"es_ES":return"Extracto";case"fr_FR":return"Extrait";case"ja_JP":return"抽出";case"zh_CHT":return"摘抄";case"en_US":default:return"Excerpt"}}get 不删除已经产生的分片等文件(){switch(this.conf.appearance.lang){case"zh_CN":return"不删除已经产生的分片等文件";case"es_ES":return"No eliminar archivos de fragmentos ya generados, etc.";case"fr_FR":return"Ne pas supprimer les fichiers de fragments déjà générés, etc.";case"ja_JP":return"既に生成されたフラグメントなどのファイルを削除しない";case"zh_CHT":return"不刪除已經產生的分片等文件";case"en_US":default:return"Do not delete already generated fragment files, etc."}}get 删除(){switch(this.conf.appearance.lang){case"zh_CN":return"删除";case"es_ES":return"Eliminar";case"fr_FR":return"Supprimer";case"ja_JP":return"削除";case"zh_CHT":return"刪除";case"en_US":default:return"Delete"}}get 重新分片(){switch(this.conf.appearance.lang){case"zh_CN":return"重新分片";case"es_ES":return"Refragmentar";case"fr_FR":return"Refragmenter";case"ja_JP":return"再フラグメンテーション";case"zh_CHT":return"重新分片";case"en_US":default:return"Refragment"}}get 阅读(){switch(this.conf.appearance.lang){case"zh_CN":return"阅读";case"es_ES":return"Leer";case"fr_FR":return"Lire";case"ja_JP":return"読む";case"zh_CHT":return"閱讀";case"en_US":default:return"Read"}}get 断句(){switch(this.conf.appearance.lang){case"zh_CN":return"断句";case"es_ES":return"Segmentación de frases";case"fr_FR":return"Segmentation de phrases";case"ja_JP":return"フレーズのセグメンテーション";case"zh_CHT":return"斷句";case"en_US":default:return"Sentence segmentation"}}get 末尾(){switch(this.conf.appearance.lang){case"zh_CN":return"末尾块";case"es_ES":return"último bloque";case"fr_FR":return"dernier bloc";case"ja_JP":return"最後のブロック";case"zh_CHT":return"最後一個塊";case"en_US":default:return"last block"}}get 标号(){switch(this.conf.appearance.lang){case"zh_CN":return"添加标号";case"es_ES":return"Agregar etiqueta";case"fr_FR":return"Ajouter une étiquette";case"ja_JP":return"ラベルを追加";case"zh_CHT":return"添加標號";case"en_US":default:return"Add label"}}get 制卡(){switch(this.conf.appearance.lang){case"zh_CN":return"加入闪卡";case"es_ES":return"Añadir tarjeta";case"fr_FR":return"Ajouter une carte";case"ja_JP":return"カードを追加";case"zh_CHT":return"加入閃卡";case"en_US":default:return"Add card"}}get 忽略(){switch(this.conf.appearance.lang){case"zh_CN":return"忽略";case"es_ES":return"Ignorar";case"fr_FR":return"Ignorer";case"ja_JP":return"無視する";case"zh_CHT":return"忽略";case"en_US":default:return"Ignore"}}get 进度(){switch(this.conf.appearance.lang){case"zh_CN":return"进度";case"es_ES":return"Progreso";case"fr_FR":return"Progression";case"ja_JP":return"進行状況";case"zh_CHT":return"進度";case"en_US":default:return"Progress"}}get 书名(){switch(this.conf.appearance.lang){case"zh_CN":return"书名";case"es_ES":return"Título del libro";case"fr_FR":return"Titre du livre";case"ja_JP":return"書籍名";case"zh_CHT":return"書名";case"en_US":default:return"Book title"}}get 只删除记录与辅助数据不删除分片不删除闪卡等删除(){switch(this.conf.appearance.lang){case"zh_CN":return"只删除记录与辅助数据,不删除分片,不删除闪卡等。
删除:";case"es_ES":return"Solo elimina registros y datos auxiliares, no elimina fragmentos, tarjetas, etc.
Eliminar:";case"fr_FR":return"Supprime uniquement les enregistrements et les données d'assistance, sans supprimer les fragments, les cartes, etc.
Supprimer:";case"ja_JP":return"レコードと補助データのみを削除し、フラグメントやカードなどは削除しません。
削除:";case"zh_CHT":return"只刪除記錄與輔助數據,不刪除分片,不刪除閃卡等。
刪除:";case"en_US":default:return"Only delete records and auxiliary data, do not delete fragments, flash cards, etc.
Delete:"}}get 找不到此书籍(){switch(this.conf.appearance.lang){case"zh_CN":return"找不到此书籍";case"es_ES":return"No se puede encontrar este libro";case"fr_FR":return"Impossible de trouver ce livre";case"ja_JP":return"この本が見つかりません";case"zh_CHT":return"找不到此書籍";case"en_US":default:return"Cannot find this book"}}x处修改完成(e){switch(this.conf.appearance.lang){case"zh_CN":return`${e}处修改完成!`;case"es_ES":return`${e} cambios realizados!`;case"fr_FR":return`${e} modifications effectuées!`;case"ja_JP":return`${e}箇所の変更が完了しました!`;case"zh_CHT":return`${e}處修改完成!`;case"en_US":default:return`${e} changes made!`}}get 扫描索引中请耐心等待(){switch(this.conf.appearance.lang){case"zh_CN":return"扫描索引中,请耐心等待……";case"es_ES":return"Indexando, por favor espere...";case"fr_FR":return"Indexation en cours, veuillez patienter...";case"ja_JP":return"インデックス作成中、お待ちください...";case"zh_CHT":return"掃描索引中,請耐心等待……";case"en_US":default:return"Indexing, please wait..."}}get 正在替换start与add替换为超链接(){switch(this.conf.appearance.lang){case"zh_CN":return"正在替换'*'与'@'替换为超链接……";case"es_ES":return"Reemplazando '*' y '@' con enlaces...";case"fr_FR":return"Remplacement de '*' et '@' par des liens...";case"ja_JP":return"'*'と'@'をリンクに置き換え中...";case"zh_CHT":return"正在替換'*'與'@'替換為超連結……";case"en_US":default:return"Replacing '*' and '@' with links..."}}get 即将创建本地备份(){switch(this.conf.appearance.lang){case"zh_CN":return"即将创建本地备份";case"es_ES":return"Creando una copia de seguridad local...";case"fr_FR":return"Création d'une sauvegarde locale...";case"ja_JP":return"ローカルバックアップを作成します...";case"zh_CHT":return"即將創建本地備份";case"en_US":default:return"Creating a local backup..."}}get startAdd替换为超链接(){switch(this.conf.appearance.lang){case"zh_CN":return"⚠️'*'与'@'替换为超链接";case"es_ES":return"⚠️'*' y '@' se reemplazan por enlaces";case"fr_FR":return"⚠️'*' et '@' sont remplacés par des liens";case"ja_JP":return"⚠️'*'と'@'はリンクに置き換えられます";case"zh_CHT":return"⚠️'*'與'@'替換為超連結";case"en_US":default:return"⚠️'*' and '@' are replaced with links"}}get 给分片内段落标上序号(){switch(this.conf.appearance.lang){case"zh_CN":return"给分片内段落标上序号";case"es_ES":return"Numerando párrafos en fragmentos";case"fr_FR":return"Numérotation des paragraphes dans les fragments";case"ja_JP":return"フラグメント内の段落に番号を付ける";case"zh_CHT":return"給分片內段落標上序號";case"en_US":default:return"Numbering paragraphs in fragments"}}get 自动断句(){switch(this.conf.appearance.lang){case"zh_CN":return"自动断句";case"es_ES":return"Autopuntuación";case"fr_FR":return"Auto-punctuation";case"ja_JP":return"自動句点";case"zh_CHT":return"自動斷句";case"en_US":default:return"Auto-punctuation"}}get cancel取消(){switch(this.conf.appearance.lang){case"zh_CN":return"取消";case"es_ES":return"cancelar";case"fr_FR":return"annuler";case"ja_JP":return"キャンセル";case"zh_CHT":return"取消";case"en_US":default:return"cancel"}}get 显示上一分片最后一个内容块(){switch(this.conf.appearance.lang){case"zh_CN":return"显示上一分片最后一个内容块";case"es_ES":return"mostrar el último bloque de contenido del fragmento anterior";case"fr_FR":return"afficher le dernier bloc de contenu du fragment précédent";case"ja_JP":return"前のフラグメントの最後のコンテンツブロックを表示";case"zh_CHT":return"顯示上一分片最後一個內容塊";case"en_US":default:return"show the last content block of the previous fragment"}}get 断句为无序表(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为无序表";case"es_ES":return"frasear como lista desordenada";case"fr_FR":return"phraser comme une liste non ordonnée";case"ja_JP":return"無秩序なリストとしてフレーズ";case"zh_CHT":return"斷句為無序表";case"en_US":default:return"phrase as an unordered list"}}get 断句为任务块(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为任务块";case"es_ES":return"frasear como bloque de tarea";case"fr_FR":return"phraser comme un bloc de tâche";case"ja_JP":return"タスクブロックとしてフレーズ";case"zh_CHT":return"斷句為任務塊";case"en_US":default:return"phrase as a task block"}}get 断句为段落块(){switch(this.conf.appearance.lang){case"zh_CN":return"断句为段落块";case"es_ES":return"frasear como bloque de párrafo";case"fr_FR":return"phraser comme un bloc de paragraphe";case"ja_JP":return"段落ブロックとしてフレーズ";case"zh_CHT":return"斷句為段落塊";case"en_US":default:return"phrase as a paragraph block"}}get 不断句(){switch(this.conf.appearance.lang){case"zh_CN":return"不断句";case"es_ES":return"no frases";case"fr_FR":return"pas de phrases";case"ja_JP":return"フレーズなし";case"zh_CHT":return"不斷句";case"en_US":default:return"no phrases"}}get 新建分片时给段落标上序号(){switch(this.conf.appearance.lang){case"zh_CN":return"新建分片时,给段落标上序号";case"es_ES":return"al crear un nuevo fragmento, numerar los párrafos";case"fr_FR":return"lors de la création d'un nouveau fragment, numéroter les paragraphes";case"ja_JP":return"新しいフラグメントを作成するときに段落に番号をつける";case"zh_CHT":return"新建分片時,給段落標上序號";case"en_US":default:return"when creating a new fragment, number the paragraphs"}}get 把阅读到的分片设置为闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"把阅读到的分片设置为闪卡";case"es_ES":return"Establecer el fragmento leído como tarjeta de memoria";case"fr_FR":return"Définir le fragment lu comme flashcard";case"ja_JP":return"読んだフラグメントをフラッシュカードに設定する";case"zh_CHT":return"將讀到的片段設置為閃卡";case"en_US":default:return"Set the read fragment as flashcard"}}get 只有一个摘抄加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"只有一个摘抄加入闪卡";case"es_ES":return"Sólo un extracto se añade a la tarjeta de memoria";case"fr_FR":return"Seul un extrait est ajouté à la flashcard";case"ja_JP":return"抜粋はフラッシュカードに一つだけ追加されます";case"zh_CHT":return"只有一個摘錄加入閃卡";case"en_US":default:return"Only one excerpt is added to flashcard"}}get 每个摘抄都加入闪卡(){switch(this.conf.appearance.lang){case"zh_CN":return"每个摘抄都加入闪卡";case"es_ES":return"Cada extracto se añade a la tarjeta de memoria";case"fr_FR":return"Chaque extrait est ajouté à la flashcard";case"ja_JP":return"各抜粋がフラッシュカードに追加されます";case"zh_CHT":return"每個摘錄都加入閃卡";case"en_US":default:return"Each excerpt is added to flashcard"}}get 移动到下一分片内(){switch(this.conf.appearance.lang){case"zh_CN":return"移动到下一分片内";case"es_ES":return"Mover al siguiente fragmento";case"fr_FR":return"Passer au fragment suivant";case"ja_JP":return"次のフラグメントに移動する";case"zh_CHT":return"移動到下一片段內";case"en_US":default:return"Move to the next fragment"}}get 移动到上一分片内(){switch(this.conf.appearance.lang){case"zh_CN":return"移动到上一分片内";case"es_ES":return"Mover al fragmento anterior";case"fr_FR":return"Passer au fragment précédent";case"ja_JP":return"前のフラグメントに移動する";case"zh_CHT":return"移動到上一片段內";case"en_US":default:return"Move to the previous fragment"}}get 构建打开目录中请稍后片刻(){switch(this.conf.appearance.lang){case"zh_CN":return"构建/打开目录中,请稍后片刻……";case"es_ES":return"Construyendo/abriendo el directorio, por favor espere un momento...";case"fr_FR":return"Construction/ouverture du répertoire, veuillez patienter un instant...";case"ja_JP":return"ディレクトリを作成/開く中、少々お待ちください...";case"zh_CHT":return"建立/開啟目錄中,請稍後片刻……";case"en_US":default:return"Building/opening directory, please wait a moment..."}}get 首次构建目录请稍后片刻(){switch(this.conf.appearance.lang){case"zh_CN":return"首次,构建目录,请稍后片刻……";case"es_ES":return"Primera vez, construyendo el directorio, por favor espere un momento...";case"fr_FR":return"Première fois, construction du répertoire, veuillez patienter un instant...";case"ja_JP":return"初めて、ディレクトリを作成中、少々お待ちください...";case"zh_CHT":return"首次,建立目錄,請稍後片刻……";case"en_US":default:return"First time, building directory, please wait a moment..."}}get 找不到分片内容(){switch(this.conf.appearance.lang){case"zh_CN":return"找不到分片内容";case"es_ES":return"No se puede encontrar el contenido del fragmento";case"fr_FR":return"Contenu du fragment introuvable";case"ja_JP":return"フラグメントの内容が見つかりません";case"zh_CHT":return"找不到片段內容";case"en_US":default:return"Cannot find fragment content"}}get 总字数(){switch(this.conf.appearance.lang){case"zh_CN":return"总字数";case"es_ES":return"Número total de palabras";case"fr_FR":return"Nombre total de mots";case"ja_JP":return"合計単語数";case"zh_CHT":return"總字數";case"en_US":default:return"Total word count"}}get 各级标题数(){switch(this.conf.appearance.lang){case"zh_CN":return"各级标题数";case"es_ES":return"Número de títulos de cada nivel";case"fr_FR":return"Nombre de titres de chaque niveau";case"ja_JP":return"各レベルのタイトル数";case"zh_CHT":return"各級標題數";case"en_US":default:return"Number of titles at each level"}}get 总内容块数(){switch(this.conf.appearance.lang){case"zh_CN":return"总内容块数";case"es_ES":return"Número total de bloques de contenido";case"fr_FR":return"Nombre total de blocs de contenu";case"ja_JP":return"総コンテンツブロック数";case"zh_CHT":return"總內容塊數";case"en_US":default:return"Total number of content blocks"}}平均每个标题下有x块(e){switch(this.conf.appearance.lang){case"zh_CN":return`平均每个标题下有: [${e}] 个块`;case"es_ES":return`En promedio, hay [${e}] bloques bajo cada título`;case"fr_FR":return`En moyenne, il y a [${e}] blocs sous chaque titre`;case"ja_JP":return`各タイトルには平均して [${e}] ブロックがあります`;case"zh_CHT":return`每個標題下平均有: [${e}] 個區塊`;case"en_US":default:return`On average, there are [${e}] blocks under each title`}}平均每个块有x字(e){switch(this.conf.appearance.lang){case"zh_CN":return`平均每个块有 : [${e}] 字`;case"es_ES":return`En promedio, cada bloque tiene [${e}] palabras`;case"fr_FR":return`En moyenne, chaque bloc contient [${e}] mots`;case"ja_JP":return`各ブロックには平均して [${e}] 文字があります`;case"zh_CHT":return`每個區塊平均有: [${e}] 字`;case"en_US":default:return`On average, each block has [${e}] words`}}}const h=new Au;class uu{constructor(e,z,b,M){B(this,"asList");B(this,"noteID");B(this,"bookID");B(this,"textAreas");B(this,"plugin");this.noteID=b,this.asList=M,this.plugin=z,this.bookID=e}async insert(e=!0){return navigator.locks.request("prog.SplitSentence.insert",{ifAvailable:!0},async z=>{if(z){let b;const M=[];for(const t of this.textAreas)!b&&t.blocks.length>0&&(b=t.blocks[0].id),M.push(t.blocks.map(p=>p.text).join(""));await r.insertBlockAsChildOf(M.join(` -`),this.noteID),b&&e&&u1(this.plugin,b,["cb-get-hl","cb-get-context"],!1)}})}async splitByIDs(e){const z=await F.storage.booksInfo(this.bookID),b=(await r.getRows(e,"id, content, ial, type, markdown",!0,["content != ''","content IS NOT NULL"])).filter(t=>!!t.markdown);this.textAreas=[],b.length==0&&await r.pushMsg(h.找不到分片内容);let M=1;for(const t of b){let{ref:p,idx:c}=lu(t.ial);if(p||(p=t.id),c||(c=String(M)),t.type=="h"||dz(t.markdown)){const{newID:o,attrLine:a}=C2(p,c);this.textAreas.push({blocks:[{text:t.markdown+` +`),this.noteID),b&&e&&u1(this.plugin,b)}})}async splitByIDs(e){const z=await F.storage.booksInfo(this.bookID),b=(await r.getRows(e,"id, content, ial, type, markdown",!0,["content != ''","content IS NOT NULL"])).filter(t=>!!t.markdown);this.textAreas=[],b.length==0&&await r.pushMsg(h.找不到分片内容);let M=1;for(const t of b){let{ref:p,idx:c}=lu(t.ial);if(p||(p=t.id),c||(c=String(M)),t.type=="h"||dz(t.markdown)){const{newID:o,attrLine:a}=C2(p,c);this.textAreas.push({blocks:[{text:t.markdown+` ${a}`,id:o}],ref:p})}else{let o=[t.markdown];z!=null&&z.addIndex2paragraph&&!o[0].startsWith("[")&&(o[0]=`[${M}]`+o[0]);for(const O of` 。!?;:`)o=$1(o,O);o=$1(o,"……"),o=$1(o,"! "),o=$1(o,"? "),o=$1(o,"; ");let a;if(this.asList=="p"){a=o.map(s=>s.trim()).filter(s=>s.length>0).map(s=>{const{newID:i,attrLine:d}=C2(p,c);return{text:Ye.repeat(2)+s+` ${d1(p," * ",F.settings.pieceNoBacktraceLink)} ${d} @@ -296,7 +296,7 @@ ${T0(z0.nextBook,"📚📖",h.换一本书看,n,e,z,F.settings.btnNextBook)} }}}`.trim()}function T0(n,e,z,b,M,t,p){return p?`${e} {: ${qt}="${n}" memo="${z}" ${Ko}="${M}" ${Vo}="${b}" ${Qo}="${t}"}`:""}async function xu(n){n.stopPropagation();const e=gn(n.target);if(!e)return;const z=Number(e.getAttribute(qt)),b=e.getAttribute(Vo);if(z!=z0.nop)if(z==z0.readThisBlock){const M=b;await F.readThisPiece(M)}else{const M=e.getAttribute(Ko),t=Number(e.getAttribute(Qo));await F.htmlBlockReadNextPeice(b,M,z,t)}}function ju(n){const e=n>1?"|":"",z="  ".repeat(n-1),b=["","","","","","","","",""][n];return e+z+b}const Zz=class Zz{constructor(){B(this,"plugin");B(this,"storage");B(this,"openedTabs");B(this,"settings");B(this,"lute");B(this,"docID");B(this,"observer");B(this,"welement")}async onload(e,z){Zz.GLOBAL_THIS.progressive_zZmqus5PtYRi={progressive:this,utils:oA,siyuan:r,timeUtil:g1,events:r0},this.plugin=e,this.lute=Rn(),this.settings=z,this.storage=new Bu(e),this.plugin.addTopBar({icon:"iconSettingsProg",title:h.渐进学习的设置,position:z.settingsLeft?"left":"right",callback:()=>{this.plugin.setting.open(h.渐进学习)}});const b=this.plugin.addTopBar({icon:"iconFilesRoot",title:this.plugin.i18n.progressiveReadingMenu,position:z.settingsLeft?"left":"right",callback:()=>{if(r0.isMobile)this.addMenu();else{let M=b.getBoundingClientRect();M.width===0&&(M=document.querySelector("#barMore").getBoundingClientRect()),M.width===0&&(M=document.querySelector("#barPlugins").getBoundingClientRect()),this.addMenu(M)}}});await this.storage.onLayoutReady(),this.plugin.addCommand({langKey:"startToLearn",hotkey:"⌥-",callback:async()=>{await this.startToLearnWithLock()}}),this.plugin.addCommand({langKey:"startToLearnRand",hotkey:"⌥⇧-",callback:async()=>{await this.startToLearnWithLock("",!0)}}),this.plugin.addCommand({langKey:"viewAllProgressiveBooks",hotkey:"⌥=",callback:async()=>{await this.viewAllProgressiveBooks()}}),this.plugin.eventBus.on("open-menu-content",async({detail:M})=>{const t=M.menu;t.addItem({iconHTML:"+📗",label:this.plugin.i18n.addProgressiveReading,accelerator:"",click:async()=>{await this.addProgressiveReadingWithLock()}}),t.addItem({iconHTML:"👁️📚",label:this.plugin.i18n.viewAllProgressiveBooks,accelerator:"⌥=",click:async()=>{await this.viewAllProgressiveBooks()}}),t.addItem({label:this.plugin.i18n.readThisPiece,iconHTML:"🎯📖",click:()=>{var c;const p=((c=M==null?void 0:M.element)==null?void 0:c.getAttribute("data-node-id"))??"";p&&this.readThisPiece(p)}}),t.addItem({iconHTML:"🔀📖",label:this.plugin.i18n.startToLearn,accelerator:"⌥-",click:()=>{this.startToLearnWithLock()}})}),r0.addListener("ProgressiveBox",(M,t)=>{(M==qe.loaded_protyle_static||M==qe.loaded_protyle_dynamic||M==qe.click_editorcontent||M==qe.switch_protyle)&&(navigator.locks.request(Zt,{ifAvailable:!0},async p=>{var i,d,q;const c=t.protyle,o=(i=c==null?void 0:c.wysiwyg)==null?void 0:i.element,a=c==null?void 0:c.element;if(!c||!o||!a)return;this.settings.hideBtnsInFlashCard&&a.classList.contains("card__block")&&a.querySelectorAll(`[${F0}][${S0}]`).forEach(u=>{u.style.display="none"});const O=(d=c==null?void 0:c.block)==null?void 0:d.rootID,{isPiece:s}=E2(c);p&&O&&s&&(this.docID!=O||this.welement!==o)&&(this.docID=O,this.welement=o,(q=this.observer)==null||q.disconnect(),this.observer=new MutationObserver(u=>{const l=u.map(S=>[...S.addedNodes.values()]).flat();this.tryAddRefAttr(l)}),this.observer.observe(o,{childList:!0,subtree:!0}))}),navigator.locks.request(RA,{ifAvailable:!0},async p=>{var s,i;const c=t.protyle;if(!c)return;const o=c.notebookId,a=(s=c==null?void 0:c.block)==null?void 0:s.rootID,O=(i=c==null?void 0:c.wysiwyg)==null?void 0:i.element;p&&O&&a&&o&&Su(O)}))})}async tryAddRefAttr(e){return navigator.locks.request(Zt+"tryAddRefAttr",{mode:"exclusive"},async z=>{z&&e.filter(b=>b.getAttribute&&b.querySelectorAll).filter(b=>!b.getAttribute(y1)).filter(b=>{const M=b.getAttribute(J0);return M==n1.NODE_PARAGRAPH||M==n1.NODE_LIST||M==n1.NODE_LIST_ITEM||M==n1.NODE_HEADING||M==n1.NODE_BLOCKQUOTE||M==n1.NODE_CODE_BLOCK}).forEach(b=>{const{ref:M,idx:t,bIdx:p}=Eu(b)||Pu(b);if(M){const c={};c["custom-progref"]=M,t&&(c["custom-paragraph-index"]=t),p&&(c["custom-in-book-index"]=p),setTimeout(()=>{r.setBlockAttrs(b.getAttribute(S0),c)},4e3),b.setAttribute(y1,M),p&&b.setAttribute(L2,p),t&&b.setAttribute(y2,t),b.querySelectorAll(`div[${S0}]`).forEach(o=>{o.setAttribute(y1,M),p&&o.setAttribute(L2,p),t&&o.setAttribute(y2,t)})}})})}blockIconEvent(e){if(!this.plugin)return;const z=e.menu;z.addItem({iconHTML:"+📗",label:this.plugin.i18n.addProgressiveReading,accelerator:"",click:async()=>{await this.addProgressiveReadingWithLock()}}),z.addItem({iconHTML:"🎯📖",label:this.plugin.i18n.readThisPiece,accelerator:"",click:async()=>{await this.readThisPiece()}})}addMenu(e){const z=new m0.Menu("progressiveMenu");z.addItem({iconHTML:"+📗",label:this.plugin.i18n.addProgressiveReading,accelerator:"",click:async()=>{await this.addProgressiveReadingWithLock()}}),z.addItem({iconHTML:"👁️📚",label:this.plugin.i18n.viewAllProgressiveBooks,accelerator:"⌥=",click:async()=>{await this.viewAllProgressiveBooks()}}),z.addItem({iconHTML:"🎯📖",label:this.plugin.i18n.readThisPiece,accelerator:"",click:async()=>{await this.readThisPiece()}}),z.addItem({iconHTML:"🔀📖",label:this.plugin.i18n.startToLearn,accelerator:"⌥-",click:()=>{this.startToLearnWithLock()}}),z.addItem({iconHTML:"⚙️",label:h.渐进学习的设置,click:()=>{this.plugin.setting.open(h.渐进学习)}}),r0.isMobile?z.fullscreen():z.open({x:e.right,y:e.bottom,isLeft:!0})}async addProgressiveReadingWithLock(e){return navigator.locks.request(mA,{ifAvailable:!0},async z=>{z?(await this.addProgressiveReading(e,r0.boxID),await R2(Xb)):await r.pushMsg(this.plugin.i18n.slowDownALittleBit+" [1]")})}async addProgressiveReading(e="",z=""){if(e||(e=r0.docID),!e){await r.pushMsg(this.plugin.i18n.openAdocFirst);return}const b=await r.sqlOne(`select content from blocks where type='d' and id='${e}'`);if(!b){r.pushMsg(this.plugin.i18n.maybeBookRemoved.replace("{bookID}",e));return}await this.addProgressiveReadingDialog(e,b.content,z)}async addProgressiveReadingDialog(e,z,b){const M=sz();let t;const p=new m0.Dialog({title:this.plugin.i18n.addProgressiveReading,content:`
`,width:r0.isMobile?"90vw":"700px",height:r0.isMobile?"180vw":null,destroyCallback(){t==null||t.$destroy(),t=void 0}});t=new Ru({target:p.element.querySelector("#"+M),props:{bookID:e,bookName:z,boxID:b,dialog:p,plugin:this.plugin}})}async readThisPiece(e){e||(e=r0.lastBlockID);const z=await r.sqlOne(`select root_id from blocks where id="${e}"`);if(z){const b=z.root_id,M=await this.storage.loadBookIndexIfNeeded(b);if(!M.length)await r.pushMsg(this.plugin.i18n.addThisDocFirst);else{for(let t=0;t{if(b){await r.pushMsg(this.plugin.i18n.openingDocPieceForYou);let M=0;for(;await this.startToLearn(e,z)===!1&&!(M++>30););await R2(Xb)}else await r.pushMsg(this.plugin.i18n.slowDownALittleBit+" [2]")})}async openContentsLock(e){return navigator.locks.request(yA,{ifAvailable:!0},async z=>{z?await this.openContents(e):await r.pushMsg(h.构建打开目录中请稍后片刻)})}async openContents(e){let z=await lA(e);if(!z){r.pushMsg(h.首次构建目录请稍后片刻);const b=await r.sqlOne(`select box,hpath,content from blocks where id='${e}' and type='d'`),M=b.hpath,t=b.box,p=b.content;if(!t||!M)return;const c=await Promise.all((await r.getChildBlocks(e)).filter(O=>O.type=="h").map(O=>r.sqlOne(`select id,content,subtype from blocks where id="${O.id}"`)));if(c.length==0)return;const o=c.reduce((O,s)=>{s.content=s.content.trim();let i=Number(s.subtype[1]);return(!G1(i)||i<1)&&(i=1),O.push(ju(i)+T0(z0.readThisBlock,s.content,"",s.id,s.id,0,!0)),O},[]),a={};a[F0]=wo(e),a["custom-sy-readonly"]="true",z=await r.createDocWithMdIfNotExists(t,`${M}/contents-${p}`,o.join(` -`),a)}z&&await u1(this.plugin,z)}async startToLearn(e="",z=!1){let b="";const M=await this.getBook2Learn(e);if(!M.bookID){r.pushMsg(this.plugin.i18n.AddADocFirst);return}e=M.bookID;const t=await this.storage.loadBookIndexIfNeeded(M.bookID);let p=(await this.storage.booksInfo(M.bookID)).point;if(z&&(p=Wo(t.length)),await this.storage.updateBookInfoTime(e),p>=t.length){await r.pushMsg(this.plugin.i18n.thisIsLastPage);return}else if(p<0){await r.pushMsg(this.plugin.i18n.thisIsFirstPage);return}const c=t[p-1]??[],o=t[p];b=await Eo(M.bookID,p);let a=!1;if(b)await this.addAndClose(await u1(this.plugin,b)),a=!0;else if(b=await gA(M.boxID,M.bookID,o,p),b)await this.addReadingBtns(e,b,p),await this.fullfilContent(p,M.bookID,c,o,b,null),await this.addAndClose(await u1(this.plugin,b,null,null,null,()=>{M.autoCard&&pt(b,1e3,1e3*60*60*24)})),a=!0;else return!1;if(a&&this.settings.openCardsOnOpenPiece){let O="",s;if(this.settings.cardUnderPiece?(O=await _1(b,"cards"),s=b):(O=await _1(e,"cards"),s=e),O&&s){const i=await vo(s,M.boxID,O);u1(this.plugin,i,null,null,this.settings.windowOpenBottom?"bottom":"right")}}return!0}async htmlBlockReadNextPeice(e,z,b,M){return navigator.locks.request("htmlBlockReadNextPeiceLock",{ifAvailable:!0},async t=>{t?(await this.htmlBlockReadNextPeiceInLock(e,z,b,M),await R2(Xb)):await r.pushMsg(this.plugin.i18n.slowDownALittleBit+" [3]")})}async htmlBlockReadNextPeiceInLock(e,z,b,M){switch(b){case z0.previous:await this.storage.gotoBlock(e,M-1),await this.startToLearnWithLock(e);break;case z0.next:await this.storage.gotoBlock(e,M+1),await this.startToLearnWithLock(e);break;case z0.deleteAndExit:m0.confirm("⚠️","🏃 🗑",async()=>{await r.removeRiffCards([z]),r.removeDocByID(z)});break;case z0.deleteAndBack:m0.confirm("⚠️",this.plugin.i18n.DeleteAndBack,async()=>{await r.removeRiffCards([z]),await this.storage.gotoBlock(e,M-1),await this.startToLearnWithLock(e),r.removeDocByID(z)});break;case z0.deleteAndNext:m0.confirm("⚠️",this.plugin.i18n.DeleteAndNext,async()=>{await r.removeRiffCards([z]),await this.storage.gotoBlock(e,M+1),await this.startToLearnWithLock(e),r.removeDocByID(z)});break;case z0.nextBook:await this.startToLearnWithLock();break;case z0.quit:{const t=await u1(this.plugin,z);await R2(200),t==null||t.close();break}case z0.AddDocCard:await r.addRiffCards([z]);break;case z0.DelDocCard:await r.removeRiffCards([z]);break;case z0.ignoreBook:await this.storage.setIgnoreBook(e);break;case z0.fullfilContent:{const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M-1]??[],c=t[M]??[];await this.fullfilContent(M,e,p,c,z,null);break}case z0.cleanOriginText:await Tn(z);break;case z0.openFlashcardTab:e?m0.openTab({app:this.plugin.app,card:{type:"doc",id:e}}):m0.openTab({app:this.plugin.app,card:{type:"all"}});break;case z0.viewContents:await this.openContentsLock(e);break;case z0.splitByPunctuations:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"p");break}case z0.splitByPunctuationsList:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"i");break}case z0.splitByPunctuationsListCheck:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"t");break}default:throw"Invalid HtmlCBType "+b}}async splitAndInsert(e,z,b,M){const t=new uu(e,this.plugin,z,b);(M==null?void 0:M.length)>0&&(await t.splitByIDs(M),await t.insert(!1))}async addAndClose(e){if(e)return navigator.locks.request("Progressive_addAndClose",async()=>{this.openedTabs&&this.openedTabs.id!=e.id&&this.openedTabs.close(),this.openedTabs=e})}async addReadingBtns(e,z,b){const M=[];M.push(kn("---")),M.push(kn(Tu(e,z,b))),M.push(kn(ku(e,z,b))),M.push(kn(Cu(e,z,b))),await r.appendBlock(M.join(` +`),a)}z&&await u1(this.plugin,z)}async startToLearn(e="",z=!1){let b="";const M=await this.getBook2Learn(e);if(!M.bookID){r.pushMsg(this.plugin.i18n.AddADocFirst);return}e=M.bookID;const t=await this.storage.loadBookIndexIfNeeded(M.bookID);let p=(await this.storage.booksInfo(M.bookID)).point;if(z&&(p=Wo(t.length)),await this.storage.updateBookInfoTime(e),p>=t.length){await r.pushMsg(this.plugin.i18n.thisIsLastPage);return}else if(p<0){await r.pushMsg(this.plugin.i18n.thisIsFirstPage);return}const c=t[p-1]??[],o=t[p];b=await Eo(M.bookID,p);let a=!1;if(b)await this.addAndClose(await u1(this.plugin,b)),a=!0;else if(b=await gA(M.boxID,M.bookID,o,p),b)await this.addReadingBtns(e,b,p),await this.fullfilContent(p,M.bookID,c,o,b,null),await this.addAndClose(await u1(this.plugin,b,null,null,()=>{M.autoCard&&pt(b,1e3,1e3*60*60*24)})),a=!0;else return!1;if(a&&this.settings.openCardsOnOpenPiece){let O="",s;if(this.settings.cardUnderPiece?(O=await _1(b,"cards"),s=b):(O=await _1(e,"cards"),s=e),O&&s){const i=await vo(s,M.boxID,O);u1(this.plugin,i,this.settings.windowOpenStyle)}}return!0}async htmlBlockReadNextPeice(e,z,b,M){return navigator.locks.request("htmlBlockReadNextPeiceLock",{ifAvailable:!0},async t=>{t?(await this.htmlBlockReadNextPeiceInLock(e,z,b,M),await R2(Xb)):await r.pushMsg(this.plugin.i18n.slowDownALittleBit+" [3]")})}async htmlBlockReadNextPeiceInLock(e,z,b,M){switch(b){case z0.previous:await this.storage.gotoBlock(e,M-1),await this.startToLearnWithLock(e);break;case z0.next:await this.storage.gotoBlock(e,M+1),await this.startToLearnWithLock(e);break;case z0.deleteAndExit:m0.confirm("⚠️","🏃 🗑",async()=>{await r.removeRiffCards([z]),r.removeDocByID(z)});break;case z0.deleteAndBack:m0.confirm("⚠️",this.plugin.i18n.DeleteAndBack,async()=>{await r.removeRiffCards([z]),await this.storage.gotoBlock(e,M-1),await this.startToLearnWithLock(e),r.removeDocByID(z)});break;case z0.deleteAndNext:m0.confirm("⚠️",this.plugin.i18n.DeleteAndNext,async()=>{await r.removeRiffCards([z]),await this.storage.gotoBlock(e,M+1),await this.startToLearnWithLock(e),r.removeDocByID(z)});break;case z0.nextBook:await this.startToLearnWithLock();break;case z0.quit:{const t=await u1(this.plugin,z);await R2(200),t==null||t.close();break}case z0.AddDocCard:await r.addRiffCards([z]);break;case z0.DelDocCard:await r.removeRiffCards([z]);break;case z0.ignoreBook:await this.storage.setIgnoreBook(e);break;case z0.fullfilContent:{const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M-1]??[],c=t[M]??[];await this.fullfilContent(M,e,p,c,z,null);break}case z0.cleanOriginText:await Tn(z);break;case z0.openFlashcardTab:e?m0.openTab({app:this.plugin.app,card:{type:"doc",id:e}}):m0.openTab({app:this.plugin.app,card:{type:"all"}});break;case z0.viewContents:await this.openContentsLock(e);break;case z0.splitByPunctuations:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"p");break}case z0.splitByPunctuationsList:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"i");break}case z0.splitByPunctuationsListCheck:{await Tn(z);const t=await this.storage.loadBookIndexIfNeeded(e),p=t[M]??[],c=t[M-1]??[];await this.fullfilContent(M,e,c,p,z,"t");break}default:throw"Invalid HtmlCBType "+b}}async splitAndInsert(e,z,b,M){const t=new uu(e,this.plugin,z,b);(M==null?void 0:M.length)>0&&(await t.splitByIDs(M),await t.insert(!1))}async addAndClose(e){if(e)return navigator.locks.request("Progressive_addAndClose",async()=>{this.openedTabs&&this.openedTabs.id!=e.id&&this.openedTabs.close(),this.openedTabs=e})}async addReadingBtns(e,z,b){const M=[];M.push(kn("---")),M.push(kn(Tu(e,z,b))),M.push(kn(ku(e,z,b))),M.push(kn(Cu(e,z,b))),await r.appendBlock(M.join(` `),z)}async fullfilContent(e,z,b,M,t,p){this.storage.updateBookInfoTime(z);const c=await this.storage.booksInfo(z),o=[];if(o.push(d1(t,fc)+` {: ${L1}="2"}`),c.showLastBlock&&b.length>0){const a=b[b.length-1],{div:O}=await Be(a);o.push(await this.copyBlock(e-1,c,a,O,[cz]))}if(p)await this.splitAndInsert(z,t,p,M);else if(c.autoSplitSentenceP)await this.splitAndInsert(z,t,"p",M);else if(c.autoSplitSentenceI)await this.splitAndInsert(z,t,"i",M);else if(c.autoSplitSentenceT)await this.splitAndInsert(z,t,"t",M);else{const a={i:1},O=(await r.getRows(M,"markdown,ial,type")).filter(s=>!!s.markdown);for(const{id:s,markdown:i,ial:d,type:q}of O){const u=_e(d);delete u.id,delete u.updated,u["custom-prog-origin-text"]="1",o.push(await this.fastCopyBlock(e,c,s,i,q,u,a))}}o.length>0&&await r.insertBlockAsChildOf(o.filter(a=>!!a).join(` @@ -305,15 +305,15 @@ ${F2(p)}`;if(t==="l"){const{div:o}=await Be(b);vu(o,p),Ne(o),M=this.lute.BlockDO `);return a.pop(),M=a.join(` `),M=`${M} ${F2(p)}`,M}else return M=Qn(M),`${M}${d1(b," * ",this.settings.pieceNoBacktraceLink)} -${F2(p)}`}async copyBlock(e,z,b,M,t=[],p){if(!M||M.getAttribute(F0))return"";const c=A2(M);if(c){if(!this.settings.pieceNoBacktraceLink){const O=c.appendChild(document.createElement("span"));N2(O,b," * ")}if(p&&M.getAttribute(J0)!=n1.NODE_HEADING&&(M.setAttribute(y2,String(p.i)),M.setAttribute(L2,`${e}#${p.i}`),z.addIndex2paragraph)){const O=c.insertBefore(document.createElement("span"),c.firstChild);O&&(O.setAttribute(J0,"text"),O.textContent=`[${p.i}]`)}p&&p.i++}const o=this.lute.BlockDOM2StdMd(M.outerHTML).replace(/\u200B/g,"").trim();return!o||o=="*"?"":(Ne(M),M.setAttribute(y1,b),t.forEach(O=>M.setAttribute(O,"1")),this.lute.BlockDOM2Md(M.outerHTML).trim())}async getBook2Learn(e){if(e)return this.storage.booksInfo(e);const z=this.storage.booksInfos();let b=Number.MAX_SAFE_INTEGER,M="";for(const t in z){const{time:p,ignored:c}=z[t];c||p
`,width:r0.isMobile?"90vw":"700px",height:r0.isMobile?"180vw":"800px",destroyCallback:()=>{z==null||z.$destroy(),z=void 0}});z=new Nu({target:b.element.querySelector("#"+e),props:{dialog:b}})}};B(Zz,"GLOBAL_THIS",globalThis);let lM=Zz;const F=new lM;function vu(n,e){n.querySelectorAll(`div[${p1}]`).forEach(z=>{const b=z.parentElement;if(b){const M=b.getAttribute(S0);if(e)for(const t in e)b.setAttribute(t,e[t]);M&&(F.settings.pieceNoBacktraceLink||Ro(z,M,"*"),b.setAttribute(L1,"1"),b.setAttribute(y1,M))}})}function Eu(n){for(let e=0;e<1e3&&n;e++,n=n.previousElementSibling){const z=n.getAttribute(y1),b=n.getAttribute(y2)??"",M=n.getAttribute(L2)??"";if(z)return{ref:z,idx:b,bIdx:M}}return{}}function Pu(n){for(let e=0;e<1e3&&n;e++,n=n.nextElementSibling){const z=n.getAttribute(y1),b=n.getAttribute(y2)??"",M=n.getAttribute(L2)??"";if(z)return{ref:z,idx:b,bIdx:M}}return{}}async function Zo(n){const e=await r.getDocRowByBlockID(n);return lt(e==null?void 0:e.id)}async function lt(n){const e={bookID:"",pieceNum:NaN};if(n){const z=await r.getBlockAttrs(n);let b=z["custom-progmark"];const M=z["custom-book-writing"];if(b){b=b.split(b1).pop();const p=b.split("#").pop().split(",");e.bookID=p[0],e.pieceNum=Number(p[1])}else if(M){const t=M.split("#");e.bookID=t[0],e.pieceNum=parseInt(t.pop(),10)}}return e}class Du{constructor(){B(this,"listElement");B(this,"_id");const e=document.createElement("div");e.classList.add("list"),this._id=o1(),e.setAttribute(S0,this._id),e.setAttribute(J0,n1.NODE_LIST),e.setAttribute(an,"u"),this.listElement=e}get id(){return this._id}append2FirstItem(e){const z=this.listElement.firstElementChild;z?(e.removeAttribute(eM),z.lastElementChild.insertAdjacentElement("beforebegin",e)):this.append(e)}append(e){e.removeAttribute(eM);const z=document.createElement("div");z.setAttribute("data-marker","*"),z.setAttribute(an,"u"),z.setAttribute(S0,o1()),z.setAttribute(J0,n1.NODE_LIST_ITEM),z.classList.add("li"),z.appendChild(Iu()),z.appendChild(e),z.appendChild(fM()),this.listElement.append(z)}build(){return this.listElement.appendChild(fM()),this.listElement}}function k2(n=""){const e=document.createElement("div");e.setAttribute(S0,o1()),e.setAttribute(J0,n1.NODE_PARAGRAPH),e.classList.add("p");const z=e.appendChild(document.createElement("div"));return z.setAttribute(p1,"true"),z.setAttribute("spellcheck","false"),z.textContent=n,e.appendChild(fM()),e}function Iu(){const n=document.createElement("div");return n.classList.add("protyle-action"),n.setAttribute("draggable","true"),n.appendChild(document.createElement("svg")).appendChild(document.createElement("use")).setAttribute("xlink:href","#iconDot"),n}function fM(){const n=document.createElement("div");return n.classList.add("protyle-attr"),n.setAttribute(p1,"false"),n.textContent=rr,n}function Me(){const n=g1.dateFormat(new Date).split(" ")[0],[e,z]=n.split("-");return`/daily card/c${e}/c${e}-${z}/c${n}`}function Fu(){const n=g1.dateFormat(new Date).split(" ")[0],[e,z,b]=n.split("-");return e+z+b}function ea(n){var z;if(!n)return{};if(((z=n==null?void 0:n.tagName)==null?void 0:z.toLocaleLowerCase())=="body")return{};const e=n.getAttribute(S0)??"";return e?{dom:n,blockID:e}:ea(n.parentElement)}class Uu{constructor(){B(this,"plugin");B(this,"settings")}blockIconEvent(e){this.plugin&&(e.menu.addItem({iconHTML:"+🗃️",accelerator:"⌥E",label:this.plugin.i18n.insertBlankSpaceCard,click:()=>{this.makeCard(e.protyle,"None")}}),e.menu.addItem({iconHTML:"+🗃️⬇️",accelerator:"⌥`",label:this.plugin.i18n.insertBlankSpaceCardHere,click:()=>{this.makeCard(e.protyle,"Here")}}),e.menu.addItem({iconHTML:"🗓️🗃️*️⃣",accelerator:"⌘`",label:this.plugin.i18n.send2dailyCard,click:()=>{this.makeCard(e.protyle,"None",Me())}}),e.menu.addItem({iconHTML:"🗓️🗃️",accelerator:"⌥S",label:this.plugin.i18n.send2dailyCardNoRef,click:()=>{this.makeCard(e.protyle,"None",Me(),!0)}}))}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.addCommand({langKey:"insertBlankSpaceCard",hotkey:"⌥E",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None")}}),this.plugin.addCommand({langKey:"insertBlankSpaceCardHere",hotkey:"⌥`",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"Here")}}),this.plugin.addCommand({langKey:"send2dailyCard",hotkey:"⌘`",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None",Me())}}),this.plugin.addCommand({langKey:"send2dailyCardNoRef",hotkey:"⌥S",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None",Me(),!0)}}),this.plugin.addCommand({langKey:"cardMark",hotkey:"⌥D",editorCallback:async b=>{const{selected:M,rangeText:t}=await r0.selectedDivs(b);if(t)b.toolbar.setInlineMark(b,"mark","range");else if(M.length>0){const p=M.map(c=>(c.querySelectorAll("span").forEach(a=>{const O=a.getAttribute(J0);O?O.includes("mark")||a.setAttribute(J0,O+" mark"):a.setAttribute(J0,"mark")}),rt(c).forEach(a=>{a.childNodes.forEach(O=>{if(O.nodeType===3){const s=document.createElement("span");s.setAttribute(J0,"mark"),s.textContent=O.textContent,O.parentElement.replaceChild(s,O)}})}),{id:c.getAttribute(S0),domStr:c.outerHTML})).filter(c=>!!c.id);(p==null?void 0:p.length)>0&&b.getInstance().transaction(r.transUpdateBlocks(p))}}}),this.plugin.addCommand({langKey:"lnk2href",hotkey:"F9",callback:()=>{m0.confirm(h.startAdd替换为超链接,h.即将创建本地备份,()=>{navigator.locks.request("2024-9-14 19:49:56",{ifAvailable:!0},async b=>{var M,t,p,c,o;if(b){if(!((p=(t=(M=await r.getConf())==null?void 0:M.conf)==null?void 0:t.repo)!=null&&p.key)){await r.pushMsg(qM.你还没秘钥插件无法为您创建本地快照,0);return}await r.createSnapshot(h.startAdd替换为超链接),await Hu((o=(c=r0.protyle)==null?void 0:c.protyle)==null?void 0:o.notebookId)}else await r.pushMsg(h.正在替换start与add替换为超链接)})})}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.menu;M.addItem({label:this.plugin.i18n.insertBlankSpaceCard,iconHTML:"+🗃️",accelerator:"⌥E",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None")}}),M.addItem({label:this.plugin.i18n.insertBlankSpaceCardHere,iconHTML:"+🗃️⬇️",accelerator:"⌥`",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"Here")}}),M.addItem({label:this.plugin.i18n.send2dailyCard,iconHTML:"🗓️🗃️*️⃣",accelerator:"⌘`",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None",Me())}}),M.addItem({label:this.plugin.i18n.send2dailyCardNoRef,iconHTML:"🗓️🗃️",accelerator:"⌥S",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None",Me(),!0)}})})}async makeCard(e,z,b,M){var c,o;if(!e)return;const{ids:t,divs:p}=await this.cloneSelectedLineMarkdowns(e,M);if(t.length>0)await this.insertCard(e,p,z,t[t.length-1],b);else{const a=r0.lastBlockID,O=(c=document.getSelection())==null?void 0:c.getRangeAt(0),s=((o=O==null?void 0:O.cloneContents())==null?void 0:o.textContent)??"";a&&this.blankSpaceCard(a,s,O,e,z,b,M)}}async insertCard(e,z,b,M,t){return navigator.locks.request("prog-FlashBox-insertCard",{mode:"exclusive"},async p=>this.doInsertCard(e,z,b,M,t))}async doInsertCard(e,z,b,M,t){var u;const p=e.notebookId,c=(u=e.block)==null?void 0:u.rootID;if(!c)return;let{bookID:o}=await lt(c);const a=await r.getBlockAttrs(c),O=a["custom-card-priority"],{cardID:s,domStr:i,text:d}=this.createList(z,O),q=[];if(t){const l=Fu(),S={};S[`custom-dailycard-${l}`]=l;const N=await Q1.createDocWithMdIfNotExists(5e3,p,t,"",S);q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],await r.getDocLastID(N)))}else if(b=="Here")q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],M));else{let l="";if(o&&!this.settings.cardUnderPiece?l=await _1(o,"cards"):(l=await _1(c,"cards"),o=c),!l)return;const S=await vo(o,p,l);q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],await r.getDocLastID(S)))}if(this.settings.markOriginText&&!await r0.isDocReadonly(e,a)){const{div:l}=await Be(M);this.settings.markOriginTextBG&&(l.style.backgroundColor="var(--b3-font-background7)");const S=A2(l);if(S){const N=S.appendChild(document.createElement("span"));N2(N,s," & "),q.push(...r.transUpdateBlocks([{id:M,domStr:l.outerHTML}]))}}q.push(...r.transAddRiffCards([s])),await r.transactions(q).then(()=>{b!=="Here"&&u1(this.plugin,s,["cb-get-hl","cb-get-context"],!1,this.settings.windowOpenBottom?"bottom":"right"),r.addRiffCards([s]),r.pushMsg("⚡🗃"+d,2e3)})}createList(e,z){let b="",M="",t="";for(const o of e)b||(b=o.getAttribute(Jn)),M||(M=o.getAttribute(Gn)),t||(t=o.getAttribute(L2));const p=new Du;if(e.forEach(o=>{o.removeAttribute(Jn),o.removeAttribute(Gn),o.style.background="",o.querySelectorAll(`span[${J0}="a"]`).forEach(a=>{var s;const O=(s=a.textContent)==null?void 0:s.trim();(O=="&"||O=="+")&&a.parentElement.removeChild(a)}),p.append2FirstItem(o)}),this.settings.flashcardAddNewLines&&p.append2FirstItem(k2()),this.settings.cardAppendTime){b?p.append2FirstItem(k2(`【${b}】`)):M&&p.append2FirstItem(k2(`【${M}】`));const o=g1.dateFormat(g1.now());p.append2FirstItem(k2(`【${o}】`))}const c=p.build();return z&&c.setAttribute(Ar,z),b&&c.setAttribute(Jn,b),M&&c.setAttribute(Gn,M),{cardID:p.id,div:c,domStr:c.outerHTML,text:c.textContent}}async cloneSelectedLineMarkdowns(e,z){var a;const b=(a=e==null?void 0:e.element)==null?void 0:a.querySelectorAll(`.${nM}`),M=[];let t=!z,p=!0;const c=[],o=await r0.isDocReadonly(e);for(const O of b){O.classList.remove(nM);const{id:s,div:i,setTheRef:d,setPath:q}=await this.cloneDiv(O,t,p);this.settings.markOriginText&&!o&&this.settings.markOriginTextBG&&(O.style.backgroundColor="var(--b3-font-background7)"),d&&(t=!1),q&&(p=!1),c.push(s),M.push(i)}return this.settings.markOriginText&&!o&&this.settings.markOriginTextBG&&Lp(c),{divs:M,ids:c}}async cloneDiv(e,z,b=!0){return e=e.cloneNode(!0),sb(e,z,z,this.settings.flashcardMultipleLnks,b,this.settings.flashcardUseLink)}async blankSpaceCard(e,z,b,M,t,p,c){let o;const{dom:a}=ea(b.endContainer.parentElement);if(!a)return;const O=await r0.isDocReadonly(M);if(z){O&&a.querySelectorAll(`div[${p1}="false"]`).forEach(i=>i.setAttribute(p1,"true")),M.toolbar.setInlineMark(M,"mark","range");const{div:s}=await this.cloneDiv(a,!c);M.toolbar.setInlineMark(M,"mark","range"),O&&a.querySelectorAll(`div[${p1}="true"]`).forEach(i=>i.setAttribute(p1,"false")),this.settings.markOriginTextBG&&!O&&(M.toolbar.setInlineMark(M,"text","range",{type:"backgroundColor",color:"var(--b3-font-background9)"}),s.querySelectorAll('[data-type~="text"]').forEach(i=>{i.style.backgroundColor=="var(--b3-font-background9)"&&(i.style.backgroundColor="")}),s.querySelectorAll('[data-type~="prog-marked"]').forEach(i=>{const d=i.getAttribute("data-type").replace("prog-marked","");i.setAttribute("data-type",d),i.style.backgroundColor=""})),o=s}else{const{id:s,div:i}=await this.cloneDiv(a,!c);o=i,this.settings.markOriginText&&!O&&this.settings.markOriginTextBG&&Lp([s])}await this.insertCard(M,[o],t,e,p)}}const yp=new Uu;async function Lp(n){const e={style:"background-color: var(--b3-font-background7);"};return r.batchSetBlockAttrs(n.map(z=>({id:z,attrs:e})))}async function Hu(n){if(!n)return;const e=`from refs where box="${n}" and (content='*' or content='@')`;let z=0;{const p=await r.sqlRef(`select distinct count(block_id) as id ${e}`);z=Number(p[0].id)}let b=0,M=await r.sqlRef(`select distinct block_id ${e} limit 200`);const t=new Set;for(;M.length>0;){const p=(await Promise.all(M.map(c=>r.getBlockDOM(c.block_id)))).map(c=>({id:c.id,div:ct(c.dom)})).filter(c=>!t.has(c.id));if(p.length>0){const c=[];for(const{id:o,div:a}of p){let O=!1;for(const s of[...a.querySelectorAll(`[${D2}]`)]){const i=s.textContent,d=s.getAttribute(D2),q=s.getAttribute(J0),u=s.getAttribute(an);(i=="*"||i=="@")&&d&&q&&u&&(s.removeAttribute(D2),s.removeAttribute(an),N2(s,d,i),O=!0)}O&&c.push({id:o,domStr:a.outerHTML})}b+=c.length,await r.updateBlocks(c),c.forEach(o=>t.add(o.id)),await r.pushMsg(h.x处修改完成(`[${b}/${z}]`))}else await R2(2e3),await r.pushMsg(h.扫描索引中请耐心等待);M=await r.sqlRef(`select distinct block_id ${e} limit 200`)}await r.pushMsg(h.x处修改完成(String(z))),r0.protyleReload()}class $u{constructor(){B(this,"plugin");B(this,"settings")}blockIconEvent(e){if(!this.plugin)return;const z=e.protyle,{isPiece:b}=E2(z);b&&(e.menu.addItem({iconHTML:"🚚⬆️",label:h.移动到上一分片内,click:()=>{this.move(z,-1)}}),e.menu.addItem({iconHTML:"🚚⬇️",label:h.移动到下一分片内,click:()=>{this.move(z,1)}}))}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.protyle,{isPiece:t}=E2(M);if(t){const p=b.menu;p.addItem({label:h.移动到上一分片内,iconHTML:"🚚⬆️",click:()=>{this.move(M,-1)}}),p.addItem({label:h.移动到下一分片内,iconHTML:"🚚⬇️",click:()=>{this.move(M,1)}})}})}async move(e,z){if(z==0)return;const{ids:b}=await r0.selectedDivs(e);if(!b||b.length==0)return;const{bookID:M,pieceNum:t}=await Zo(b[0]);if(G1(t)&&M){const p=t+z;if(p>=0){const c=await r.sqlOne(`select id from blocks where type='d' and ial like "%${qb(M,p)}%"`);if(c!=null&&c.id)if(z<0){const o=await r.getTailChildBlocks(c.id,1);await r.moveBlocksAfter(b,o[0].id)}else await r.moveBlocksAsChild(b,c.id)}}}}const _p=new $u;class Ju{constructor(){B(this,"plugin");B(this,"settings");B(this,"lute")}async onload(e,z){this.plugin=e,this.settings=z,this.lute=Rn(),this.plugin.addCommand({langKey:"collect",hotkey:"⌥⇧Z",callback:()=>{var b;this.copyBlocks((b=r0.protyle)==null?void 0:b.protyle)}})}async copyBlock(e){let z;if(!this.settings.summary2dailynote){const{bookID:b}=await Zo(at(e));if(b&&(z=await Po(b),!z)){const M=await _1(b,"summary");M&&(z=await OA(b,r0.boxID,M))}}if(z||(z=(await r.createDailyNote(r0.boxID)).id),z){e=e.cloneNode(!0),e.querySelectorAll(`div[${p1}="false"]`).forEach(p=>p.setAttribute(p1,"true"));const{div:b}=await sb(e,!0,!0,this.settings.flashcardMultipleLnks,!0,this.settings.flashcardUseLink),M=b.getAttribute(S0),t=this.lute.BlockDOM2Md(e.outerHTML);await r.appendBlock(t,z),await u1(this.plugin,M,["cb-get-hl","cb-get-context"],!1,this.settings.windowOpenBottom?"bottom":"right")}}async copyBlocks(e){if(!e)return;const{selected:z}=await r0.selectedDivs(e);for(const b of z)await this.copyBlock(b)}}const Gu=new Ju;function Np(n){return{ial:_e(n.ial),id:n.id,markdown:n.markdown,content:n.content}}class Yu{constructor(){B(this,"plugin");B(this,"settings")}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.addCommand({langKey:"extractAllNotes",hotkey:"⌘F4",editorCallback:async b=>{const{isPiece:M,markKey:t}=E2(b);M&&await this.extractAllNotes(b.notebookId,t)}}),this.plugin.addCommand({langKey:"extractNotes",hotkey:"⌘F5",editorCallback:async b=>{var p;const{isPiece:M,markKey:t}=E2(b);M&&await this.extractNotes((p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.addCommand({langKey:"2024-08-09 15:10:45 extract book",langText:h.合并所有分片到新文件,hotkey:"",editorCallback:async b=>{var p;const{isPiece:M,markKey:t}=E2(b);M&&await this.extractAsBook(b.notebookId,(p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.addCommand({langKey:"compareNotes",hotkey:"⌘F6",editorCallback:async b=>{var p;const{isKeyDoc:M,keyDocAttr:t}=Qt(b);M&&await this.compareNotes((p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.protyle,{isPiece:t,markKey:p}=E2(M);if(t){const c=b.menu;c.addItem({label:this.plugin.i18n.extractAllNotes,icon:"iconCopy",accelerator:"⌘F4",click:async()=>{await this.extractAllNotes(M.notebookId,p)}}),c.addItem({label:this.plugin.i18n.extractNotes,icon:"iconCopy",accelerator:"⌘F5",click:async()=>{var o;await this.extractNotes((o=M.block)==null?void 0:o.rootID,M.notebookId,p)}}),c.addItem({label:h.合并所有分片到新文件,icon:"iconCopy",accelerator:"",click:async()=>{var o;await this.extractAsBook(M.notebookId,(o=M.block)==null?void 0:o.rootID,M.notebookId,p)}})}else{const{isKeyDoc:c,keyDocAttr:o}=Qt(M);c&&b.menu.addItem({label:this.plugin.i18n.compareNotes,icon:"iconEye",accelerator:"⌘F6",click:async()=>{var O;await this.compareNotes((O=M.block)==null?void 0:O.rootID,M.notebookId,o)}})}})}async extractAllNotes(e,z){r.pushMsg("extract all notes");const b=z.split(",")[0],M=await Bp(b),p=(await r.getRows(M,"markdown",!0,[`ial not like "%${L1}%"`])).map(a=>{var O;if((O=a.markdown)!=null&&O.trim())return`${a.markdown} ${d1(a.id,"*")} +${F2(p)}`}async copyBlock(e,z,b,M,t=[],p){if(!M||M.getAttribute(F0))return"";const c=A2(M);if(c){if(!this.settings.pieceNoBacktraceLink){const O=c.appendChild(document.createElement("span"));N2(O,b," * ")}if(p&&M.getAttribute(J0)!=n1.NODE_HEADING&&(M.setAttribute(y2,String(p.i)),M.setAttribute(L2,`${e}#${p.i}`),z.addIndex2paragraph)){const O=c.insertBefore(document.createElement("span"),c.firstChild);O&&(O.setAttribute(J0,"text"),O.textContent=`[${p.i}]`)}p&&p.i++}const o=this.lute.BlockDOM2StdMd(M.outerHTML).replace(/\u200B/g,"").trim();return!o||o=="*"?"":(Ne(M),M.setAttribute(y1,b),t.forEach(O=>M.setAttribute(O,"1")),this.lute.BlockDOM2Md(M.outerHTML).trim())}async getBook2Learn(e){if(e)return this.storage.booksInfo(e);const z=this.storage.booksInfos();let b=Number.MAX_SAFE_INTEGER,M="";for(const t in z){const{time:p,ignored:c}=z[t];c||p
`,width:r0.isMobile?"90vw":"700px",height:r0.isMobile?"180vw":"800px",destroyCallback:()=>{z==null||z.$destroy(),z=void 0}});z=new Nu({target:b.element.querySelector("#"+e),props:{dialog:b}})}};B(Zz,"GLOBAL_THIS",globalThis);let lM=Zz;const F=new lM;function vu(n,e){n.querySelectorAll(`div[${p1}]`).forEach(z=>{const b=z.parentElement;if(b){const M=b.getAttribute(S0);if(e)for(const t in e)b.setAttribute(t,e[t]);M&&(F.settings.pieceNoBacktraceLink||Ro(z,M,"*"),b.setAttribute(L1,"1"),b.setAttribute(y1,M))}})}function Eu(n){for(let e=0;e<1e3&&n;e++,n=n.previousElementSibling){const z=n.getAttribute(y1),b=n.getAttribute(y2)??"",M=n.getAttribute(L2)??"";if(z)return{ref:z,idx:b,bIdx:M}}return{}}function Pu(n){for(let e=0;e<1e3&&n;e++,n=n.nextElementSibling){const z=n.getAttribute(y1),b=n.getAttribute(y2)??"",M=n.getAttribute(L2)??"";if(z)return{ref:z,idx:b,bIdx:M}}return{}}async function Zo(n){const e=await r.getDocRowByBlockID(n);return lt(e==null?void 0:e.id)}async function lt(n){const e={bookID:"",pieceNum:NaN};if(n){const z=await r.getBlockAttrs(n);let b=z["custom-progmark"];const M=z["custom-book-writing"];if(b){b=b.split(b1).pop();const p=b.split("#").pop().split(",");e.bookID=p[0],e.pieceNum=Number(p[1])}else if(M){const t=M.split("#");e.bookID=t[0],e.pieceNum=parseInt(t.pop(),10)}}return e}class Du{constructor(){B(this,"listElement");B(this,"_id");const e=document.createElement("div");e.classList.add("list"),this._id=o1(),e.setAttribute(S0,this._id),e.setAttribute(J0,n1.NODE_LIST),e.setAttribute(an,"u"),this.listElement=e}get id(){return this._id}append2FirstItem(e){const z=this.listElement.firstElementChild;z?(e.removeAttribute(eM),z.lastElementChild.insertAdjacentElement("beforebegin",e)):this.append(e)}append(e){e.removeAttribute(eM);const z=document.createElement("div");z.setAttribute("data-marker","*"),z.setAttribute(an,"u"),z.setAttribute(S0,o1()),z.setAttribute(J0,n1.NODE_LIST_ITEM),z.classList.add("li"),z.appendChild(Iu()),z.appendChild(e),z.appendChild(fM()),this.listElement.append(z)}build(){return this.listElement.appendChild(fM()),this.listElement}}function k2(n=""){const e=document.createElement("div");e.setAttribute(S0,o1()),e.setAttribute(J0,n1.NODE_PARAGRAPH),e.classList.add("p");const z=e.appendChild(document.createElement("div"));return z.setAttribute(p1,"true"),z.setAttribute("spellcheck","false"),z.textContent=n,e.appendChild(fM()),e}function Iu(){const n=document.createElement("div");return n.classList.add("protyle-action"),n.setAttribute("draggable","true"),n.appendChild(document.createElement("svg")).appendChild(document.createElement("use")).setAttribute("xlink:href","#iconDot"),n}function fM(){const n=document.createElement("div");return n.classList.add("protyle-attr"),n.setAttribute(p1,"false"),n.textContent=rr,n}function Me(){const n=g1.dateFormat(new Date).split(" ")[0],[e,z]=n.split("-");return`/daily card/c${e}/c${e}-${z}/c${n}`}function Fu(){const n=g1.dateFormat(new Date).split(" ")[0],[e,z,b]=n.split("-");return e+z+b}function ea(n){var z;if(!n)return{};if(((z=n==null?void 0:n.tagName)==null?void 0:z.toLocaleLowerCase())=="body")return{};const e=n.getAttribute(S0)??"";return e?{dom:n,blockID:e}:ea(n.parentElement)}class Uu{constructor(){B(this,"plugin");B(this,"settings")}blockIconEvent(e){this.plugin&&(e.menu.addItem({iconHTML:"+🗃️",accelerator:"⌥E",label:this.plugin.i18n.insertBlankSpaceCard,click:()=>{this.makeCard(e.protyle,"None")}}),e.menu.addItem({iconHTML:"+🗃️⬇️",accelerator:"⌥`",label:this.plugin.i18n.insertBlankSpaceCardHere,click:()=>{this.makeCard(e.protyle,"Here")}}),e.menu.addItem({iconHTML:"🗓️🗃️*️⃣",accelerator:"⌘`",label:this.plugin.i18n.send2dailyCard,click:()=>{this.makeCard(e.protyle,"None",Me())}}),e.menu.addItem({iconHTML:"🗓️🗃️",accelerator:"⌥S",label:this.plugin.i18n.send2dailyCardNoRef,click:()=>{this.makeCard(e.protyle,"None",Me(),!0)}}))}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.addCommand({langKey:"insertBlankSpaceCard",hotkey:"⌥E",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None")}}),this.plugin.addCommand({langKey:"insertBlankSpaceCardHere",hotkey:"⌥`",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"Here")}}),this.plugin.addCommand({langKey:"send2dailyCard",hotkey:"⌘`",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None",Me())}}),this.plugin.addCommand({langKey:"send2dailyCardNoRef",hotkey:"⌥S",callback:()=>{var b;this.makeCard((b=r0.protyle)==null?void 0:b.protyle,"None",Me(),!0)}}),this.plugin.addCommand({langKey:"cardMark",hotkey:"⌥D",editorCallback:async b=>{const{selected:M,rangeText:t}=await r0.selectedDivs(b);if(t)b.toolbar.setInlineMark(b,"mark","range");else if(M.length>0){const p=M.map(c=>(c.querySelectorAll("span").forEach(a=>{const O=a.getAttribute(J0);O?O.includes("mark")||a.setAttribute(J0,O+" mark"):a.setAttribute(J0,"mark")}),rt(c).forEach(a=>{a.childNodes.forEach(O=>{if(O.nodeType===3){const s=document.createElement("span");s.setAttribute(J0,"mark"),s.textContent=O.textContent,O.parentElement.replaceChild(s,O)}})}),{id:c.getAttribute(S0),domStr:c.outerHTML})).filter(c=>!!c.id);(p==null?void 0:p.length)>0&&b.getInstance().transaction(r.transUpdateBlocks(p))}}}),this.plugin.addCommand({langKey:"lnk2href",hotkey:"F9",callback:()=>{m0.confirm(h.startAdd替换为超链接,h.即将创建本地备份,()=>{navigator.locks.request("2024-9-14 19:49:56",{ifAvailable:!0},async b=>{var M,t,p,c,o;if(b){if(!((p=(t=(M=await r.getConf())==null?void 0:M.conf)==null?void 0:t.repo)!=null&&p.key)){await r.pushMsg(qM.你还没秘钥插件无法为您创建本地快照,0);return}await r.createSnapshot(h.startAdd替换为超链接),await Hu((o=(c=r0.protyle)==null?void 0:c.protyle)==null?void 0:o.notebookId)}else await r.pushMsg(h.正在替换start与add替换为超链接)})})}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.menu;M.addItem({label:this.plugin.i18n.insertBlankSpaceCard,iconHTML:"+🗃️",accelerator:"⌥E",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None")}}),M.addItem({label:this.plugin.i18n.insertBlankSpaceCardHere,iconHTML:"+🗃️⬇️",accelerator:"⌥`",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"Here")}}),M.addItem({label:this.plugin.i18n.send2dailyCard,iconHTML:"🗓️🗃️*️⃣",accelerator:"⌘`",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None",Me())}}),M.addItem({label:this.plugin.i18n.send2dailyCardNoRef,iconHTML:"🗓️🗃️",accelerator:"⌥S",click:()=>{var c,o,a;const t=((c=b==null?void 0:b.element)==null?void 0:c.getAttribute("data-node-id"))??"",p=((a=(o=b==null?void 0:b.range)==null?void 0:o.cloneContents())==null?void 0:a.textContent)??"";t&&this.blankSpaceCard(t,p,b==null?void 0:b.range,b==null?void 0:b.protyle,"None",Me(),!0)}})})}async makeCard(e,z,b,M){var c,o;if(!e)return;const{ids:t,divs:p}=await this.cloneSelectedLineMarkdowns(e,M);if(t.length>0)await this.insertCard(e,p,z,t[t.length-1],b);else{const a=r0.lastBlockID,O=(c=document.getSelection())==null?void 0:c.getRangeAt(0),s=((o=O==null?void 0:O.cloneContents())==null?void 0:o.textContent)??"";a&&this.blankSpaceCard(a,s,O,e,z,b,M)}}async insertCard(e,z,b,M,t){return navigator.locks.request("prog-FlashBox-insertCard",{mode:"exclusive"},async p=>this.doInsertCard(e,z,b,M,t))}async doInsertCard(e,z,b,M,t){var u;const p=e.notebookId,c=(u=e.block)==null?void 0:u.rootID;if(!c)return;let{bookID:o}=await lt(c);const a=await r.getBlockAttrs(c),O=a["custom-card-priority"],{cardID:s,domStr:i,text:d}=this.createList(z,O),q=[];if(t){const l=Fu(),S={};S[`custom-dailycard-${l}`]=l;const N=await Q1.createDocWithMdIfNotExists(5e3,p,t,"",S);q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],await r.getDocLastID(N)))}else if(b=="Here")q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],M));else{let l="";if(o&&!this.settings.cardUnderPiece?l=await _1(o,"cards"):(l=await _1(c,"cards"),o=c),!l)return;const S=await vo(o,p,l);q.push(...r.transInsertBlocksAfter([i,k2().outerHTML],await r.getDocLastID(S)))}if(this.settings.markOriginText&&!await r0.isDocReadonly(e,a)){const{div:l}=await Be(M);this.settings.markOriginTextBG&&(l.style.backgroundColor="var(--b3-font-background7)");const S=A2(l);if(S){const N=S.appendChild(document.createElement("span"));N2(N,s," & "),q.push(...r.transUpdateBlocks([{id:M,domStr:l.outerHTML}]))}}q.push(...r.transAddRiffCards([s])),await r.transactions(q).then(()=>{b!=="Here"&&u1(this.plugin,s,this.settings.windowOpenStyle),r.addRiffCards([s]),r.pushMsg("⚡🗃"+d,2e3)})}createList(e,z){let b="",M="",t="";for(const o of e)b||(b=o.getAttribute(Jn)),M||(M=o.getAttribute(Gn)),t||(t=o.getAttribute(L2));const p=new Du;if(e.forEach(o=>{o.removeAttribute(Jn),o.removeAttribute(Gn),o.style.background="",o.querySelectorAll(`span[${J0}="a"]`).forEach(a=>{var s;const O=(s=a.textContent)==null?void 0:s.trim();(O=="&"||O=="+")&&a.parentElement.removeChild(a)}),p.append2FirstItem(o)}),this.settings.flashcardAddNewLines&&p.append2FirstItem(k2()),this.settings.cardAppendTime){b?p.append2FirstItem(k2(`【${b}】`)):M&&p.append2FirstItem(k2(`【${M}】`));const o=g1.dateFormat(g1.now());p.append2FirstItem(k2(`【${o}】`))}const c=p.build();return z&&c.setAttribute(Ar,z),b&&c.setAttribute(Jn,b),M&&c.setAttribute(Gn,M),{cardID:p.id,div:c,domStr:c.outerHTML,text:c.textContent}}async cloneSelectedLineMarkdowns(e,z){var a;const b=(a=e==null?void 0:e.element)==null?void 0:a.querySelectorAll(`.${nM}`),M=[];let t=!z,p=!0;const c=[],o=await r0.isDocReadonly(e);for(const O of b){O.classList.remove(nM);const{id:s,div:i,setTheRef:d,setPath:q}=await this.cloneDiv(O,t,p);this.settings.markOriginText&&!o&&this.settings.markOriginTextBG&&(O.style.backgroundColor="var(--b3-font-background7)"),d&&(t=!1),q&&(p=!1),c.push(s),M.push(i)}return this.settings.markOriginText&&!o&&this.settings.markOriginTextBG&&Lp(c),{divs:M,ids:c}}async cloneDiv(e,z,b=!0){return e=e.cloneNode(!0),sb(e,z,z,this.settings.flashcardMultipleLnks,b,this.settings.flashcardUseLink)}async blankSpaceCard(e,z,b,M,t,p,c){let o;const{dom:a}=ea(b.endContainer.parentElement);if(!a)return;const O=await r0.isDocReadonly(M);if(z){O&&a.querySelectorAll(`div[${p1}="false"]`).forEach(i=>i.setAttribute(p1,"true")),M.toolbar.setInlineMark(M,"mark","range");const{div:s}=await this.cloneDiv(a,!c);M.toolbar.setInlineMark(M,"mark","range"),O&&a.querySelectorAll(`div[${p1}="true"]`).forEach(i=>i.setAttribute(p1,"false")),this.settings.markOriginTextBG&&!O&&(M.toolbar.setInlineMark(M,"text","range",{type:"backgroundColor",color:"var(--b3-font-background9)"}),s.querySelectorAll('[data-type~="text"]').forEach(i=>{i.style.backgroundColor=="var(--b3-font-background9)"&&(i.style.backgroundColor="")}),s.querySelectorAll('[data-type~="prog-marked"]').forEach(i=>{const d=i.getAttribute("data-type").replace("prog-marked","");i.setAttribute("data-type",d),i.style.backgroundColor=""})),o=s}else{const{id:s,div:i}=await this.cloneDiv(a,!c);o=i,this.settings.markOriginText&&!O&&this.settings.markOriginTextBG&&Lp([s])}await this.insertCard(M,[o],t,e,p)}}const yp=new Uu;async function Lp(n){const e={style:"background-color: var(--b3-font-background7);"};return r.batchSetBlockAttrs(n.map(z=>({id:z,attrs:e})))}async function Hu(n){if(!n)return;const e=`from refs where box="${n}" and (content='*' or content='@')`;let z=0;{const p=await r.sqlRef(`select distinct count(block_id) as id ${e}`);z=Number(p[0].id)}let b=0,M=await r.sqlRef(`select distinct block_id ${e} limit 200`);const t=new Set;for(;M.length>0;){const p=(await Promise.all(M.map(c=>r.getBlockDOM(c.block_id)))).map(c=>({id:c.id,div:ct(c.dom)})).filter(c=>!t.has(c.id));if(p.length>0){const c=[];for(const{id:o,div:a}of p){let O=!1;for(const s of[...a.querySelectorAll(`[${D2}]`)]){const i=s.textContent,d=s.getAttribute(D2),q=s.getAttribute(J0),u=s.getAttribute(an);(i=="*"||i=="@")&&d&&q&&u&&(s.removeAttribute(D2),s.removeAttribute(an),N2(s,d,i),O=!0)}O&&c.push({id:o,domStr:a.outerHTML})}b+=c.length,await r.updateBlocks(c),c.forEach(o=>t.add(o.id)),await r.pushMsg(h.x处修改完成(`[${b}/${z}]`))}else await R2(2e3),await r.pushMsg(h.扫描索引中请耐心等待);M=await r.sqlRef(`select distinct block_id ${e} limit 200`)}await r.pushMsg(h.x处修改完成(String(z))),r0.protyleReload()}class $u{constructor(){B(this,"plugin");B(this,"settings")}blockIconEvent(e){if(!this.plugin)return;const z=e.protyle,{isPiece:b}=E2(z);b&&(e.menu.addItem({iconHTML:"🚚⬆️",label:h.移动到上一分片内,click:()=>{this.move(z,-1)}}),e.menu.addItem({iconHTML:"🚚⬇️",label:h.移动到下一分片内,click:()=>{this.move(z,1)}}))}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.protyle,{isPiece:t}=E2(M);if(t){const p=b.menu;p.addItem({label:h.移动到上一分片内,iconHTML:"🚚⬆️",click:()=>{this.move(M,-1)}}),p.addItem({label:h.移动到下一分片内,iconHTML:"🚚⬇️",click:()=>{this.move(M,1)}})}})}async move(e,z){if(z==0)return;const{ids:b}=await r0.selectedDivs(e);if(!b||b.length==0)return;const{bookID:M,pieceNum:t}=await Zo(b[0]);if(G1(t)&&M){const p=t+z;if(p>=0){const c=await r.sqlOne(`select id from blocks where type='d' and ial like "%${qb(M,p)}%"`);if(c!=null&&c.id)if(z<0){const o=await r.getTailChildBlocks(c.id,1);await r.moveBlocksAfter(b,o[0].id)}else await r.moveBlocksAsChild(b,c.id)}}}}const _p=new $u;class Ju{constructor(){B(this,"plugin");B(this,"settings");B(this,"lute")}async onload(e,z){this.plugin=e,this.settings=z,this.lute=Rn(),this.plugin.addCommand({langKey:"collect",hotkey:"⌥⇧Z",callback:()=>{var b;this.copyBlocks((b=r0.protyle)==null?void 0:b.protyle)}})}async copyBlock(e){let z;if(!this.settings.summary2dailynote){const{bookID:b}=await Zo(at(e));if(b&&(z=await Po(b),!z)){const M=await _1(b,"summary");M&&(z=await OA(b,r0.boxID,M))}}if(z||(z=(await r.createDailyNote(r0.boxID)).id),z){e=e.cloneNode(!0),e.querySelectorAll(`div[${p1}="false"]`).forEach(p=>p.setAttribute(p1,"true"));const{div:b}=await sb(e,!0,!0,this.settings.flashcardMultipleLnks,!0,this.settings.flashcardUseLink),M=b.getAttribute(S0),t=this.lute.BlockDOM2Md(e.outerHTML);await r.appendBlock(t,z),await u1(this.plugin,M,this.settings.windowOpenStyle)}}async copyBlocks(e){if(!e)return;const{selected:z}=await r0.selectedDivs(e);for(const b of z)await this.copyBlock(b)}}const Gu=new Ju;function Np(n){return{ial:_e(n.ial),id:n.id,markdown:n.markdown,content:n.content}}class Yu{constructor(){B(this,"plugin");B(this,"settings")}async onload(e,z){this.plugin=e,this.settings=z,this.plugin.addCommand({langKey:"extractAllNotes",hotkey:"⌘F4",editorCallback:async b=>{const{isPiece:M,markKey:t}=E2(b);M&&await this.extractAllNotes(b.notebookId,t)}}),this.plugin.addCommand({langKey:"extractNotes",hotkey:"⌘F5",editorCallback:async b=>{var p;const{isPiece:M,markKey:t}=E2(b);M&&await this.extractNotes((p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.addCommand({langKey:"2024-08-09 15:10:45 extract book",langText:h.合并所有分片到新文件,hotkey:"",editorCallback:async b=>{var p;const{isPiece:M,markKey:t}=E2(b);M&&await this.extractAsBook(b.notebookId,(p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.addCommand({langKey:"compareNotes",hotkey:"⌘F6",editorCallback:async b=>{var p;const{isKeyDoc:M,keyDocAttr:t}=Qt(b);M&&await this.compareNotes((p=b.block)==null?void 0:p.rootID,b.notebookId,t)}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{const M=b.protyle,{isPiece:t,markKey:p}=E2(M);if(t){const c=b.menu;c.addItem({label:this.plugin.i18n.extractAllNotes,icon:"iconCopy",accelerator:"⌘F4",click:async()=>{await this.extractAllNotes(M.notebookId,p)}}),c.addItem({label:this.plugin.i18n.extractNotes,icon:"iconCopy",accelerator:"⌘F5",click:async()=>{var o;await this.extractNotes((o=M.block)==null?void 0:o.rootID,M.notebookId,p)}}),c.addItem({label:h.合并所有分片到新文件,icon:"iconCopy",accelerator:"",click:async()=>{var o;await this.extractAsBook(M.notebookId,(o=M.block)==null?void 0:o.rootID,M.notebookId,p)}})}else{const{isKeyDoc:c,keyDocAttr:o}=Qt(M);c&&b.menu.addItem({label:this.plugin.i18n.compareNotes,icon:"iconEye",accelerator:"⌘F6",click:async()=>{var O;await this.compareNotes((O=M.block)==null?void 0:O.rootID,M.notebookId,o)}})}})}async extractAllNotes(e,z){r.pushMsg("extract all notes");const b=z.split(",")[0],M=await Bp(b),p=(await r.getRows(M,"markdown",!0,[`ial not like "%${L1}%"`])).map(a=>{var O;if((O=a.markdown)!=null&&O.trim())return`${a.markdown} ${d1(a.id,"*")} {: id="${o1()}"}`}).filter(a=>!!a),c=b.split("#")[1];let o=await Do(c);if(!o){const a=await _1(c,"collection");a&&(o=await sA(c,e,a))}o&&(await r.clearAll(o),await r.insertBlockAsChildOf(p.join(` -`),o),u1(this.plugin,o,null,null,this.settings.windowOpenBottom?"bottom":"right"))}async compareNotes(e,z,b){var t;if(!e||!z||!b)return;r.pushMsg("compare notes");const M=(t=b.split("#").pop())==null?void 0:t.split(",");if(M.length==2){const p=Number(M[1]);if(!G1(p))return;const c=await Eo(M[0],p);if(!c)return;let o=await Uo(M[0],p);if(!o){const q=await _1(c,"compare");q&&(o=await dA(M[0],p,z,q))}if(!o)return;const a=r.clearAll(o),O=[],s=r.getChildBlocks(e).then(q=>r.getRows(q.map(u=>u.id),"ial,markdown,content",!0,["content is not null",'content != ""'])).then(q=>q.map(u=>({ial:_e(u.ial),id:u.id,markdown:u.markdown,content:u.content})).reduce(({lastRef:u,all:l},S)=>{l.push(S);const N=S.ial["custom-progref"];return N?u=N:u&&(S.ial["custom-progref"]=u),{lastRef:u,all:l}},{lastRef:"",all:[]}).all.filter(u=>!u.ial["custom-prog-key-note"]).reduce((u,l)=>{const S=l.ial["custom-progref"];return u.has(S)||u.set(S,[]),u.get(S).push(l),u},new Map)),{ids:i,m:d}=await r.getChildBlocks(c).then(q=>r.getRows(q.map(u=>u.id),"ial,markdown",!0,[`ial like "%${L1}%"`])).then(q=>q.map(u=>({ial:_e(u.ial),id:u.id,markdown:u.markdown})).reduce((u,l)=>{const S=l.ial["custom-progref"];return u.ids.push(S),u.m.has(S)||u.m.set(S,[]),u.m.get(S).push(l),u},{ids:[],m:new Map}));for(const q of[...new Set(i)]){for(const l of d.get(q)??[])delete l.ial.id,delete l.ial.updated,l.ial["custom-prog-key-note"]="1",O.push(`${l.markdown} +`),o),u1(this.plugin,o,this.settings.windowOpenStyle))}async compareNotes(e,z,b){var t;if(!e||!z||!b)return;r.pushMsg("compare notes");const M=(t=b.split("#").pop())==null?void 0:t.split(",");if(M.length==2){const p=Number(M[1]);if(!G1(p))return;const c=await Eo(M[0],p);if(!c)return;let o=await Uo(M[0],p);if(!o){const q=await _1(c,"compare");q&&(o=await dA(M[0],p,z,q))}if(!o)return;const a=r.clearAll(o),O=[],s=r.getChildBlocks(e).then(q=>r.getRows(q.map(u=>u.id),"ial,markdown,content",!0,["content is not null",'content != ""'])).then(q=>q.map(u=>({ial:_e(u.ial),id:u.id,markdown:u.markdown,content:u.content})).reduce(({lastRef:u,all:l},S)=>{l.push(S);const N=S.ial["custom-progref"];return N?u=N:u&&(S.ial["custom-progref"]=u),{lastRef:u,all:l}},{lastRef:"",all:[]}).all.filter(u=>!u.ial["custom-prog-key-note"]).reduce((u,l)=>{const S=l.ial["custom-progref"];return u.has(S)||u.set(S,[]),u.get(S).push(l),u},new Map)),{ids:i,m:d}=await r.getChildBlocks(c).then(q=>r.getRows(q.map(u=>u.id),"ial,markdown",!0,[`ial like "%${L1}%"`])).then(q=>q.map(u=>({ial:_e(u.ial),id:u.id,markdown:u.markdown})).reduce((u,l)=>{const S=l.ial["custom-progref"];return u.ids.push(S),u.m.has(S)||u.m.set(S,[]),u.m.get(S).push(l),u},{ids:[],m:new Map}));for(const q of[...new Set(i)]){for(const l of d.get(q)??[])delete l.ial.id,delete l.ial.updated,l.ial["custom-prog-key-note"]="1",O.push(`${l.markdown} ${F2(l.ial)}`);let u=!1;for(const l of(await s).get(q)??[])delete l.ial.id,delete l.ial.updated,u=!0,O.push(`((${l.id} '${l.content}')) ${F2(l.ial)}`);u&&O.push("---")}await a,await r.insertBlockAsChildOf(O.join(` -`),o),r.pushMsg("compare notes finished"),u1(this.plugin,o,null,null,this.settings.windowOpenBottom?"bottom":"right")}}async extractAsBook(e,z,b,M){var s;if(!z||!b||!M)return;r.pushMsg("extract pieces as a new book");const t=(s=M.split("#").pop())==null?void 0:s.split(",");if(t.length!==2)return;const p=t[0];if(!p)return;let c=await Io(p);if(!c){const i=await _1(p,"merged");i&&(c=await iA(p,e,i))}if(!c)return;const o=M.split(",")[0],a=await Bp(o),O=await r.getRows(a,"markdown,ial",!0,[`ial not like "%${cz}%"`]).then(i=>i.filter(d=>!d.ial.includes(`${L1}="2"`)));await r.clearAll(c),await r.insertBlockAsChildOf(O.map(i=>i.markdown).join(` -`),c),u1(this.plugin,c,null,null,this.settings.windowOpenBottom?"bottom":"right")}async extractNotes(e,z,b){var i,d;if(!e||!z||!b)return;r.pushMsg("extract notes");const M=(i=b.split("#").pop())==null?void 0:i.split(",");if(M.length!==2)return;const t=Number(M[1]);if(!G1(t))return;let p=await Fo(M[0],t);if(!p){const q=await _1(e,"keys");q&&(p=await uA(M[0],t,z,q))}if(!p)return;const c=r.getChildBlocks(p).then(q=>q.map(u=>u.id)).then(q=>r.getRows(q,"content,ial",!0)).then(q=>q.map(Np)).then(q=>{let u;const l=new Map;for(const S of q){const N=S.ial["custom-paragraph-index"];if(N&&(u=N),u&&!N){const R=l.get(u)??[];R.push(S),l.set(u,R)}}return l}),{contents:o,noteMap:a}=await(async()=>{const u=(await r.getChildBlocks(e)).map(N=>N.id);return{contents:(await r.getRows(u,"content,ial",!0,[`ial not like "%${L1}%"`,`ial not like "%${F0}%"`,"content IS NOT NULL","LENGTH(content) > 0"])).map(Np),noteMap:await c}})(),O=[];let s;for(const{id:q,ial:u,content:l}of o){if(!l)continue;delete u.id,delete u.updated;const S=u["custom-paragraph-index"];S!=s&&(s!=null&&O.push(de()),s=S),u["custom-prog-key-note"]="1",O.push(`((${q} '${l}')) +`),o),r.pushMsg("compare notes finished"),u1(this.plugin,o,this.settings.windowOpenStyle)}}async extractAsBook(e,z,b,M){var s;if(!z||!b||!M)return;r.pushMsg("extract pieces as a new book");const t=(s=M.split("#").pop())==null?void 0:s.split(",");if(t.length!==2)return;const p=t[0];if(!p)return;let c=await Io(p);if(!c){const i=await _1(p,"merged");i&&(c=await iA(p,e,i))}if(!c)return;const o=M.split(",")[0],a=await Bp(o),O=await r.getRows(a,"markdown,ial",!0,[`ial not like "%${cz}%"`]).then(i=>i.filter(d=>!d.ial.includes(`${L1}="2"`)));await r.clearAll(c),await r.insertBlockAsChildOf(O.map(i=>i.markdown).join(` +`),c),u1(this.plugin,c,this.settings.windowOpenStyle)}async extractNotes(e,z,b){var i,d;if(!e||!z||!b)return;r.pushMsg("extract notes");const M=(i=b.split("#").pop())==null?void 0:i.split(",");if(M.length!==2)return;const t=Number(M[1]);if(!G1(t))return;let p=await Fo(M[0],t);if(!p){const q=await _1(e,"keys");q&&(p=await uA(M[0],t,z,q))}if(!p)return;const c=r.getChildBlocks(p).then(q=>q.map(u=>u.id)).then(q=>r.getRows(q,"content,ial",!0)).then(q=>q.map(Np)).then(q=>{let u;const l=new Map;for(const S of q){const N=S.ial["custom-paragraph-index"];if(N&&(u=N),u&&!N){const R=l.get(u)??[];R.push(S),l.set(u,R)}}return l}),{contents:o,noteMap:a}=await(async()=>{const u=(await r.getChildBlocks(e)).map(N=>N.id);return{contents:(await r.getRows(u,"content,ial",!0,[`ial not like "%${L1}%"`,`ial not like "%${F0}%"`,"content IS NOT NULL","LENGTH(content) > 0"])).map(Np),noteMap:await c}})(),O=[];let s;for(const{id:q,ial:u,content:l}of o){if(!l)continue;delete u.id,delete u.updated;const S=u["custom-paragraph-index"];S!=s&&(s!=null&&O.push(de()),s=S),u["custom-prog-key-note"]="1",O.push(`((${q} '${l}')) ${F2(u)}`),(d=a.get(S))==null||d.forEach(N=>{O.push(N.content)})}await r.clearAll(p),await r.insertBlockAsChildOf(O.join(` -`),p),u1(this.plugin,p,null,null,this.settings.windowOpenBottom?"bottom":"right")}}const Ku=new Yu;async function Bp(n){const z=(await r.sqlAttr(`select root_id,value from attributes where name="${F0}" and value like "${n}%" limit 100000000`)).map(M=>{const t=M.value.split(",").pop();if(t)return{docID:M.root_id,idx:Number(t)}}).filter(M=>M!=null).sort((M,t)=>M.idx-t.idx).map(M=>M.docID);return(await Promise.all(z.map(M=>r.getChildBlocks(M)))).flat().filter(M=>M.type!="s"&&M.type!="tb").map(M=>M.id)}async function Vu(n,e,z){const b=n[n.length-1],M=A2(b);if(M){const t=M.appendChild(document.createElement("span"));return N2(t,e,"+"),r.safeUpdateBlock(b.getAttribute(S0),z.BlockDOM2Md(b.outerHTML))}}async function Qu(n){n.style.backgroundColor="var(--b3-font-background11)";const e={style:"background-color: var(--b3-font-background11);"};return r.setBlockAttrs(n.getAttribute(S0),e)}function wp(n,e,z,b){return`select root_id from attributes +`),p),u1(this.plugin,p,this.settings.windowOpenStyle)}}const Ku=new Yu;async function Bp(n){const z=(await r.sqlAttr(`select root_id,value from attributes where name="${F0}" and value like "${n}%" limit 100000000`)).map(M=>{const t=M.value.split(",").pop();if(t)return{docID:M.root_id,idx:Number(t)}}).filter(M=>M!=null).sort((M,t)=>M.idx-t.idx).map(M=>M.docID);return(await Promise.all(z.map(M=>r.getChildBlocks(M)))).flat().filter(M=>M.type!="s"&&M.type!="tb").map(M=>M.id)}async function Vu(n,e,z){const b=n[n.length-1],M=A2(b);if(M){const t=M.appendChild(document.createElement("span"));return N2(t,e,"+"),r.safeUpdateBlock(b.getAttribute(S0),z.BlockDOM2Md(b.outerHTML))}}async function Qu(n){n.style.backgroundColor="var(--b3-font-background11)";const e={style:"background-color: var(--b3-font-background11);"};return r.setBlockAttrs(n.getAttribute(S0),e)}function wp(n,e,z,b){return`select root_id from attributes where name="${e}" and value like "${n}#%" and ${z} order by value ${b} limit 1`}class Zu{constructor(){B(this,"protyle");B(this,"element");B(this,"selected",[]);B(this,"docID");B(this,"docName");B(this,"boxID");B(this,"anchorID");B(this,"plugin");B(this,"ctime");B(this,"singleCard");B(this,"bookID");B(this,"allText");B(this,"otab");B(this,"attrs");B(this,"settings")}async init(){this.allText=su(this.selected),this.ctime=this.element.getAttribute(X2);const e=this.element.getAttribute(ir);e&&(this.anchorID=e);let{bookID:z}=await lt(this.docID);z||(z=this.docID),this.bookID=z,this.attrs=await r.getBlockAttrs(this.bookID),this.singleCard=this.attrs["custom-book-single-card"]==="1"}async getDigest(e,z,b,M){var p,c,o;if(e){const a=await r.sqlAttr(wp(this.bookID,sr,`value ${b} "${e}"`,M));if(a.length>0)return(p=a[0])==null?void 0:p.root_id}if(z){const a=await r.sqlAttr(wp(this.bookID,X2,`value ${b} "${z}"`,M));if(a.length>0)return(c=a[0])==null?void 0:c.root_id}const t=await r.sqlAttr(`select root_id from attributes where name="${X2}" @@ -372,7 +372,7 @@ ${d} }}} {: id="${p}" custom-ai-response="1"}`)}}}const b4=[{id:"29f1e104943e1f64a91f39f80ec98a4e",choices:[{index:0,delta:{content:"",role:"assistant"},finish_reason:null,logprobs:null}],created:1718000525,model:"deepseek-coder",system_fingerprint:"fp_ded2115e5a",object:"chat.completion.chunk",usage:null},{choices:[{delta:{content:"Hello",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:"!",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" How",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" can",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" I",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" assist",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" you",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" with",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" your",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" programming",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" or",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" computer",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" science",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" questions",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:" today",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:"?",role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:` -`,role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:"",role:null},finish_reason:"stop",index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a",usage:{completion_tokens:17,prompt_tokens:20,total_tokens:37}}];function qc(n){return n.reduce((e,z)=>e+z.tokens,0)}const $n="ChatContextStoreKey.json";function M4(n){return n==null?!1:typeof n[Symbol.iterator]=="function"}class t4{constructor(e,z=""){B(this,"_chats");B(this,"plugin");B(this,"_system");B(this,"maxTokens");this.system=z,this.maxTokens=e}get chats(){return this._chats}get system(){return this._system}set system(e){this._system=e}async loadData(e){this.plugin=e,await Ob(e.name,$n);let z=await e.loadData($n);this._chats=(z==null?void 0:z.history)??[];for(const b of this._chats){const M=typeof b.content=="string",t=b.role=="assistant"||b.role=="user",p=typeof b.tokens=="number";if(!M||!t||!p){this._chats=[],await this.plugin.saveData($n,{history:[]});break}}}async saveData(){return this.plugin.saveData($n,{history:this._chats})}addContent(e,z,b){M4(this._chats)||(this._chats=[]);const M=[...this.chats,{role:e,content:z,tokens:b}];for(;qc(M)>this.maxTokens&&M.length>0;)M.splice(0,2);return M}addPair(e,z,b){this._chats=this.addContent("user",e,(b==null?void 0:b.prompt_tokens)??1),this._chats=this.addContent("assistant",z,(b==null?void 0:b.completion_tokens)??1)}get(e,z){const b=this.addContent("user",e,z);return ru.get()?b:b.slice(b.length-1)}clear(){const e=qc(this.chats);return this._chats=[],e}}class p4{constructor(e){B(this,"docID");B(this,"docName");B(this,"boxID");B(this,"rangeText");B(this,"plugin");B(this,"bookID");B(this,"anchorID");B(this,"allText");B(this,"settings");this.settings=e}async digest(e=!1,z=!1){var c,o;if(!this.rangeText){r.pushMsg(h.请选择词语,2e3);return}const b=await _1(this.bookID,"words"),M=await rA(this.bookID,this.boxID,b),t=o1(),p=o1();if(await r.appendBlock(o4(t,p,this.rangeText,this.anchorID),M),await u1(this.plugin,t,["cb-get-context","cb-get-focus"],!1,this.settings.windowOpenBottom?"bottom":"right"),e&&await r.addRiffCards([t]),z){const a=(c=await r.getConf())==null?void 0:c.conf,O=(o=a==null?void 0:a.ai)==null?void 0:o.openAI;if(O!=null&&O.apiKey&&O.apiBaseURL&&O.apiModel&&O.apiModel){const s=new z4(O.apiKey,O.apiBaseURL),i=new t4(4e3);let d="en_US";const q=a.appearance.lang;d===q&&(d="zh_CN"),await s.completions(a.ai.openAI.apiModel,i,c4(this.rangeText,this.allText,d,q),p,!1)}else{await r.pushMsg(h.请先配置AI,2e3);return}}}}function c4(n,e,z,b){return`CONTEXT: +`,role:"assistant"},finish_reason:null,index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a"},{choices:[{delta:{content:"",role:null},finish_reason:"stop",index:0,logprobs:null}],created:1718000525,id:"29f1e104943e1f64a91f39f80ec98a4e",model:"deepseek-coder",object:"chat.completion.chunk",system_fingerprint:"fp_ded2115e5a",usage:{completion_tokens:17,prompt_tokens:20,total_tokens:37}}];function qc(n){return n.reduce((e,z)=>e+z.tokens,0)}const $n="ChatContextStoreKey.json";function M4(n){return n==null?!1:typeof n[Symbol.iterator]=="function"}class t4{constructor(e,z=""){B(this,"_chats");B(this,"plugin");B(this,"_system");B(this,"maxTokens");this.system=z,this.maxTokens=e}get chats(){return this._chats}get system(){return this._system}set system(e){this._system=e}async loadData(e){this.plugin=e,await Ob(e.name,$n);let z=await e.loadData($n);this._chats=(z==null?void 0:z.history)??[];for(const b of this._chats){const M=typeof b.content=="string",t=b.role=="assistant"||b.role=="user",p=typeof b.tokens=="number";if(!M||!t||!p){this._chats=[],await this.plugin.saveData($n,{history:[]});break}}}async saveData(){return this.plugin.saveData($n,{history:this._chats})}addContent(e,z,b){M4(this._chats)||(this._chats=[]);const M=[...this.chats,{role:e,content:z,tokens:b}];for(;qc(M)>this.maxTokens&&M.length>0;)M.splice(0,2);return M}addPair(e,z,b){this._chats=this.addContent("user",e,(b==null?void 0:b.prompt_tokens)??1),this._chats=this.addContent("assistant",z,(b==null?void 0:b.completion_tokens)??1)}get(e,z){const b=this.addContent("user",e,z);return ru.get()?b:b.slice(b.length-1)}clear(){const e=qc(this.chats);return this._chats=[],e}}class p4{constructor(e){B(this,"docID");B(this,"docName");B(this,"boxID");B(this,"rangeText");B(this,"plugin");B(this,"bookID");B(this,"anchorID");B(this,"allText");B(this,"settings");this.settings=e}async digest(e=!1,z=!1){var c,o;if(!this.rangeText){r.pushMsg(h.请选择词语,2e3);return}const b=await _1(this.bookID,"words"),M=await rA(this.bookID,this.boxID,b),t=o1(),p=o1();if(await r.appendBlock(o4(t,p,this.rangeText,this.anchorID),M),await u1(this.plugin,t,this.settings.windowOpenStyle),e&&await r.addRiffCards([t]),z){const a=(c=await r.getConf())==null?void 0:c.conf,O=(o=a==null?void 0:a.ai)==null?void 0:o.openAI;if(O!=null&&O.apiKey&&O.apiBaseURL&&O.apiModel&&O.apiModel){const s=new z4(O.apiKey,O.apiBaseURL),i=new t4(4e3);let d="en_US";const q=a.appearance.lang;d===q&&(d="zh_CN"),await s.completions(a.ai.openAI.apiModel,i,c4(this.rangeText,this.allText,d,q),p,!1)}else{await r.pushMsg(h.请先配置AI,2e3);return}}}}function c4(n,e,z,b){return`CONTEXT: ${e} WORD: @@ -396,4 +396,4 @@ ${z}${M} ${t} ${p} ${c} ${o} ${O} ${a} {: id="${o1()}"} `.trim()}function a4(n){let e;return{c(){e=y("span"),e.textContent="🍎🍎",L(e,"title",h.每个摘抄都加入闪卡)},m(z,b){G(z,e,b)},d(z){z&&J(e)}}}function r4(n){let e;return{c(){e=y("span"),e.textContent="🍎",L(e,"title",h.只有一个摘抄加入闪卡)},m(z,b){G(z,e,b)},d(z){z&&J(e)}}}function O4(n){let e,z,b,M,t,p,c,o,a,O,s,i,d,q,u,l,S,N,R,T,U,D,C,t0,n0,m,k,K,b0,Q,V,Y,u0,f0,Z,h0,i1,Y0,_0,r1,E0,C0,e0,x0,P0,f1,U0;function D0(g,X){return g[3]?r4:a4}let A=D0(n),W=A(n);return{c(){e=y("div"),z=y("table"),b=y("tbody"),M=y("tr"),t=y("td"),p=y("button"),p.textContent="🍕",c=v(),o=y("td"),a=y("button"),a.textContent="✂",O=v(),s=y("td"),i=y("button"),i.textContent="🌲",d=v(),q=y("tr"),u=y("td"),l=y("button"),l.textContent="🔤",S=v(),N=y("td"),R=y("button"),R.textContent="🗂️",T=v(),U=y("td"),D=y("button"),D.textContent="🤖",C=v(),t0=y("tr"),n0=y("td"),m=y("button"),m.textContent="👈",k=v(),K=y("td"),b0=y("button"),b0.textContent="👉",Q=v(),V=y("td"),Y=y("button"),Y.textContent="🗑️",u0=v(),f0=y("tr"),Z=y("td"),h0=y("button"),W.c(),i1=v(),Y0=y("td"),_0=y("button"),_0.textContent="🔨",r1=v(),E0=y("tr"),C0=y("td"),e0=y("button"),e0.textContent="✂👇",x0=v(),P0=y("button"),P0.textContent="📌👇",L(p,"title",h.摘抄+"(Alt+Z)"),L(p,"class","b3-button"),L(a,"title",h.摘抄+"&"+h.断句),L(a,"class","b3-button"),L(i,"title",h.查看摘抄轨迹链),L(i,"class","b3-button"),L(l,"title",h.摘录单词),L(l,"class","b3-button"),L(R,"title",h.摘录单词并加入闪卡),L(R,"class","b3-button"),L(D,"title",h.摘录单词并加入闪卡并用AI解释),L(D,"class","b3-button"),L(m,"title",h.打开前一个摘抄),L(m,"class","b3-button"),L(b0,"title",h.打开下一个摘抄),L(b0,"class","b3-button"),L(Y,"title",h.清理已经完成的摘抄),L(Y,"class","b3-button"),L(h0,"title",h.切换单卡多卡模式),L(h0,"class","b3-button"),L(Z,"colspan","2"),L(_0,"title",h.标记摘抄为完成状态并转移闪卡到其他摘抄),L(_0,"class","b3-button"),L(e0,"title",h.断句并插入下方),L(e0,"class","b3-button"),L(P0,"title",h.断句并插入下方+"(checkbox)"),L(P0,"class","b3-button"),L(C0,"colspan","3"),L(e,"class","protyle-wysiwyg")},m(g,X){G(g,e,X),f(e,z),f(z,b),f(b,M),f(M,t),f(t,p),f(M,c),f(M,o),f(o,a),f(M,O),f(M,s),f(s,i),f(b,d),f(b,q),f(q,u),f(u,l),f(q,S),f(q,N),f(N,R),f(q,T),f(q,U),f(U,D),f(b,C),f(b,t0),f(t0,n0),f(n0,m),f(t0,k),f(t0,K),f(K,b0),f(t0,Q),f(t0,V),f(V,Y),f(b,u0),f(b,f0),f(f0,Z),f(Z,h0),W.m(h0,null),f(f0,i1),f(f0,Y0),f(Y0,_0),f(b,r1),f(b,E0),f(E0,C0),f(C0,e0),f(C0,x0),f(C0,P0),f1||(U0=[c0(p,"click",n[7]),c0(a,"click",n[8]),c0(i,"click",n[9]),c0(l,"click",n[10]),c0(R,"click",n[11]),c0(D,"click",n[12]),c0(m,"click",n[13]),c0(b0,"click",n[14]),c0(Y,"click",n[15]),c0(h0,"click",n[16]),c0(_0,"click",n[17]),c0(e0,"click",n[18]),c0(P0,"click",n[19])],f1=!0)},p(g,[X]){A!==(A=D0(g))&&(W.d(1),W=A(g),W&&(W.c(),W.m(h0,null)))},i:q1,o:q1,d(g){g&&J(e),W.d(),f1=!1,Y2(U0)}}}function i4(n,e,z){let{dialog:b=null}=e,{protyle:M}=e,{settings:t}=e,p=new Zu,c=new p4(t),o=!1;it(async()=>{const C=await r0.selectedDivs(M);z(1,p.protyle=M,p),z(1,p.settings=t,p),z(1,p.element=C.element,p),z(1,p.docID=C.docID,p),z(1,p.docName=C.docName,p),z(1,p.anchorID=C.ids[C.ids.length-1],p),z(1,p.selected=C.selected,p),z(1,p.boxID=C.boxID,p),z(1,p.plugin=O1.plugin,p),z(1,p.otab=O1.singleTab,p),await p.init(),z(3,o=p.singleCard),z(2,c.plugin=O1.plugin,c),z(2,c.anchorID=p.anchorID,c),z(2,c.docID=C.docID,c),z(2,c.boxID=C.boxID,c),z(2,c.docName=C.docName,c),z(2,c.rangeText=C.rangeText,c),z(2,c.bookID=p.bookID,c),z(2,c.allText=p.allText,c),O1.digestCallback=async()=>{O1.digestCallback=null,await p.digest(),a()}}),st(a);function a(){b==null||b.destroy()}const O=async()=>{await p.digest(),a()},s=async()=>{await p.digest(!0),a()},i=async()=>{await p.getDigestLnk(),a()},d=async()=>{a(),await c.digest()},q=async()=>{a(),await c.digest(!0)},u=async()=>{a(),await c.digest(!0,!0)},l=async()=>{await p.gotoDigest("<","desc"),a()},S=async()=>{await p.gotoDigest(">","asc"),a()},N=async()=>{await p.cleanDigest(),a()},R=async()=>{await p.toggleMultiCardMode(),a()},T=async()=>{p.ctime?await p.finishDigest():await r.pushMsg(`《${p.docName}》${h.这并不是一个摘抄}`),a()},U=async()=>{const{md:C}=await hM(t,p.selected,p.protyle,!0,!1);C.splice(0,0,de()),C.push(de()),await r.insertBlockAfter(C.join(` `),p.anchorID),a()},D=async()=>{const{md:C}=await hM(t,p.selected,p.protyle,!0,!1,!0);C.splice(0,0,de()),C.push(de()),await r.insertBlockAfter(C.join(` -`),p.anchorID),a()};return n.$$set=C=>{"dialog"in C&&z(5,b=C.dialog),"protyle"in C&&z(6,M=C.protyle),"settings"in C&&z(0,t=C.settings)},[t,p,c,o,a,b,M,O,s,i,d,q,u,l,S,N,R,T,U,D]}class s4 extends ut{constructor(e){super(),At(this,e,i4,O4,lb,{dialog:5,protyle:6,settings:0})}}class A4{constructor(){B(this,"plugin");B(this,"settings");B(this,"lute");B(this,"singleTab");B(this,"digestCallback")}blockIconEvent(e){this.plugin&&e.menu.addItem({iconHTML:"+🍕",label:this.plugin.i18n.digestProgressive,accelerator:"⌥Z",click:()=>{this.openDialog(e.protyle)}})}async onload(e,z){this.plugin=e,this.settings=z,this.lute=Rn(),this.singleTab=new iu(this.plugin),this.plugin.addCommand({langKey:"digestProgressive",hotkey:"⌥Z",callback:async()=>{var b;this.digestCallback?await this.digestCallback():this.openDialog((b=r0.protyle)==null?void 0:b.protyle)}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{b.menu.addItem({label:this.plugin.i18n.digestProgressive,iconHTML:"+🍕",accelerator:"⌥Z",click:async()=>{this.openDialog(b.protyle)}})})}openDialog(e){if(!e)return;const z=sz(),b=new m0.Dialog({title:this.plugin.i18n.digestProgressive,content:`
`,destroyCallback:()=>{O1.digestCallback=null}});new s4({target:b.element.querySelector("#"+z),props:{dialog:b,protyle:e,settings:this.settings}})}}const O1=new A4,Zb="ProgressiveLearning.json";class u4 extends m0.Plugin{constructor(z){super(z);B(this,"taskCfg");B(this,"settingCfg");B(this,"blockIconEventBindThis",this.blockIconEvent.bind(this));B(this,"pluginSpec");this.taskCfg=this.loadData(Zb).then(b=>(this.settingCfg=b,fo(this.settingCfg)||(this.settingCfg={}),this.settingCfg||(this.settingCfg={}),this.settingCfg.flashcardMultipleLnks==null&&(this.settingCfg.flashcardMultipleLnks=!0),this.settingCfg.windowOpenBottom==null&&(this.settingCfg.windowOpenBottom=!0),this.settingCfg.flashcardUseLink==null&&(this.settingCfg.flashcardUseLink=!0),this.settingCfg.flashcardAddNewLines==null&&(this.settingCfg.flashcardAddNewLines=!1),this.settingCfg.settingsLeft==null&&(this.settingCfg.settingsLeft=!1),this.settingCfg.digestNoBacktraceLink==null&&(this.settingCfg.digestNoBacktraceLink=!1),this.settingCfg.pieceNoBacktraceLink==null&&(this.settingCfg.pieceNoBacktraceLink=!1),this.settingCfg.summary2dailynote==null&&(this.settingCfg.summary2dailynote=!1),this.settingCfg.markOriginText==null&&(this.settingCfg.markOriginText=!1),this.settingCfg.markOriginTextBG==null&&(this.settingCfg.markOriginTextBG=!1),this.settingCfg.hideBtnsInFlashCard==null&&(this.settingCfg.hideBtnsInFlashCard=!1),this.settingCfg.openCardsOnOpenPiece==null&&(this.settingCfg.openCardsOnOpenPiece=!1),this.settingCfg.cardUnderPiece==null&&(this.settingCfg.cardUnderPiece=!1),this.settingCfg.cardAppendTime==null&&(this.settingCfg.cardAppendTime=!1),this.settingCfg.btnViewContents==null&&(this.settingCfg.btnViewContents=!0),this.settingCfg.btnPrevious==null&&(this.settingCfg.btnPrevious=!0),this.settingCfg.btnNext==null&&(this.settingCfg.btnNext=!0),this.settingCfg.btnCleanOriginText==null&&(this.settingCfg.btnCleanOriginText=!0),this.settingCfg.btnFullfilContent==null&&(this.settingCfg.btnFullfilContent=!0),this.settingCfg.btnStop==null&&(this.settingCfg.btnStop=!0),this.settingCfg.btnNextBook==null&&(this.settingCfg.btnNextBook=!0),this.settingCfg.btnOpenFlashcardTab==null&&(this.settingCfg.btnOpenFlashcardTab=!0),this.settingCfg.btnDeleteBack==null&&(this.settingCfg.btnDeleteBack=!0),this.settingCfg.btnDeleteNext==null&&(this.settingCfg.btnDeleteNext=!0),this.settingCfg.btnSaveCard==null&&(this.settingCfg.btnSaveCard=!0),this.settingCfg.btnDelCard==null&&(this.settingCfg.btnDelCard=!0),this.settingCfg.btnDeleteExit==null&&(this.settingCfg.btnDeleteExit=!0),this.settingCfg.btnIgnoreBook==null&&(this.settingCfg.btnIgnoreBook=!0),this.settingCfg.btnSplitByPunctuations==null&&(this.settingCfg.btnSplitByPunctuations=!0),this.settingCfg.btnSplitByPunctuationsListCheck==null&&(this.settingCfg.btnSplitByPunctuationsListCheck=!0),this.settingCfg.btnSplitByPunctuationsList==null&&(this.settingCfg.btnSplitByPunctuationsList=!0),b)),Ob(this.name,Zb)}blockIconEvent({detail:z}){F.blockIconEvent(z),yp.blockIconEvent(z),_p.blockIconEvent(z),O1.blockIconEvent(z)}onload(){this.addIcons(Mr),r0.onload(this),h.init(),qM.conf=h.conf,this.eventBus.on(qe.click_blockicon,this.blockIconEventBindThis),this.setting=new m0.Setting({confirmCallback:()=>{this.saveData(Zb,this.settingCfg),window.location.reload()}}),(async()=>(await this.taskCfg,await F.onload(this,this.settingCfg),await yp.onload(this,this.settingCfg),await _p.onload(this,this.settingCfg),await Gu.onload(this,this.settingCfg),await Ku.onload(this,this.settingCfg),await O1.onload(this,this.settingCfg)))(),lo(this.name).then(z=>{var b;this.pluginSpec=z,this.setting.addItem({title:`v${(b=this.pluginSpec)==null?void 0:b.version}`,description:"",createActionElement:()=>{const M=document.createElement("button");return M.classList.add("b3-button"),M.classList.add("b3-button--text"),M.addEventListener("click",()=>{window.location.href="https://github.com/IAliceBobI/sy-progressive-plugin/blob/main/README.md"}),M.textContent="goto Github",M}}),this.addSettingItem("windowOpenBottom","* "+h.新开窗口到底部否则弹到右边,!0,""),this.addSettingItem("flashcardMultipleLnks","* "+h.对分片制卡额外链接到分片,!0,""),this.addSettingItem("flashcardUseLink","* "+h.闪卡的回溯使用链接,!0,""),this.addSettingItem("flashcardAddNewLines","* "+h.制卡时在末尾添加空行,!1,""),this.addSettingItem("settingsLeft","* "+qM.设置图标放左边,!1,""),this.addSettingItem("hideBtnsInFlashCard","* "+h.在闪卡内复习整个分片时隐藏分片下方按钮,!1,""),this.addSettingItem("openCardsOnOpenPiece","* "+h.打开分片的同时打开cards文档,!1,h.cards前缀文件),this.addSettingItem("cardUnderPiece","* "+h.分片内制卡放于分片的子文档内,!1,""),this.addSettingItem("markOriginText","* "+h.制卡摘抄在原文处做标记,!1,""),this.addSettingItem("markOriginTextBG","* "+h.制卡摘抄改变原文背景,!1,""),this.addSettingItem("cardAppendTime","* "+h.制卡后追加时间与标题路径,!1,""),this.addSettingItem("summary2dailynote","* "+h.altshift总是收集到dailynote,!1,""),this.addSettingItem("pieceNoBacktraceLink","* "+h.分片不加入回溯链接,!1,""),this.addSettingItem("digestNoBacktraceLink","* "+h.摘抄不加入回溯链接,!1,""),this.addSettingItem("btnViewContents","* "+h.打开目录,!0,"📜"),this.addSettingItem("btnPrevious","* "+h.上一个分片,!0,"⬅"),this.addSettingItem("btnNext","* "+h.下一个分片,!0,"➡"),this.addSettingItem("btnCleanOriginText","* "+h.删除原文,!0,"🧹"),this.addSettingItem("btnFullfilContent","* "+h.重新插入分片内容,!0,"⬇"),this.addSettingItem("btnStop","* "+h.关闭分片,!0,"🕺"),this.addSettingItem("btnNextBook","* "+h.换一本书看,!0,"📚📖"),this.addSettingItem("btnOpenFlashcardTab","* "+h.打开本书的闪卡,!0,"⚡"),this.addSettingItem("btnDeleteBack","* "+h.删除分片看上一个分片,!0,"⬅🗑"),this.addSettingItem("btnDeleteNext","* "+h.删除分片看下一个分片,!0,"🗑➡"),this.addSettingItem("btnSaveCard","* "+h.将文档加入闪卡,!0,"+🗃"),this.addSettingItem("btnDelCard","* "+h.删除文档闪卡,!0,"-🗃"),this.addSettingItem("btnDeleteExit","* "+h.删除分片并退出,!0,"🗑🕺"),this.addSettingItem("btnIgnoreBook","* "+h.不再推送本书,!0,"🚫"),this.addSettingItem("btnSplitByPunctuations","* "+h.按标点断句,!0,"✂📜"),this.addSettingItem("btnSplitByPunctuationsListCheck","* "+h.按标点断句Checkbox,!0,"✂✅"),this.addSettingItem("btnSplitByPunctuationsList","* "+h.按标点断句列表,!0,"✂📌")})}addSettingItem(z,b,M,t){this.setting.addItem({title:b,description:t,createActionElement:()=>{const p=document.createElement("input");return p.type="checkbox",p.addEventListener("change",()=>{this.settingCfg[z]=p.checked}),p.className="b3-switch fn__flex-center",r0.isMobile&&(p.style.width="8vw"),p.checked=this.settingCfg[z]??M,p}})}}module.exports=u4; +`),p.anchorID),a()};return n.$$set=C=>{"dialog"in C&&z(5,b=C.dialog),"protyle"in C&&z(6,M=C.protyle),"settings"in C&&z(0,t=C.settings)},[t,p,c,o,a,b,M,O,s,i,d,q,u,l,S,N,R,T,U,D]}class s4 extends ut{constructor(e){super(),At(this,e,i4,O4,lb,{dialog:5,protyle:6,settings:0})}}class A4{constructor(){B(this,"plugin");B(this,"settings");B(this,"lute");B(this,"singleTab");B(this,"digestCallback")}blockIconEvent(e){this.plugin&&e.menu.addItem({iconHTML:"+🍕",label:this.plugin.i18n.digestProgressive,accelerator:"⌥Z",click:()=>{this.openDialog(e.protyle)}})}async onload(e,z){this.plugin=e,this.settings=z,this.lute=Rn(),this.singleTab=new iu(this.plugin),this.plugin.addCommand({langKey:"digestProgressive",hotkey:"⌥Z",callback:async()=>{var b;this.digestCallback?await this.digestCallback():this.openDialog((b=r0.protyle)==null?void 0:b.protyle)}}),this.plugin.eventBus.on("open-menu-content",async({detail:b})=>{b.menu.addItem({label:this.plugin.i18n.digestProgressive,iconHTML:"+🍕",accelerator:"⌥Z",click:async()=>{this.openDialog(b.protyle)}})})}openDialog(e){if(!e)return;const z=sz(),b=new m0.Dialog({title:this.plugin.i18n.digestProgressive,content:`
`,destroyCallback:()=>{O1.digestCallback=null}});new s4({target:b.element.querySelector("#"+z),props:{dialog:b,protyle:e,settings:this.settings}})}}const O1=new A4,Zb="ProgressiveLearning.json";class u4 extends m0.Plugin{constructor(z){super(z);B(this,"taskCfg");B(this,"settingCfg");B(this,"blockIconEventBindThis",this.blockIconEvent.bind(this));B(this,"pluginSpec");this.taskCfg=this.loadData(Zb).then(b=>(this.settingCfg=b,fo(this.settingCfg)||(this.settingCfg={}),this.settingCfg||(this.settingCfg={}),this.settingCfg.flashcardMultipleLnks==null&&(this.settingCfg.flashcardMultipleLnks=!0),this.settingCfg.windowOpenStyle==null&&(this.settingCfg.windowOpenStyle="2"),this.settingCfg.flashcardUseLink==null&&(this.settingCfg.flashcardUseLink=!0),this.settingCfg.flashcardAddNewLines==null&&(this.settingCfg.flashcardAddNewLines=!1),this.settingCfg.settingsLeft==null&&(this.settingCfg.settingsLeft=!1),this.settingCfg.digestNoBacktraceLink==null&&(this.settingCfg.digestNoBacktraceLink=!1),this.settingCfg.pieceNoBacktraceLink==null&&(this.settingCfg.pieceNoBacktraceLink=!1),this.settingCfg.summary2dailynote==null&&(this.settingCfg.summary2dailynote=!1),this.settingCfg.markOriginText==null&&(this.settingCfg.markOriginText=!1),this.settingCfg.markOriginTextBG==null&&(this.settingCfg.markOriginTextBG=!1),this.settingCfg.hideBtnsInFlashCard==null&&(this.settingCfg.hideBtnsInFlashCard=!1),this.settingCfg.openCardsOnOpenPiece==null&&(this.settingCfg.openCardsOnOpenPiece=!1),this.settingCfg.cardUnderPiece==null&&(this.settingCfg.cardUnderPiece=!1),this.settingCfg.cardAppendTime==null&&(this.settingCfg.cardAppendTime=!1),this.settingCfg.btnViewContents==null&&(this.settingCfg.btnViewContents=!0),this.settingCfg.btnPrevious==null&&(this.settingCfg.btnPrevious=!0),this.settingCfg.btnNext==null&&(this.settingCfg.btnNext=!0),this.settingCfg.btnCleanOriginText==null&&(this.settingCfg.btnCleanOriginText=!0),this.settingCfg.btnFullfilContent==null&&(this.settingCfg.btnFullfilContent=!0),this.settingCfg.btnStop==null&&(this.settingCfg.btnStop=!0),this.settingCfg.btnNextBook==null&&(this.settingCfg.btnNextBook=!0),this.settingCfg.btnOpenFlashcardTab==null&&(this.settingCfg.btnOpenFlashcardTab=!0),this.settingCfg.btnDeleteBack==null&&(this.settingCfg.btnDeleteBack=!0),this.settingCfg.btnDeleteNext==null&&(this.settingCfg.btnDeleteNext=!0),this.settingCfg.btnSaveCard==null&&(this.settingCfg.btnSaveCard=!0),this.settingCfg.btnDelCard==null&&(this.settingCfg.btnDelCard=!0),this.settingCfg.btnDeleteExit==null&&(this.settingCfg.btnDeleteExit=!0),this.settingCfg.btnIgnoreBook==null&&(this.settingCfg.btnIgnoreBook=!0),this.settingCfg.btnSplitByPunctuations==null&&(this.settingCfg.btnSplitByPunctuations=!0),this.settingCfg.btnSplitByPunctuationsListCheck==null&&(this.settingCfg.btnSplitByPunctuationsListCheck=!0),this.settingCfg.btnSplitByPunctuationsList==null&&(this.settingCfg.btnSplitByPunctuationsList=!0),b)),Ob(this.name,Zb)}blockIconEvent({detail:z}){F.blockIconEvent(z),yp.blockIconEvent(z),_p.blockIconEvent(z),O1.blockIconEvent(z)}onload(){this.addIcons(Mr),r0.onload(this),h.init(),qM.conf=h.conf,this.eventBus.on(qe.click_blockicon,this.blockIconEventBindThis),this.setting=new m0.Setting({confirmCallback:()=>{this.saveData(Zb,this.settingCfg),window.location.reload()}}),(async()=>(await this.taskCfg,await F.onload(this,this.settingCfg),await yp.onload(this,this.settingCfg),await _p.onload(this,this.settingCfg),await Gu.onload(this,this.settingCfg),await Ku.onload(this,this.settingCfg),await O1.onload(this,this.settingCfg)))(),lo(this.name).then(z=>{var b;this.pluginSpec=z,this.setting.addItem({title:`v${(b=this.pluginSpec)==null?void 0:b.version}`,description:"",createActionElement:()=>{const M=document.createElement("button");return M.classList.add("b3-button"),M.classList.add("b3-button--text"),M.addEventListener("click",()=>{window.location.href="https://github.com/IAliceBobI/sy-progressive-plugin/blob/main/README.md"}),M.textContent="goto Github",M}}),this.addSettingTextItem("windowOpenStyle","* "+h.新开窗口如何打开,"2",""),this.addSettingItem("flashcardMultipleLnks","* "+h.对分片制卡额外链接到分片,!0,""),this.addSettingItem("flashcardUseLink","* "+h.闪卡的回溯使用链接,!0,""),this.addSettingItem("flashcardAddNewLines","* "+h.制卡时在末尾添加空行,!1,""),this.addSettingItem("settingsLeft","* "+qM.设置图标放左边,!1,""),this.addSettingItem("hideBtnsInFlashCard","* "+h.在闪卡内复习整个分片时隐藏分片下方按钮,!1,""),this.addSettingItem("openCardsOnOpenPiece","* "+h.打开分片的同时打开cards文档,!1,h.cards前缀文件),this.addSettingItem("cardUnderPiece","* "+h.分片内制卡放于分片的子文档内,!1,""),this.addSettingItem("markOriginText","* "+h.制卡摘抄在原文处做标记,!1,""),this.addSettingItem("markOriginTextBG","* "+h.制卡摘抄改变原文背景,!1,""),this.addSettingItem("cardAppendTime","* "+h.制卡后追加时间与标题路径,!1,""),this.addSettingItem("summary2dailynote","* "+h.altshift总是收集到dailynote,!1,""),this.addSettingItem("pieceNoBacktraceLink","* "+h.分片不加入回溯链接,!1,""),this.addSettingItem("digestNoBacktraceLink","* "+h.摘抄不加入回溯链接,!1,""),this.addSettingItem("btnViewContents","* "+h.打开目录,!0,"📜"),this.addSettingItem("btnPrevious","* "+h.上一个分片,!0,"⬅"),this.addSettingItem("btnNext","* "+h.下一个分片,!0,"➡"),this.addSettingItem("btnCleanOriginText","* "+h.删除原文,!0,"🧹"),this.addSettingItem("btnFullfilContent","* "+h.重新插入分片内容,!0,"⬇"),this.addSettingItem("btnStop","* "+h.关闭分片,!0,"🕺"),this.addSettingItem("btnNextBook","* "+h.换一本书看,!0,"📚📖"),this.addSettingItem("btnOpenFlashcardTab","* "+h.打开本书的闪卡,!0,"⚡"),this.addSettingItem("btnDeleteBack","* "+h.删除分片看上一个分片,!0,"⬅🗑"),this.addSettingItem("btnDeleteNext","* "+h.删除分片看下一个分片,!0,"🗑➡"),this.addSettingItem("btnSaveCard","* "+h.将文档加入闪卡,!0,"+🗃"),this.addSettingItem("btnDelCard","* "+h.删除文档闪卡,!0,"-🗃"),this.addSettingItem("btnDeleteExit","* "+h.删除分片并退出,!0,"🗑🕺"),this.addSettingItem("btnIgnoreBook","* "+h.不再推送本书,!0,"🚫"),this.addSettingItem("btnSplitByPunctuations","* "+h.按标点断句,!0,"✂📜"),this.addSettingItem("btnSplitByPunctuationsListCheck","* "+h.按标点断句Checkbox,!0,"✂✅"),this.addSettingItem("btnSplitByPunctuationsList","* "+h.按标点断句列表,!0,"✂📌")})}addSettingTextItem(z,b,M,t){this.setting.addItem({title:b,description:t,createActionElement:()=>{const p=document.createElement("input");return p.addEventListener("input",()=>{this.settingCfg[z]=p.value}),p.placeholder=M,p.className="b3-text-field",p.value=this.settingCfg[z]??M,p}})}addSettingItem(z,b,M,t){this.setting.addItem({title:b,description:t,createActionElement:()=>{const p=document.createElement("input");return p.type="checkbox",p.addEventListener("change",()=>{this.settingCfg[z]=p.checked}),p.className="b3-switch fn__flex-center",r0.isMobile&&(p.style.width="8vw"),p.checked=this.settingCfg[z]??M,p}})}}module.exports=u4; diff --git a/dist/plugin.json b/dist/plugin.json index b7c72a7..29f00d1 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -2,7 +2,7 @@ "name": "sy-progressive-plugin", "author": "IAliceBobI", "url": "https://github.com/IAliceBobI/sy-progressive-plugin", - "version": "1.1.26", + "version": "1.1.27", "minAppVersion": "2.12.6", "backends": [ "all" diff --git a/plugin.json b/plugin.json index b7c72a7..29f00d1 100644 --- a/plugin.json +++ b/plugin.json @@ -2,7 +2,7 @@ "name": "sy-progressive-plugin", "author": "IAliceBobI", "url": "https://github.com/IAliceBobI/sy-progressive-plugin", - "version": "1.1.26", + "version": "1.1.27", "minAppVersion": "2.12.6", "backends": [ "all"