diff --git a/docz/docs/03-demos/19-bundler.md b/docz/docs/03-demos/19-bundler.md index ab3f5a6..105478b 100644 --- a/docz/docs/03-demos/19-bundler.md +++ b/docz/docs/03-demos/19-bundler.md @@ -79,7 +79,7 @@ npx browserify xlsxworker.js > worker.js npx http-server ``` -5) Access the site and use the file input element to +5) Access the site http://localhost:8080/ and use the file input element to select a spreadsheet. diff --git a/docz/docs/03-demos/42-headless.md b/docz/docs/03-demos/42-headless.md index 9c99450..6c8fa16 100644 --- a/docz/docs/03-demos/42-headless.md +++ b/docz/docs/03-demos/42-headless.md @@ -220,8 +220,7 @@ const { webkit } = require('playwright'); // import desired browser ## PhantomJS -PhantomJS is a headless web browser powered by WebKit. Standalone binaries are -available at +PhantomJS is a headless web browser powered by WebKit. :::warning diff --git a/docz/docs/03-demos/45-git.md b/docz/docs/03-demos/45-git.md index f3b4f92..70b2a48 100644 --- a/docz/docs/03-demos/45-git.md +++ b/docz/docs/03-demos/45-git.md @@ -14,7 +14,7 @@ const XLSX = require("xlsx"); (async() => { /* Download Data */ - const f = await fetch("https://sheetjs.com/pres.xlsx"); + const f = await fetch("https://docs.sheetjs.com/pres.xlsx"); const data = await f.arrayBuffer(); /* Parse workbook */ @@ -62,69 +62,7 @@ cannot access private repositories. Any publicly available spreadsheet can be a valid data source. The process will fetch the data on specified intervals or events. -This demo endpoint generates XLSX files. - -
Server Details (click to show) - -This demo is hosted on Deno Deploy. - -```ts -// @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts" -import { utils, writeXLSX } from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs'; - -import * as Drash from "https://deno.land/x/drash@v2.5.4/mod.ts"; - -const rand = (x:number, n = 10): number => ((x + n * (Math.random() - 0.5) + 10)|0)%10; - -class HomeResource extends Drash.Resource { - public paths = ["/"]; - - // see https://github.com/drashland/drash/issues/194 - public OPTIONS(request: Drash.Request, response: Drash.Response) { - const allHttpMethods: string[] = [ "GET", "POST", "PUT", "DELETE" ]; - response.headers.set("Allow", allHttpMethods.join()); // Use this - response.headers.set("Access-Control-Allow-Methods", allHttpMethods.join()); // or this - response.headers.set("access-control-allow-origin", "*"); - response.status_code = 204; - return response; - } - - public GET(request: Drash.Request, response: Drash.Response): void { - // create a workbook with some random data - let data: any[][] = [ "ABCDEFG".split("") ]; - for(let i = 0; i < 10; ++i) data = data.concat([ - [5,4,3,3,7,9,5].map(v => rand(v)), - [5,4,3,3,7,9,5].map(v => rand(v, 8)), - [5,4,3,3,7,9,5].map(v => rand(v, 6)), - [5,4,3,3,7,9,5].map(v => rand(v, 4)), - [5,4,3,3,7,9,5].map(v => rand(v, 2)), - [5,4,3,3,7,9,5].map(v => rand(v, 0)) - ]); - const ws = utils.aoa_to_sheet(data); - const wb = utils.book_new(); utils.book_append_sheet(wb, ws, "data"); - // write the workbook to XLSX as a Uint8Array - const file = writeXLSX(wb, { type: "buffer"}); - // set headers - response.headers.set("Content-Disposition", 'attachment; filename="LiveSheet.xlsx"'); - // send data - return response.send("application/vnd.ms-excel", file); - } -} - -// Create and run your server -const server = new Drash.Server({ - hostname: "", - port: 3000, - protocol: "http", - resources: [ HomeResource ], -}); - -server.run(); - -console.log(`Server running at ${server.address}.`); -``` - -
+For this demo, will be used. ### Action @@ -135,7 +73,7 @@ The `githubocto/flat` action can be added as a step in a workflow: - name: Fetch data uses: githubocto/flat@v3 with: - http_url: https://livesheet.deno.dev/ + http_url: https://docs.sheetjs.com/pres.xlsx downloaded_filename: data.xlsx postprocess: ./postprocess.ts ``` @@ -144,7 +82,7 @@ The `http_url` will be fetched and saved to `downloaded_filename` in the repo. This can be approximated with the following command: ```bash -curl -L -o data.xlsx https://livesheet.deno.dev/ +curl -L -o data.xlsx https://docs.sheetjs.com/pres.xlsx ``` After saving, the `postprocess` script will be run. When a `.ts` file is the @@ -175,8 +113,7 @@ releases, the examples import from the SheetJS CDN: import * as XLSX from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs'; ``` -The official registry endpoint is out of date. -This is a known registry bug. +The official Deno registry is out of date. This is a known registry bug. ::: @@ -293,7 +230,7 @@ jobs: - name: Fetch data uses: githubocto/flat@v3 with: - http_url: https://livesheet.deno.dev/ + http_url: https://docs.sheetjs.com/pres.xlsx downloaded_filename: data.xlsx postprocess: ./postprocess.ts ``` diff --git a/docz/docs/06-solutions/05-output.md b/docz/docs/06-solutions/05-output.md index 260d80f..657e191 100644 --- a/docz/docs/06-solutions/05-output.md +++ b/docz/docs/06-solutions/05-output.md @@ -393,7 +393,7 @@ evt.respondWith(new Response(buf, {
Complete Example (click to show) Save the following script to `deno.ts` and run with `deno run -A deno.ts`. Open -a web browser and access to download the workbook. +a web browser and access `http://localhost:7262/` to download the workbook. ```ts title="deno.ts" // @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts" @@ -447,7 +447,7 @@ return new Response(buf, { Download [`xlsx.mjs`](https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs). Save the following script to `bun.js` and run with `bun bun.js`. Open a web -browser and access to download the exported workbook. +browser and access `http://localhost:7262/` to download the exported workbook. ```js title="bun.js" import * as XLSX from "./xlsx.mjs"; @@ -841,5 +841,3 @@ Readable Stream. - `XLSX.stream.to_json` is the streaming version of `XLSX.utils.sheet_to_json`. Examples are included in ["Large Datasets"](/docs/demos/stream#streaming-write) - - pipes write streams to nodejs response. diff --git a/docz/docs/09-miscellany/01-formats.md b/docz/docs/09-miscellany/01-formats.md index ad8539e..e650bed 100644 --- a/docz/docs/09-miscellany/01-formats.md +++ b/docz/docs/09-miscellany/01-formats.md @@ -258,6 +258,6 @@ worksheet. The supported codes are a subset of the Word RTF support. #### Ethercalc Record Format (ETH) -[Ethercalc](https://ethercalc.net/) is an open source web spreadsheet powered by -a record format reminiscent of SYLK wrapped in a MIME multi-part message. +Ethercalc was an open source web spreadsheet powered by a record format +reminiscent of SYLK wrapped in a MIME multi-part message. diff --git a/docz/docs/09-miscellany/02-errors.md b/docz/docs/09-miscellany/02-errors.md index 922f968..1946bd1 100644 --- a/docz/docs/09-miscellany/02-errors.md +++ b/docz/docs/09-miscellany/02-errors.md @@ -179,14 +179,13 @@ contexts, freeing up the renderer to update. #### Strange exported file names in the web browser JS and the DOM API do not have a standard approach for creating files. There was -a [`saveAs` proposal](https://www.w3.org/TR/2014/NOTE-file-writer-api-20140424/) -but it was abandoned in 2014. +a `saveAs` proposal as part of "File API: Writer" but it was abandoned in 2014. The library integrates a number of platform-specific techniques for different environments. In modern web browsers, the library uses the `download` attribute. -Third party libraries like [FileSaver](https://github.com/eligrey/FileSaver.js/) -provide an implementation of `saveAs` and may help in some cases. +Third party libraries like `FileSaver.js` provide an implementation of `saveAs` +that include more browser-specific workarounds.
FileSaver.js integration (click to show) diff --git a/docz/docs/09-miscellany/03-source.md b/docz/docs/09-miscellany/03-source.md index 69f7706..cbc2b34 100644 --- a/docz/docs/09-miscellany/03-source.md +++ b/docz/docs/09-miscellany/03-source.md @@ -6,14 +6,4 @@ hide_table_of_contents: true The official source code repository is -:::note Mirrors - -Older snapshots of the source code repository are available at various hosts: - -- [GitHub](https://github.com/sheetjs/sheetjs) -- [GitLab](https://gitlab.com/sheetjs/sheetjs) -- [BitBucket](https://bitbucket.org/sheetjs/sheetjs) - - is the authoritative repository. - -::: \ No newline at end of file +Issues should be raised at \ No newline at end of file diff --git a/docz/docs/09-miscellany/04-testing.md b/docz/docs/09-miscellany/04-testing.md index 6442c87..63a5d37 100644 --- a/docz/docs/09-miscellany/04-testing.md +++ b/docz/docs/09-miscellany/04-testing.md @@ -75,15 +75,24 @@ ExtendScript Toolkit 3.5 is available as a standalone download for Windows.
(click to show) - - NodeJS `0.8`, `0.10`, `0.12`, `4.x`, `5.x`, `6.x`, `7.x`, `8.x` +**Browsers** - IE 6/7/8/9/10/11 (IE 6-9 require shims) - - Chrome 24+ (including Android 4.0+) - - Safari 6+ (iOS and Desktop) - - Edge 13+, FF 18+, and Opera 12+ + - Chrome 26+ (including Android 6.0+) + - Safari 8+ (Desktop) and Safari 10+ (iOS) + - Edge 13-18 and 79+ + - FF Latest -Tests utilize the mocha testing framework. +The automated browser tests seek to test the latest patch version of each major +release of Chromium ending in `0` (starting from Chrome 30). - - for XLS\* modules using Sauce Labs +Edge originally was an independent browser, becoming a Chromium fork in version +79. Since the new releases should be nearly identical to the Chrome counterpart, +the Edge tests are run on major releases ending in `5` (starting from Edge 85). + +**Server Runtimes** + - NodeJS `0.8`, `0.10`, `0.12`, and every major version starting from `4` + - io.js 1/2/3 + - Deno latest The test suite also includes tests for various time zones. To change the timezone locally, set the `TZ` environment variable: @@ -99,13 +108,5 @@ $ env TZ="Asia/Kolkata" WTF=1 make test_misc Test files are housed in [another repo](https://github.com/SheetJS/test_files). Running `make init` will refresh the `test_files` submodule and get the files. -Note that this requires `svn`, `git`, `hg` and other commands that may not be -available. If `make init` fails, please download the latest version of the test -files snapshot from [the repo](https://github.com/SheetJS/test_files/releases) - -#### Latest Snapshot - - - -(download and unzip to the `test_files` subfolder) - +[The "OS-Specific Setup"](/docs/miscellany/contributing#os-specific-setup) +includes notes for installing the required dependencies. diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md index 1a907d2..3505f65 100644 --- a/docz/docs/09-miscellany/05-contributing.md +++ b/docz/docs/09-miscellany/05-contributing.md @@ -62,8 +62,7 @@ sudo npm i -g n sudo n 16 ``` -3) Follow to -build and install a version of Git with proper SSL support: +3) Build and install a version of Git with proper SSL support: ```bash # Git does not support OpenSSL out of the box, must do this @@ -88,13 +87,13 @@ On Linux: sudo apt-get install mercurial subversion ``` -On MacOS, install using [`brew`](https://brew.sh/): +On MacOS, install using Homebrew: ```bash brew install mercurial subversion ``` -NodeJS installers can be found at +NodeJS installers can be found at the project homepage. 1) Install NodeJS modules for building the scripts diff --git a/docz/docusaurus.config.js b/docz/docusaurus.config.js index 1017402..f711642 100644 --- a/docz/docusaurus.config.js +++ b/docz/docusaurus.config.js @@ -80,7 +80,7 @@ const config = { position: 'right', }, { - href: 'https://docs.sheetjs.com/docs/miscellany/source/', + href: 'https://git.sheetjs.com/sheetjs/sheetjs', label: 'Source', position: 'right', }, @@ -132,7 +132,7 @@ const config = { }, { label: 'Source', - href: 'https://docs.sheetjs.com/docs/miscellany/source/', + href: 'https://git.sheetjs.com/sheetjs/sheetjs', }, ], }, diff --git a/docz/static/pres.xlsx b/docz/static/pres.xlsx new file mode 100644 index 0000000..2dcc8f0 Binary files /dev/null and b/docz/static/pres.xlsx differ