From 1def44233e79abdaeeef1bb92af82c78b30035db Mon Sep 17 00:00:00 2001 From: Julian Lu Date: Wed, 8 Apr 2026 20:54:24 +0800 Subject: [PATCH] feat(chrome-extension): support encode image as Base64 (#45) --- .changeset/orange-guests-kneel.md | 5 +++ apps/chrome-extension/src/common/settings.ts | 3 ++ .../src/pages/options/download.vue | 24 ++++++++++++++ .../chrome-extension/src/pages/shared/i18n.ts | 2 ++ .../src/pages/shared/settings.ts | 4 ++- .../scripts/download-lark-docx-as-markdown.ts | 32 +++++++++++++++++-- packages/common/src/image.ts | 11 +++++++ 7 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 .changeset/orange-guests-kneel.md diff --git a/.changeset/orange-guests-kneel.md b/.changeset/orange-guests-kneel.md new file mode 100644 index 0000000..fce6bfb --- /dev/null +++ b/.changeset/orange-guests-kneel.md @@ -0,0 +1,5 @@ +--- +'@dolphin/chrome-extension': patch +--- + +feat: support encode image as Base64 (< 100 KiB) diff --git a/apps/chrome-extension/src/common/settings.ts b/apps/chrome-extension/src/common/settings.ts index c983935..6444dd7 100644 --- a/apps/chrome-extension/src/common/settings.ts +++ b/apps/chrome-extension/src/common/settings.ts @@ -11,6 +11,7 @@ export enum SettingKey { Grid = 'general.grid', TextHighlight = 'general.text_highlight', DownloadFileWithUniqueName = 'download.file_with_unique_name', + EncodeImageAsBase64 = 'download.encode_image_as_base64', } export enum Theme { @@ -44,6 +45,7 @@ export interface Settings { [SettingKey.Grid]: (typeof Grid)[keyof typeof Grid] [SettingKey.TextHighlight]: boolean [SettingKey.DownloadFileWithUniqueName]: boolean + [SettingKey.EncodeImageAsBase64]: boolean } export const fallbackSettings: Settings = { @@ -56,6 +58,7 @@ export const fallbackSettings: Settings = { [SettingKey.Grid]: Grid.Flatten, [SettingKey.TextHighlight]: true, [SettingKey.DownloadFileWithUniqueName]: false, + [SettingKey.EncodeImageAsBase64]: false, } export const getSettings = async ( diff --git a/apps/chrome-extension/src/pages/options/download.vue b/apps/chrome-extension/src/pages/options/download.vue index d6da09c..b7840ce 100644 --- a/apps/chrome-extension/src/pages/options/download.vue +++ b/apps/chrome-extension/src/pages/options/download.vue @@ -34,6 +34,7 @@ const { t } = useI18n() const schema = z.object({ [SettingKey.DownloadMethod]: z.enum(DownloadMethod), [SettingKey.DownloadFileWithUniqueName]: z.boolean(), + [SettingKey.EncodeImageAsBase64]: z.boolean(), }) const { query, mutation } = useSettings() @@ -49,6 +50,7 @@ watch(query.data, newValues => { values: pick(newValues, [ SettingKey.DownloadMethod, SettingKey.DownloadFileWithUniqueName, + SettingKey.EncodeImageAsBase64, ]), }) } @@ -143,6 +145,28 @@ const downloadMethodDescription = computed(() => { /> + + + + {{ + t('download.encode_image_as_base64') + }} + + + + + +