diff --git a/README.md b/README.md
index b11f29d..3001a4f 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,20 @@ This is no longer valid in MDX v2. Autolinks should be used:
Scripts are available at https://cdn.sheetjs.com
```
+**Variables**
+
+Patterns such as
+
+```
+Foo{current}
+```
+
+do not work in MDX v2. Instead, string literals and concatenation must be used:
+
+```
+{"Foo" + current + ""}
+```
+
diff --git a/docz/docs/02-getting-started/01-installation/01-standalone.mdx b/docz/docs/02-getting-started/01-installation/01-standalone.mdx
index 088d632..f7ed38b 100644
--- a/docz/docs/02-getting-started/01-installation/01-standalone.mdx
+++ b/docz/docs/02-getting-started/01-installation/01-standalone.mdx
@@ -1,4 +1,5 @@
---
+title: Standalone Browser Scripts
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 1
@@ -9,8 +10,6 @@ sidebar_custom_props:
import current from '/version.js';
import CodeBlock from '@theme/CodeBlock';
-# Standalone Browser Scripts
-
Each standalone release script is available at https://cdn.sheetjs.com/.
How to integrate the mini build (click to show)
@@ -69,10 +68,11 @@ scratch, a single script tag should be added at the top of the HTML page:
### Vendoring
-For general stability, "vendoring" scripts is the recommended approach:
+For general stability, making a local copy of SheetJS scripts ("vendoring") is
+strongly recommended. Vendoring decouples websites from SheetJS infrastructure.
-1) Download the script (xlsx.full.min.js
) for
- the desired version. The current version is available at https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js
+Download the script (xlsx.full.min.js
) for
+ the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}
2) Move the script to a `public` folder with other scripts.
@@ -95,11 +95,11 @@ use the CDN scripts directly. They should be downloaded and saved to a public
directory in the site:
-Add a `script` reference to the shim before the standalone script:
+A `script` reference to the shim must be added before the standalone script:
```html
@@ -123,9 +123,11 @@ importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.mi
:::caution pass
-This section refers to imports using `script type="module"`. For imports in
-modern projects using Webpack or React or Angular or VueJS, the installation is
-described [in "Frameworks and Bundlers"](/docs/getting-started/installation/frameworks).
+This section refers to imports in HTML pages using `script type="module"`.
+
+The ["Frameworks and Bundlers"](/docs/getting-started/installation/frameworks)
+section covers imports in projects using bundlers (ViteJS) or frameworks
+(Kaioken / ReactJS / Angular / VueJS / Svelte)
:::
@@ -210,8 +212,7 @@ Bower is deprecated and the maintainers recommend using other tools.
:::
-
-The Bower package manager plays nice with the CDN tarballs:
+The Bower package manager supports tarballs from the SheetJS CDN:
{`\
npx bower install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
diff --git a/docz/docs/02-getting-started/01-installation/02-frameworks.md b/docz/docs/02-getting-started/01-installation/02-frameworks.md
index 1d1f9b6..66e47b4 100644
--- a/docz/docs/02-getting-started/01-installation/02-frameworks.md
+++ b/docz/docs/02-getting-started/01-installation/02-frameworks.md
@@ -1,9 +1,10 @@
---
+title: Frameworks and Bundlers
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 2
sidebar_custom_props:
- summary: Angular, React, VueJS, Webpack, etc.
+ summary: Kaioken, Angular, React, VueJS, ViteJS, Webpack, etc.
---
import current from '/version.js';
@@ -11,13 +12,11 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
-# Frameworks and Bundlers
-
Each standalone release package is available at https://cdn.sheetjs.com/. The
-NodeJS package is designed to be used with frameworks and bundlers. It is a
+NodeJS package is designed to be used with frameworks and bundlers. It is a
proper ECMAScript Module release which can be optimized with developer tools.
-https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}
## Installation
@@ -131,7 +130,8 @@ in `package.json` can control module resolution:
### Vendoring
-For general stability, "vendoring" modules is the recommended approach:
+For general stability, making a local copy of SheetJS modules ("vendoring") is
+strongly recommended. Vendoring decouples projects from SheetJS infrastructure.
0) Remove any existing dependency on a project named `xlsx`:
@@ -153,8 +153,8 @@ yarn remove xlsx`}
-1) Download the tarball (xlsx-{current}.tgz
) for the desired version. The current
- version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz
+Download the tarball (xlsx-{current}.tgz
) for the desired version. The current
+ version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}
2) Create a `vendor` subfolder at the root of your project and move the tarball
to that folder. Add it to your project repository.
diff --git a/docz/docs/02-getting-started/01-installation/03-nodejs.md b/docz/docs/02-getting-started/01-installation/03-nodejs.md
index ecdcb5e..37f35fe 100644
--- a/docz/docs/02-getting-started/01-installation/03-nodejs.md
+++ b/docz/docs/02-getting-started/01-installation/03-nodejs.md
@@ -14,7 +14,7 @@ import CodeBlock from '@theme/CodeBlock';
Package tarballs are available on https://cdn.sheetjs.com.
-https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}
## Installation
@@ -120,7 +120,8 @@ in `package.json` can control module resolution:
### Vendoring
-For general stability, "vendoring" modules is the recommended approach:
+For general stability, making a local copy of SheetJS modules ("vendoring") is
+strongly recommended. Vendoring decouples projects from SheetJS infrastructure.
0) Remove any existing dependency on a project named `xlsx`:
@@ -142,8 +143,7 @@ yarn remove xlsx`}
-1) Download the tarball (xlsx-{current}.tgz
) for the desired version. The current
- version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz
+Download the tarball (xlsx-{current}.tgz
) for the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}
2) Create a `vendor` subfolder at the root of your project and move the tarball
to that folder. Add it to your project repository.
diff --git a/docz/docs/02-getting-started/01-installation/04-amd.md b/docz/docs/02-getting-started/01-installation/04-amd.md
index 58e7ef8..cd2e5d3 100644
--- a/docz/docs/02-getting-started/01-installation/04-amd.md
+++ b/docz/docs/02-getting-started/01-installation/04-amd.md
@@ -1,4 +1,5 @@
---
+title: AMD (define)
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 4
@@ -9,13 +10,11 @@ sidebar_custom_props:
import current from '/version.js';
import CodeBlock from '@theme/CodeBlock';
-# AMD (define)
-
Each standalone release script is available at https://cdn.sheetjs.com/.
`xlsx.full.min.js` supports AMD with name `xlsx` out of the box.
-https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js is the URL for {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"} is the URL for {current}
:::note pass
@@ -65,6 +64,65 @@ define(['N/file', 'xlsx'], function(file, XLSX) {
**More details are included in the [NetSuite demo](/docs/demos/cloud/netsuite#installation)**
+:::caution Oracle Bugs
+
+[NetSuite users reported](https://git.sheetjs.com/sheetjs/sheetjs/issues/3097)
+errors that stem from an Oracle issue. A sample error message is shown below.
+
+```
+Fail to evaluate script: com.netsuite.suitescript.scriptobject.GraalValueAdapter@68d0f09d
+```
+
+**This is a NetSuite bug. Only Oracle can fix the bug!**
+
+It is strongly encouraged to escalate the issue with Oracle support.
+
+NetSuite users have reported success with the following workaround:
+
+1) Open the script in a text editor and search for `define(` in the code.
+
+There will be exactly one instance:
+
+```js
+define("xlsx",function(){
+```
+
+Replace the `xlsx` with `sheetjs`:
+
+```js
+define("sheetjs",function(){
+```
+
+2) Use the new name in the JSON configuration:
+
+```json title="JsLibraryConfig.json"
+{
+ "paths": {
+ // highlight-next-line
+ "sheetjs": "/path/to/xlsx.full.min"
+ }
+}
+```
+
+3) Use the new name in the array argument to the `define` function call:
+
+```js title="SuiteScript"
+/**
+ * @NApiVersion 2.x
+ * ... more options ...
+ // highlight-next-line
+ * @NAmdConfig ./JsLibraryConfig.json
+ */
+// highlight-next-line
+define(['N/file', 'sheetjs'], function(file, XLSX) {
+ // ^^^^^^^ ^^^^
+ // new module name same variable
+ // ... use XLSX here ...
+});
+```
+
+:::
+
## SAP UI5
After downloading the script, it can be uploaded to the UI5 project and loaded
diff --git a/docz/docs/02-getting-started/01-installation/05-extendscript.md b/docz/docs/02-getting-started/01-installation/05-extendscript.md
index c10ef90..8c62e72 100644
--- a/docz/docs/02-getting-started/01-installation/05-extendscript.md
+++ b/docz/docs/02-getting-started/01-installation/05-extendscript.md
@@ -1,4 +1,5 @@
---
+title: ExtendScript
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 5
@@ -8,13 +9,15 @@ sidebar_custom_props:
import current from '/version.js';
-# ExtendScript
+ExtendScript is a dialect of JavaScript used in Photoshop and InDesign scripts.
Each standalone release script is available at https://cdn.sheetjs.com/.
-`xlsx.extendscript.js` is an ExtendScript build for Photoshop and InDesign.
+`xlsx.extendscript.js` is a special ExtendScript-compatible build. The script is
+carefully assembled to work around ExtendScript quirks. Due to bugs in various
+JavaScript minifiers and tools, scripts cannot be compressed or post-processed.
-https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.extendscript.js is the URL for {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.extendscript.js"} is the URL for {current}
After downloading the script, it can be directly referenced with `#include`:
diff --git a/docz/docs/02-getting-started/01-installation/06-deno.md b/docz/docs/02-getting-started/01-installation/06-deno.md
index 077b9ea..8bd997e 100644
--- a/docz/docs/02-getting-started/01-installation/06-deno.md
+++ b/docz/docs/02-getting-started/01-installation/06-deno.md
@@ -1,4 +1,5 @@
---
+title: Deno
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 6
@@ -11,7 +12,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
-# Deno
+Deno is a JavaScript runtime that can import scripts from URLs.
Module scripts and type definitions are available at https://cdn.sheetjs.com/.
@@ -22,7 +23,8 @@ Using the URL imports, `deno run` will automatically download scripts and types:
import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';`}
-The `@deno-types` comment instructs Deno to use the type definitions.
+The module URL is the ECMAScript Module build on the SheetJS CDN. `@deno-types`
+instructs Deno to use the type definitions from the SheetJS CDN.
:::caution Deno support is considered experimental.
diff --git a/docz/docs/02-getting-started/01-installation/07-bun.md b/docz/docs/02-getting-started/01-installation/07-bun.md
index 7c97b71..df0892a 100644
--- a/docz/docs/02-getting-started/01-installation/07-bun.md
+++ b/docz/docs/02-getting-started/01-installation/07-bun.md
@@ -14,7 +14,7 @@ import CodeBlock from '@theme/CodeBlock';
Package tarballs are available on https://cdn.sheetjs.com.
-https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}
:::caution Bun support is considered experimental.
@@ -50,8 +50,7 @@ For general stability, "vendoring" modules is the recommended approach:
bun rm xlsx
```
-1) Download the tarball (xlsx-{current}.tgz
) for the desired version. The current
- version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz
+Download the tarball (xlsx-{current}.tgz
) for the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}
2) Create a `vendor` subfolder at the root of your project and move the tarball
to that folder. Add it to your project repository.
@@ -135,7 +134,7 @@ cd sheetjs-bun-dle
echo "{}" > package.json
```
-1) Install the library:
+1) Install the SheetJS package tarball:
{`\
bun install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
diff --git a/docz/docs/02-getting-started/02-examples/04-import.md b/docz/docs/02-getting-started/02-examples/04-import.md
index b528ec9..0434d5a 100644
--- a/docz/docs/02-getting-started/02-examples/04-import.md
+++ b/docz/docs/02-getting-started/02-examples/04-import.md
@@ -1,4 +1,5 @@
---
+title: Import Tutorial
pagination_prev: getting-started/installation/index
pagination_next: getting-started/roadmap
sidebar_position: 4
@@ -9,8 +10,6 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
-# Import Tutorial
-
Many government agencies distribute official data and statistics in workbooks.
SheetJS libraries help translate these files to useful information.
diff --git a/docz/docs/02-getting-started/02-examples/index.md b/docz/docs/02-getting-started/02-examples/index.md
index 95b14b1..9f41d97 100644
--- a/docz/docs/02-getting-started/02-examples/index.md
+++ b/docz/docs/02-getting-started/02-examples/index.md
@@ -1,12 +1,11 @@
---
+title: Tutorials
pagination_prev: getting-started/installation/index
pagination_next: getting-started/roadmap
---
-# Tutorials
-
SheetJS presents a simple JS interface that works with "Array of Arrays" and
-"Array of JS Objects". The API functions are building blocks that should be
+"Array of JS Objects". The API functions are building blocks that should be
combined with other JS APIs to solve problems.
These discussions focus on the problem solving mindset. API details are covered
diff --git a/docz/docs/02-getting-started/03-roadmap.md b/docz/docs/02-getting-started/03-roadmap.md
index aefa752..d247e94 100644
--- a/docz/docs/02-getting-started/03-roadmap.md
+++ b/docz/docs/02-getting-started/03-roadmap.md
@@ -1,10 +1,9 @@
---
+title: Roadmap
pagination_prev: getting-started/examples/index
sidebar_position: 3
---
-# Roadmap
-
Most scenarios involving spreadsheets and data can be divided into 5 parts:
1) **Acquire Data**: Data may be stored anywhere: local or remote files,
diff --git a/docz/docs/02-getting-started/04-zen.md b/docz/docs/02-getting-started/04-zen.md
index 20a7f61..83071a8 100644
--- a/docz/docs/02-getting-started/04-zen.md
+++ b/docz/docs/02-getting-started/04-zen.md
@@ -1,10 +1,9 @@
---
+title: Zen of SheetJS
sidebar_position: 4
hide_table_of_contents: true
---
-# Zen of SheetJS
-
SheetJS design and development is guided by a few key principles.
### Data processing should fit in any workflow
diff --git a/docz/docs/02-getting-started/index.md b/docz/docs/02-getting-started/index.md
index 753cb56..738d569 100644
--- a/docz/docs/02-getting-started/index.md
+++ b/docz/docs/02-getting-started/index.md
@@ -1,4 +1,5 @@
---
+title: Getting Started
hide_table_of_contents: true
pagination_next: getting-started/installation/index
---
@@ -6,8 +7,6 @@ pagination_next: getting-started/installation/index
import DocCardList from '@theme/DocCardList';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
-# Getting Started
-
["Export Tutorial"](/docs/getting-started/examples/export) is a live example
that covers general data munging and data export to spreadsheets.
diff --git a/docz/docs/03-demos/17-mobile/01-reactnative.md b/docz/docs/03-demos/17-mobile/01-reactnative.md
index bed4e1d..b0a07b7 100644
--- a/docz/docs/03-demos/17-mobile/01-reactnative.md
+++ b/docz/docs/03-demos/17-mobile/01-reactnative.md
@@ -1,5 +1,5 @@
---
-title: React Native
+title: Sheets on the Go with React Native
sidebar_label: React Native
description: Build data-intensive mobile apps with React Native. Seamlessly integrate spreadsheets into your app using SheetJS. Securely process and generate Excel files in the field.
pagination_prev: demos/static/index
@@ -9,8 +9,6 @@ sidebar_custom_props:
summary: React + Native Rendering
---
-# Sheets on the Go with React Native
-
import current from '/version.js';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
diff --git a/docz/docs/03-demos/19-desktop/04-tauri.md b/docz/docs/03-demos/19-desktop/04-tauri.md
index 0d52814..37730c6 100644
--- a/docz/docs/03-demos/19-desktop/04-tauri.md
+++ b/docz/docs/03-demos/19-desktop/04-tauri.md
@@ -9,8 +9,6 @@ sidebar_custom_props:
summary: Webview + Rust Backend
---
-# Data Wrangling in Tauri Apps
-
import current from '/version.js';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
diff --git a/docz/docs/03-demos/30-cloud/01-salesforce.md b/docz/docs/03-demos/30-cloud/01-salesforce.md
index 2047c18..f4329bf 100644
--- a/docz/docs/03-demos/30-cloud/01-salesforce.md
+++ b/docz/docs/03-demos/30-cloud/01-salesforce.md
@@ -499,7 +499,7 @@ The app will display the "SheetForce demo" text from the component template:
### Add SheetJS
-16) Download https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js
+Download {"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}
:::warning pass
diff --git a/docz/docs/03-demos/32-extensions/10-stata.md b/docz/docs/03-demos/32-extensions/10-stata.md
index 4dbcc7b..523a119 100644
--- a/docz/docs/03-demos/32-extensions/10-stata.md
+++ b/docz/docs/03-demos/32-extensions/10-stata.md
@@ -428,8 +428,8 @@ program drop cleanfile
clear
```
-19) In the result of Step 16, click the link on import
-excel "sheetjs.tmp.xlsx", firstrow
+In the result of Step 16, click the link on import
+excel "sheetjs.tmp.xlsx", firstrow
Alternatively, manually type the command:
diff --git a/docz/docs/03-demos/index.md b/docz/docs/03-demos/index.md
index ec05c25..ff77370 100644
--- a/docz/docs/03-demos/index.md
+++ b/docz/docs/03-demos/index.md
@@ -1,11 +1,10 @@
---
+title: Demos
pagination_prev: getting-started/index
pagination_next: solutions/input
hide_table_of_contents: true
---
-# Demos
-
Demos include complete examples and short discussions. For features that can
run in the web browser, demos will include interactive examples.
@@ -29,8 +28,9 @@ in the [issue tracker](https://git.sheetjs.com/sheetjs/docs.sheetjs.com/issues)
### Web Frameworks
+- [`Kaioken`](/docs/demos/frontend/kaioken)
- [`Angular`](/docs/demos/frontend/angular)
-- [`React`](/docs/demos/frontend/react)
+- [`ReactJS`](/docs/demos/frontend/react)
- [`Svelte`](/docs/demos/frontend/svelte)
- [`VueJS`](/docs/demos/frontend/vue)
- [`AngularJS`](/docs/demos/frontend/angularjs)
@@ -132,12 +132,13 @@ in the [issue tracker](https://git.sheetjs.com/sheetjs/docs.sheetjs.com/issues)
- [`JavaScript Engines`](/docs/demos/engines)
- [`V8 (C++ / Rust)`](/docs/demos/engines/v8)
-- [`Duktape (C / Perl)`](/docs/demos/engines/duktape)
+- [`Duktape (C / Perl / Python / Zig)`](/docs/demos/engines/duktape)
- [`JavaScriptCore (Swift)`](/docs/demos/engines/jsc)
- [`Rhino (Java)`](/docs/demos/engines/rhino)
- [`Nashorn (Java)`](/docs/demos/engines/nashorn)
- [`Goja (Go)`](/docs/demos/engines/goja)
- [`ChakraCore (C++)`](/docs/demos/engines/chakra)
- [`QuickJS (C)`](/docs/demos/engines/quickjs)
+- [`Jint (C# / .NET)`](/docs/demos/engines/jint)
- [`ExecJS (Ruby)`](/docs/demos/engines/rb)
- [`JavaScript::Engine (Perl)`](/docs/demos/engines/perl)
diff --git a/docz/docs/06-solutions/01-input.md b/docz/docs/06-solutions/01-input.md
index 3664b17..88c9270 100644
--- a/docz/docs/06-solutions/01-input.md
+++ b/docz/docs/06-solutions/01-input.md
@@ -1,10 +1,9 @@
---
+title: Data Import
sidebar_position: 1
pagination_prev: demos/index
---
-# Data Import
-
import current from '/version.js';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
diff --git a/docz/docs/06-solutions/03-processing.md b/docz/docs/06-solutions/03-processing.md
index 9f13906..6b885bd 100644
--- a/docz/docs/06-solutions/03-processing.md
+++ b/docz/docs/06-solutions/03-processing.md
@@ -1,9 +1,8 @@
---
+title: Data Processing
sidebar_position: 3
---
-# Data Processing
-
The ["Common Spreadsheet Format"](/docs/csf/general) is a simple object
representation of the core concepts of a workbook. The utility functions work
with the object representation and are intended to handle common use cases.
diff --git a/docz/docs/06-solutions/05-output.md b/docz/docs/06-solutions/05-output.md
index b30ac94..706d82f 100644
--- a/docz/docs/06-solutions/05-output.md
+++ b/docz/docs/06-solutions/05-output.md
@@ -1,14 +1,20 @@
---
+title: Data Export
sidebar_position: 5
---
-# Data Export
-
import current from '/version.js';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
+:::tip pass
+
+The ["Export Tutorial"](/docs/getting-started/examples/export) is a gentle
+introduction to data processing and export.
+
+:::
+
## Writing Workbooks
### API
diff --git a/docz/docs/07-csf/03-sheet.md b/docz/docs/07-csf/03-sheet.md
index 4e57639..8c39773 100644
--- a/docz/docs/07-csf/03-sheet.md
+++ b/docz/docs/07-csf/03-sheet.md
@@ -1,12 +1,11 @@
---
+title: Sheet Objects
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Sheet Objects
-
Excel supports 4 different types of "sheets":
- "worksheets": normal sheets
- "chartsheets": full-tab charts
diff --git a/docz/docs/07-csf/04-book.md b/docz/docs/07-csf/04-book.md
index 43be47f..77e2c41 100644
--- a/docz/docs/07-csf/04-book.md
+++ b/docz/docs/07-csf/04-book.md
@@ -1,8 +1,10 @@
---
+title: Workbook Object
sidebar_position: 4
---
-# Workbook Object
+SheetJS workbook objects represent collections of worksheets and associated
+workbook-level metadata.
For a given workbook object `wb`:
diff --git a/docz/docs/07-csf/07-features/02-formulae.md b/docz/docs/07-csf/07-features/02-formulae.md
index e096578..e3c60bd 100644
--- a/docz/docs/07-csf/07-features/02-formulae.md
+++ b/docz/docs/07-csf/07-features/02-formulae.md
@@ -1,9 +1,8 @@
---
+title: Formulae
sidebar_position: 2
---
-# Formulae
-
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
diff --git a/docz/docs/07-csf/07-features/index.md b/docz/docs/07-csf/07-features/index.md
index ca9633a..226cc82 100644
--- a/docz/docs/07-csf/07-features/index.md
+++ b/docz/docs/07-csf/07-features/index.md
@@ -1,12 +1,17 @@
-# Spreadsheet Features
+---
+title: Spreadsheet Features
+---
import DocCardList from '@theme/DocCardList';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
-Even for basic features like date storage, the official Excel formats store the
-same content in different ways. The parsers are expected to convert from the
-underlying file format representation to the Common Spreadsheet Format. Writers
-are expected to serialize SheetJS workbooks in the underlying file format.
+File formats represent data in different ways.
+
+SheetJS parsers are expected to convert from the underlying file format
+representation to the Common Spreadsheet Format.
+
+SheetJS writers are expected to convert from the Common Spreadsheet Format to
+the relevant file formats.
The following topics are covered in sub-pages:
diff --git a/docz/docs/08-api/05-write-options.md b/docz/docs/08-api/05-write-options.md
index b47950d..7ebdf4e 100644
--- a/docz/docs/08-api/05-write-options.md
+++ b/docz/docs/08-api/05-write-options.md
@@ -130,7 +130,7 @@ Adding NUMBERS export support involves two steps:
-https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.zahl.js is the URL for {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.zahl.js"} is the URL for {current}
{`\
\n\
@@ -202,7 +202,7 @@ XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL_PAYLOAD, compression:
-https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.zahl.mjs is the URL for {current}
+{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.zahl.mjs"} is the URL for {current}
{`\
import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';\n\
diff --git a/docz/docs/08-api/07-utilities/03-html.md b/docz/docs/08-api/07-utilities/03-html.md
index a77ae08..03bfca4 100644
--- a/docz/docs/08-api/07-utilities/03-html.md
+++ b/docz/docs/08-api/07-utilities/03-html.md
@@ -377,7 +377,7 @@ can be added to the individual TD elements:
| Attribute | Description |
|:----------|:-------------------------------------------------------------|
-| `data-t` | Override [Cell Type](/docs/csf/cell#data-types) |
+| `data-t` | Override [Cell Type](/docs/csf/cell#cell-types) |
| `data-v` | Override Cell Value |
| `data-z` | Override [Number Format](/docs/csf/features/nf) |
diff --git a/docz/docs/09-miscellany/04-testing.md b/docz/docs/09-miscellany/04-testing.md
index 29ea0a8..edfeebd 100644
--- a/docz/docs/09-miscellany/04-testing.md
+++ b/docz/docs/09-miscellany/04-testing.md
@@ -1,19 +1,18 @@
---
+title: Testing
sidebar_position: 4
hide_table_of_contents: true
---
-# Testing
-
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-`make test` will run the node-based tests. By default it runs tests on files in
-every supported format. To test a specific file type, set `FMTS` to the format
-you want to test. Feature-specific tests are available with `make test_misc`
+`make test` will run the NodeJS tests. By default it runs tests on files in
+every supported format. To test a specific file type, set `FMTS` to the desired
+file extension. Feature-specific tests are available with `make test_misc`.
```bash
$ make test_misc # run core tests
@@ -105,8 +104,7 @@ env TZ="Asia/Kolkata" WTF=1 make test_misc
### Test Files
-Test files are housed in [another repo](https://github.com/SheetJS/test_files).
+The test files were hosted on [GitHub](https://github.com/SheetJS/test_files).
-Running `make init` will refresh the `test_files` submodule and get the files.
-[The "OS-Specific Setup"](/docs/miscellany/contributing#os-specific-setup)
-includes notes for installing the required dependencies.
+Due to breaking changes in the GitHub infrastructure, the test artifacts are now
+distributed in a [ZIP archive](https://test-files.sheetjs.com/test_files.zip)
diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md
index a5296b4..d1cf4c8 100644
--- a/docz/docs/09-miscellany/05-contributing.md
+++ b/docz/docs/09-miscellany/05-contributing.md
@@ -1,11 +1,13 @@
---
+title: Contributing
sidebar_position: 5
---
-# Contributing
-
Due to the precarious nature of the Open Specifications Promise, it is very
-important to ensure code is cleanroom. [Contribution Notes](https://git.sheetjs.com/sheetjs/sheetjs/src/branch/master/CONTRIBUTING.md)
+important to ensure code is cleanroom.
+
+[The Contribution Notes](https://git.sheetjs.com/sheetjs/sheetjs/src/branch/master/CONTRIBUTING.md)
+should be perused before contributing code.
File organization (click to show)
@@ -20,7 +22,7 @@ Folders:
| `misc` | miscellaneous supporting scripts |
| `modules` | TypeScript source files that generate some of the bits |
| `packages` | Support libraries and tools |
-| `test_files` | test files (pulled from the test files repository) |
+| `test_files` | test files (pulled from the test artifacts distribution) |
| `tests` | browser tests (run `make ctest` to rebuild) |
| `types` | TypeScript definitions and tests |
diff --git a/docz/docs/09-miscellany/07-license.md b/docz/docs/09-miscellany/07-license.md
index 51d1886..89d2790 100644
--- a/docz/docs/09-miscellany/07-license.md
+++ b/docz/docs/09-miscellany/07-license.md
@@ -1,10 +1,9 @@
---
+title: License
sidebar_position: 7
hide_table_of_contents: true
---
-# License
-
SheetJS Community Edition is licensed under the "Apache 2.0 License". All rights
not explicitly granted by the Apache 2.0 License are reserved by SheetJS LLC.
@@ -34,6 +33,15 @@ See the License for the specific language governing permissions and
limitations under the License.
```
+#### Open Source Disclosure
+
+It is strongly recommended to create a separate page listing all embedded open
+source software. The "open source disclosure" should be linked from relevant
+pages including Terms of Service (ToS) and End User License Agreement (EULA)
+
+[Office 365](https://web.archive.org/web/20240412032204/https://tasks.office.com/license.html)
+includes the short-form attribution in a special license page.
+
Complete License Text (click to show)
diff --git a/docz/docs/09-miscellany/08-references.md b/docz/docs/09-miscellany/08-references.md
index 292862a..e073710 100644
--- a/docz/docs/09-miscellany/08-references.md
+++ b/docz/docs/09-miscellany/08-references.md
@@ -1,10 +1,9 @@
---
+title: References
sidebar_position: 8
hide_table_of_contents: true
---
-# References
-
Some of our original research is documented at https://oss.sheetjs.com/notes/
The specifications list is non-exhaustive.
diff --git a/docz/docusaurus.config.js b/docz/docusaurus.config.js
index c25bd57..a69a7f3 100644
--- a/docz/docusaurus.config.js
+++ b/docz/docusaurus.config.js
@@ -87,7 +87,7 @@ const config = {
mermaid: {
options: {
themeVariables: {
- edgeLabelBackground: ""
+ edgeLabelBackground: "transparent"
}
}
},
@@ -181,7 +181,7 @@ const config = {
}
})
},
- additionalLanguages: [ "visual-basic", "swift", "java", "php", "csharp", "perl", "ruby", "cpp", "applescript", "liquid", "rust", "dart", "wolfram", "matlab", "stata", "zig" ],
+ additionalLanguages: [ "visual-basic", "swift", "java", "php", "csharp", "perl", "ruby", "cpp", "applescript", "liquid", "rust", "dart", "wolfram", "matlab", "stata", "zig", "diff" ],
},
liveCodeBlock: {
playgroundPosition: 'top'