From ccafb9e1d9e31b0cdb8094269a716b81a045a95c Mon Sep 17 00:00:00 2001 From: Ran Luo Date: Fri, 3 Jul 2026 17:45:27 +0800 Subject: [PATCH 1/2] Add UKey Wallet sponsor to README and website (#4819) * docs(readme): add UKey Wallet sponsor Add UKey Wallet below SerpApi in the sponsor table across the root README and all 10 translated READMEs, keeping the existing stacked one-row-per- sponsor layout. Co-Authored-By: Claude Opus 4.8 (1M context) * feat(website): add UKey Wallet sponsor to support section Render UKey Wallet next to SerpApi in the Sponsored-by wall via a new flex row. The UKey logo ships an opaque background, so it is shown on a light tile and excluded from the dark-mode logo inversion that the transparent SerpApi logo relies on. Co-Authored-By: Claude Opus 4.8 (1M context) * docs(readme): use the branded UKey Wallet logo Replace the placeholder UKey logo with the branded ukey.png artwork across the README sponsor tables. Co-Authored-By: Claude Opus 4.8 (1M context) * feat(website): use the branded UKey Wallet logo Swap in the branded ukey.png. It carries its own rounded background with transparent corners, so drop the light-tile fill added for the previous opaque logo and keep only the dark-mode invert exclusion. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Claude Opus 4.8 (1M context) --- README.md | 1 + docs/assets/sponsors/ukey.png | Bin 0 -> 14568 bytes docs/i18n/README-ar.md | 1 + docs/i18n/README-de.md | 1 + docs/i18n/README-es.md | 1 + docs/i18n/README-fr.md | 1 + docs/i18n/README-jp.md | 1 + docs/i18n/README-kr.md | 1 + docs/i18n/README-pt.md | 1 + docs/i18n/README-tr.md | 1 + docs/i18n/README-zh_cn.md | 1 + docs/i18n/README-zh_tw.md | 1 + packages/website/public/assets/ukey.png | Bin 0 -> 14568 bytes .../public/docs/assets/sponsors/ukey.png | Bin 0 -> 14568 bytes packages/website/src/app/globals.css | 10 +++++++++- packages/website/src/components/Support.tsx | 11 ++++++++--- packages/website/src/lib/downloads.ts | 3 ++- 17 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 docs/assets/sponsors/ukey.png create mode 100644 packages/website/public/assets/ukey.png create mode 100644 packages/website/public/docs/assets/sponsors/ukey.png diff --git a/README.md b/README.md index 736dc29fdf..016b00be78 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ MarkText is an open-source Markdown editor powered by the support of its communi | [](https://serpapi.com/?utm_source=marktext) | [Scrape Google and other search engines from our fast, easy, and complete API.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Screenshot diff --git a/docs/assets/sponsors/ukey.png b/docs/assets/sponsors/ukey.png new file mode 100644 index 0000000000000000000000000000000000000000..8ffd2f90a3932637984941b1048b4e2b457a76e5 GIT binary patch literal 14568 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 bQ-QZeLY%!fQn%naKol`y>9_fUAHV!Bb}R-& literal 0 HcmV?d00001 diff --git a/docs/i18n/README-ar.md b/docs/i18n/README-ar.md index 9bbba821eb..ea2f0ccf84 100644 --- a/docs/i18n/README-ar.md +++ b/docs/i18n/README-ar.md @@ -110,6 +110,7 @@ MarkText هو محرر Markdown مفتوح المصدر يعتمد على دعم | [](https://serpapi.com/?utm_source=marktext) | [استخرج نتائج Google ومحركات البحث الأخرى من خلال واجهة برمجية سريعة وسهلة وشاملة.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## لقطة شاشة diff --git a/docs/i18n/README-de.md b/docs/i18n/README-de.md index c26aa9a2b7..0ca1d68fdd 100644 --- a/docs/i18n/README-de.md +++ b/docs/i18n/README-de.md @@ -110,6 +110,7 @@ MarkText ist ein Open-Source-Markdown-Editor, der von seiner Community unterstü | [](https://serpapi.com/?utm_source=marktext) | [Extrahieren Sie Daten von Google und anderen Suchmaschinen über unsere schnelle, einfache und vollständige API.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Screenshot diff --git a/docs/i18n/README-es.md b/docs/i18n/README-es.md index f5a1097188..4c4f0b8afe 100644 --- a/docs/i18n/README-es.md +++ b/docs/i18n/README-es.md @@ -110,6 +110,7 @@ MarkText es un editor de Markdown de código abierto impulsado por el apoyo de s | [](https://serpapi.com/?utm_source=marktext) | [Extrae resultados de Google y otros motores de búsqueda con nuestra API rápida, sencilla y completa.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Capturas de pantalla diff --git a/docs/i18n/README-fr.md b/docs/i18n/README-fr.md index c23186d9c5..27be6e8e80 100644 --- a/docs/i18n/README-fr.md +++ b/docs/i18n/README-fr.md @@ -110,6 +110,7 @@ MarkText est un éditeur Markdown open-source soutenu par sa communauté. Si Mar | [](https://serpapi.com/?utm_source=marktext) | [Extrayez les résultats de Google et d'autres moteurs de recherche grâce à notre API rapide, facile et complète.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Captures d'écran diff --git a/docs/i18n/README-jp.md b/docs/i18n/README-jp.md index 7473b3be35..4394d0b26e 100644 --- a/docs/i18n/README-jp.md +++ b/docs/i18n/README-jp.md @@ -111,6 +111,7 @@ MarkText はコミュニティの支援によって成り立つオープンソ | [](https://serpapi.com/?utm_source=marktext) | [高速で使いやすく完全な API で Google や他の検索エンジンからデータを取得できます。](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## スクリーンショット diff --git a/docs/i18n/README-kr.md b/docs/i18n/README-kr.md index 47cefb6d35..676c72e3c3 100644 --- a/docs/i18n/README-kr.md +++ b/docs/i18n/README-kr.md @@ -111,6 +111,7 @@ MarkText는 커뮤니티의 지원으로 운영되는 오픈소스 Markdown 편 | [](https://serpapi.com/?utm_source=marktext) | [빠르고 쉬우며 완전한 API로 Google 및 기타 검색 엔진에서 데이터를 수집하세요.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## 스크린샷 diff --git a/docs/i18n/README-pt.md b/docs/i18n/README-pt.md index 33ec1f338e..4f6af02f12 100644 --- a/docs/i18n/README-pt.md +++ b/docs/i18n/README-pt.md @@ -110,6 +110,7 @@ MarkText é um editor Markdown de código aberto impulsionado pelo apoio de sua | [](https://serpapi.com/?utm_source=marktext) | [Extraia dados do Google e de outros mecanismos de busca com nossa API rápida, fácil e completa.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Capturas de tela diff --git a/docs/i18n/README-tr.md b/docs/i18n/README-tr.md index d115e7a456..3ed94b8782 100644 --- a/docs/i18n/README-tr.md +++ b/docs/i18n/README-tr.md @@ -111,6 +111,7 @@ MarkText, topluluğunun desteğiyle hayata geçirilmiş açık kaynaklı bir Mar | [](https://serpapi.com/?utm_source=marktext) | [Hızlı, kolay ve kapsamlı API'miz ile Google ve diğer arama motorlarından veri çekin.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Ekran Görüntüsü diff --git a/docs/i18n/README-zh_cn.md b/docs/i18n/README-zh_cn.md index 849f7277fb..b8202f1157 100644 --- a/docs/i18n/README-zh_cn.md +++ b/docs/i18n/README-zh_cn.md @@ -111,6 +111,7 @@ MarkText 是一款由社区支持驱动的开源 Markdown 编辑器。如果 Mar | [](https://serpapi.com/?utm_source=marktext) | [通过我们快速、便捷且完整的 API 抓取 Google 及其他搜索引擎的数据。](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## 截图 diff --git a/docs/i18n/README-zh_tw.md b/docs/i18n/README-zh_tw.md index 80819539f4..2fdb91fb71 100644 --- a/docs/i18n/README-zh_tw.md +++ b/docs/i18n/README-zh_tw.md @@ -111,6 +111,7 @@ MarkText 是一款由社群支持驅動的開源 Markdown 編輯器。如果 Mar | [](https://serpapi.com/?utm_source=marktext) | [透過我們快速、便捷且完整的 API 抓取 Google 及其他搜尋引擎的資料。](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| +| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## 截圖 diff --git a/packages/website/public/assets/ukey.png b/packages/website/public/assets/ukey.png new file mode 100644 index 0000000000000000000000000000000000000000..8ffd2f90a3932637984941b1048b4e2b457a76e5 GIT binary patch literal 14568 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 bQ-QZeLY%!fQn%naKol`y>9_fUAHV!Bb}R-& literal 0 HcmV?d00001 diff --git a/packages/website/public/docs/assets/sponsors/ukey.png b/packages/website/public/docs/assets/sponsors/ukey.png new file mode 100644 index 0000000000000000000000000000000000000000..8ffd2f90a3932637984941b1048b4e2b457a76e5 GIT binary patch literal 14568 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 bQ-QZeLY%!fQn%naKol`y>9_fUAHV!Bb}R-& literal 0 HcmV?d00001 diff --git a/packages/website/src/app/globals.css b/packages/website/src/app/globals.css index 29305df135..33e70e78b9 100644 --- a/packages/website/src/app/globals.css +++ b/packages/website/src/app/globals.css @@ -1058,6 +1058,12 @@ h2.sec-title { text-transform: uppercase; color: var(--muted); } +.sponsor-logos { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 22px; +} .sponsor-logo { display: inline-flex; align-items: center; @@ -1081,7 +1087,9 @@ h2.sec-title { width: auto; display: block; } -[data-theme='dark'] .sponsor-logo img { +/* Logos that carry their own background can't be recolored, so exclude them + from the dark-mode inversion that transparent single-color logos rely on. */ +[data-theme='dark'] .sponsor-logo img:not(.sponsor-logo-raw) { filter: brightness(0) invert(1); opacity: 0.9; } diff --git a/packages/website/src/components/Support.tsx b/packages/website/src/components/Support.tsx index 0b70a813d2..f391b9dd57 100644 --- a/packages/website/src/components/Support.tsx +++ b/packages/website/src/components/Support.tsx @@ -24,9 +24,14 @@ export default function Support() {
Sponsored by - - SerpApi - +
diff --git a/packages/website/src/lib/downloads.ts b/packages/website/src/lib/downloads.ts index 1abafa5978..af65f19c42 100644 --- a/packages/website/src/lib/downloads.ts +++ b/packages/website/src/lib/downloads.ts @@ -9,5 +9,6 @@ export const DOWNLOAD = { sponsor: 'https://github.com/sponsors/marktext', twitter: 'https://twitter.com/intent/tweet?via=marktextme&url=https://github.com/marktext/marktext/&text=What%20do%20you%20want%20to%20say%20to%20app?&hashtags=happyMarkText', - serpapi: 'https://serpapi.com/?utm_source=marktext' + serpapi: 'https://serpapi.com/?utm_source=marktext', + ukey: 'https://www.ukey.com' } From a6e82021690d53aca0e11c4439b41962b85164bf Mon Sep 17 00:00:00 2001 From: Ran Luo Date: Fri, 3 Jul 2026 17:48:41 +0800 Subject: [PATCH 2/2] fix(desktop): apply editor max-width to @muyajs/core content column (#4828) (#4830) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "editor max width" preference (Preferences → Editor → Text Editor) had no effect on the default light theme since the migration to @muyajs/core. `setEditorWidth` injected only the legacy camelCase CSS variable `--editorAreaWidth`, which the old muyajs engine read. The active @muyajs/core engine sizes its content column via the kebab-case `--editor-area-width` (`.mu-container` max-width). The camelCase→kebab bridge exists only in the named theme CSS files, so under the default light theme the override targeted a variable nothing consumes and the width stayed pinned at muya's 800px default. Source mode still honored the pref (it reads the camelCase var), which is why the regression was WYSIWYG-only. Set both variables in the injected override so the width takes effect on every theme uniformly. The `calc(100px + value)` accounts for the container's 100px horizontal padding, matching `.mu-container`. Co-authored-by: Claude Opus 4.8 (1M context) --- packages/desktop/src/renderer/src/util/theme.ts | 7 +++++-- .../test/unit/specs/editor-theme-style.spec.ts | 12 +++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/desktop/src/renderer/src/util/theme.ts b/packages/desktop/src/renderer/src/util/theme.ts index fdba7d49d3..b940531723 100644 --- a/packages/desktop/src/renderer/src/util/theme.ts +++ b/packages/desktop/src/renderer/src/util/theme.ts @@ -201,8 +201,11 @@ export const setEditorWidth = (value: string): void => { const EDITOR_WIDTH_STYLE_ID = 'editor-width' let result = '' if (value && /^[0-9]+(?:ch|px|%)$/.test(value)) { - // Overwrite the theme value and add 100px for padding. - result = `:root { --editorAreaWidth: calc(100px + ${value}); }` + // Add 100px for the container's horizontal padding. Set both the legacy + // camelCase var (source mode) and the kebab-case var the active + // @muyajs/core engine reads for `.mu-container` max-width (issue #4828). + const width = `calc(100px + ${value})` + result = `:root { --editorAreaWidth: ${width}; --editor-area-width: ${width}; }` } let styleEle = document.querySelector(`#${EDITOR_WIDTH_STYLE_ID}`) as HTMLStyleElement | null if (!styleEle) { diff --git a/packages/desktop/test/unit/specs/editor-theme-style.spec.ts b/packages/desktop/test/unit/specs/editor-theme-style.spec.ts index f9edf72a23..28d8ffb07c 100644 --- a/packages/desktop/test/unit/specs/editor-theme-style.spec.ts +++ b/packages/desktop/test/unit/specs/editor-theme-style.spec.ts @@ -83,11 +83,21 @@ describe('theme.ts style injection helpers', () => { setEditorWidth(value) expect(styleHtml(WIDTH_STYLE_ID)).toBe( - `:root { --editorAreaWidth: calc(100px + ${value}); }` + `:root { --editorAreaWidth: calc(100px + ${value}); --editor-area-width: calc(100px + ${value}); }` ) } ) + it('overrides the active @muyajs/core width variable, not only the legacy one', () => { + // The WYSIWYG engine reads the kebab-case `--editor-area-width` + // (`.mu-container` max-width); the legacy camelCase `--editorAreaWidth` + // only reaches source mode. Both must be set or the preference is a no-op + // on the default theme (issue #4828). + setEditorWidth('60%') + + expect(styleHtml(WIDTH_STYLE_ID)).toContain('--editor-area-width: calc(100px + 60%);') + }) + it('clears the override (empty innerHTML) for an empty string', () => { setEditorWidth('800px') setEditorWidth('')