+ {!done && ( <>
+
URL:
+
{
+ /* fetch and parse workbook */
+ const wb = XLSX.read(await (await fetch(url)).arrayBuffer());
+ /* set up grid and load data */
+ x_spreadsheet(ref.current).loadData(stox(wb));
+ setDone(true);
+ }}>Fetch!
+ >)}
+ > );
+}
+```
+
+## Integration Library
+
+The integration library can be downloaded from the SheetJS CDN:
+
+- [Development Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.js)
+- [Production Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.min.js)
+
+When used in a browser tag, it exposes two functions: `xtos` and `stox`.
+
+- `stox(worksheet)` returns a data structure suitable for `grid.loadData`
+- `xtos(data)` accepts the result of `grid.getData` and generates a workbook
+
+### Reading Data
+
+The following snippet fetches a spreadsheet and loads the grid:
+
+```js
+(async() => {
+ const ab = await (await fetch("https://sheetjs.com/pres.numbers")).arrayBuffer();
+ grid.loadData(stox(XLSX.read(ab)));
+})();
+```
+
+The same pattern can be used in file input elements and other data sources.
+
+### Writing Data
+
+The following snippet exports the grid data to a file:
+
+```js
+/* build workbook from the grid data */
+XLSX.writeFile(xtos(grid.getData()), "SheetJS.xlsx");
+```
+
+## Other Details
+
+#### Obtaining the Library
+
+The `x-data-spreadsheet` NodeJS packages include a minified script that can be
+directly inserted as a script tag. The unpkg CDN also serves this script:
+
+```html
+
+
+
+
+```
+
+#### Previewing and Editing Data
+
+The HTML document needs a container element:
+
+```html
+
+```
+
+Grid initialization is a one-liner:
+
+```js
+var grid = x_spreadsheet(document.getElementById("gridctr"));
+```
+
+`x-spreadsheet` handles the entire edit cycle. No intervention is necessary.
+
+#### Additional Features
+
+This demo barely scratches the surface. The underlying grid component includes
+many additional features that work with [SheetJS Pro](https://sheetjs.com/pro).
diff --git a/docz/docs/03-demos/02-grid/_category_.json b/docz/docs/03-demos/02-grid/_category_.json
new file mode 100644
index 0000000..6739e79
--- /dev/null
+++ b/docz/docs/03-demos/02-grid/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Data Grids and Tables",
+ "position": 2
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/05-grid.md b/docz/docs/03-demos/02-grid/index.md
similarity index 92%
rename from docz/docs/03-demos/05-grid.md
rename to docz/docs/03-demos/02-grid/index.md
index 1a44f4e..6e2d6c3 100644
--- a/docz/docs/03-demos/05-grid.md
+++ b/docz/docs/03-demos/02-grid/index.md
@@ -1,7 +1,7 @@
---
title: Data Grids and Tables
-pagination_prev: demos/cloud/index
-pagination_next: demos/data/index
+pagination_prev: demos/frontend/index
+pagination_next: demos/net/index
---
Various JavaScript UI components provide a more interactive editing experience.
@@ -30,83 +30,11 @@ it is easier to process an array of arrays.
### x-spreadsheet
-With a familiar UI, [`x-spreadsheet`](https://myliang.github.io/x-spreadsheet/)
-is an excellent choice for developers looking for a modern editor.
+With a familiar UI, `x-spreadsheet` is an excellent choice for a modern editor.
[Click here for a live integration demo.](pathname:///xspreadsheet/)
-
Full Exposition (click to show)
-
-**Obtaining the Library**
-
-The `x-data-spreadsheet` NodeJS packages include a minified script that can be
-directly inserted as a script tag. The unpkg CDN also serves this script:
-
-```html
-
-
-
-
-```
-
-**Previewing and Editing Data**
-
-The HTML document needs a container element:
-
-```html
-
-```
-
-Grid initialization is a one-liner:
-
-```js
-var grid = x_spreadsheet(document.getElementById("gridctr"));
-```
-
-`x-spreadsheet` handles the entire edit cycle. No intervention is necessary.
-
-**SheetJS and x-spreadsheet**
-
-The integration library can be downloaded from the SheetJS CDN:
-
-[Development Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.js)
-
-[Production Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.min.js)
-
-
-When used in a browser tag, it exposes two functions: `xtos` and `stox`.
-
-- `stox(worksheet)` returns a data structure suitable for `grid.loadData`
-- `xtos(data)` accepts the result of `grid.getData` and generates a workbook
-
-_Reading Data_
-
-The following snippet fetches a spreadsheet and loads the grid:
-
-```js
-(async() => {
- const ab = await (await fetch("https://sheetjs.com/pres.numbers")).arrayBuffer();
- grid.loadData(stox(XLSX.read(ab)));
-})();
-```
-
-The same pattern can be used in file input elements and other data sources.
-
-_Writing Data_
-
-The following snippet exports the grid data to a file:
-
-```js
-/* build workbook from the grid data */
-XLSX.writeFile(xtos(grid.getData()), "SheetJS.xlsx");
-```
-
-**Additional Features**
-
-This demo barely scratches the surface. The underlying grid component includes
-many additional features that work with [SheetJS Pro](https://sheetjs.com/pro).
-
-
+[The exposition has been moved to a separate page.](/docs/demos/grid/xs)
### Canvas DataGrid
@@ -984,7 +912,7 @@ export default function ReactTable() {
{/* ... TR and TD/TH elements ... */}
- >);
+ > );
}
```
@@ -1003,7 +931,7 @@ import { useRef } from "react";
export default function BasicTable() {
// highlight-next-line
const tbl = useRef
(null);
- return (<>
+ return ( <>
{
const wb = utils.table_to_book(tbl.current);
writeFileXLSX(wb, "SheetJSMaterialUI.xlsx");
diff --git a/docz/docs/03-demos/03-desktop/_category_.json b/docz/docs/03-demos/03-desktop/_category_.json
deleted file mode 100644
index 74aac8f..0000000
--- a/docz/docs/03-demos/03-desktop/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Desktop Applications",
- "position": 3
-}
diff --git a/docz/docs/03-demos/34-network.mdx b/docz/docs/03-demos/03-net/01-network.mdx
similarity index 96%
rename from docz/docs/03-demos/34-network.mdx
rename to docz/docs/03-demos/03-net/01-network.mdx
index 3091e4f..43c2806 100644
--- a/docz/docs/03-demos/34-network.mdx
+++ b/docz/docs/03-demos/03-net/01-network.mdx
@@ -126,7 +126,7 @@ function SheetJSXHRDL() {
req.send();
}, []);
- return (
);
+ return (
);
}
```
@@ -181,10 +181,10 @@ function SheetJSXHRUL() {
return (
CSV Data
{csv}
- {sz ? (<>
+ {sz ? ( <>
Generated file size: {sz} bytes
- >) : (Export and Upload! )}
+ > ) : (Export and Upload! )}
);
}
```
@@ -233,7 +233,7 @@ function SheetJSFetchDL() {
setHTML(XLSX.utils.sheet_to_html(ws));
}, []);
- return (
);
+ return (
);
}
```
@@ -278,10 +278,10 @@ function SheetJSFetchUL() {
return (
CSV Data
{csv}
- {sz ? (<>
+ {sz ? ( <>
Generated file size: {sz} bytes
- >) : (Export and Upload! )}
+ > ) : (Export and Upload! )}
);
}
```
@@ -342,7 +342,7 @@ function SheetJSAxiosDL() {
setHTML(XLSX.utils.sheet_to_html(ws));
}, []);
- return (
);
+ return (
);
}
```
@@ -386,10 +386,10 @@ function SheetJSAxiosUL() {
return (
CSV Data
{csv}
- {sz ? (<>
+ {sz ? ( <>
Generated file size: {sz} bytes
- >) : (Export and Upload! )}
+ > ) : (Export and Upload! )}
);
}
```
@@ -448,7 +448,7 @@ function SheetJSSuperAgentDL() {
});
}, []);
- return (
);
+ return (
);
}
```
@@ -494,10 +494,10 @@ function SheetJSSuperAgentUL() {
return (
CSV Data
{csv}
- {sz ? (<>
+ {sz ? ( <>
Generated file size: {sz} bytes
- >) : (Export and Upload! )}
+ > ) : (Export and Upload! )}
);
}
```
diff --git a/docz/docs/03-demos/09-server.md b/docz/docs/03-demos/03-net/02-server.md
similarity index 100%
rename from docz/docs/03-demos/09-server.md
rename to docz/docs/03-demos/03-net/02-server.md
diff --git a/docz/docs/03-demos/42-headless.md b/docz/docs/03-demos/03-net/09-headless.md
similarity index 100%
rename from docz/docs/03-demos/42-headless.md
rename to docz/docs/03-demos/03-net/09-headless.md
diff --git a/docz/docs/03-demos/03-net/_category_.json b/docz/docs/03-demos/03-net/_category_.json
new file mode 100644
index 0000000..9059674
--- /dev/null
+++ b/docz/docs/03-demos/03-net/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Servers and Remote Data",
+ "position": 3
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/03-net/index.md b/docz/docs/03-demos/03-net/index.md
new file mode 100644
index 0000000..377130c
--- /dev/null
+++ b/docz/docs/03-demos/03-net/index.md
@@ -0,0 +1,25 @@
+---
+title: Servers and Remote Data
+pagination_prev: demos/grid/index
+pagination_next: demos/static/index
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+SheetJS libraries are commonly used in data pipelines for processing personally
+identifiable information (PII). The libraries never attempt to perform network
+requests and never collect telemetry.
+
+In practice, there are many interesting networking use cases including server
+processing of user-submitted files and fetching files from an external source.
+The demos in this section cover common use cases:
+
+{useCurrentSidebarCategory().items.map((item, index) => {
+ const listyle = (item.customProps?.icon) ? {
+ listStyleImage: `url("${item.customProps.icon}")`
+ } : {};
+ return (
+ {item.label} {item.customProps?.summary && (" - " + item.customProps.summary)}
+ );
+})}
diff --git a/docz/docs/03-demos/04-cloud/_category_.json b/docz/docs/03-demos/04-cloud/_category_.json
deleted file mode 100644
index 78c3007..0000000
--- a/docz/docs/03-demos/04-cloud/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "label": "Cloud Platforms",
- "position": 4,
- "collapsed": false
-}
\ No newline at end of file
diff --git a/docz/docs/03-demos/11-static/01-lume.md b/docz/docs/03-demos/04-static/01-lume.md
similarity index 96%
rename from docz/docs/03-demos/11-static/01-lume.md
rename to docz/docs/03-demos/04-static/01-lume.md
index 384599b..11d7fba 100644
--- a/docz/docs/03-demos/11-static/01-lume.md
+++ b/docz/docs/03-demos/04-static/01-lume.md
@@ -1,7 +1,7 @@
---
title: Lume
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
sidebar_custom_props:
type: native
---
diff --git a/docz/docs/03-demos/11-static/02-gatsbyjs.md b/docz/docs/03-demos/04-static/02-gatsbyjs.md
similarity index 99%
rename from docz/docs/03-demos/11-static/02-gatsbyjs.md
rename to docz/docs/03-demos/04-static/02-gatsbyjs.md
index 1119955..777f104 100644
--- a/docz/docs/03-demos/11-static/02-gatsbyjs.md
+++ b/docz/docs/03-demos/04-static/02-gatsbyjs.md
@@ -1,7 +1,7 @@
---
title: GatsbyJS
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
sidebar_custom_props:
type: native
---
diff --git a/docz/docs/03-demos/11-static/05-vitejs.md b/docz/docs/03-demos/04-static/05-vitejs.md
similarity index 99%
rename from docz/docs/03-demos/11-static/05-vitejs.md
rename to docz/docs/03-demos/04-static/05-vitejs.md
index c32ea5a..853d395 100644
--- a/docz/docs/03-demos/11-static/05-vitejs.md
+++ b/docz/docs/03-demos/04-static/05-vitejs.md
@@ -1,7 +1,7 @@
---
title: ViteJS
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
sidebar_custom_props:
type: bundler
---
diff --git a/docz/docs/03-demos/11-static/08-nextjs.md b/docz/docs/03-demos/04-static/08-nextjs.md
similarity index 99%
rename from docz/docs/03-demos/11-static/08-nextjs.md
rename to docz/docs/03-demos/04-static/08-nextjs.md
index 41a2716..f5bb2ff 100644
--- a/docz/docs/03-demos/11-static/08-nextjs.md
+++ b/docz/docs/03-demos/04-static/08-nextjs.md
@@ -1,7 +1,7 @@
---
title: NextJS
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
---
:::note
diff --git a/docz/docs/03-demos/11-static/09-nuxtjs.md b/docz/docs/03-demos/04-static/09-nuxtjs.md
similarity index 97%
rename from docz/docs/03-demos/11-static/09-nuxtjs.md
rename to docz/docs/03-demos/04-static/09-nuxtjs.md
index f1b1360..59545b5 100644
--- a/docz/docs/03-demos/11-static/09-nuxtjs.md
+++ b/docz/docs/03-demos/04-static/09-nuxtjs.md
@@ -1,22 +1,12 @@
---
title: NuxtJS
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
---
`@nuxt/content` is a file-based CMS for Nuxt, enabling static-site generation
and on-demand server rendering powered by spreadsheets.
-:::warning
-
-Nuxt Content `v2` (NuxtJS `v3`) employs a different architecture from `v1`.
-There are known bugs related to corrupted binary spreadsheet files.
-
-Greenfield projects should stick to the stable NuxtJS + Nuxt Content versions
-until the issues are resolved.
-
-:::
-
## Nuxt Content v1
:::note
diff --git a/docz/docs/03-demos/11-static/10-astro.md b/docz/docs/03-demos/04-static/10-astro.md
similarity index 98%
rename from docz/docs/03-demos/11-static/10-astro.md
rename to docz/docs/03-demos/04-static/10-astro.md
index eaa4ca3..b97ac2c 100644
--- a/docz/docs/03-demos/11-static/10-astro.md
+++ b/docz/docs/03-demos/04-static/10-astro.md
@@ -1,7 +1,7 @@
---
title: AstroJS
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
---
:::note
diff --git a/docz/docs/03-demos/11-static/_category_.json b/docz/docs/03-demos/04-static/_category_.json
similarity index 69%
rename from docz/docs/03-demos/11-static/_category_.json
rename to docz/docs/03-demos/04-static/_category_.json
index 63b54c4..db4d3fc 100644
--- a/docz/docs/03-demos/11-static/_category_.json
+++ b/docz/docs/03-demos/04-static/_category_.json
@@ -1,4 +1,4 @@
{
"label": "Content and Static Sites",
- "position": 11
+ "position": 4
}
\ No newline at end of file
diff --git a/docz/docs/03-demos/11-static/index.md b/docz/docs/03-demos/04-static/index.md
similarity index 97%
rename from docz/docs/03-demos/11-static/index.md
rename to docz/docs/03-demos/04-static/index.md
index ef31b5a..f4bc127 100644
--- a/docz/docs/03-demos/11-static/index.md
+++ b/docz/docs/03-demos/04-static/index.md
@@ -1,7 +1,7 @@
---
title: Content and Static Sites
-pagination_prev: demos/extensions/index
-pagination_next: demos/cli
+pagination_prev: demos/net/index
+pagination_next: demos/mobile/index
---
import DocCardList from '@theme/DocCardList';
diff --git a/docz/docs/03-demos/02-mobile/01-reactnative.md b/docz/docs/03-demos/05-mobile/01-reactnative.md
similarity index 99%
rename from docz/docs/03-demos/02-mobile/01-reactnative.md
rename to docz/docs/03-demos/05-mobile/01-reactnative.md
index 5672b3a..eb4aa04 100644
--- a/docz/docs/03-demos/02-mobile/01-reactnative.md
+++ b/docz/docs/03-demos/05-mobile/01-reactnative.md
@@ -1,6 +1,6 @@
---
title: React Native
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
sidebar_position: 1
sidebar_custom_props:
diff --git a/docz/docs/03-demos/02-mobile/02-nativescript.md b/docz/docs/03-demos/05-mobile/02-nativescript.md
similarity index 99%
rename from docz/docs/03-demos/02-mobile/02-nativescript.md
rename to docz/docs/03-demos/05-mobile/02-nativescript.md
index 9bde775..4d1680f 100644
--- a/docz/docs/03-demos/02-mobile/02-nativescript.md
+++ b/docz/docs/03-demos/05-mobile/02-nativescript.md
@@ -1,6 +1,6 @@
---
title: NativeScript
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
sidebar_position: 2
sidebar_custom_props:
diff --git a/docz/docs/03-demos/02-mobile/03-quasar.md b/docz/docs/03-demos/05-mobile/03-quasar.md
similarity index 99%
rename from docz/docs/03-demos/02-mobile/03-quasar.md
rename to docz/docs/03-demos/05-mobile/03-quasar.md
index 65440c4..ea54dc7 100644
--- a/docz/docs/03-demos/02-mobile/03-quasar.md
+++ b/docz/docs/03-demos/05-mobile/03-quasar.md
@@ -1,6 +1,6 @@
---
title: Quasar
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
sidebar_position: 3
sidebar_custom_props:
diff --git a/docz/docs/03-demos/02-mobile/04-ionic.md b/docz/docs/03-demos/05-mobile/04-ionic.md
similarity index 98%
rename from docz/docs/03-demos/02-mobile/04-ionic.md
rename to docz/docs/03-demos/05-mobile/04-ionic.md
index f397c8e..6b8ac7a 100644
--- a/docz/docs/03-demos/02-mobile/04-ionic.md
+++ b/docz/docs/03-demos/05-mobile/04-ionic.md
@@ -1,6 +1,6 @@
---
title: Ionic
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
sidebar_position: 4
sidebar_custom_props:
diff --git a/docz/docs/03-demos/02-mobile/05-capacitor.md b/docz/docs/03-demos/05-mobile/05-capacitor.md
similarity index 99%
rename from docz/docs/03-demos/02-mobile/05-capacitor.md
rename to docz/docs/03-demos/05-mobile/05-capacitor.md
index 0c35374..055b677 100644
--- a/docz/docs/03-demos/02-mobile/05-capacitor.md
+++ b/docz/docs/03-demos/05-mobile/05-capacitor.md
@@ -1,6 +1,6 @@
---
title: CapacitorJS
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
sidebar_position: 5
sidebar_custom_props:
diff --git a/docz/docs/03-demos/02-mobile/_category_.json b/docz/docs/03-demos/05-mobile/_category_.json
similarity index 64%
rename from docz/docs/03-demos/02-mobile/_category_.json
rename to docz/docs/03-demos/05-mobile/_category_.json
index 4295678..d27716f 100644
--- a/docz/docs/03-demos/02-mobile/_category_.json
+++ b/docz/docs/03-demos/05-mobile/_category_.json
@@ -1,4 +1,4 @@
{
"label": "iOS and Android Apps",
- "position": 2
+ "position": 5
}
\ No newline at end of file
diff --git a/docz/docs/03-demos/02-mobile/index.md b/docz/docs/03-demos/05-mobile/index.md
similarity index 98%
rename from docz/docs/03-demos/02-mobile/index.md
rename to docz/docs/03-demos/05-mobile/index.md
index 0c94e05..7329d80 100644
--- a/docz/docs/03-demos/02-mobile/index.md
+++ b/docz/docs/03-demos/05-mobile/index.md
@@ -1,6 +1,6 @@
---
title: iOS and Android Apps
-pagination_prev: demos/frontend/index
+pagination_prev: demos/static/index
pagination_next: demos/desktop/index
---
diff --git a/docz/docs/03-demos/06-data/_category_.json b/docz/docs/03-demos/06-data/_category_.json
deleted file mode 100644
index 119bcd9..0000000
--- a/docz/docs/03-demos/06-data/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "label": "Databases and Stores",
- "position": 6,
- "collapsed": false
-}
\ No newline at end of file
diff --git a/docz/docs/03-demos/03-desktop/01-electron.md b/docz/docs/03-demos/06-desktop/01-electron.md
similarity index 99%
rename from docz/docs/03-demos/03-desktop/01-electron.md
rename to docz/docs/03-demos/06-desktop/01-electron.md
index 0459014..35f95dd 100644
--- a/docz/docs/03-demos/03-desktop/01-electron.md
+++ b/docz/docs/03-demos/06-desktop/01-electron.md
@@ -1,7 +1,7 @@
---
title: Electron
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 1
sidebar_custom_props:
summary: Embedded NodeJS + Chromium
diff --git a/docz/docs/03-demos/03-desktop/02-nwjs.md b/docz/docs/03-demos/06-desktop/02-nwjs.md
similarity index 98%
rename from docz/docs/03-demos/03-desktop/02-nwjs.md
rename to docz/docs/03-demos/06-desktop/02-nwjs.md
index 9bdbc27..9160f31 100644
--- a/docz/docs/03-demos/03-desktop/02-nwjs.md
+++ b/docz/docs/03-demos/06-desktop/02-nwjs.md
@@ -1,7 +1,7 @@
---
title: NW.js
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 2
sidebar_custom_props:
summary: Embedded Chromium + NodeJS
diff --git a/docz/docs/03-demos/03-desktop/03-wails.md b/docz/docs/03-demos/06-desktop/03-wails.md
similarity index 99%
rename from docz/docs/03-demos/03-desktop/03-wails.md
rename to docz/docs/03-demos/06-desktop/03-wails.md
index ef3cb3a..3840e58 100644
--- a/docz/docs/03-demos/03-desktop/03-wails.md
+++ b/docz/docs/03-demos/06-desktop/03-wails.md
@@ -1,7 +1,7 @@
---
title: Wails
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 3
sidebar_custom_props:
summary: Webview + Go Backend
diff --git a/docz/docs/03-demos/03-desktop/04-tauri.md b/docz/docs/03-demos/06-desktop/04-tauri.md
similarity index 99%
rename from docz/docs/03-demos/03-desktop/04-tauri.md
rename to docz/docs/03-demos/06-desktop/04-tauri.md
index 77eb24b..669764f 100644
--- a/docz/docs/03-demos/03-desktop/04-tauri.md
+++ b/docz/docs/03-demos/06-desktop/04-tauri.md
@@ -1,7 +1,7 @@
---
title: Tauri
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 4
sidebar_custom_props:
summary: Webview + Rust Backend
diff --git a/docz/docs/03-demos/03-desktop/05-neutralino.md b/docz/docs/03-demos/06-desktop/05-neutralino.md
similarity index 99%
rename from docz/docs/03-demos/03-desktop/05-neutralino.md
rename to docz/docs/03-demos/06-desktop/05-neutralino.md
index 06270b1..dace6c4 100644
--- a/docz/docs/03-demos/03-desktop/05-neutralino.md
+++ b/docz/docs/03-demos/06-desktop/05-neutralino.md
@@ -1,7 +1,7 @@
---
title: NeutralinoJS
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 5
sidebar_custom_props:
summary: Webview + Lightweight Extensions
diff --git a/docz/docs/03-demos/03-desktop/06-reactnative.md b/docz/docs/03-demos/06-desktop/06-reactnative.md
similarity index 99%
rename from docz/docs/03-demos/03-desktop/06-reactnative.md
rename to docz/docs/03-demos/06-desktop/06-reactnative.md
index 75472e9..91bec60 100644
--- a/docz/docs/03-demos/03-desktop/06-reactnative.md
+++ b/docz/docs/03-demos/06-desktop/06-reactnative.md
@@ -1,7 +1,7 @@
---
title: React Native
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
sidebar_position: 6
sidebar_custom_props:
summary: Native Components with React
diff --git a/docz/docs/03-demos/27-cli.md b/docz/docs/03-demos/06-desktop/09-cli.md
similarity index 95%
rename from docz/docs/03-demos/27-cli.md
rename to docz/docs/03-demos/06-desktop/09-cli.md
index e499d93..a01c620 100644
--- a/docz/docs/03-demos/27-cli.md
+++ b/docz/docs/03-demos/06-desktop/09-cli.md
@@ -1,7 +1,9 @@
---
title: Command-Line Tools
-pagination_prev: demos/static/index
-pagination_next: demos/engines/index
+pagination_prev: demos/mobile/index
+pagination_next: demos/data/index
+sidebar_custom_props:
+ cli: true
---
import current from '/version.js';
@@ -106,7 +108,7 @@ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz exit-on-epi
-3) Run `nexe` and manually specify NodeJS version 14.15.3
+Run `nexe` and manually specify NodeJS version 14.15.3
```bash
npx nexe -t 14.15.3 xlsx-cli.js
@@ -117,7 +119,7 @@ This generates `xlsx-cli` or `xlsx-cli.exe` depending on platform.
-3) Run `pkg`:
+Run `pkg`:
```bash
npx pkg xlsx-cli.js
diff --git a/docz/docs/03-demos/06-desktop/_category_.json b/docz/docs/03-demos/06-desktop/_category_.json
new file mode 100644
index 0000000..974109c
--- /dev/null
+++ b/docz/docs/03-demos/06-desktop/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Desktop and CLI Tools",
+ "position": 6
+}
diff --git a/docz/docs/03-demos/03-desktop/index.md b/docz/docs/03-demos/06-desktop/index.md
similarity index 59%
rename from docz/docs/03-demos/03-desktop/index.md
rename to docz/docs/03-demos/06-desktop/index.md
index e7f34ca..7757350 100644
--- a/docz/docs/03-demos/03-desktop/index.md
+++ b/docz/docs/03-demos/06-desktop/index.md
@@ -1,7 +1,7 @@
---
-title: Desktop Applications
+title: Desktop and CLI Tools
pagination_prev: demos/mobile/index
-pagination_next: demos/cloud/index
+pagination_next: demos/data/index
---
import DocCardList from '@theme/DocCardList';
@@ -11,9 +11,9 @@ Web technologies like JavaScript and HTML have been adapted to the traditional
app space. Typically these frameworks bundle a JavaScript engine as well as a
windowing framework. SheetJS is compatible with many app frameworks.
-Demos for common tools are included in separate pages:
+Demos for common desktop tools are included in separate pages:
-{useCurrentSidebarCategory().items.map((item, index) => {
+{useCurrentSidebarCategory().items.filter(item => !item.customProps?.cli).map((item, index) => {
const listyle = (item.customProps?.icon) ? {
listStyleImage: `url("${item.customProps.icon}")`
} : {};
@@ -22,7 +22,18 @@ Demos for common tools are included in separate pages:
);
})}
-:::note Recommendation
+Demos for common command-line tools are included in separate pages:
+
+{useCurrentSidebarCategory().items.filter(item => item.customProps?.cli).map((item, index) => {
+ const listyle = (item.customProps?.icon) ? {
+ listStyleImage: `url("${item.customProps.icon}")`
+ } : {};
+ return (
+ {item.label} {item.customProps?.summary && (" - " + item.customProps.summary)}
+ );
+})}
+
+:::note Desktop Recommendation
Electron is the most established and widely-used framework. With deep support
for NodeJS modules and consistent user interfaces, it is the recommended choice
@@ -34,4 +45,3 @@ other programming languages.
Frameworks like React Native generate applications that use native UI elements.
:::
-
diff --git a/docz/docs/03-demos/06-data/01-websql.md b/docz/docs/03-demos/07-data/01-websql.md
similarity index 99%
rename from docz/docs/03-demos/06-data/01-websql.md
rename to docz/docs/03-demos/07-data/01-websql.md
index d65ee71..9ef9ce5 100644
--- a/docz/docs/03-demos/06-data/01-websql.md
+++ b/docz/docs/03-demos/07-data/01-websql.md
@@ -1,7 +1,7 @@
---
title: WebSQL and SQLite
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: web
sql: true
diff --git a/docz/docs/03-demos/06-data/02-storageapi.md b/docz/docs/03-demos/07-data/02-storageapi.md
similarity index 97%
rename from docz/docs/03-demos/06-data/02-storageapi.md
rename to docz/docs/03-demos/07-data/02-storageapi.md
index 43097ae..66e0b2f 100644
--- a/docz/docs/03-demos/06-data/02-storageapi.md
+++ b/docz/docs/03-demos/07-data/02-storageapi.md
@@ -1,7 +1,7 @@
---
title: Local Storage API
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: web
---
@@ -122,7 +122,7 @@ function SheetJStorage() {
});
return ( <>
- {out && (<>{url} {out} >)}
+ {out && ( <>{url} {out} > )}
URL:
Fetch!
> );
diff --git a/docz/docs/03-demos/06-data/03-indexeddb.md b/docz/docs/03-demos/07-data/03-indexeddb.md
similarity index 98%
rename from docz/docs/03-demos/06-data/03-indexeddb.md
rename to docz/docs/03-demos/07-data/03-indexeddb.md
index c034ec8..8a5fb25 100644
--- a/docz/docs/03-demos/06-data/03-indexeddb.md
+++ b/docz/docs/03-demos/07-data/03-indexeddb.md
@@ -1,7 +1,7 @@
---
title: IndexedDB API
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: web
---
@@ -144,7 +144,7 @@ fetches the data from the first worksheet in reverse:
function SheetJSDexieImport(props) {
const [__html, setHTML] = React.useState("Select a spreadsheet");
- return (<>
+ return ( <>
{ try {
/* get data as an ArrayBuffer */
const file = e.target.files[0];
@@ -177,7 +177,7 @@ function SheetJSDexieImport(props) {
setHTML(rev.map(r => JSON.stringify(r)).join("\n"));
} catch(e) { setHTML(e && e.message || e); }}}/>
- >);
+ > );
}
```
diff --git a/docz/docs/03-demos/06-data/09-alasql.md b/docz/docs/03-demos/07-data/09-alasql.md
similarity index 97%
rename from docz/docs/03-demos/06-data/09-alasql.md
rename to docz/docs/03-demos/07-data/09-alasql.md
index b16fa21..8b36434 100644
--- a/docz/docs/03-demos/06-data/09-alasql.md
+++ b/docz/docs/03-demos/07-data/09-alasql.md
@@ -1,7 +1,7 @@
---
title: AlaSQL
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
sql: true
---
diff --git a/docz/docs/03-demos/06-data/10-sql.md b/docz/docs/03-demos/07-data/10-sql.md
similarity index 98%
rename from docz/docs/03-demos/06-data/10-sql.md
rename to docz/docs/03-demos/07-data/10-sql.md
index 94e1a46..3200c23 100644
--- a/docz/docs/03-demos/06-data/10-sql.md
+++ b/docz/docs/03-demos/07-data/10-sql.md
@@ -1,7 +1,7 @@
---
title: SQL Connectors
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
sql: true
---
@@ -127,7 +127,7 @@ function SheetJSQLWriter() {
setOut(generate_sql(wb.Sheets[wsname], wsname).join("\n"));
});
- return ( <> {out && (<>{url} {out} >)}
+ return ( <> {out && ( <>{url} {out} > )}
URL:
Fetch!
> );
diff --git a/docz/docs/03-demos/06-data/25-mongodb.md b/docz/docs/03-demos/07-data/25-mongodb.md
similarity index 97%
rename from docz/docs/03-demos/06-data/25-mongodb.md
rename to docz/docs/03-demos/07-data/25-mongodb.md
index e3b2450..c604364 100644
--- a/docz/docs/03-demos/06-data/25-mongodb.md
+++ b/docz/docs/03-demos/07-data/25-mongodb.md
@@ -1,7 +1,7 @@
---
title: MongoDB
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: document
---
diff --git a/docz/docs/03-demos/06-data/26-redis.md b/docz/docs/03-demos/07-data/26-redis.md
similarity index 98%
rename from docz/docs/03-demos/06-data/26-redis.md
rename to docz/docs/03-demos/07-data/26-redis.md
index 41b4ea5..309afee 100644
--- a/docz/docs/03-demos/06-data/26-redis.md
+++ b/docz/docs/03-demos/07-data/26-redis.md
@@ -1,7 +1,7 @@
---
title: Redis
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: nosql
---
diff --git a/docz/docs/03-demos/06-data/29-pouchdb.md b/docz/docs/03-demos/07-data/29-pouchdb.md
similarity index 97%
rename from docz/docs/03-demos/06-data/29-pouchdb.md
rename to docz/docs/03-demos/07-data/29-pouchdb.md
index c8c2b0d..2f57d83 100644
--- a/docz/docs/03-demos/06-data/29-pouchdb.md
+++ b/docz/docs/03-demos/07-data/29-pouchdb.md
@@ -1,7 +1,7 @@
---
title: PouchDB
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
sidebar_custom_props:
type: nosql
---
diff --git a/docz/docs/03-demos/07-data/_category_.json b/docz/docs/03-demos/07-data/_category_.json
new file mode 100644
index 0000000..9757d22
--- /dev/null
+++ b/docz/docs/03-demos/07-data/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Databases and Stores",
+ "position": 7
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/06-data/index.md b/docz/docs/03-demos/07-data/index.md
similarity index 98%
rename from docz/docs/03-demos/06-data/index.md
rename to docz/docs/03-demos/07-data/index.md
index b1211d0..07e9875 100644
--- a/docz/docs/03-demos/06-data/index.md
+++ b/docz/docs/03-demos/07-data/index.md
@@ -1,7 +1,7 @@
---
title: Databases and Stores
-pagination_prev: demos/grid
-pagination_next: demos/worker
+pagination_prev: demos/desktop/index
+pagination_next: demos/local/index
---
import DocCardList from '@theme/DocCardList';
diff --git a/docz/docs/03-demos/33-localfile.md b/docz/docs/03-demos/08-local/01-file.md
similarity index 98%
rename from docz/docs/03-demos/33-localfile.md
rename to docz/docs/03-demos/08-local/01-file.md
index 1915664..e0234ac 100644
--- a/docz/docs/03-demos/33-localfile.md
+++ b/docz/docs/03-demos/08-local/01-file.md
@@ -1,5 +1,9 @@
---
title: Local File Access
+pagination_prev: demos/data/index
+pagination_next: demos/cloud/index
+sidebar_custom_props:
+ summary: Reading and writing files using various platform APIs
---
Reading and writing files require native platform support. `XLSX.readFile` and
diff --git a/docz/docs/03-demos/32-clipboard.md b/docz/docs/03-demos/08-local/05-clipboard.md
similarity index 94%
rename from docz/docs/03-demos/32-clipboard.md
rename to docz/docs/03-demos/08-local/05-clipboard.md
index ae855da..524ce7d 100644
--- a/docz/docs/03-demos/32-clipboard.md
+++ b/docz/docs/03-demos/08-local/05-clipboard.md
@@ -1,6 +1,9 @@
---
title: Clipboard Data
-pagination_prev: demos/engines/index
+pagination_prev: demos/data/index
+pagination_next: demos/cloud/index
+sidebar_custom_props:
+ summary: Reading and writing data and files in the clipboard
---
Spreadsheet software like Excel typically support copying and pasting cells and
diff --git a/docz/docs/03-demos/08-local/_category_.json b/docz/docs/03-demos/08-local/_category_.json
new file mode 100644
index 0000000..3e07617
--- /dev/null
+++ b/docz/docs/03-demos/08-local/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Local Data",
+ "position": 8
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/08-local/index.md b/docz/docs/03-demos/08-local/index.md
new file mode 100644
index 0000000..86e56c8
--- /dev/null
+++ b/docz/docs/03-demos/08-local/index.md
@@ -0,0 +1,24 @@
+---
+title: Local Data
+pagination_prev: demos/data/index
+pagination_next: demos/cloud/index
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+There is no standard cross-platform approach to read and write files and data.
+`XLSX.readFile` and `XLSX.writeFile` rely on platform-specific APIs to perform
+the file read and write operations. Not all platforms support the APIs used in
+the library.
+
+The demos in this section cover APIs that are not supported out-of-the-box:
+
+{useCurrentSidebarCategory().items.map((item, index) => {
+ const listyle = (item.customProps?.icon) ? {
+ listStyleImage: `url("${item.customProps.icon}")`
+ } : {};
+ return (
+ {item.label} {item.customProps?.summary && (" - " + item.customProps.summary)}
+ );
+})}
diff --git a/docz/docs/03-demos/04-cloud/01-salesforce.md b/docz/docs/03-demos/09-cloud/01-salesforce.md
similarity index 99%
rename from docz/docs/03-demos/04-cloud/01-salesforce.md
rename to docz/docs/03-demos/09-cloud/01-salesforce.md
index 4f1ff54..dcaec89 100644
--- a/docz/docs/03-demos/04-cloud/01-salesforce.md
+++ b/docz/docs/03-demos/09-cloud/01-salesforce.md
@@ -1,7 +1,7 @@
---
title: Salesforce LWC
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
Salesforce apps can use third-party libraries in "Lightning Web Components".
diff --git a/docz/docs/03-demos/04-cloud/02-aws.md b/docz/docs/03-demos/09-cloud/02-aws.md
similarity index 98%
rename from docz/docs/03-demos/04-cloud/02-aws.md
rename to docz/docs/03-demos/09-cloud/02-aws.md
index 793dc64..196da71 100644
--- a/docz/docs/03-demos/04-cloud/02-aws.md
+++ b/docz/docs/03-demos/09-cloud/02-aws.md
@@ -1,7 +1,7 @@
---
title: Amazon Web Services
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
AWS is a Cloud Services platform which includes traditional virtual machine
diff --git a/docz/docs/03-demos/04-cloud/03-gsheet.md b/docz/docs/03-demos/09-cloud/03-gsheet.md
similarity index 95%
rename from docz/docs/03-demos/04-cloud/03-gsheet.md
rename to docz/docs/03-demos/09-cloud/03-gsheet.md
index a70f21b..d6d6731 100644
--- a/docz/docs/03-demos/04-cloud/03-gsheet.md
+++ b/docz/docs/03-demos/09-cloud/03-gsheet.md
@@ -1,7 +1,7 @@
---
title: Google Sheets
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
import Tabs from '@theme/Tabs';
diff --git a/docz/docs/03-demos/04-cloud/04-netsuite.md b/docz/docs/03-demos/09-cloud/04-netsuite.md
similarity index 97%
rename from docz/docs/03-demos/04-cloud/04-netsuite.md
rename to docz/docs/03-demos/09-cloud/04-netsuite.md
index f1a8724..c705a12 100644
--- a/docz/docs/03-demos/04-cloud/04-netsuite.md
+++ b/docz/docs/03-demos/09-cloud/04-netsuite.md
@@ -1,7 +1,7 @@
---
title: NetSuite
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
This demo discusses the key SheetJS operations. Familiarity with SuiteScript 2
diff --git a/docz/docs/03-demos/04-cloud/05-dropbox.mdx b/docz/docs/03-demos/09-cloud/05-dropbox.mdx
similarity index 98%
rename from docz/docs/03-demos/04-cloud/05-dropbox.mdx
rename to docz/docs/03-demos/09-cloud/05-dropbox.mdx
index 5317251..f71b013 100644
--- a/docz/docs/03-demos/04-cloud/05-dropbox.mdx
+++ b/docz/docs/03-demos/09-cloud/05-dropbox.mdx
@@ -1,7 +1,7 @@
---
title: Dropbox
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
diff --git a/docz/docs/03-demos/04-cloud/08-airtable.md b/docz/docs/03-demos/09-cloud/08-airtable.md
similarity index 97%
rename from docz/docs/03-demos/04-cloud/08-airtable.md
rename to docz/docs/03-demos/09-cloud/08-airtable.md
index 17fd292..1ea1bd5 100644
--- a/docz/docs/03-demos/04-cloud/08-airtable.md
+++ b/docz/docs/03-demos/09-cloud/08-airtable.md
@@ -1,7 +1,7 @@
---
title: Airtable
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
Airtable recommends Personal Access Tokens for interacting with their API. When
diff --git a/docz/docs/03-demos/04-cloud/09-azure.md b/docz/docs/03-demos/09-cloud/09-azure.md
similarity index 99%
rename from docz/docs/03-demos/04-cloud/09-azure.md
rename to docz/docs/03-demos/09-cloud/09-azure.md
index 1417b88..17151b9 100644
--- a/docz/docs/03-demos/04-cloud/09-azure.md
+++ b/docz/docs/03-demos/09-cloud/09-azure.md
@@ -1,7 +1,7 @@
---
title: Azure Cloud Services
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
Azure is a Cloud Services platform which includes traditional virtual machine
diff --git a/docz/docs/03-demos/04-cloud/10-github.md b/docz/docs/03-demos/09-cloud/10-github.md
similarity index 99%
rename from docz/docs/03-demos/04-cloud/10-github.md
rename to docz/docs/03-demos/09-cloud/10-github.md
index 34ae812..21e87f6 100644
--- a/docz/docs/03-demos/04-cloud/10-github.md
+++ b/docz/docs/03-demos/09-cloud/10-github.md
@@ -1,7 +1,7 @@
---
title: GitHub
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
Many official data releases by governments and organizations include XLSX or
diff --git a/docz/docs/03-demos/09-cloud/_category_.json b/docz/docs/03-demos/09-cloud/_category_.json
new file mode 100644
index 0000000..5d81b5a
--- /dev/null
+++ b/docz/docs/03-demos/09-cloud/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Cloud Platforms",
+ "position": 9
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/04-cloud/index.md b/docz/docs/03-demos/09-cloud/index.md
similarity index 96%
rename from docz/docs/03-demos/04-cloud/index.md
rename to docz/docs/03-demos/09-cloud/index.md
index 821e499..3bbfe8e 100644
--- a/docz/docs/03-demos/04-cloud/index.md
+++ b/docz/docs/03-demos/09-cloud/index.md
@@ -1,7 +1,7 @@
---
title: Cloud Platforms
-pagination_prev: demos/desktop/index
-pagination_next: demos/grid
+pagination_prev: demos/local/index
+pagination_next: demos/extensions/index
---
import DocCardList from '@theme/DocCardList';
diff --git a/docz/docs/03-demos/10-extensions/01-extendscript.md b/docz/docs/03-demos/10-extensions/01-extendscript.md
index 58a63e6..ec99b64 100644
--- a/docz/docs/03-demos/10-extensions/01-extendscript.md
+++ b/docz/docs/03-demos/10-extensions/01-extendscript.md
@@ -1,7 +1,7 @@
---
title: Photoshop and Creative Suite
-pagination_prev: demos/server
-pagination_next: demos/static/index
+pagination_prev: demos/cloud/index
+pagination_next: demos/bigdata/index
---
import Tabs from '@theme/Tabs';
diff --git a/docz/docs/03-demos/10-extensions/02-chromium.md b/docz/docs/03-demos/10-extensions/02-chromium.md
index 190be42..bf578bf 100644
--- a/docz/docs/03-demos/10-extensions/02-chromium.md
+++ b/docz/docs/03-demos/10-extensions/02-chromium.md
@@ -1,7 +1,7 @@
---
title: Chrome and Chromium
-pagination_prev: demos/server
-pagination_next: demos/static/index
+pagination_prev: demos/cloud/index
+pagination_next: demos/bigdata/index
---
:::warning
diff --git a/docz/docs/03-demos/10-extensions/03-excelapi.md b/docz/docs/03-demos/10-extensions/03-excelapi.md
index 9019700..60194da 100644
--- a/docz/docs/03-demos/10-extensions/03-excelapi.md
+++ b/docz/docs/03-demos/10-extensions/03-excelapi.md
@@ -1,7 +1,7 @@
---
title: Excel JavaScript API
-pagination_prev: demos/server
-pagination_next: demos/static/index
+pagination_prev: demos/cloud/index
+pagination_next: demos/bigdata/index
---
:::info
diff --git a/docz/docs/03-demos/10-extensions/_category_.json b/docz/docs/03-demos/10-extensions/_category_.json
index 6cac06b..be66d80 100644
--- a/docz/docs/03-demos/10-extensions/_category_.json
+++ b/docz/docs/03-demos/10-extensions/_category_.json
@@ -1,5 +1,4 @@
{
"label": "App Extensions",
- "position": 10,
- "collapsed": false
+ "position": 10
}
\ No newline at end of file
diff --git a/docz/docs/03-demos/10-extensions/index.md b/docz/docs/03-demos/10-extensions/index.md
index 72f2dfb..183ac64 100644
--- a/docz/docs/03-demos/10-extensions/index.md
+++ b/docz/docs/03-demos/10-extensions/index.md
@@ -1,7 +1,7 @@
---
title: Extensions
-pagination_prev: demos/server
-pagination_next: demos/static/index
+pagination_prev: demos/cloud/index
+pagination_next: demos/bigdata/index
---
import DocCardList from '@theme/DocCardList';
diff --git a/docz/docs/03-demos/08-stream.md b/docz/docs/03-demos/11-bigdata/01-stream.md
similarity index 98%
rename from docz/docs/03-demos/08-stream.md
rename to docz/docs/03-demos/11-bigdata/01-stream.md
index 00d5bfe..456dd2b 100644
--- a/docz/docs/03-demos/08-stream.md
+++ b/docz/docs/03-demos/11-bigdata/01-stream.md
@@ -1,5 +1,9 @@
---
title: Large Datasets
+pagination_prev: demos/extensions/index
+pagination_next: demos/engines/index
+sidebar_custom_props:
+ summary: Dense Mode + Incremental CSV / HTML / JSON Export
---
For maximal compatibility, the library reads entire files at once and generates
diff --git a/docz/docs/03-demos/07-worker.md b/docz/docs/03-demos/11-bigdata/02-worker.md
similarity index 99%
rename from docz/docs/03-demos/07-worker.md
rename to docz/docs/03-demos/11-bigdata/02-worker.md
index 6d22f85..d836145 100644
--- a/docz/docs/03-demos/07-worker.md
+++ b/docz/docs/03-demos/11-bigdata/02-worker.md
@@ -1,6 +1,9 @@
---
title: Web Workers
-pagination_prev: demos/data/index
+pagination_prev: demos/extensions/index
+pagination_next: demos/engines/index
+sidebar_custom_props:
+ summary: Run large data flows without freezing the browser
---
Parsing and writing large spreadsheets takes time. During the process, if the
diff --git a/docz/docs/03-demos/43-ml.mdx b/docz/docs/03-demos/11-bigdata/03-ml.mdx
similarity index 98%
rename from docz/docs/03-demos/43-ml.mdx
rename to docz/docs/03-demos/11-bigdata/03-ml.mdx
index 6a8b22b..764421b 100644
--- a/docz/docs/03-demos/43-ml.mdx
+++ b/docz/docs/03-demos/11-bigdata/03-ml.mdx
@@ -1,5 +1,9 @@
---
title: Typed Arrays and ML
+pagination_prev: demos/extensions/index
+pagination_next: demos/engines/index
+sidebar_custom_props:
+ summary: Parse and serialize Uint8Array data from TensorFlow
---
diff --git a/docz/docs/03-demos/11-bigdata/_category_.json b/docz/docs/03-demos/11-bigdata/_category_.json
new file mode 100644
index 0000000..6852b07
--- /dev/null
+++ b/docz/docs/03-demos/11-bigdata/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Big Data",
+ "position": 11
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/11-bigdata/index.md b/docz/docs/03-demos/11-bigdata/index.md
new file mode 100644
index 0000000..66dec2d
--- /dev/null
+++ b/docz/docs/03-demos/11-bigdata/index.md
@@ -0,0 +1,28 @@
+---
+title: Big Data
+pagination_prev: demos/extensions/index
+pagination_next: demos/engines/index
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+SheetJS demonstrated the value of processing large datasets in the web browser
+and other JavaScript environments. SheetJS libraries have pushed the limits of
+data processing in the web browser, and some innovations and discoveries have
+been integrated into the ReactJS framework and other foundational JS libraries.
+
+JS Engines have improved over the years, but there are some hard limits to
+browser support using traditional methods of data processing. Vendors have
+introduced APIs and techniques for representing and processing very large binary
+and textual files. Since many of the techniques only work in a few engines, they
+are recommended only when the traditional approaches falter:
+
+{useCurrentSidebarCategory().items.map((item, index) => {
+ const listyle = (item.customProps?.icon) ? {
+ listStyleImage: `url("${item.customProps.icon}")`
+ } : {};
+ return (
+ {item.label} {item.customProps?.summary && (" - " + item.customProps.summary)}
+ );
+})}
diff --git a/docz/docs/03-demos/31-engines/01_duktape.md b/docz/docs/03-demos/12-engines/01_duktape.md
similarity index 99%
rename from docz/docs/03-demos/31-engines/01_duktape.md
rename to docz/docs/03-demos/12-engines/01_duktape.md
index 54132a5..776dc85 100644
--- a/docz/docs/03-demos/31-engines/01_duktape.md
+++ b/docz/docs/03-demos/12-engines/01_duktape.md
@@ -1,7 +1,7 @@
---
title: C + Duktape
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
Duktape is an embeddable JS engine written in C. It has been ported to a number
diff --git a/docz/docs/03-demos/31-engines/02_jsc.md b/docz/docs/03-demos/12-engines/02_jsc.md
similarity index 98%
rename from docz/docs/03-demos/31-engines/02_jsc.md
rename to docz/docs/03-demos/12-engines/02_jsc.md
index 097d6fa..025c325 100644
--- a/docz/docs/03-demos/31-engines/02_jsc.md
+++ b/docz/docs/03-demos/12-engines/02_jsc.md
@@ -1,7 +1,7 @@
---
title: Swift + JavaScriptCore
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
iOS and MacOS ship with the JavaScriptCore framework for running JS code from
diff --git a/docz/docs/03-demos/31-engines/03_rhino.md b/docz/docs/03-demos/12-engines/03_rhino.md
similarity index 98%
rename from docz/docs/03-demos/31-engines/03_rhino.md
rename to docz/docs/03-demos/12-engines/03_rhino.md
index e8ec920..0e42714 100644
--- a/docz/docs/03-demos/31-engines/03_rhino.md
+++ b/docz/docs/03-demos/12-engines/03_rhino.md
@@ -1,7 +1,7 @@
---
title: Java + Rhino
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
Rhino is an ES3+ engine in Java.
diff --git a/docz/docs/03-demos/31-engines/05_goja.md b/docz/docs/03-demos/12-engines/05_goja.md
similarity index 97%
rename from docz/docs/03-demos/31-engines/05_goja.md
rename to docz/docs/03-demos/12-engines/05_goja.md
index a4544e3..db1dfce 100644
--- a/docz/docs/03-demos/31-engines/05_goja.md
+++ b/docz/docs/03-demos/12-engines/05_goja.md
@@ -1,7 +1,7 @@
---
title: Go + Goja
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
Goja is a pure Go implementation of ECMAScript 5.
diff --git a/docz/docs/03-demos/31-engines/09_rb.md b/docz/docs/03-demos/12-engines/09_rb.md
similarity index 97%
rename from docz/docs/03-demos/31-engines/09_rb.md
rename to docz/docs/03-demos/12-engines/09_rb.md
index 10074f0..df01a18 100644
--- a/docz/docs/03-demos/31-engines/09_rb.md
+++ b/docz/docs/03-demos/12-engines/09_rb.md
@@ -1,7 +1,7 @@
---
title: Ruby + Bindings
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
ExecJS is a Ruby abstraction over a number of JS runtimes including V8.
diff --git a/docz/docs/03-demos/31-engines/11_perl.md b/docz/docs/03-demos/12-engines/11_perl.md
similarity index 95%
rename from docz/docs/03-demos/31-engines/11_perl.md
rename to docz/docs/03-demos/12-engines/11_perl.md
index e288b58..a40246f 100644
--- a/docz/docs/03-demos/31-engines/11_perl.md
+++ b/docz/docs/03-demos/12-engines/11_perl.md
@@ -1,7 +1,7 @@
---
title: Perl + JE
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
:::warning
diff --git a/docz/docs/03-demos/12-engines/_category_.json b/docz/docs/03-demos/12-engines/_category_.json
new file mode 100644
index 0000000..f837a62
--- /dev/null
+++ b/docz/docs/03-demos/12-engines/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Other Languages",
+ "position": 12
+}
\ No newline at end of file
diff --git a/docz/docs/03-demos/31-engines/index.md b/docz/docs/03-demos/12-engines/index.md
similarity index 99%
rename from docz/docs/03-demos/31-engines/index.md
rename to docz/docs/03-demos/12-engines/index.md
index 369cbe7..034ae00 100644
--- a/docz/docs/03-demos/31-engines/index.md
+++ b/docz/docs/03-demos/12-engines/index.md
@@ -1,7 +1,7 @@
---
title: JavaScript Engines
-pagination_prev: demos/cli
-pagination_next: demos/clipboard
+pagination_prev: demos/bigdata/index
+pagination_next: solutions/input
---
import current from '/version.js';
diff --git a/docz/docs/03-demos/31-engines/_category_.json b/docz/docs/03-demos/31-engines/_category_.json
deleted file mode 100644
index f21164c..0000000
--- a/docz/docs/03-demos/31-engines/_category_.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "label": "Other Languages",
- "position": 31,
- "collapsed": false
-}
\ No newline at end of file
diff --git a/docz/docs/03-demos/_category_.json b/docz/docs/03-demos/_category_.json
index aba1258..29564b6 100644
--- a/docz/docs/03-demos/_category_.json
+++ b/docz/docs/03-demos/_category_.json
@@ -1,4 +1,4 @@
{
"label": "Demos",
- "position": 4
+ "position": 3
}
\ No newline at end of file
diff --git a/docz/docs/03-demos/index.md b/docz/docs/03-demos/index.md
index 9cba2e2..aadce0e 100644
--- a/docz/docs/03-demos/index.md
+++ b/docz/docs/03-demos/index.md
@@ -33,7 +33,7 @@ run in the web browser, demos will include interactive examples.
### Front-End UI Components
- [`canvas-datagrid`](/docs/demos/grid#canvas-datagrid)
-- [`x-spreadsheet`](/docs/demos/grid#x-spreadsheet)
+- [`x-spreadsheet`](/docs/demos/grid/xs)
- [`react-data-grid`](/docs/demos/grid#react-data-grid)
- [`glide-data-grid`](/docs/demos/grid#glide-data-grid)
- [`vue3-table-lite`](/docs/demos/grid#vue3-table-lite)
diff --git a/docz/docs/06-solutions/01-input.md b/docz/docs/06-solutions/01-input.md
index fec7199..dc01247 100644
--- a/docz/docs/06-solutions/01-input.md
+++ b/docz/docs/06-solutions/01-input.md
@@ -724,8 +724,8 @@ the function and the optional `opts` argument in more detail.
["Complete Example"](/docs/getting-started/example) contains a detailed example
"Get Data from a JSON Endpoint and Generate a Workbook"
-[`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) is an interactive data grid
-for previewing and modifying structured data in the web browser.
+[`x-spreadsheet`](/docs/demos/grid/xs) is an interactive data grid for
+previewing and modifying structured data in the web browser.
["Typed Arrays and ML"](/docs/demos/ml) covers strategies for
creating worksheets from ML library exports (datasets stored in Typed Arrays).
diff --git a/docz/docs/06-solutions/05-output.md b/docz/docs/06-solutions/05-output.md
index a4966f4..cea7e3b 100644
--- a/docz/docs/06-solutions/05-output.md
+++ b/docz/docs/06-solutions/05-output.md
@@ -599,8 +599,8 @@ With the `header: 1` option, the function exports an array of arrays of values.
-[`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) is an interactive data grid
-for previewing and modifying structured data in the web browser.
+[`x-spreadsheet`](/docs/demos/grid/xs) is an interactive data grid for
+previewing and modifying structured data in the web browser.
@@ -741,13 +741,13 @@ function Tabeller(props) {
setWorkbook(wb);
})(); });
- return workbook.SheetNames.map(name => (<>
+ return workbook.SheetNames.map(name => ( <>
name
- >));
+ > ));
}
```
diff --git a/docz/docs/07-csf/07-features/01-formulae.md b/docz/docs/07-csf/07-features/01-formulae.md
index bf4fed7..b03b6a7 100644
--- a/docz/docs/07-csf/07-features/01-formulae.md
+++ b/docz/docs/07-csf/07-features/01-formulae.md
@@ -429,7 +429,7 @@ function Translator(props) {
setNames(data[fromvalue]);
});
- return (<>
+ return ( <>
Name:
{names.map((n, idx) => ({n} ))}
@@ -440,7 +440,7 @@ function Translator(props) {
{locales.map(l => ({l} ))}
Translation: {name}
- >);
+ > );
}
```
diff --git a/docz/docs/07-csf/07-features/02-hyperlinks.md b/docz/docs/07-csf/07-features/02-hyperlinks.md
index 09d5231..14874d9 100644
--- a/docz/docs/07-csf/07-features/02-hyperlinks.md
+++ b/docz/docs/07-csf/07-features/02-hyperlinks.md
@@ -95,10 +95,10 @@ function ExportRemoteLink(props) {
XLSX.writeFile(wb, "SheetJSRemoteLink.xlsx");
});
- return (<>
+ return ( <>
Email:
Export XLSX!
- >);
+ > );
}
```
@@ -198,14 +198,14 @@ function ExportHyperlink(props) {
XLSX.writeFile(wb, "SheetJSHTMLHyperlink.xlsx");
});
- return (<>
+ return ( <>
Export XLSX!
- >);
+ > );
}
```
diff --git a/docz/docs/07-csf/07-features/03-dates.md b/docz/docs/07-csf/07-features/03-dates.md
index b85b19b..9da3943 100644
--- a/docz/docs/07-csf/07-features/03-dates.md
+++ b/docz/docs/07-csf/07-features/03-dates.md
@@ -229,10 +229,10 @@ function SSFIsDate() {
setFormat(evt.target.value);
});
const is_date = XLSX.SSF.is_date(format);
- return (<>
+ return ( <>
Format |{format}| is {is_date ? "" : "not"} a date/time
- >)
+ > );
}
```
diff --git a/docz/docs/index.md b/docz/docs/index.md
index 3485297..b2e42ec 100644
--- a/docz/docs/index.md
+++ b/docz/docs/index.md
@@ -86,7 +86,7 @@ function Table2XLSX(props) {
XLSX.writeFile(wb, "SheetJSTable.xlsx");
});
- return (<>
+ return ( <>
SheetJS Table Export
Author ID 你好!
@@ -96,7 +96,7 @@ function Table2XLSX(props) {
Export XLSX!
- >);
+ > );
}
```
@@ -165,7 +165,7 @@ function Numbers2HTML(props) {
setHTML(XLSX.utils.sheet_to_html(ws));
}, []);
- return (
);
+ return (
);
}
```
@@ -204,7 +204,7 @@ This,is,a,Test
setHTML(XLSX.utils.sheet_to_html(ws, { id: "tabeller" }));
}, []);
- return (<>
+ return ( <>
{/* Import Button */}
{
/* get data as an ArrayBuffer */
@@ -230,7 +230,7 @@ This,is,a,Test
{/* Show HTML preview */}
- >);
+ > );
}
```
diff --git a/docz/docusaurus.config.js b/docz/docusaurus.config.js
index e07ffd0..4e8ae42 100644
--- a/docz/docusaurus.config.js
+++ b/docz/docusaurus.config.js
@@ -201,6 +201,19 @@ const config = {
/* data */
{ from: '/docs/demos/nosql', to: '/docs/demos/data/' },
{ from: '/docs/demos/database', to: '/docs/demos/data/' },
+ /* net */
+ { from: '/docs/demos/headless', to: '/docs/demos/net/headless/' },
+ { from: '/docs/demos/server', to: '/docs/demos/net/server/' },
+ { from: '/docs/demos/network', to: '/docs/demos/net/network/' },
+ /* local */
+ { from: '/docs/demos/clipboard', to: '/docs/demos/local/clipboard/' },
+ { from: '/docs/demos/localfile', to: '/docs/demos/local/file/' },
+ /* desktop */
+ { from: '/docs/demos/cli', to: '/docs/demos/desktop/cli/' },
+ /* bigdata */
+ { from: '/docs/demos/ml', to: '/docs/demos/bigdata/ml/' },
+ { from: '/docs/demos/worker', to: '/docs/demos/bigdata/worker/' },
+ { from: '/docs/demos/stream', to: '/docs/demos/bigdata/stream/' },
]
}]
]
diff --git a/docz/static/muidg/App.tsx b/docz/static/muidg/App.tsx
index dbc388c..0cefa98 100644
--- a/docz/static/muidg/App.tsx
+++ b/docz/static/muidg/App.tsx
@@ -105,7 +105,7 @@ export default function App() {
{["xlsx", "xlsb", "xls"].map((ext) => (
saveFile(ext)}>export [.{ext}]
))}
- >)}
+ > )}
>
);
}
diff --git a/docz/static/rdg/App.tsx b/docz/static/rdg/App.tsx
index 80616d7..1c87782 100644
--- a/docz/static/rdg/App.tsx
+++ b/docz/static/rdg/App.tsx
@@ -104,7 +104,7 @@ export default function App() {
{["xlsx", "xlsb", "xls"].map((ext) => (
saveFile(ext)}>export [.{ext}]
))}
- >)}
+ > )}
>
);
}