mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-23 04:43:20 +03:00
3978b2dfd2
Use new `transformer` to import onboarding json templates. The json files are generated via this gist https://gist.github.com/pengx17/ef92c305ac23123803a1a6a20e31f822 Not using the all-in-one `ZipTransformer` to import onboarding via a zip file. 1. The main concerns is that we still need to serve the blob resources via CDN to reduce user's blob usage. Otherwise the user will get the onboarding images being uploaded to cloud server every time he creates a new workspace. In this PR we extracted parts of the code from `ZipTransformer` in blocksuite and mute some code for uploading blobs. 2. it maybe not necessary to use zip for loading snapshots. This PR is a short term solution. whether or not to tune the transformer api design may need further discussions. fix TOV-264
31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# @affine/templates
|
|
|
|
Manages template files for use in AFFiNE. For now we only support onboarding templates.
|
|
|
|
## How to update
|
|
|
|
Before we offer a better solution, to update the onboarding templates:
|
|
|
|
1. run AFFiNE core locally (dev mode)
|
|
2. expose `ZipTransformer` to window. e.g., `import {ZipTransformer} from '@blocksuite/blocks'; window.ZipTransformer = ZipTransformer;`
|
|
3. run the following script
|
|
```js
|
|
(async () => {
|
|
// make sure ZipTransformer is imported and attached to window
|
|
const { ZipTransformer } = window;
|
|
await Promise.all([...currentWorkspace.blockSuiteWorkspace.pages.values()].map(p => p.load()));
|
|
// wait for a few more seconds
|
|
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
const zipblob = await ZipTransformer.exportPages(currentWorkspace.blockSuiteWorkspace, [...currentWorkspace.blockSuiteWorkspace.pages.values()]);
|
|
const url = URL.createObjectURL(zipblob);
|
|
const a = document.createElement('a');
|
|
a.setAttribute('href', url);
|
|
a.setAttribute('download', `${currentWorkspace.id}.affine.zip`);
|
|
a.click();
|
|
a.remove();
|
|
URL.revokeObjectURL(url);
|
|
})();
|
|
```
|
|
4. unzip the file, replace the json files into onboarding folder (no need to include the `assets`)
|
|
5. run `yarn postinstall` to update the `templates.gen.ts` file
|