Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(blocks): microsheet-block init #8687

Open
wants to merge 28 commits into
base: master
Choose a base branch
from

Conversation

raintoway
Copy link
Contributor

@raintoway raintoway commented Nov 7, 2024

1

Description

A block contains other block, is useful for user to organize their thoughts. easy to access the structure of author's thoughts.

this block is used by my organization frequently and stably

Feature

  1. flat data structure that minimizes the number of conflicts resolved by Yjs as much as possible
  2. maximize the reuse of existing architecture capabilities and add this block in a plugin manner.
  3. can contain other block
  4. crud of row and column
  5. selection
    • area selection
    • row selection
    • column selection
  6. easy to copy a new microsheet-block from part of other microsheet-block's area
  7. user-friendly UI and interaction

More

As a block-based document system, I believe the richness of blocks is very important, as it directly relates to the user experience.

this block can attract users' preferences and engage more users, which is useful to commercialization process

Ps

if u agree this block , e2e test and unit test will coming soon

@raintoway raintoway requested a review from a team as a code owner November 7, 2024 06:44
Copy link

changeset-bot bot commented Nov 7, 2024

⚠️ No Changeset found

Latest commit: 0d8d561

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Nov 7, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
blocksuite ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 18, 2024 6:42am

Copy link

vercel bot commented Nov 7, 2024

@raintoway is attempting to deploy a commit to the toeverything Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

graphite-app bot commented Nov 7, 2024

Your org has enabled the Graphite merge queue for merging into master

Add the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

Copy link

nx-cloud bot commented Nov 7, 2024

☁️ Nx Cloud Report

CI is running/has finished running commands for commit 0d8d561. As they complete they will appear below. Click to see the status, the terminal output, and the build insights.

📂 See all runs for this CI Pipeline Execution


✅ Successfully ran 1 target

Sent with 💌 from NxCloud.

@raintoway raintoway changed the title Feat/microsheet-block feat(blocks): microsheet-block init Nov 7, 2024
@zanwei
Copy link
Member

zanwei commented Nov 7, 2024

hi @raintoway

Thank you for your contributions! They’re really impressive. However, on the UI side, we’d suggest using our new CSS variables prefixed with --affine-v2 for specific variable names.

As for the feature side, we believe that only basic text (with multi-format options) and an inline view block type for @ linked docs are needed; additional types aren’t necessary.

@raintoway
Copy link
Contributor Author

hi @raintoway

Thank you for your contributions! They’re really impressive. However, on the UI side, we’d suggest using our new CSS variables prefixed with --affine-v2 for specific variable names.

As for the feature side, we believe that only basic text (with multi-format options) and an inline view block type for @ linked docs are needed; additional types aren’t necessary.

i got the point about the UI side, but the feature side, well.. u mean only basic text and inline-view of @ linked docs in cell is enough ? just like database-block ?
if is, the original reason i design this block as follow

  1. As a block-based document system, I believe the richness of blocks is very important, as it directly relates to the user experience.

  2. this block can attract users' preferences and engage more users, which is useful to commercialization process

Copy link
Member

@doodlewind doodlewind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your significant contribution with the microsheet-block! We truly appreciate the time and effort you've invested in this feature.

After careful review, we have some concerns about merging this as a first-party block. The current implementation includes substantial code duplication from the database block (around 15,000 lines), which would create significant maintenance challenges. As a first-party block that would be released in Affine, we need to ensure long-term maintainability and backward compatibility due to our local-first approach.

For major features like this, we typically encourage discussing the implementation approach with the core team beforehand. Historical experience has shown that large features merged without prior alignment often become challenging to maintain over time.

We would love to see this work continue as part of the blocksuite-examples repository instead. This would allow the community to benefit from your implementation while providing more flexibility for experimentation and iterations, without the constraints of first-party block maintenance requirements.

We're happy to provide guidance on moving the implementation to blocksuite-examples. Would you be interested in exploring this path forward?

@raintoway
Copy link
Contributor Author

raintoway commented Nov 19, 2024

Thank you for your significant contribution with the microsheet-block! We truly appreciate the time and effort you've invested in this feature.

After careful review, we have some concerns about merging this as a first-party block. The current implementation includes substantial code duplication from the database block (around 15,000 lines), which would create significant maintenance challenges. As a first-party block that would be released in Affine, we need to ensure long-term maintainability and backward compatibility due to our local-first approach.

For major features like this, we typically encourage discussing the implementation approach with the core team beforehand. Historical experience has shown that large features merged without prior alignment often become challenging to maintain over time.

We would love to see this work continue as part of the blocksuite-examples repository instead. This would allow the community to benefit from your implementation while providing more flexibility for experimentation and iterations, without the constraints of first-party block maintenance requirements.

We're happy to provide guidance on moving the implementation to blocksuite-examples. Would you be interested in exploring this path forward?

yeh ,i am interested in exploring this path forward.

And, I would appreciate it if this pull request could remain open for more people to discover it .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants