yoyoyohamapi
9c6d94f597
fix(core): hide start-with-ai if service feature is not enabled ( #11633 )
...
> CLOSE BS-3062
2025-04-11 08:31:05 +00:00
akumatus
883b1d50f2
fix(core): ask AI input box in the whiteboard is blocked by the menu ( #11634 )
...
Close [AI-50](https://linear.app/affine-design/issue/AI-50 ).

2025-04-11 08:13:00 +00:00
doouding
4e1fcca876
fix: mind map preview rendering ( #11565 )
...
Fixes [BS-3080](https://linear.app/affine-design/issue/BS-3080/ai-生成-mindmap-预览失败 )
2025-04-11 07:05:36 +00:00
Saul-Mirone
4f9a4e739a
feat(editor): extract linked doc widget package ( #11589 )
...
Close [BS-2738](https://github.com/toeverything/AFFiNE/pull/11589 )
2025-04-11 14:06:16 +08:00
doodlewind
a5ab66d6cd
feat(editor): add basic code support in turbo renderer ( #11619 )
...
This PR adds basic support for code block:
[Screen Recording 2025-04-10 at 8.13.26 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/5d749979-f7f1-4e4d-ba5b-bc4ba29f8b83.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/5d749979-f7f1-4e4d-ba5b-bc4ba29f8b83.mov )
2025-04-11 04:28:51 +00:00
L-Sun
cb7f15296a
chore(ios): rename keyboard css var ( #11595 )
2025-04-11 02:47:29 +00:00
EYHN
16d5b0df95
fix(core): fix event timing in storage ( #11628 )
2025-04-11 02:32:12 +00:00
liuyi
f0fb1447a4
chore(core): update license price link ( #11616 )
2025-04-10 19:54:48 +08:00
EYHN
0f39ab4ea4
fix(core): not revalidate notification count when logged out ( #11617 )
2025-04-10 19:54:36 +08:00
liuyi
e79e4c9e9b
refactor(core): add version in worker url ( #11614 )
...
Co-authored-by: renovate <29139614+renovate@users.noreply.github.com >
2025-04-10 11:12:49 +00:00
doodlewind
dba8e00fb6
feat(editor): add basic note support in turbo renderer ( #11607 )
...
After landing layout tree refactoring, this PR adds basic note support in turbo renderer.
In this demo recording, the code and image block needs to be further supported.
[Screen Recording 2025-04-10 at 5.16.15 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov )
2025-04-10 09:52:33 +00:00
renovate
c36dc9318c
chore: bump up all non-major dependencies ( #11600 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@react-email/components](https://redirect.github.com/resend/react-email ) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components )) | [`0.0.35` -> `0.0.36`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.35/0.0.36 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.48.0` -> `5.48.1`](https://renovatebot.com/diffs/npm/bullmq/5.48.0/5.48.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs ) | `1.2.17` -> `1.2.18` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | build-dependencies | patch |
| [mimalloc](https://redirect.github.com/purpleprotocol/mimalloc_rust ) | `0.1.45` -> `0.1.46` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [react-email](https://redirect.github.com/resend/react-email ) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/react-email )) | [`4.0.3` -> `4.0.7`](https://renovatebot.com/diffs/npm/react-email/4.0.3/4.0.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [androidx.compose.material3:material3](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.2 ) ([source](https://cs.android.com/androidx/platform/frameworks/support )) | `1.3.1` -> `1.3.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [org.jetbrains.kotlinx:kotlinx-coroutines-core](https://redirect.github.com/Kotlin/kotlinx.coroutines ) | `1.10.1` -> `1.10.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://redirect.github.com/Kotlin/kotlinx.coroutines ) | `1.10.1` -> `1.10.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [com.android.tools.build:gradle](https://developer.android.com/studio/build ) ([source](https://android.googlesource.com/platform/tools/base )) | `8.7.2` -> `8.9.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [androidx.core:core-ktx](https://developer.android.com/jetpack/androidx/releases/core#1.16.0 ) ([source](https://cs.android.com/androidx/platform/frameworks/support )) | `1.15.0` -> `1.16.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
---
### Release Notes
<details>
<summary>resend/react-email (@​react-email/components)</summary>
### [`v0.0.36`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/components/CHANGELOG.md#0036 )
[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.35...@react-email/components@0.0.36 )
##### Patch Changes
- Updated dependencies \[[`f4c5456`](https://redirect.github.com/resend/react-email/commit/f4c5456 )]
- Updated dependencies \[[`f4c5456`](https://redirect.github.com/resend/react-email/commit/f4c5456 )]
- [@​react-email/render](https://redirect.github.com/react-email/render )[@​1](https://redirect.github.com/1 ).0.6
- [@​react-email/code-block](https://redirect.github.com/react-email/code-block )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/body](https://redirect.github.com/react-email/body )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/button](https://redirect.github.com/react-email/button )[@​0](https://redirect.github.com/0 ).0.19
- [@​react-email/code-inline](https://redirect.github.com/react-email/code-inline )[@​0](https://redirect.github.com/0 ).0.5
- [@​react-email/column](https://redirect.github.com/react-email/column )[@​0](https://redirect.github.com/0 ).0.13
- [@​react-email/container](https://redirect.github.com/react-email/container )[@​0](https://redirect.github.com/0 ).0.15
- [@​react-email/font](https://redirect.github.com/react-email/font )[@​0](https://redirect.github.com/0 ).0.9
- [@​react-email/head](https://redirect.github.com/react-email/head )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/heading](https://redirect.github.com/react-email/heading )[@​0](https://redirect.github.com/0 ).0.15
- [@​react-email/hr](https://redirect.github.com/react-email/hr )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/html](https://redirect.github.com/react-email/html )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/img](https://redirect.github.com/react-email/img )[@​0](https://redirect.github.com/0 ).0.11
- [@​react-email/link](https://redirect.github.com/react-email/link )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/markdown](https://redirect.github.com/react-email/markdown )[@​0](https://redirect.github.com/0 ).0.14
- [@​react-email/preview](https://redirect.github.com/react-email/preview )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/row](https://redirect.github.com/react-email/row )[@​0](https://redirect.github.com/0 ).0.12
- [@​react-email/section](https://redirect.github.com/react-email/section )[@​0](https://redirect.github.com/0 ).0.16
- [@​react-email/tailwind](https://redirect.github.com/react-email/tailwind )[@​1](https://redirect.github.com/1 ).0.4
- [@​react-email/text](https://redirect.github.com/react-email/text )[@​0](https://redirect.github.com/0 ).1.1
</details>
<details>
<summary>taskforcesh/bullmq (bullmq)</summary>
### [`v5.48.1`](https://redirect.github.com/taskforcesh/bullmq/compare/v5.48.0...b00731469ebbc65d35003c48da093e48c0ccc6ed )
[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.48.0...v5.48.1 )
</details>
<details>
<summary>rust-lang/cc-rs (cc)</summary>
### [`v1.2.18`](https://redirect.github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#1218---2025-04-04 )
[Compare Source](https://redirect.github.com/rust-lang/cc-rs/compare/cc-v1.2.17...cc-v1.2.18 )
##### Other
- Regenerate target info ([#​1450](https://redirect.github.com/rust-lang/cc-rs/pull/1450 ))
- Use `std::thread::available_parallelism` for determining the default number of jobs ([#​1447](https://redirect.github.com/rust-lang/cc-rs/pull/1447 ))
- Fix mips64-openwrt-linux-musl parsing ([#​1449](https://redirect.github.com/rust-lang/cc-rs/pull/1449 ))
- Use compiler prefix `x86_64-linux-musl` ([#​1443](https://redirect.github.com/rust-lang/cc-rs/pull/1443 ))
</details>
<details>
<summary>purpleprotocol/mimalloc_rust (mimalloc)</summary>
### [`v0.1.46`](https://redirect.github.com/purpleprotocol/mimalloc_rust/releases/tag/v0.1.46 ): Version 0.1.46
[Compare Source](https://redirect.github.com/purpleprotocol/mimalloc_rust/compare/v0.1.45...v0.1.46 )
##### Changes
- Fixed musl builds.
</details>
<details>
<summary>resend/react-email (react-email)</summary>
### [`v4.0.7`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.7 ): react-email 4.0.7
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.6...react-email@4.0.7 )
#### What's Changed
- [`403e415`](https://redirect.github.com/resend/react-email/commit/403e415 ): Fix `deno` not working as an option for `email build`
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.6...react-email@4.0.7
### [`v4.0.6`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#406 )
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.5...react-email@4.0.6 )
##### Patch Changes
- [`809130e`](https://redirect.github.com/resend/react-email/commit/809130e ): `next@15.2.4`
### [`v4.0.5`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.5 ): react-email 4.0.5
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.4...react-email@4.0.5 )
#### What's Changed
- [`e1dc351`](https://redirect.github.com/resend/react-email/commit/e1dc351 ): Add support for path aliases when linter runs tailwind config
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.4...react-email@4.0.5
### [`v4.0.4`](https://redirect.github.com/resend/react-email/releases/tag/react-email%404.0.4 ): react-email 4.0.4
[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.3...react-email@4.0.4 )
#### What's Changed
- [`1a7f9e6`](https://redirect.github.com/resend/react-email/commit/1a7f9e6 ): Update dependencies: `next@15.2.3`
**Full Changelog**: https://github.com/resend/react-email/compare/react-email@4.0.3...react-email@4.0.4
</details>
<details>
<summary>Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)</summary>
### [`v1.10.2`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-1102 )
[Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.10.1...1.10.2 )
- Fixed the `kotlinx-coroutines-debug` JAR file including the `module-info.class` file twice, resulting in failures in various tooling ([#​4314](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4314 )). Thanks, [@​RyuNen344](https://redirect.github.com/RyuNen344 )!
- Fixed `Flow.stateIn` hanging when the scope is cancelled in advance or the flow is empty ([#​4322](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4322 )). Thanks, [@​francescotescari](https://redirect.github.com/francescotescari )!
- Improved handling of dispatcher failures in `.limitedParallelism` ([#​4330](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4330 )) and during flow collection ([#​4272](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4272 )).
- Fixed `runBlocking` failing to run its coroutine to completion in some cases if its JVM thread got interrupted ([#​4399](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4399 )).
- Small tweaks, fixes, and documentation improvements.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-10 09:04:18 +00:00
doodlewind
f85b35227b
feat(editor): replace flat layout cache with tree in turbo renderer ( #11319 )
...
### TL;DR
Refactored the BlockSuite turbo renderer to use a hierarchical tree structure for layouts instead of a flat list, improving rendering accuracy and performance.
### What changed?
- Redesigned the layout system to use a tree structure (`ViewportLayoutTree`) that better represents the document hierarchy
- Added `blockId` to all layout objects for better tracking and debugging
- Updated the layout query mechanism to work with models directly instead of components
- Enhanced error handling with more descriptive warnings and error messages
- Improved the painting process to traverse the layout tree recursively
- Fixed viewport coordinate calculations for more accurate rendering
- Updated the worker communication to support the new tree-based layout structure
### Why make this change?
The previous flat layout structure didn't properly represent the hierarchical nature of documents, leading to rendering issues with nested blocks. This tree-based approach:
1. Better represents the actual document structure
2. Improves rendering accuracy for nested elements
3. Makes debugging easier with more consistent block identification
4. Provides a more robust foundation for future rendering optimizations
5. Reduces the likelihood of rendering artifacts when scrolling or zooming
2025-04-10 08:49:23 +00:00
Flrande
cc257f4fbe
chore(editor): add track for mention ( #11594 )
2025-04-10 16:33:11 +08:00
liuyi
d1bd809608
chore(core): add pricing link in license panel ( #11598 )
2025-04-10 08:18:26 +00:00
JimmFly
eb664f3016
fix(core): improve share menu width and member name overflow handling ( #11527 )
2025-04-10 15:33:12 +08:00
liuyi
e376aa57c5
chore: bring treeshake back ( #11577 )
2025-04-10 14:12:36 +08:00
Flrande
0ce5a9544b
fix(editor): update doc role instead of workspace role when invite in mention panel ( #11588 )
...
Close [BS-3048: mention 时检测的是文档权限不是 workspace 权限](https://linear.app/affine-design/issue/BS-3048/mention-时检测的是文档权限不是-workspace-权限 )
2025-04-10 05:52:38 +00:00
darkskygit
5199a74426
feat(server): migrate copilot provider sdk ( #11584 )
...
fix AI-15
fix AI-16
2025-04-10 04:14:09 +00:00
CatsJuice
bf293d8dca
fix(core): update background of sign-in button and input ( #11118 )
2025-04-10 03:24:37 +00:00
EYHN
e7d4684531
feat(core): hide sidebar when sidebar is not visible ( #11560 )
2025-04-10 02:56:11 +00:00
forehalo
cdbcb8a42a
chore: adjust webpack output ( #11573 )
...
- automatically split i18n resources into i18n-langs.{lang} naming
- force worker resources to be bundled in one file
2025-04-10 01:48:28 +00:00
JimmFly
e58f230354
fix(core): unexpected style of redeem code button ( #11540 )
...
close AF-2482
2025-04-09 13:57:11 +00:00
forehalo
4e56a8447b
fix(core): missing i18n and button margin ( #11568 )
...
close AF-2486
2025-04-09 13:40:01 +00:00
pengx17
34b6e7ef88
feat(core): support splitting audio blobs before submitting to backend ( #11572 )
...
fix AF-2484
2025-04-09 12:44:37 +00:00
zzj3720
ba875a120f
feat(editor): support image preview for attachment columns ( #11544 )
...
close: BS-2634
2025-04-09 10:50:41 +00:00
pengx17
c09bd8c422
chore(electron): self-hosted mixpanel flag ( #11561 )
...
fix AF-2341

2025-04-09 08:34:27 +00:00
darkskygit
15abb78a6b
feat(server): support sliced audio ( #11562 )
...
fix AF-2479
2025-04-09 08:21:19 +00:00
akumatus
3bf3068650
fix(core): after clearing the history, new chat will report an error ( #11549 )
...
Close [BS-3025](https://linear.app/affine-design/issue/BS-3025 )
2025-04-09 07:22:31 +00:00
akumatus
82ade96b3f
fix(core): online search button status not updated to the search prompt ( #11542 )
...
Close [BS-3079](https://linear.app/affine-design/issue/BS-3079 ).
2025-04-09 06:51:35 +00:00
akumatus
c9790ed854
refactor(core): ai session create ( #11539 )
...
Close [BS-3079](https://linear.app/affine-design/issue/BS-3079 ).
- Separate the create session logic from the `createMessage function`.
- Ensure the session is created before executing any chat or actions.
- Convert the `AIActions` into asynchronous functions.
- Transfer the update prompt name logic to the chat action.
- Introduce a networkSearch field in `AITextActionOptions`.
- Eliminate the redundant `LAST_ROOT_SESSION_ID`.
2025-04-09 06:18:57 +00:00
akumatus
1e9561b46c
fix(core): retry on chat-block, view components not update as expected ( #11553 )
...
Close [BS-3026](https://linear.app/affine-design/issue/BS-3026 )
2025-04-09 03:30:19 +00:00
pengx17
f0aafda509
fix(electron): cannot restart recording the same app again ( #11498 )
...
fix AF-2455
2025-04-09 02:37:50 +00:00
pengx17
a2125787c2
fix(electron): use another origin for popup to disable zoom in/out issue of the popup window ( #11506 )
...
fix AF-2473
2025-04-08 10:18:09 +00:00
pengx17
93d8e22b07
feat(electron): meeting recording permissions checks ( #11505 )
...
fix AF-2472, AF-2446


2025-04-08 10:18:08 +00:00
liuyi
ebdeaf3783
chore(core): reorg polyfill ( #11528 )
2025-04-08 14:59:54 +08:00
darkskygit
558e84138c
chore: remove lame encoder ( #11529 )
2025-04-08 05:02:30 +00:00
yoyoyohamapi
49c6ad7c04
feat(core): ai panel adaptation for edgeless theme ( #11509 )
...
### TL;DR
AI panel adaptation for Edgeless theme
> CLOSE BS-3017

2025-04-08 02:29:57 +00:00
JimmFly
af48df230d
feat(core): add docRole to inviteUserDocRole tracking event ( #11501 )
...
close AF-2476
2025-04-07 08:51:45 +00:00
EYHN
f93acc6635
fix(android): fix uniffi bindgen ( #11500 )
2025-04-07 08:37:35 +00:00
forehalo
40f218c898
chore: set base version to 0.21
2025-04-07 16:10:32 +08:00
pengx17
952f1878a6
fix(core): add option to disable middle click paste behavior on linux ( #11496 )
...
fix BS-3028
2025-04-07 07:01:37 +00:00
pengx17
92240fc1a2
chore(electron): add community link for meeting feature ( #11494 )
...
fix AF-2471

2025-04-07 06:15:50 +00:00
pengx17
fddf68f061
fix(core): stop media when audio block is removed ( #11492 )
2025-04-07 06:15:50 +00:00
JimmFly
53dff7a158
fix(admin): adjust available upgrade button style ( #11489 )
2025-04-07 05:25:34 +00:00
Saul-Mirone
8c473cf685
fix(editor): adjust block meta info ( #11488 )
...
Closes: BS-2901
2025-04-07 05:12:04 +00:00
yoyoyohamapi
da580076b0
fix(core): cannot select text in electron ( #11486 )
2025-04-07 03:19:34 +00:00
donteatfriedrice
568a390b75
feat(editor): support markdown adapter preprocessed with latex delimiters ( #11431 )
...
To close [BS-2870](https://linear.app/affine-design/issue/BS-2870/支持识别-和- [-包裹内容为公式)
## Add Markdown Preprocessor Extension and Enhanced LaTeX Support
### Markdown Preprocessor Extension
This PR introduces a new preprocessor extension for Markdown adapters that allows preprocessing of content before conversion:
Adds a new PreprocessorManager for handling text transformations
Introduces extensible preprocessor interface that supports different processing levels (block/slice/doc)
Integrates preprocessor extension into the existing Markdown adapter workflow
### LaTeX Support Enhancement
Extends LaTeX support to handle both traditional and alternative syntax:
Adds support for backslash LaTeX syntax:
Block math: ```\[...\] ``` alongside existing ```$$...$$```
Inline math: ```\(...\) ``` alongside existing ```$...$```
Implements LaTeX preprocessor to standardize syntax before conversion
Updates tests to cover both syntax variants
2025-04-07 02:18:04 +00:00
Saul-Mirone
bb1270061a
feat(editor): gfx template package ( #11480 )
2025-04-06 12:24:13 +00:00
Saul-Mirone
41499c1cd6
refactor(editor): merge implementation of createTemplateJob ( #11474 )
2025-04-05 12:59:48 +00:00