Some checks failed
ðŠ Build / build (push) Has been cancelled
𧪠CI Test / test shard (1/4) (push) Has been cancelled
𧪠CI Test / test shard (2/4) (push) Has been cancelled
𧪠CI Test / test shard (3/4) (push) Has been cancelled
𧪠CI Test / test shard (4/4) (push) Has been cancelled
𧪠CI Test / test (push) Has been cancelled
𧪠CI Test / eslint (push) Has been cancelled
𧪠CI Test / typecheck (push) Has been cancelled
ð« Sync to Pro / dispatch-sync (push) Has been cancelled
ð® Sync Mirror / sync (push) Has been cancelled
375 lines
27 KiB
Markdown
375 lines
27 KiB
Markdown
<div align="center">
|
||
|
||
<img src="../img/banner.png" alt="Univer SDK" width="800" />
|
||
|
||
**ã¹ãã¬ããã·ãŒããããã¥ã¡ã³ãããã¬ãŒã³ããŒã·ã§ã³ãæ§ç¯ããããã®ãã«ã¹ã¿ãã¯ã§ã¢ã€ãœã¢ãŒãã£ãã¯ãªãªãã£ã¹ SDKã**
|
||
|
||
Univer ã¯ããã©ã°ã€ã³ã¢ãŒããã¯ãã£ãCanvas ããŒã¹ã®ã¬ã³ããªã³ã°ã
|
||
æ°åŒãšã³ãžã³ããã©ãŠã¶ãš Node.js ã®äž¡æ¹ã§äœ¿ãã Facade API ã«ããã
|
||
çµã¿èŸŒã¿åã®çç£æ§äœéšãæ§ç¯ã§ããŸãã
|
||
|
||
[English](../../README.md) | [ç®äœäžæ](./zh-CN.md) | [ç¹é«äžæ](./zh-TW.md) | æ¥æ¬èª | [íêµìŽ](./ko-KR.md) | [Español](./es-ES.md)
|
||
|
||
[ð ããã¥ã¡ã³ã](https://docs.univer.ai) | [âš ã·ã§ãŒã±ãŒã¹](https://docs.univer.ai/showcase) | [ð API Reference](https://docs.univer.ai/reference/classes/univer) | [ð ããã°](https://docs.univer.ai/blog)
|
||
|
||
[](https://github.com/dream-num/univer/releases)
|
||
[](../../LICENSE)
|
||
[](https://github.com/dream-num/univer/actions/workflows/build-packages.yml)
|
||
[](https://www.codefactor.io/repository/github/dream-num/univer/overview/dev)
|
||
[](https://codecov.io/gh/dream-num/univer)
|
||
|
||
[](https://github.com/dream-num/univer/stargazers)
|
||
[](https://github.com/dream-num/univer/graphs/contributors)
|
||
[](https://github.com/dream-num/univer/issues)
|
||
[](https://github.com/dream-num/univer/commits/dev/)
|
||
|
||
[](https://discord.gg/z3NKNT6D2f)
|
||
[](https://twitter.com/univerhq)
|
||
[](https://opencollective.com/univer)
|
||
|
||
[](https://trendshift.io/repositories/4376)
|
||
|
||
</div>
|
||
|
||
## âš Univer ãšã¯ïŒ
|
||
|
||
Univer ã¯ãèªåã®ãããã¯ãå
ã«ãªãã£ã¹ã¢ããªã±ãŒã·ã§ã³ãäœãããã®ãªãŒãã³ãœãŒã¹ SDK ã§ããã¹ãã¬ããã·ãŒããããã¥ã¡ã³ãããã¬ãŒã³ããŒã·ã§ã³äœéšã«å¿
èŠãªæ§æèŠçŽ ãæäŸãã€ã€ããã¹ãåã¢ããªãåºå® UI ã匷å¶ããŸããã
|
||
|
||
Univer ã¯æ¬¡ã®ãããªå Žé¢ã«é©ããŠããŸãã
|
||
|
||
- SaaSã瀟å
ããŒã«ãBI ã¯ãŒã¯ãããŒãAI ã¢ããªã±ãŒã·ã§ã³ã«ã¹ãã¬ããã·ãŒããããã¥ã¡ã³ãç·šéãçµã¿èŸŒãã
|
||
- ãã©ãŠã¶ãšåãã¢ãŒããã¯ãã£ã§ããµãŒããŒäžã®ã¯ãŒã¯ããã¯/ããã¥ã¡ã³ãåŠçãå®è¡ããã
|
||
- å¿
èŠãªæ©èœã ãããã©ã°ã€ã³ã§çµã¿åãããããŸã㯠presets ã§çŽ æ©ãå§ããã
|
||
- ã«ã¹ã¿ã ãã©ã°ã€ã³ãã³ãã³ãããµãŒãã¹ãUI ã³ã³ããŒãã³ããFacade API ã§æ¯ãèããæ¡åŒµããã
|
||
|
||
Univer ã¯åãªãã¹ãã¬ããã·ãŒããã¡ã€ã«ãã¥ãŒã¢ã§ã¯ãããŸãããç¬èªã®çç£æ§ã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã
|
||
|
||
## ð Highlights
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center" width="33%">
|
||
â¡<br />
|
||
<strong>å€§èŠæš¡ãªç·šéé¢ã«å¯Ÿå¿</strong><br />
|
||
<sub>Canvas ããŒã¹ã®ã¬ã³ããªã³ã°ãšå°çšã®æ°åŒãšã³ãžã³ã«ãããè€éãªã¯ãŒã¯ããã¯ã§ãå¿çæ§ãä¿ã¡ãŸãã</sub>
|
||
</td>
|
||
<td align="center" width="33%">
|
||
ð§©<br />
|
||
<strong>ãã©ã°ã€ã³åæã®èšèš</strong><br />
|
||
<sub>å¿
èŠãªæ©èœãçµã¿åããã眮æãé
å»¶èªã¿èŸŒã¿ãæ¡åŒµã§ããŸãã</sub>
|
||
</td>
|
||
<td align="center" width="33%">
|
||
ð€<br />
|
||
<strong>Headless AI åºç€</strong><br />
|
||
<sub>Node.js ã§ã¯ãŒã¯ããã¯ãšããã¥ã¡ã³ãã®ããžãã¯ãå®è¡ãããšãŒãžã§ã³ããèªååããµãŒããŒãµã€ãã¯ãŒã¯ãããŒãæ¯ããŸãã</sub>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" width="33%">
|
||
ð ïž<br />
|
||
<strong>ãããã¯ãåã SDK</strong><br />
|
||
<sub>ãã¬ãŒã ã¯ãŒã¯ã¢ããã¿ãŒãFacade APIãpresetsãheadless runtime ãå®éã®çµ±åçµè·¯ã«å¯Ÿå¿ããŸãã</sub>
|
||
</td>
|
||
<td align="center" width="33%">
|
||
ð<br />
|
||
<strong>Dark mode 察å¿</strong><br />
|
||
<sub>UI ã³ã³ããŒãã³ããšã¬ã³ããªã³ã°ãšã³ãžã³ã®äž¡æ¹ãã©ã€ã/ããŒã¯ããŒãã«å¯Ÿå¿ããŸãã</sub>
|
||
</td>
|
||
<td align="center" width="33%">
|
||
ð<br />
|
||
<strong>çµ±å Facade API</strong><br />
|
||
<sub>ãã©ãŠã¶ãš Node.js ã®äž¡æ¹ã§ãã¯ãŒã¯ããã¯ãç¯å²ãæ°åŒãããã¥ã¡ã³ããäžè²«ãã API ã§æ±ããŸãã</sub>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
## ð ãªã Univer ãªã®ãïŒ
|
||
|
||
- **ã¢ã€ãœã¢ãŒãã£ãã¯èšèš**ïŒãã©ãŠã¶ã® UI ã¢ããªãš Node.js ã®ãããã¬ã¹åŠçã®äž¡æ¹ã§åäœããŸãã
|
||
- **ãã©ã°ã€ã³åªå
ã¢ãŒããã¯ãã£**ïŒãã¹ãŠã®æ©èœã¯çµã¿åããå¯èœãªãã©ã°ã€ã³ãšããŠæäŸããã远å ãåé€ã眮æãé
å»¶èªã¿èŸŒã¿ãå¯èœã§ãã
|
||
- **Preset Mode ã«ããé«éãªçµ±å**ïŒããã«åãã¢ããªãå¿
èŠãªå Žåã¯ããã®ãªããžããªã® [`presets/`](../../presets) ã«ãã curated plugin collection ãå©çšã§ããŸãã
|
||
- **Plugin Mode ã«ããå®å
šãªå¶åŸ¡**ïŒã«ã¹ã¿ã èªã¿èŸŒã¿ãããå°ããªãã³ãã«ãæ·±ãçµ±åãå¿
èŠãªå Žåã¯ãããã±ãŒãžãæåã§çµã¿åãããããŸãã
|
||
- **Facade API**ïŒã¯ãŒã¯ããã¯ãã¯ãŒã¯ã·ãŒããç¯å²ãããã¥ã¡ã³ããæ°åŒãã³ãã³ããã€ãã³ããé«ã¬ãã« API ã§æ±ããŸãã
|
||
- **Canvas ã¬ã³ããªã³ã°ãšã³ãžã³**ïŒå€§èŠæš¡ãªç·šéå¯èœããã¥ã¡ã³ãé¢ããµããŒãããè€æ°ã®ææžã¿ã€ãã§ã¬ã³ããªã³ã°å±€ãå
±æããŸãã
|
||
- **æ¡åŒµå¯èœãª UI**ïŒReactãVueãWeb Componentsãåçš®ãã¬ãŒã ã¯ãŒã¯ã®ã¢ããªã±ãŒã·ã§ã³ã·ã§ã«ã«çµ±åã§ããŸãã
|
||
|
||
## â¡ ã¯ã€ãã¯ã¹ã¿ãŒã
|
||
|
||
è£œåæ©èœãåºãå©çšããæ§æã现ããå¶åŸ¡ããã«ã¯ **Plugin Mode** ã䜿çšããŸãã察å¿ãã SheetsãDocsãNode ã®æ§æã§ã¯ã**Preset Mode** ã䜿ããš curated setup ãããçãèšè¿°ã§ããŸãã
|
||
|
||
<details open>
|
||
<summary><strong>Plugin Mode</strong></summary>
|
||
|
||
Plugin Mode ã§ã¯ãããã±ãŒãžãã¹ã¿ã€ã«ã® importãlocale ã® mergeãFacade API ç»é²ããã©ã°ã€ã³èšå®ãããäœã¬ãã«ã§å¶åŸ¡ã§ããŸãã
|
||
|
||
```bash
|
||
pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
|
||
```
|
||
|
||
```ts
|
||
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
|
||
import { FUniver } from '@univerjs/core/facade'
|
||
import DesignEnUS from '@univerjs/design/locale/en-US'
|
||
import { UniverDocsPlugin } from '@univerjs/docs'
|
||
import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
|
||
import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
|
||
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
|
||
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
|
||
import { UniverSheetsPlugin } from '@univerjs/sheets'
|
||
import SheetsEnUS from '@univerjs/sheets/locale/en-US'
|
||
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
|
||
import SheetsFormulaEnUS from '@univerjs/sheets-formula/locale/en-US'
|
||
import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
|
||
import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
|
||
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
|
||
import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
|
||
import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
|
||
import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
|
||
import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
|
||
import { UniverUIPlugin } from '@univerjs/ui'
|
||
import UIEnUS from '@univerjs/ui/locale/en-US'
|
||
|
||
import '@univerjs/design/lib/index.css'
|
||
import '@univerjs/ui/lib/index.css'
|
||
import '@univerjs/docs-ui/lib/index.css'
|
||
import '@univerjs/sheets-ui/lib/index.css'
|
||
import '@univerjs/sheets-formula-ui/lib/index.css'
|
||
import '@univerjs/sheets-numfmt-ui/lib/index.css'
|
||
|
||
import '@univerjs/engine-formula/facade'
|
||
import '@univerjs/ui/facade'
|
||
import '@univerjs/sheets/facade'
|
||
import '@univerjs/sheets-ui/facade'
|
||
import '@univerjs/sheets-formula/facade'
|
||
import '@univerjs/sheets-numfmt/facade'
|
||
|
||
const univer = new Univer({
|
||
locale: LocaleType.EN_US,
|
||
locales: {
|
||
[LocaleType.EN_US]: mergeLocales(
|
||
DesignEnUS,
|
||
UIEnUS,
|
||
DocsUIEnUS,
|
||
SheetsEnUS,
|
||
SheetsUIEnUS,
|
||
SheetsFormulaEnUS,
|
||
SheetsFormulaUIEnUS,
|
||
SheetsNumfmtUIEnUS,
|
||
),
|
||
},
|
||
})
|
||
|
||
univer.registerPlugin(UniverRenderEnginePlugin)
|
||
univer.registerPlugin(UniverFormulaEnginePlugin)
|
||
univer.registerPlugin(UniverUIPlugin, { container: 'app' })
|
||
univer.registerPlugin(UniverDocsPlugin)
|
||
univer.registerPlugin(UniverDocsUIPlugin)
|
||
univer.registerPlugin(UniverSheetsPlugin)
|
||
univer.registerPlugin(UniverSheetsUIPlugin)
|
||
univer.registerPlugin(UniverSheetsFormulaPlugin)
|
||
univer.registerPlugin(UniverSheetsFormulaUIPlugin)
|
||
univer.registerPlugin(UniverSheetsNumfmtPlugin)
|
||
univer.registerPlugin(UniverSheetsNumfmtUIPlugin)
|
||
|
||
const univerAPI = FUniver.newAPI(univer)
|
||
univerAPI.createWorkbook({})
|
||
```
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary><strong>Preset Mode</strong></summary>
|
||
|
||
Preset ã¯ãå¿
èŠãª Facade API ç»é²ãšã¹ã¿ã€ã«ãå«ã Univer ãã©ã°ã€ã³ã® curated collection ã§ãã
|
||
|
||
```bash
|
||
pnpm add @univerjs/presets @univerjs/preset-sheets-core
|
||
```
|
||
|
||
```ts
|
||
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
|
||
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
|
||
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
|
||
|
||
import '@univerjs/preset-sheets-core/lib/index.css'
|
||
|
||
const { univerAPI } = createUniver({
|
||
locale: LocaleType.EN_US,
|
||
locales: {
|
||
[LocaleType.EN_US]: mergeLocales(UniverPresetSheetsCoreEnUS),
|
||
},
|
||
presets: [
|
||
UniverSheetsCorePreset({
|
||
container: 'app',
|
||
}),
|
||
],
|
||
})
|
||
|
||
univerAPI.createWorkbook({})
|
||
```
|
||
|
||
</details>
|
||
|
||
ããŒãžã«ã¯ã³ã³ãããå¿
èŠã§ãã
|
||
|
||
```html
|
||
<div id="app" style="height: 100vh"></div>
|
||
```
|
||
|
||
詳ãã㯠[Installation & Basic Usage guide](https://docs.univer.ai/guides/sheets/getting-started/installation)ã[`createUniver` reference](https://docs.univer.ai/reference/methods/create-univer)ã[Facade API reference](https://docs.univer.ai/reference/classes/univer) ãåç
§ããŠãã ããã
|
||
|
||
## ð§© Preset Mode ãš Plugin Mode
|
||
|
||
| éžæè¢ | 䜿ãå Žé¢ | ã¯ããã«èªããã® |
|
||
| --- | --- | --- |
|
||
| **Plugin Mode** | ããã±ãŒãžãæ§ææžã¿ã®äŸåé¢ä¿ãé
å»¶èªã¿èŸŒã¿ãå®è¡æã®æ§æãå³å¯ã«å¶åŸ¡ãããå Žåã | ãã®ãªããžããªã® [`examples/`](../../examples) ãš [architecture guide](https://docs.univer.ai/guides/recipes/architecture/univer) |
|
||
| **Preset Mode** | æå°éã®èšå®ã§ SheetsãDocsãNode ã®åäœç°å¢ãäœãããå Žåã | ãã®ãªããžããªã® [`presets/`](../../presets) ãš [getting started guide](https://docs.univer.ai/guides/sheets/getting-started/installation) |
|
||
| **Headless Mode** | UI ãªãã§ãµãŒããŒåŽã®ã¯ãŒã¯ããã¯/ããã¥ã¡ã³ãåŠçãæ°åŒèšç®ãèªååãè¡ãããå Žåã | [Headless Univer](https://docs.univer.ai/guides/sheets/getting-started/node) |
|
||
|
||
åã Univer ã®å調ãªãªãŒã¹ã©ã€ã³ã«å«ãŸãã `@univerjs/*` SDK ããã±ãŒãžã¯ãåäžããŒãžã§ã³ã«æããŠãã ããã`@univerjs/icons` ã `@univerjs/icons-svg` ãªã©ç¬ç«ããŠãªãªãŒã¹ãããããã±ãŒãžã¯ãSDK ã®ããŒãžã§ã³ã§ã¯ãªããåããã±ãŒãžãããã§ã¹ãã«å®£èšãããäºæããŒãžã§ã³ã䜿çšããŸããUniver Pro ã䜿çšããå Žåã¯ã`@univerjs-pro/*` ã察å¿ããå調ãªãªãŒã¹ã©ã€ã³ã«æããŠãã ããã
|
||
|
||
API äºææ§ãexperimental APIãinternal APIãdeprecation rules ã«ã€ããŠã¯ [API Stability Policy](../API_STABILITY.md) ãåç
§ããŠãã ããã
|
||
|
||
## ð§ äºææ§
|
||
|
||
- **ãã©ãŠã¶å®è¡ç°å¢**ïŒUniver 㯠Chrome 88 ãã¿ãŒã²ãããšããŠã³ã³ãã€ã«ãããŠãããEdge `>=88`ãFirefox `>=90`ãChrome `>=88`ãSafari `>=14.1`ãElectron `>=12` ã§åäœããããšãç®æããŠããŸãã
|
||
- **Polyfills**ïŒUniver 㯠`Intl.Segmenter` ã«äŸåããŠããŸãã察象ãã©ãŠã¶ãå®è¡ç°å¢ã察å¿ããŠããªãå Žåã¯ã`@formatjs/intl-segmenter` ãªã©ã® polyfill ã远å ããŠãã ããã
|
||
- **ãã«ãããŒã«**ïŒViteãesbuildãWebpack 5 ãæšå¥šããŸãã`package.json` ã® `exports` ãã£ãŒã«ãã«å¯Ÿå¿ããŠããªããã«ãããŒã«ïŒWebpack 4 ãªã©ïŒã§ã¯ã远å ã®ãã¹ãããã³ã°ãå¿
èŠã«ãªãå ŽåããããŸãã
|
||
- **React**ïŒUniver ã® view layer 㯠React 18 ããŒã¹ã§æ§ç¯ãããŠãããReact 18 ãš 19 ããµããŒãããŸããReact 16.9+ ãš 17 ã«ã¯æå°éã®äºæãµããŒããæäŸããŸãã
|
||
- **Node.js runtime**ïŒHeadless Univer 㯠Node.js `>=18.17.0` ããµããŒãããŸãããã® monorepo ã®éçºã«ã¯ Node.js `>=22.18` ãå¿
èŠã§ãã
|
||
|
||
## ð ïž æ§ç¯ã§ãããã®
|
||
|
||
| é å | ãªãŒãã³ãœãŒã¹ã®æ©èœ | Univer Pro æ¡åŒµ |
|
||
| --- | --- | --- |
|
||
| **Sheets** | ã¯ãŒã¯ããã¯ãã¯ãŒã¯ã·ãŒããç¯å²ãéžæãæ°åŒãæ°å€æžåŒããã£ã«ã¿ãŒããœãŒããããŒã¿æ€èšŒãæ¡ä»¶ä»ãæžåŒããã€ããŒãªã³ã¯ãã³ã¡ã³ããæ€çŽ¢ãšçœ®æãããŒããããŒãã«ãæç»é£æºãæ¡åŒµå¯èœãª UI ãã©ã°ã€ã³ã | ãªã¢ã«ã¿ã€ã å
±åç·šéãç·šéå±¥æŽãã€ã³ããŒã/ãšã¯ã¹ããŒããå°å·ããã£ãŒããããããããŒãã«ãã¹ããŒã¯ã©ã€ã³ãã¢ãŠãã©ã€ã³ãå³åœ¢ãã»ã«å
ã°ã©ãã£ãã¯ã¹ãããŒã¿ã³ãã¯ã¿ããµãŒããŒãµã€ãèšç®ã匷åãããæ°åŒæ©èœã |
|
||
| **Docs** | ãªããããã¥ã¡ã³ãã¢ãã«ãç·šé UIããªã¹ãããã€ããŒãªã³ã¯ãæç»é£æºãã³ã¡ã³ããã¯ã€ãã¯æ¿å
¥ãå
±æããã¥ã¡ã³ãã¢ãŒããã¯ãã£ã | å
±åç·šéãã€ã³ããŒã/ãšã¯ã¹ããŒããå°å·ã匷åãããããŒãã«ãšãªã¹ããæ®µçµã¿ãã³ãŒã«ã¢ãŠããã³ãŒããããã¯ãåŒçšãããã¯ãå³åœ¢ããªã¢ãŒãã³ã¡ã³ããªãœãŒã¹ã |
|
||
| **Slides** | ãã¬ãŒã³ããŒã·ã§ã³ããŒã¿ã¢ãã«ãš UI ããã±ãŒãžãçŸåšã掻çºã«éçºäžã§ãã | Pro ã¹ã©ã€ãã¢ãã«ãš UIãã¹ã©ã€ãã®ã€ã³ããŒã/ãšã¯ã¹ããŒãããã£ãŒããšããŒãã«ã®ã¢ãã«/UI ãã©ã°ã€ã³ãå
±æã®å³åœ¢ç·šéåºç€ã |
|
||
| **Bases** | Univer ã®ãã©ã°ã€ã³ãã³ãã³ããã¢ãã«ã®ã¢ãŒããã¯ãã£äžã«ãã«ã¹ã¿ã ã®æ§é åããŒã¿äœéšãæ§ç¯ã§ããŸãã | Base ããŒã¿ããŒã¹ã¢ãã«ãã³ãã³ããæ°åŒé£æºãã¯ãŒã¯ãã³ã UIããã£ãŒã«ããšãã£ã¿ãã¬ã³ããªã³ã°ãšã³ãžã³ãã¥ãŒã |
|
||
| **Runtime** | ãã©ãŠã¶ã¢ããªãNode.js ãããã¬ã¹å©çšãWeb Worker/RPC ãã¿ãŒã³ãè€æ°ã€ã³ã¹ã¿ã³ã¹ããµãŒããŒåãèªååã | å
±åç·šéã¯ã©ã€ã¢ã³ã/ãµãŒããŒããã±ãŒãžãNode.js å
±åç·šéã¯ã©ã€ã¢ã³ããPro ãµãŒããŒãµãŒãã¹ãSSRãèšç®å§è²ããµãŒããŒãµã€ãèšç®ãchangeset replay ããŒã«ã |
|
||
| **Integrations** | ReactãVueãWeb Componentsããã¬ãŒã ã¯ãŒã¯ãã³ãã¬ãŒããããŒããããŒã«ã©ã€ãºãã«ã¹ã¿ã ãã©ã°ã€ã³ã | Pro presets ãšãšã³ã¿ãŒãã©ã€ãºãããã€ããã±ãŒãžã |
|
||
|
||
çŸåšãã£ãšãæçããŠãããããã¯ãé¢ã¯ Sheets ã§ããDocs ãš Slides ã Univer ã®ã¢ãŒããã¯ãã£ãå
±æããåã SDK ã®äžã§ç¶ç¶çã«é²åããŠããŸãã
|
||
|
||
## ð Open Source ãš Pro
|
||
|
||
ãã®ãªããžããªã«ã¯ Univer ã®ãªãŒãã³ãœãŒã¹ã³ã¢ãš first-party OSS ãã©ã°ã€ã³ãå«ãŸããŠããŸããUniver Pro ã¯ãé«åºŠãªãããã¯ããµãŒãã§ã¹ãå
±åç·šéããµãŒããŒæ©èœããšã³ã¿ãŒãã©ã€ãºé£æºã®ããã®åçšæ¡åŒµã¬ã€ã€ãŒãšããŠå¥ééçºãããŠããŸãã
|
||
|
||
| ã«ããŽãª | Open source | Univer Pro / commercial |
|
||
| --- | --- | --- |
|
||
| **Foundation** | Core SDKããã©ã°ã€ã³ã·ã¹ãã ãã¬ã³ããªã³ã°ãšã³ãžã³ãæ°åŒãšã³ãžã³ãFacade APIãããŒããi18nããã¬ãŒã ã¯ãŒã¯ã¢ããã¿ã | Pro presets ãšãšã³ã¿ãŒãã©ã€ãºãããã€ããã±ãŒãžã |
|
||
| **Sheets** | ã³ã¢ã®ã¹ãã¬ããã·ãŒãç·šéãæ°åŒãæ°å€æžåŒããã£ã«ã¿ãŒ/ãœãŒããããŒã¿æ€èšŒãæ¡ä»¶ä»ãæžåŒãããŒããããŒãã«ããã€ããŒãªã³ã¯ãã³ã¡ã³ããæç»ãæ€çŽ¢ãšçœ®æã | å
±åç·šéãç·šéå±¥æŽãã€ã³ããŒã/ãšã¯ã¹ããŒããå°å·ããã£ãŒããããããããŒãã«ãã¹ããŒã¯ã©ã€ã³ãã¢ãŠãã©ã€ã³ãå³åœ¢ãã»ã«å
ã°ã©ãã£ãã¯ã¹ãããŒã¿ã³ãã¯ã¿ãç¯å²ã®ååŠçã匷åãããæ°åŒãšã³ãžã³æ©èœã |
|
||
| **Docs** | ããã¥ã¡ã³ãã¢ãã«ãšç·šé UIããªã¹ãããã€ããŒãªã³ã¯ãã³ã¡ã³ããã¯ã€ãã¯æ¿å
¥ãæç»é£æºã | å
±åç·šéãã€ã³ããŒã/ãšã¯ã¹ããŒããå°å·ã匷åãããããŒãã«/ãªã¹ããæ®µçµã¿ãã³ãŒã«ã¢ãŠããã³ãŒããããã¯ãåŒçšãããã¯ãå³åœ¢ããªã¢ãŒãã¹ã¬ããã³ã¡ã³ããªãœãŒã¹ã |
|
||
| **Slides** | OSS ã®ãã¬ãŒã³ããŒã·ã§ã³ã¢ãã«ãš UI ããã±ãŒãžã | Pro ã¹ã©ã€ãã¢ãã«/UI ããã±ãŒãžãã¹ã©ã€ãã®ã€ã³ããŒã/ãšã¯ã¹ããŒãããã£ãŒããããŒãã«ãåå©çšå¯èœãªå³åœ¢ãšãã£ã¿ UIã |
|
||
| **Bases** | ã«ã¹ã¿ã ã®ããŒã¿äžå¿ãããã¯ãåãã®æ¡åŒµå¯èœãªãã©ã°ã€ã³ã¢ãŒããã¯ãã£ã | Base ããŒã¿ããŒã¹ã³ã¢ã¢ãã«ãã³ãã³ãããã¥ãŒããŒã·ã§ã³ãæ°åŒé£æºãã¯ãŒã¯ãã³ã UIããã£ãŒã«ããšãã£ã¿ãã¬ã³ããªã³ã°ãšã³ãžã³é£æºã |
|
||
| **Server and runtime** | Node.js ãããã¬ã¹ã©ã³ã¿ã€ã ãRPC/Web Worker ãã¿ãŒã³ããµãŒããŒåãèªååã®ããªããã£ãã | å
±åç·šéãµãŒããŒãNode.js å
±åç·šéã¯ã©ã€ã¢ã³ããSSR ãµãŒãã¹ãèšç®å§è²ããµãŒããŒãµã€ãèšç®ãå
±åç·šé changeset replay ããŒã«ã |
|
||
|
||
Pro æ©èœã¯ [Univer Pro guide](https://docs.univer.ai/guides/pro) ã«èšèŒãããŠããŸããããã§ã¯ OSS ããã±ãŒãžã®ç¯å²ãæç¢ºã«ãããããæå³çã«åããŠèª¬æããŠããŸãã
|
||
|
||
Boundary principles:
|
||
|
||
- ãã®ãªããžããªã® OSS ããã±ãŒãžã¯ Apache-2.0 license ã®äžã§åç¬å©çšã§ããããšãæå³ããŠããŸããUniver Pro ã¯ä»»æã§ãããå
¬é OSS SDK API ã®å©çšã« Pro ã¯äžèŠã§ãã
|
||
- OSS ããã±ãŒãžã® bugsãregressionsãsecurity issues ã¯ãé¢é£ãã Pro æ©èœãããå Žåã§ã OSS ãªããžããªã§å ±åã»ä¿®æ£ãããã¹ãã§ãã
|
||
- OSS documentation ã¯ãPro-only capabilities ãå
¬é `@univerjs/*` packages ã«å«ãŸãããã®ããã«ç€ºãã¹ãã§ã¯ãããŸãããPro-only APIsãpackagesãdeployment paths ã¯æç€ºçã«ååãåºããŠãã ããã
|
||
- OSS feature ã« Pro enhancement ãããå Žåã§ããOSS behavior ã¯ç¬ç«ããŠææžåããcommercial docs ãå
ã«èªãŸãªããŠã open-source surface ãè©äŸ¡ã§ããããã«ããŸãã
|
||
|
||
## ð ãšã³ã·ã¹ãã
|
||
|
||
- **Core SDK**ïŒ[`dream-num/univer`](https://github.com/dream-num/univer)ããã® monorepo ã§ãã
|
||
- **Presets**ïŒãã®ãªããžããªã® [`presets/`](../../presets)ããã©ãŠã¶ãš Node.js ã¢ããªåãã® curated plugin collection ã§ãã
|
||
- **AI agent skills**ïŒ[`dream-num/univer-sdk-skills`](https://github.com/dream-num/univer-sdk-skills)ãUniver çµ±åãPro æ©èœããã©ã°ã€ã³éçºãNode ããã¯ãšã³ãã«åãçµã AI agent åãã®åå©çšå¯èœãªæç€ºéã§ãã[AI Skills guide](https://docs.univer.ai/guides/skills) ãåç
§ããŠãã ããã
|
||
- **Documentation**ïŒ[docs.univer.ai](https://docs.univer.ai)ãSheetsãDocsãSlidesãrecipesãPro guides ãå«ã¿ãŸãã
|
||
- **API Reference**ïŒ[docs.univer.ai/reference](https://docs.univer.ai/reference/classes/univer)ãFacade API ãšçæããã API referenceã
|
||
- **Examples and showcase**ïŒ[Univer Showcase](https://docs.univer.ai/showcase) ãšãã®ãªããžããªã® [`examples/`](../../examples)ã
|
||
- **AI-native spreadsheets**ïŒ[`dream-num/univer-mcp`](https://github.com/dream-num/univer-mcp)ãèªç¶èšèªã§ Univer Sheets ãæäœãã Univer Platform / MCP çµ±åã
|
||
|
||
## ðŠ ãªããžããªæ§æ
|
||
|
||
```text
|
||
.
|
||
âââ packages/ ã³ã¢ããã±ãŒãžããšã³ãžã³ãææžã¿ã€ããUI ãã©ã°ã€ã³ãæ©èœãã©ã°ã€ã³
|
||
âââ examples/ ããŒã«ã«ãã©ãŠã¶éçºçšã®ãªãŒã«ã€ã³ã¯ã³ Vite ã¯ãŒã¯ãã³ã
|
||
âââ common/ å
±æå
éšããŒã«ãstorybookããŠãŒãã£ãªãã£
|
||
âââ tests/ 远å ã®çµ±åãã¹ããããžã§ã¯ã
|
||
âââ docs/ ã¢ãŒããã¯ãã£ã¡ã¢ãç»åããªããžããªå
ããã¥ã¡ã³ã
|
||
```
|
||
|
||
ããã±ãŒãžããšã® README 㯠[`packages/`](../../packages) é
äžã®åããã±ãŒãžã«ãããŸãã
|
||
|
||
## ð§âð» éçº
|
||
|
||
å¿
èŠç°å¢ïŒ
|
||
|
||
- Node.js `>=22.18`
|
||
- pnpm `>=11`
|
||
|
||
```bash
|
||
git clone https://github.com/dream-num/univer.git
|
||
cd univer
|
||
pnpm install
|
||
pnpm dev
|
||
```
|
||
|
||
ãã䜿ãã³ãã³ãïŒ
|
||
|
||
| ã³ãã³ã | çšé |
|
||
| --- | --- |
|
||
| `pnpm dev` | äœã¡ã¢ãªã®ãªãŒã«ã€ã³ã¯ã³ã¯ãŒã¯ãã³ãããã«ãããHMR ãªãã§ãã¬ãã¥ãŒããŸãã |
|
||
| `pnpm dev:source` | HMR 察å¿ã§ãœãŒã¹ããèµ·åããŸããã³ãŒã«ãã¹ã¿ãŒããšã¡ã¢ãªäœ¿çšéã¯å¢å ããŸãã |
|
||
| `pnpm build` | å
éš common ããã±ãŒãžãé€ã㊠workspace ããã±ãŒãžããã«ãããŸãã |
|
||
| `pnpm test` | Turbo çµç±ã§ãŠããããã¹ããå®è¡ããŸãã |
|
||
| `pnpm typecheck` | Turbo çµç±ã§ TypeScript ãã§ãã¯ãå®è¡ããŸãã |
|
||
| `pnpm lint` | ESLint ãå®è¡ããŸãã |
|
||
| `pnpm storybook:dev` | UI ã³ã³ããŒãã³ãéçºçšã® Storybook ãèµ·åããŸãã |
|
||
|
||
Pull request ãäœæããåã« [CONTRIBUTING.md](../../CONTRIBUTING.md) ãèªãã§ãã ããã
|
||
|
||
## ð Contributor Notes
|
||
|
||
ããæ·±ã倿Žãè¡ãåã«èªã䟡å€ã®ãããªããžããªå
ã¡ã¢ã§ãã
|
||
|
||
- [Building Isomorphic Univer](../ISOMORPHIC.md)ïŒãã©ãŠã¶ãNode.jsãUIãå
±æãã©ã°ã€ã³ããžãã¯ã®å颿¹éã
|
||
- [API Stability Policy](../API_STABILITY.md)ïŒstableãexperimentalãinternalãdeprecatedãbreaking-change expectationsã
|
||
- [Contributing to Facade API](../CONTRIBUTING-FACADE.md)ïŒ`FUniver`ã`FWorkbook`ã`FRange` ãªã©ã® Facade API èšèšæ¹éã
|
||
- [Naming Convention](../NAMING_CONVENTION.md)ïŒãã¡ã€ã«ããã©ã«ããã€ã³ã¿ãŒãã§ãŒã¹ããã©ã°ã€ã³ãã³ãã³ããDI token ã®åœåèŠåã
|
||
- [Fixing Memory Leaks](../FIX_MEMORY_LEAK.md)ïŒUniver ã€ã³ã¹ã¿ã³ã¹ã§ããããã¡ã¢ãªãªãŒã¯ãã¿ãŒã³ãšãããã°æé ã
|
||
- [Architecture TLDRs](../tldr)ïŒæ°åŒãšã³ãžã³ãWeb Workerãæš©éãéžæãref-range ã®ç°¡æœãªèšèšã¡ã¢ã
|
||
|
||
## ð¬ ã³ãã¥ããã£
|
||
|
||
- [GitHub Discussions](https://github.com/dream-num/univer/discussions) ã§è³ªåã§ããŸãã
|
||
- [Discord](https://discord.gg/z3NKNT6D2f) ã§ã³ãã¥ããã£ãšäº€æµã§ããŸãã
|
||
- [Twitter / X](https://twitter.com/univerhq) ãš [YouTube](https://www.youtube.com/@dreamNum) ããã©ããŒã§ããŸãã
|
||
|
||
åå ããåã« [Code of Conduct](../../CODE_OF_CONDUCT.md) ãèªãã§ãã ããã
|
||
|
||
## ð ã»ãã¥ãªãã£
|
||
|
||
ã»ãã¥ãªãã£äžã®åé¡ãèŠã€ãããšæãããå Žåã¯ã[Security Policy](../../SECURITY.md) ã«åŸã£ãŠãã ããã
|
||
|
||
## â€ïž ã¹ãã³ãµãŒ
|
||
|
||
Univer ã¯ã³ãã¥ããã£ãšã¹ãã³ãµãŒã«ãã£ãŠæ¯ããããŠããŸãã[Open Collective](https://opencollective.com/univer) ãããããžã§ã¯ããæ¯æŽã§ããŸãã
|
||
|
||
<a href="https://opencollective.com/univer/sponsor/0/website"><img src="https://opencollective.com/univer/sponsor/0/avatar.svg" alt="Sponsor 0" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/1/website"><img src="https://opencollective.com/univer/sponsor/1/avatar.svg" alt="Sponsor 1" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/2/website"><img src="https://opencollective.com/univer/sponsor/2/avatar.svg" alt="Sponsor 2" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/3/website"><img src="https://opencollective.com/univer/sponsor/3/avatar.svg" alt="Sponsor 3" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/4/website"><img src="https://opencollective.com/univer/sponsor/4/avatar.svg" alt="Sponsor 4" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/5/website"><img src="https://opencollective.com/univer/sponsor/5/avatar.svg" alt="Sponsor 5" /></a>
|
||
<a href="https://opencollective.com/univer/sponsor/6/website"><img src="https://opencollective.com/univer/sponsor/6/avatar.svg" alt="Sponsor 6" /></a>
|
||
|
||
<a href="https://opencollective.com/univer/backer/0/website"><img src="https://opencollective.com/univer/backer/0/avatar.svg" alt="Backer 0" /></a>
|
||
<a href="https://opencollective.com/univer/backer/1/website"><img src="https://opencollective.com/univer/backer/1/avatar.svg" alt="Backer 1" /></a>
|
||
<a href="https://opencollective.com/univer/backer/2/website"><img src="https://opencollective.com/univer/backer/2/avatar.svg" alt="Backer 2" /></a>
|
||
<a href="https://opencollective.com/univer/backer/3/website"><img src="https://opencollective.com/univer/backer/3/avatar.svg" alt="Backer 3" /></a>
|
||
<a href="https://opencollective.com/univer/backer/4/website"><img src="https://opencollective.com/univer/backer/4/avatar.svg" alt="Backer 4" /></a>
|
||
<a href="https://opencollective.com/univer/backer/5/website"><img src="https://opencollective.com/univer/backer/5/avatar.svg" alt="Backer 5" /></a>
|
||
<a href="https://opencollective.com/univer/backer/6/website"><img src="https://opencollective.com/univer/backer/6/avatar.svg" alt="Backer 6" /></a>
|
||
|
||
## ð ã©ã€ã»ã³ã¹
|
||
|
||
Copyright (c) 2021-present DreamNum Co., Ltd.
|
||
|
||
[Apache-2.0](../../LICENSE) ã©ã€ã»ã³ã¹ã®äžã§å
¬éãããŠããŸãã
|