diff --git a/docz/docs/02-getting-started/02-examples/06-loader.md b/docz/docs/02-getting-started/02-examples/06-loader.md index c1a6244..044cf90 100644 --- a/docz/docs/02-getting-started/02-examples/06-loader.md +++ b/docz/docs/02-getting-started/02-examples/06-loader.md @@ -36,9 +36,9 @@ This demo was tested in the following configurations: | Platform | Architecture | Date | |:------------------------------------------------------------------|:-------------|:-----------| | NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-08 | -| NVIDIA RTX 4080 SUPER (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-12-19 | -| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-09-21 | -| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-10-07 | +| NVIDIA RTX 4080 SUPER (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | +| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | +| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | | Apple M2 Max 12-Core CPU + 30-Core GPU (32 GB unified memory) | `darwin-arm` | 2024-11-04 | SheetJS users have verified this demo in other configurations: @@ -723,7 +723,10 @@ a [sample cars dataset](pathname:///cd.xls) and displays the results. SheetJS team members have tested this demo on Windows 10 and Windows 11 using PowerShell and Ollama for Windows. -SheetJS users have also tested this demo within Windows Subsystem for Linux. +SheetJS team members have tested this demo on Windows 11 using Windows Subsystem +for Linux. + +In addition, SheetJS users have also tested this demo on bare metal Linux. ::: diff --git a/docz/docs/03-demos/02-frontend/01-kaioken.md b/docz/docs/03-demos/02-frontend/01-kaioken.md index 3190c1b..eb61ce3 100644 --- a/docz/docs/03-demos/02-frontend/01-kaioken.md +++ b/docz/docs/03-demos/02-frontend/01-kaioken.md @@ -63,7 +63,7 @@ loaded into the site. This sheet will have known columns. The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row: diff --git a/docz/docs/03-demos/02-frontend/02-react.md b/docz/docs/03-demos/02-frontend/02-react.md index 27d8fe1..26002f0 100644 --- a/docz/docs/03-demos/02-frontend/02-react.md +++ b/docz/docs/03-demos/02-frontend/02-react.md @@ -59,7 +59,7 @@ loaded into the site. This sheet will have known columns. The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row:
SpreadsheetState
diff --git a/docz/docs/03-demos/02-frontend/03-angular.md b/docz/docs/03-demos/02-frontend/03-angular.md index e010b7e..9143c5f 100644 --- a/docz/docs/03-demos/02-frontend/03-angular.md +++ b/docz/docs/03-demos/02-frontend/03-angular.md @@ -89,7 +89,7 @@ loaded into the site. This sheet will have known columns. The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row:
SpreadsheetState
diff --git a/docz/docs/03-demos/02-frontend/04-vue.md b/docz/docs/03-demos/02-frontend/04-vue.md index 1d69e66..9cb8c43 100644 --- a/docz/docs/03-demos/02-frontend/04-vue.md +++ b/docz/docs/03-demos/02-frontend/04-vue.md @@ -58,7 +58,7 @@ loaded into the site. This sheet will have known columns. The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row:
SpreadsheetState
diff --git a/docz/docs/03-demos/02-frontend/07-angularjs.md b/docz/docs/03-demos/02-frontend/07-angularjs.md index d7a8473..201fc6c 100644 --- a/docz/docs/03-demos/02-frontend/07-angularjs.md +++ b/docz/docs/03-demos/02-frontend/07-angularjs.md @@ -169,7 +169,7 @@ depends on the application. The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row:
SpreadsheetState
diff --git a/docz/docs/03-demos/02-frontend/10-openui5.md b/docz/docs/03-demos/02-frontend/10-openui5.md index 189628c..0a631dc 100644 --- a/docz/docs/03-demos/02-frontend/10-openui5.md +++ b/docz/docs/03-demos/02-frontend/10-openui5.md @@ -31,14 +31,14 @@ includes a complete example starting from the OpenUI5 "Worklist App Tutorial". ## Installation -SheetJS libraries conform to the UI5 ECMAScript limitations[^1]. SheetJS +SheetJS libraries conform to the UI5 ECMAScript requirements[^1]. SheetJS libraries can be loaded in a UI5 site at different points in the app lifecycle. -**HTML** +#### HTML {#installation-html} UI5 is typically loaded in a `SCRIPT` tag in `webapp/index.html`. Similarly, [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) -can be loaded in the same HTML page: +can be loaded with a `SCRIPT` tag in the same HTML page: {`\ @@ -50,39 +50,42 @@ in the ["API Reference"](/docs/api/) section of the documentation. :::caution pass -The SheetJS Standalone script must be loaded before the UI5 bootstrap script: +**The SheetJS Standalone script must be loaded before the UI5 bootstrap script**: -{`\ +{`\ UI5 Walkthrough + + + + + > `} ::: -**UI5 Module** +#### UI5 Module {#installation-define} The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) comply with AMD `define` semantics. They support `sap.ui.define` out of the box. If the SheetJS Standalone script is saved to `webapp/xlsx.full.min.js`, the base -script `webapp/index.js` can load the library at `./xlsx.full.min`. +script `webapp/index.js` can load the `./xlsx.full.min` dependency: -```js title="webapp/index.js" +```js title="webapp/index.js (loading the SheetJS dependency)" sap.ui.define([ // highlight-next-line "./xlsx.full.min", // relative path to script, without the file extension /* ... other libraries ... */ -], function( +], function ( // highlight-next-line _XLSX // !! NOTE: this is not XLSX! A different variable name must be used /* ... variables for the other libraries ... */, @@ -108,15 +111,19 @@ depends on the application. ### JSON Model -The OpenUI5 JSON Model is a way to store and manage your data in a format that's easy -for JavaScript to work with. Think of it like a container that holds your spreadsheet -data and automatically updates your webpage whenever the data changes. +The UI5 `JSONModel`[^2] is a client-side model implementation for JavaScript +object data. Think of it like a container that holds your spreadsheet data. -#### State +`JSONModel` provides powerful two-way data binding capabilities. UI5 will +automatically updates your webpage whenever the data changes. It will also +respond to changes when users interact with components in the webpage. + + +#### State {#json-state} The example [presidents sheet](https://docs.sheetjs.com/pres.xlsx) has one header row with "Name" and "Index" columns. The natural JS representation is an -object for each row, using the values in the first rows as keys: +object for each row, where the keys are specified in the first row:
SpreadsheetState
@@ -138,26 +145,25 @@ object for each row, using the values in the first rows as keys:
SpreadsheetState
-The OpenUI5 `JSONModel`[^2] is a client-side model implementation that stores data as JSON. -Here's a basic example of initializing a model, with a more complete implementation shown later: +Here is a basic example of initializing a model. A more complete implementation +will be shown later. - - - -```js +```js title="UI5 JSONModel for rows of data" sap.ui.define(["sap/ui/model/json/JSONModel"], function (JSONModel) { - const oModel = new JSONModel({ presidents: [] }); + // highlight-next-line + const oModel = new JSONModel({ presidents: [] }); }); ``` - - +#### Updating State {#json-update} -#### Updating State +Starting from a spreadsheet file, the SheetJS [`read`](/docs/api/parse-options) +method parses the data into a SheetJS workbook object[^6]. After selecting a +worksheet, the [`sheet_to_json`](/docs/api/utilities/array#array-output) method +generates row objects that can be assigned to the model. -The SheetJS [`read`](/docs/api/parse-options) and [`sheet_to_json`](/docs/api/utilities/array#array-output) -functions simplify state updates. OpenUI5's JSONModel provides powerful two-way data binding -capabilities. +Here is a sample flow diagram and method for downloading a workbook, generating +rows from the first worksheet, and updating a UI5 `JSONModel`: ```mermaid flowchart LR @@ -172,15 +178,14 @@ flowchart LR wb --> |wb.Sheets\nselect sheet| ws ws --> |sheet_to_json\n\n| aoo aoo --> |setProperty\nfrom model| model + linkStyle 1,2,3 color:blue,stroke:blue; ``` - - - -```js +```js title="Download workbook, extract data from first worksheet, and update JSONModel" _loadExcelFile: async function () { /* Download from https://docs.sheetjs.com/pres.xlsx */ const f = await (await fetch("https://docs.sheetjs.com/pres.xlsx")).arrayBuffer(); + // highlight-start /* parse */ const wb = XLSX.read(f); // parse the array buffer @@ -189,52 +194,45 @@ _loadExcelFile: async function () { const data = XLSX.utils.sheet_to_json(ws); // generate objects /* update JSONModel */ - this.getView().getModel().setProperty("/presidents", data); + this.getView().getModel().setProperty("/presidents", data); // highlight-end } ``` - - +#### Rendering Data {#json-render} +In UI5, the "Model-View-Controller"[^3] pattern is used to organize code and +separate concerns. The view defines the UI structure, the controller handles the +logic, and the model manages the data. -#### Rendering Data - -In OpenUI5, the `Model-View-Controller`[^3] pattern is used to organize code and separate concerns. -The view defines the UI structure, the controller handles the logic, and the model manages the data. - -```xml title="Example XML for displayin array of objects" +```xml title="Example View XML for displaying an array of objects" - - - - - - -
-
- -
-
-
- - // highlight-start - - - - - - - - - // highlight-end -
-
+ + + + + + +
+
+
+ + + + + + + + + + + +
+
``` - -#### Exporting Data +#### Exporting Data {#json-export} The [`writeFile`](/docs/api/write-options) and [`json_to_sheet`](/docs/api/utilities/array#array-of-objects-input) functions simplify exporting data. They are typically used in event handlers attached to buttons or other elements. @@ -254,7 +252,7 @@ flowchart LR ```js /* get model data and export to XLSX */ - onExport: function() { + onExport: function () { const data = this.getView().getModel().getProperty("/presidents"); /* generate worksheet from model data */ // highlight-next-line @@ -587,4 +585,5 @@ will generate a workbook that can be opened in a spreadsheet editor. [^2]: See [`JSONModel`](https://sdk.openui5.org/1.38.62/docs/api/symbols/sap.ui.model.json.JSONModel.html) in the OpenUI5 documentation. [^3]: See OpenUI5's [MVC Documentation](https://sdk.openui5.org/topic/91f233476f4d1014b6dd926db0e91070) for detailed explanation of the pattern implementation. [^4]: See ["Merged Cells" in "SheetJS Data Model"](/docs/csf/features/merges) for more details. -[^5]: See [`core:HTML`](https://sdk.openui5.org/1.38.62/docs/api/symbols/sap.ui.core.HTML.html) in the OpenUI5 documentation. \ No newline at end of file +[^5]: See [`core:HTML`](https://sdk.openui5.org/1.38.62/docs/api/symbols/sap.ui.core.HTML.html) in the OpenUI5 documentation. +[^6]: See ["SheetJS Data Model"](/docs/csf/) \ No newline at end of file diff --git a/docz/docs/03-demos/30-cloud/18-github.md b/docz/docs/03-demos/30-cloud/18-github.md index 3e5243f..9be22d7 100644 --- a/docz/docs/03-demos/30-cloud/18-github.md +++ b/docz/docs/03-demos/30-cloud/18-github.md @@ -96,7 +96,7 @@ For this demo, https://docs.sheetjs.com/pres.xlsx will be used. The `githubocto/flat` action can be added as a step in a workflow: -```yaml +```yaml title="Sample GitHub Action step" - name: Fetch data uses: githubocto/flat@v3 with: @@ -190,7 +190,7 @@ Deno.writeFileSync(out_file, new TextEncoder().encode(csv));`} :::note Tested Deployments -This was last tested by SheetJS users on 2024 June 07. +This was last tested by SheetJS users on 2025-01-15. ::: @@ -205,26 +205,44 @@ Flat Viewer URL for the repo is https://flatgithub.com/SheetJS/flat-sheet/ 0) Create a free GitHub account or sign into the GitHub web interface. -1) Create a new repository (click the "+" icon in the upper-right corner). +1) Create a new repository by clicking the "+" icon in the upper-right corner +and selecting "New repository" in the dropdown. -- When prompted, enter a repository name of your choosing. +![Creating a new repo](pathname:///github/new-repo.png) + +2) In the "Create a new repository" page, enter the following information: + +- "Repository name": `flat-sheet` - Ensure "Public" is selected - Check "Add a README file" -- Click "Create repository" at the bottom. + +![Repo creation](pathname:///github/create-repo.png) + +Click "Create repository" at the bottom to create the new repository. You will be redirected to the new project. ### Add Code -2) In the browser URL bar, change "github.com" to "github.dev". For example, if - the URL was originally `https://github.com/SheetJS/flat-sheet` , the new URL - should be `https://github.dev/SheetJS/flat-sheet` . Press Enter. +3) In the browser URL bar, change "github.com" to "github.dev". For example, if +the URL was originally `https://github.com/SheetJS/flat-sheet` , the new URL +should be `https://github.dev/SheetJS/flat-sheet` . Press Enter. -3) In the left "EXPLORER" panel, double-click just below README.md. A text box - will appear just above README. Type `postprocess.ts` and press Enter. +:::note pass - The main panel will show a `postprocess.ts` tab. Copy the following code to - the main editor window: +In some tests, there was a prompt: + +> The extension 'GitHub Repositories' wants to sign in using GitHub. + +Click "Allow" and select your user account when prompted. + +::: + +4) In the left "EXPLORER" panel, double-click just below README.md. A text box +will appear just above README. Type `postprocess.ts` and press Enter. + +The main panel will show a `postprocess.ts` tab. Copy the following code to the +main editor window: {`\ // @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts" @@ -249,12 +267,11 @@ const csv = XLSX.utils.sheet_to_csv(first_sheet); Deno.writeFileSync(out_file, new TextEncoder().encode(csv));`} +5) In the left "EXPLORER" panel, double-click just below README.md. A text box +will appear. Type `.github/workflows/data.yaml` and press Enter. -4) In the left "EXPLORER" panel, double-click just below README.md. A text box - will appear. Type `.github/workflows/data.yaml` and press Enter. - - Copy the following code into the main area. It will create an action that - runs roughly once an hour: +Copy the following code into the main area. It will create an action that runs +roughly once an hour: ```yaml title=".github/workflows/data.yaml" name: flatsheet @@ -282,48 +299,74 @@ jobs: postprocess: ./postprocess.ts ``` -5) Click on the source control icon (a little blue circle with the number 2). - In the left panel, select Message box, type `init` and press CTRL - +Enter on Windows (Command+Enter on MacOS). +6) Click on the source control icon (a little blue circle with the number 2). In +the left panel, select the Message box, type `init` and press CTRL + +Enter on Windows (Command + Enter on MacOS). -6) Click the `☰` icon and click "Go to Repository" to return to the repo page. +7) Click the `☰` icon and click "Go to Repository" to return to the repo page. ### Test Action -7) Click "Settings" to see the repository settings. In the left column, click - "Actions" to expand the submenu and click "General". +8) Click "Settings" near the top of the page to see the repository settings. In +the left column, click "Actions" to expand the submenu and click "General". - Scroll down to "Workflow permissions" and select "Read and write permissions" - if it is not selected. Click "Save". +![Actions Settings](pathname:///github/actions-settings.png) -8) Click "Actions" to see the workflows. In the left column, click `flatsheet`. +Scroll down to "Workflow permissions" and select "Read and write permissions" if +it is not selected. Click "Save". - This is the page for the action. Every time the action is run, a new entry - will be added to the list. +![Workflow Permissions](pathname:///github/workflow-perms.png) - Click "Run workflow", then click the "Run workflow" button in the popup. - This will start a new run. After about 30 seconds, a new row should show up - in the main area. The icon should be a white `✓` in a green circle. +9) Click "Actions" to see the workflows. -9) Click "Code" to return to the main view. It should have a file listing that - includes `data.xlsx` (downloaded file) and `data.csv` (generated data) +:::note pass -10) Repeat step 8 to run the action a second time. Click "Code" again. +In some tests, GitHub showed the following screen: + +![Actions screen](pathname:///github/actions-disabled.png) + +Click "Enable Actions on this repository". + +::: + +In the left column, click `flatsheet`. + +![Actions left column](pathname:///github/actions-flatsheet.png) + +This is the page for the action. Every time the action is run, a new entry will +be added to the list. + +10) Click "Run workflow", then click the "Run workflow" button in the popup. +This will start a new run. + +![Run Workflow dropdown](pathname:///github/run-workflow.png) + +After about 30 seconds, a new row should show up in the +main area. The icon should be a white `✓` in a green circle. + +![Actions success](pathname:///github/action-success.png) + +11) Click "Code" near the top of the page to return to the main view. The file +listing will include `data.xlsx` (fetched file) and `data.csv` (generated data): + +![File listing](pathname:///github/file-listing.png) + +12) Repeat step 10 to run the action a second time. Click "Code" again. ### Viewer -11) Go to the URL bar and change "github.com" to "flatgithub.com". For example, - if the URL was originally `https://github.com/SheetJS/flat-sheet` , the new - URL should be `https://flatgithub.com/SheetJS/flat-sheet` . Press Enter. +13) Go to the URL bar and change "github.com" to "flatgithub.com". For example, +if the URL was originally `https://github.com/SheetJS/flat-sheet` , the new URL +will be `https://flatgithub.com/SheetJS/flat-sheet` . Press Enter. - You will see the "Flat Viewer". In the top bar, the "Commit" option allows - for switching to an older version of the data. +You will see the "Flat Viewer". In the top bar, the "Commit" option allows for +switching to an older version of the data. - The following screenshot shows the viewer in action: +The following screenshot shows the viewer in action: ![Flat Viewer for SheetJS/flat-sheet](pathname:///github/viewer.png) - The column chart in the Index column is a histogram. +The column chart in the Index column is a histogram. [^1]: See ["Repositories documentation"](https://docs.github.com/en/repositories) in the GitHub documentation. [^2]: See ["GitHub Actions documentation"](https://docs.github.com/en/actions) in the GitHub documentation. diff --git a/docz/docs/03-demos/30-cloud/19-deno.md b/docz/docs/03-demos/30-cloud/19-deno.md index f6cd2fb..139d761 100644 --- a/docz/docs/03-demos/30-cloud/19-deno.md +++ b/docz/docs/03-demos/30-cloud/19-deno.md @@ -28,7 +28,7 @@ When the demo was last tested, Deno Deploy required a GitHub account. :::note Tested Deployments -This demo was last tested by SheetJS users on 2024 May 26. +This demo was last tested by SheetJS users on 2025-01-15. ::: @@ -59,7 +59,7 @@ The `content` property of the returned object can be parsed with `XLSX.read`. The following example assumes the file is submitted at field name `file`: -{`\ +{`\ // @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts" import { read, utils } from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs'; import * as Drash from "https://cdn.jsdelivr.net/gh/drashland/drash@v2.8.1/mod.ts"; @@ -92,6 +92,13 @@ In the next screen, review the prompt and click "Authorize Deno Deploy". If a welcome screen is displayed, click "I know what I'm doing". +:::caution pass + +If a Terms and Conditions prompt is displayed, review the Terms and Conditions +and the Privacy Policy before checking the box and clicking "Continue" + +::: + 3) Click "New Playground" to create a new Playground. 4) Download [`s2c.ts`](pathname:///deno/s2c.ts). @@ -99,8 +106,12 @@ If a welcome screen is displayed, click "I know what I'm doing". 5) Open `s2c.ts` with a text editor and copy the contents of the source file into the playground editor (left pane in the browser). +![Deno Deploy Editor](pathname:///deno/editor.png) + 6) Click "Save and Deploy". When the demo was last tested, it was a blue button. +![Save and Deploy](pathname:///deno/save-deploy.png) + ### Testing 7) Wait until the server is deployed. When it is deployed, the right panel will diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md index b0d3fef..d6c9f9e 100644 --- a/docz/docs/09-miscellany/05-contributing.md +++ b/docz/docs/09-miscellany/05-contributing.md @@ -42,11 +42,11 @@ These instructions were tested on the following platforms: | Platform | Architecture | Test Date | |:------------------------------|:-------------|:-----------| | Linux (Steam Deck Holo x64) | `linux-x64` | 2025-01-10 | -| Linux (Arch Linux AArch64) | `linux-arm` | 2024-05-10 | +| Linux (Debian Linux AArch64) | `linux-arm` | 2025-01-14 | | MacOS 14.4 (x64) | `darwin-x64` | 2024-07-12 | | MacOS 15.1 (ARM64) | `darwin-arm` | 2024-11-10 | | Windows 10 (x64) + WSL Ubuntu | `win10-x64` | 2024-07-12 | -| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2024-12-19 | +| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2025-01-14 | | Windows 11 (ARM) + WSL Ubuntu | `win11-arm` | 2024-05-23 | With some additional dependencies, the unminified scripts are reproducible and @@ -72,7 +72,7 @@ A) Ensure WSL ("WSL 2" in Windows 10) and the Ubuntu distribution are installed. In "Turn Windows features on or off", all available features from the following list should be enabled: -- "Hyper-V" (including every sub-feature) +- "Hyper-V" (if the option is available) - "Virtual Machine Platform" - "Windows Hypervisor Platform" - "Windows Subsystem for Linux" @@ -84,20 +84,28 @@ to install every listed feature that is available for the Windows version. ::: -The following command installs Ubuntu within WSL: +The following PowerShell command updates WSL: ```powershell wsl --update +``` + +The following PowerShell command installs Ubuntu within WSL: + +```powershell wsl --install Ubuntu ``` +:::note pass + In some versions of `wsl`, the `-d` flag must be specified: ```powershell -wsl --update wsl --install -d Ubuntu ``` +::: + :::info pass In some tests, the install failed with a `WSL_E_DEFAULT_DISTRO_NOT_FOUND` error. @@ -566,7 +574,7 @@ git log | grep -B4 "version bump 0.20.3" The output should look like: -```bash +```bash title="Expected output" $ git log | grep -B4 "version bump 0.20.3" # highlight-next-line commit 8a7cfd47bde8258c0d91df6a737bf0136699cdf8 <-- this is the commit hash @@ -576,7 +584,7 @@ Date: Fri Jul 12 11:47:14 2024 -0400 version bump 0.20.3 ``` -6) Switch to that commit: +6) Switch to the commit identified by the hash from the previous step: ```bash git checkout 8a7cfd47bde8258c0d91df6a737bf0136699cdf8 @@ -632,8 +640,7 @@ curl -L https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/xlsx.full.min.js | md5s The following output was captured in `win11-arm` for SheetJS version `0.20.3`: -> -```bash +```bash title="Expected output" $ md5sum dist/xlsx.full.min.js # highlight-next-line 6b3130af1ceadf07caa0ec08af7addff dist/xlsx.full.min.js @@ -651,8 +658,7 @@ curl -k -L https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/xlsx.full.min.js | m The following output was captured in `darwin-arm` for SheetJS version `0.20.3`: -> -```bash +```bash title="Expected output" $ md5 dist/xlsx.full.min.js # highlight-next-line MD5 (dist/xlsx.full.min.js) = 6b3130af1ceadf07caa0ec08af7addff @@ -671,8 +677,7 @@ curl -L https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/xlsx.full.min.js | md5s The following output was captured in `linux-arm` for SheetJS version `0.20.3`: -> -```bash +```bash title="Expected output" $ md5sum dist/xlsx.full.min.js # highlight-next-line 6b3130af1ceadf07caa0ec08af7addff dist/xlsx.full.min.js @@ -700,14 +705,14 @@ git checkout master make ctestserv ``` -The terminal will display a port number. For example: +The terminal will display URL. For example: -``` +```text title="Expected output" Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) + ^^^^^^^^^^^^^^^^^^^^ URL ``` -11) Open a browser window and access `http://localhost:8000`, replacing `8000` -with the port number from the terminal window. +11) Open a browser window and access the displayed URL. ## Development diff --git a/docz/static/deno/editor.png b/docz/static/deno/editor.png new file mode 100644 index 0000000..7c4318f Binary files /dev/null and b/docz/static/deno/editor.png differ diff --git a/docz/static/deno/new-playground.png b/docz/static/deno/new-playground.png new file mode 100644 index 0000000..6a4f478 Binary files /dev/null and b/docz/static/deno/new-playground.png differ diff --git a/docz/static/deno/save-deploy.png b/docz/static/deno/save-deploy.png new file mode 100644 index 0000000..19730a4 Binary files /dev/null and b/docz/static/deno/save-deploy.png differ diff --git a/docz/static/github/action-success.png b/docz/static/github/action-success.png new file mode 100644 index 0000000..d40b771 Binary files /dev/null and b/docz/static/github/action-success.png differ diff --git a/docz/static/github/actions-disabled.png b/docz/static/github/actions-disabled.png new file mode 100644 index 0000000..d5552e4 Binary files /dev/null and b/docz/static/github/actions-disabled.png differ diff --git a/docz/static/github/actions-flatsheet.png b/docz/static/github/actions-flatsheet.png new file mode 100644 index 0000000..812f306 Binary files /dev/null and b/docz/static/github/actions-flatsheet.png differ diff --git a/docz/static/github/actions-settings.png b/docz/static/github/actions-settings.png new file mode 100644 index 0000000..f4c11ca Binary files /dev/null and b/docz/static/github/actions-settings.png differ diff --git a/docz/static/github/create-repo.png b/docz/static/github/create-repo.png new file mode 100644 index 0000000..0ad810e Binary files /dev/null and b/docz/static/github/create-repo.png differ diff --git a/docz/static/github/file-listing.png b/docz/static/github/file-listing.png new file mode 100644 index 0000000..ab35fcf Binary files /dev/null and b/docz/static/github/file-listing.png differ diff --git a/docz/static/github/new-repo.png b/docz/static/github/new-repo.png new file mode 100644 index 0000000..29667a3 Binary files /dev/null and b/docz/static/github/new-repo.png differ diff --git a/docz/static/github/run-workflow.png b/docz/static/github/run-workflow.png new file mode 100644 index 0000000..8714725 Binary files /dev/null and b/docz/static/github/run-workflow.png differ diff --git a/docz/static/github/workflow-perms.png b/docz/static/github/workflow-perms.png new file mode 100644 index 0000000..5de489e Binary files /dev/null and b/docz/static/github/workflow-perms.png differ