();
From d3ae79263cf2b4918c1488f9b570cc24160c86d5 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:46:02 -0400
Subject: [PATCH 13/27] spelling: instead
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
examples/loader-arrow/src/index.md | 4 ++--
examples/loader-parquet/src/index.md | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/loader-arrow/src/index.md b/examples/loader-arrow/src/index.md
index 1eb10e24e..f7908f644 100644
--- a/examples/loader-arrow/src/index.md
+++ b/examples/loader-arrow/src/index.md
@@ -36,7 +36,7 @@ The above data loader lives in `data/samples.arrow.js`, so we can load the data
const samples = FileAttachment("./data/samples.arrow").arrow();
```
-The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers intead of `Date` instances — some information was lost when serialized as Arrow. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
+The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Arrow. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
```js echo
Inputs.table(samples, {
@@ -46,7 +46,7 @@ Inputs.table(samples, {
})
```
-Lastly, we can pass the table to `Plot.plot` to make a simple line chart. Again, since the `date` column is numbers, Plot will interpret these as quantitative values by default; by setting the **type** of the *x* scale to *utc*, we tell Plot to treat these values as dates intead, producing a more readable axis.
+Lastly, we can pass the table to `Plot.plot` to make a simple line chart. Again, since the `date` column is numbers, Plot will interpret these as quantitative values by default; by setting the **type** of the *x* scale to *utc*, we tell Plot to treat these values as dates instead, producing a more readable axis.
```js echo
Plot.plot({
diff --git a/examples/loader-parquet/src/index.md b/examples/loader-parquet/src/index.md
index 7d2f942db..74441e83f 100644
--- a/examples/loader-parquet/src/index.md
+++ b/examples/loader-parquet/src/index.md
@@ -40,7 +40,7 @@ The above data loader lives in `data/samples.parquet.js`, so we can load the dat
const samples = FileAttachment("./data/samples.parquet").parquet();
```
-The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers intead of `Date` instances — some information was lost when serialized as Parquet. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
+The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Parquet. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
```js echo
Inputs.table(samples, {
@@ -50,7 +50,7 @@ Inputs.table(samples, {
})
```
-Lastly, we can pass the table to `Plot.plot` to make a simple line chart. Again, since the `date` column is numbers, Plot will interpret these as quantitative values by default; by setting the **type** of the *x* scale to *utc*, we tell Plot to treat these values as dates intead, producing a more readable axis.
+Lastly, we can pass the table to `Plot.plot` to make a simple line chart. Again, since the `date` column is numbers, Plot will interpret these as quantitative values by default; by setting the **type** of the *x* scale to *utc*, we tell Plot to treat these values as dates instead, producing a more readable axis.
```js echo
Plot.plot({
From 26378e23e967cbf33f29f7464a7b697623a25510 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:46:07 -0400
Subject: [PATCH 14/27] spelling: interactive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
examples/us-dams/src/by-state.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/us-dams/src/by-state.md b/examples/us-dams/src/by-state.md
index 45a5899e8..de58e1722 100644
--- a/examples/us-dams/src/by-state.md
+++ b/examples/us-dams/src/by-state.md
@@ -228,7 +228,7 @@ const damSearch = Inputs.search(damsSelectedState);
const damSearchValue = Generators.input(damSearch);
```
-
+
```js
import deck from "npm:deck.gl";
From 2936197c64f7c6e20cda941b835b776c707565f9 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:00:51 -0400
Subject: [PATCH 15/27] spelling: into
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
src/rollup.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/rollup.ts b/src/rollup.ts
index 6a41c5d46..7c827c07a 100644
--- a/src/rollup.ts
+++ b/src/rollup.ts
@@ -21,7 +21,7 @@ const STYLE_MODULES = {
...Object.fromEntries(THEMES.map(({name, path}) => [`observablehq:theme-${name}.css`, path]))
};
-// These libraries are currently bundled in to a wrapper.
+// These libraries are currently bundled into a wrapper.
const BUNDLED_MODULES = [
"@observablehq/inputs", // observablehq:stdlib/inputs.js
"@observablehq/inspector", // observablehq:runtime.js
From 325b6e6243c4d5586d0019ff0852565d58847d7d Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:44:46 -0400
Subject: [PATCH 16/27] spelling: links with extensions
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
test/config-test.ts | 12 ++++++------
test/resolvers-test.ts | 6 +++---
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/test/config-test.ts b/test/config-test.ts
index 82c81daac..9ddac2a30 100644
--- a/test/config-test.ts
+++ b/test/config-test.ts
@@ -216,7 +216,7 @@ describe("normalizePath(path) with {cleanUrls: false} (deprecated)", () => {
it("appends .html to extension-less links", () => {
assert.strictEqual(normalize("foo"), "foo.html");
});
- it("does not append .html to extensioned links", () => {
+ it("does not append .html to links with extensions", () => {
assert.strictEqual(normalize("foo.png"), "foo.png");
assert.strictEqual(normalize("foo.html"), "foo.html");
assert.strictEqual(normalize("foo.md"), "foo.md");
@@ -263,11 +263,11 @@ describe("normalizePath(path) with {cleanUrls: true} (deprecated)", () => {
it("does not append .html to extension-less links", () => {
assert.strictEqual(normalize("foo"), "foo");
});
- it("does not append .html to extensioned links", () => {
+ it("does not append .html to links with extensions", () => {
assert.strictEqual(normalize("foo.png"), "foo.png");
assert.strictEqual(normalize("foo.md"), "foo.md");
});
- it("removes .html from extensioned links", () => {
+ it("removes .html from links with extensions", () => {
assert.strictEqual(normalize("foo.html"), "foo");
});
it("preserves absolute paths", () => {
@@ -312,7 +312,7 @@ describe("normalizePath(path) with {preserveExtension: true}", () => {
it("appends .html to extension-less links", () => {
assert.strictEqual(normalize("foo"), "foo.html");
});
- it("does not append .html to extensioned links", () => {
+ it("does not append .html to links with extensions", () => {
assert.strictEqual(normalize("foo.png"), "foo.png");
assert.strictEqual(normalize("foo.html"), "foo.html");
assert.strictEqual(normalize("foo.md"), "foo.md");
@@ -359,11 +359,11 @@ describe("normalizePath(path) with {preserveExtension: false}", () => {
it("does not append .html to extension-less links", () => {
assert.strictEqual(normalize("foo"), "foo");
});
- it("does not append .html to extensioned links", () => {
+ it("does not append .html to links with extensions", () => {
assert.strictEqual(normalize("foo.png"), "foo.png");
assert.strictEqual(normalize("foo.md"), "foo.md");
});
- it("removes .html from extensioned links", () => {
+ it("removes .html from links with extensions", () => {
assert.strictEqual(normalize("foo.html"), "foo");
});
it("preserves absolute paths", () => {
diff --git a/test/resolvers-test.ts b/test/resolvers-test.ts
index 090d34d21..4458868a6 100644
--- a/test/resolvers-test.ts
+++ b/test/resolvers-test.ts
@@ -99,7 +99,7 @@ describe("resolveLink(href) with {preserveExtension: true}", () => {
const normalize = await getResolveLink();
assert.strictEqual(normalize("foo"), "./foo.html");
});
- it("does not append .html to extensioned links", async () => {
+ it("does not append .html to links with extensions", async () => {
const normalize = await getResolveLink();
assert.strictEqual(normalize("foo.png"), "./foo.png");
assert.strictEqual(normalize("foo.html"), "./foo.html");
@@ -174,12 +174,12 @@ describe("resolveLink(href) with {preserveExtension: false}", () => {
const normalize = await getResolveLink();
assert.strictEqual(normalize("foo"), "./foo");
});
- it("does not append .html to extensioned links", async () => {
+ it("does not append .html to links with extensions", async () => {
const normalize = await getResolveLink();
assert.strictEqual(normalize("foo.png"), "./foo.png");
assert.strictEqual(normalize("foo.md"), "./foo.md");
});
- it("removes .html from extensioned links", async () => {
+ it("removes .html from links with extensions", async () => {
const normalize = await getResolveLink();
assert.strictEqual(normalize("foo.html"), "./foo");
});
From fcf3a0e03e6b47cee40cc52ab2e337234646a1ea Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:31:36 -0400
Subject: [PATCH 17/27] spelling: location,
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
docs/getting-started.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/getting-started.md b/docs/getting-started.md
index d410801be..452a4f335 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -276,7 +276,7 @@ const [longitude, latitude] = location;
To personalize this code snippet to your current location, edit the longitude and latitude values above, or click the **Locate me** button above.
-NWS does not provide forecasts for points outside the United States. If you specify such a location the API will error and the data loader will fail.
+NWS does not provide forecasts for points outside the United States. If you specify such a location, the API will error and the data loader will fail.
If you would rather write your data loader in Python, R, or some other language, take a peek at the
next steps below before continuing.
From 18db5b7f0e5351661e5a10238ef80f56328227cb Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:48:10 -0400
Subject: [PATCH 18/27] spelling: mortgage
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
examples/mortgage-rates/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/mortgage-rates/README.md b/examples/mortgage-rates/README.md
index 68347cdbc..8925e307e 100644
--- a/examples/mortgage-rates/README.md
+++ b/examples/mortgage-rates/README.md
@@ -4,7 +4,7 @@
View live:
-This is an example Observable Framework project that tracks mortage rates published by Freddie Mac — Federal Home Loan Mortgage Corporation — every week since 1971.
+This is an example Observable Framework project that tracks mortgage rates published by Freddie Mac — Federal Home Loan Mortgage Corporation — every week since 1971.
## Data loader
From a17a3db2b523151d93970aa5edfa986198d27639 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:48:28 -0400
Subject: [PATCH 19/27] spelling: occurrence
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
docs/lib/d3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/lib/d3.md b/docs/lib/d3.md
index f63101463..b32692d5f 100644
--- a/docs/lib/d3.md
+++ b/docs/lib/d3.md
@@ -6,7 +6,7 @@
import * as d3 from "npm:d3";
```
-For example, here is an interactive [force-directed](https://github.com/d3/d3-force) graph showing the character co-occurence in _Les Misérables_; data is from the [Stanford Graph Base](https://www-cs-faculty.stanford.edu/~knuth/sgb.html). Color represents arbitrary clusters in the data. Drag nodes below to better understand connections.
+For example, here is an interactive [force-directed](https://github.com/d3/d3-force) graph showing the character co-occurrence in _Les Misérables_; data is from the [Stanford Graph Base](https://www-cs-faculty.stanford.edu/~knuth/sgb.html). Color represents arbitrary clusters in the data. Drag nodes below to better understand connections.
```js echo
const width = 640;
From 7b4cbec08ce3c6ba3d98f5593526b4e3e6a6f124 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:00:10 -0400
Subject: [PATCH 20/27] spelling: of
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
.../output/build/jsr/_jsr/@std/random@0.1.0/shuffle.0ef8dd95.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/output/build/jsr/_jsr/@std/random@0.1.0/shuffle.0ef8dd95.js b/test/output/build/jsr/_jsr/@std/random@0.1.0/shuffle.0ef8dd95.js
index 07667ead1..7ffbd64ef 100644
--- a/test/output/build/jsr/_jsr/@std/random@0.1.0/shuffle.0ef8dd95.js
+++ b/test/output/build/jsr/_jsr/@std/random@0.1.0/shuffle.0ef8dd95.js
@@ -28,7 +28,7 @@ import { randomIntegerBetween } from "./integer_between.4528767d.js";
...items
];
// https://en.wikipedia.org/wiki/Fisher–Yates_shuffle#The_modern_algorithm
- // -- To shuffle an array a of n elements (indices 0..n-1):
+ // -- To shuffle an array of n elements (indices 0..n-1):
// for i from n−1 down to 1 do
for(let i = result.length - 1; i >= 1; --i){
// j ← random integer such that 0 ≤ j ≤ i
From 4dac7578d7d42d4635a441d2912581a29230c7ca Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:15:46 -0400
Subject: [PATCH 21/27] spelling: otherwise,
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
src/javascript/files.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/javascript/files.ts b/src/javascript/files.ts
index ef05675e8..7676ae4d7 100644
--- a/src/javascript/files.ts
+++ b/src/javascript/files.ts
@@ -86,7 +86,7 @@ export function findFiles(
// Find all calls to FileAttachment. If the call is part of a member
// expression such as FileAttachment("foo.txt").csv, use this to determine the
- // file method ("csv"); otherwise fall back to the to file extension to
+ // file method ("csv"); otherwise, fall back to the to file extension to
// determine the method. Also enforce that FileAttachment is passed a single
// static string literal.
//
From 23b13f6651b4faae299272905cb13f8b3eaea189 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:01:49 -0400
Subject: [PATCH 22/27] spelling: perhaps, in the future,
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
examples/loader-arrow/src/index.md | 2 +-
examples/loader-parquet/src/index.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/loader-arrow/src/index.md b/examples/loader-arrow/src/index.md
index f7908f644..25e094cc2 100644
--- a/examples/loader-arrow/src/index.md
+++ b/examples/loader-arrow/src/index.md
@@ -36,7 +36,7 @@ The above data loader lives in `data/samples.arrow.js`, so we can load the data
const samples = FileAttachment("./data/samples.arrow").arrow();
```
-The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Arrow. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
+The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Arrow. (Perhaps, in the future, the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
```js echo
Inputs.table(samples, {
diff --git a/examples/loader-parquet/src/index.md b/examples/loader-parquet/src/index.md
index 74441e83f..bf27f060c 100644
--- a/examples/loader-parquet/src/index.md
+++ b/examples/loader-parquet/src/index.md
@@ -40,7 +40,7 @@ The above data loader lives in `data/samples.parquet.js`, so we can load the dat
const samples = FileAttachment("./data/samples.parquet").parquet();
```
-The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Parquet. (Perhaps in the future the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
+The `samples` table has two columns: `date` and `value`. We can display the table using `Inputs.table`, though note that the `date` column is represented as numbers instead of `Date` instances — some information was lost when serialized as Parquet. (Perhaps, in the future, the Apache Arrow JavaScript library could return `Date` instances for date columns? Though this is typically much slower than representing dates as numbers in typed arrays.) We use the **format** option to make these dates readable.
```js echo
Inputs.table(samples, {
From c346ccdbbb16fa64dd09c74b8bc96ddef627a799 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:49:40 -0400
Subject: [PATCH 23/27] spelling: targeting
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
docs/lib/deckgl.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/lib/deckgl.md b/docs/lib/deckgl.md
index 1df7e2ac8..1905eaf0b 100644
--- a/docs/lib/deckgl.md
+++ b/docs/lib/deckgl.md
@@ -98,7 +98,7 @@ const colorLegend = Plot.plot({
### 3. The DeckGL instance
-We create a DeckGL instance targetting the container defined in the layout. During development & preview, this code can run several times, so we take care to clean it up each time the code block runs:
+We create a DeckGL instance targeting the container defined in the layout. During development & preview, this code can run several times, so we take care to clean it up each time the code block runs:
```js echo
const deckInstance = new DeckGL({
From 89ca501f5475b8bd47626b8f93d46f715e545358 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 12:49:48 -0400
Subject: [PATCH 24/27] spelling: temporary
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
test/fileWatchers-test.ts | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/test/fileWatchers-test.ts b/test/fileWatchers-test.ts
index abfbb12b1..0d3f3c6b5 100644
--- a/test/fileWatchers-test.ts
+++ b/test/fileWatchers-test.ts
@@ -9,14 +9,14 @@ import {resolvePath} from "../src/path.js";
describe("FileWatchers.of(loaders, path, names, callback)", () => {
it(
"watches a file",
- withTemporyWatcher("files.md", ["file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["file-top.csv"]);
})
);
it(
"watches multiple files",
- withTemporyWatcher("files.md", ["files.md", "subsection/file-sub.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["files.md", "subsection/file-sub.csv"], async (root, wait) => {
touch(join(root, "files.md"));
touch(join(root, "subsection/file-sub.csv"));
assert.deepStrictEqual(await wait(), ["files.md", "subsection/file-sub.csv"]);
@@ -24,63 +24,63 @@ describe("FileWatchers.of(loaders, path, names, callback)", () => {
);
it(
"watches a file generated by a data loader",
- withTemporyWatcher("simple.md", ["data.txt.js"], ["data.txt"], async (root, wait) => {
+ withTemporaryWatcher("simple.md", ["data.txt.js"], ["data.txt"], async (root, wait) => {
touch(join(root, "data.txt.js"));
assert.deepStrictEqual(await wait(), ["data.txt"]);
})
);
it(
"watches a file within a static archive",
- withTemporyWatcher("zip.md", ["static.zip"], ["static/file.txt"], async (root, wait) => {
+ withTemporaryWatcher("zip.md", ["static.zip"], ["static/file.txt"], async (root, wait) => {
touch(join(root, "static.zip"));
assert.deepStrictEqual(await wait(), ["static/file.txt"]);
})
);
it(
"watches a file within an archive created by a data loader",
- withTemporyWatcher("zip.md", ["dynamic.zip.sh"], ["dynamic/file.txt"], async (root, wait) => {
+ withTemporaryWatcher("zip.md", ["dynamic.zip.sh"], ["dynamic/file.txt"], async (root, wait) => {
touch(join(root, "dynamic.zip.sh"));
assert.deepStrictEqual(await wait(), ["dynamic/file.txt"]);
})
);
it(
"deduplicates watched files",
- withTemporyWatcher("files.md", ["file-top.csv", "file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv", "file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["file-top.csv"]);
})
);
it(
"deduplicates watched files based on name, not normalized path",
- withTemporyWatcher("files.md", ["file-top.csv", "./file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv", "./file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["./file-top.csv", "file-top.csv"]);
})
);
it(
"resolves relative paths",
- withTemporyWatcher("subsection/subfiles.md", ["./file-sub.csv", "../file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("subsection/subfiles.md", ["./file-sub.csv", "../file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["../file-top.csv"]);
})
);
it(
"resolves absolute paths",
- withTemporyWatcher("subsection/subfiles.md", ["/file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("subsection/subfiles.md", ["/file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["/file-top.csv"]);
})
);
it(
"ignores missing files",
- withTemporyWatcher("files.md", ["file-top.csv"], ["does-not-exist.csv", "file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv"], ["does-not-exist.csv", "file-top.csv"], async (root, wait) => {
touch(join(root, "file-top.csv"));
assert.deepStrictEqual(await wait(), ["file-top.csv"]);
})
);
it(
"ignores changes that don’t affect the modification time",
- withTemporyWatcher("files.md", ["file-top.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv"], async (root, wait) => {
const then = new Date();
touch(join(root, "file-top.csv"), then);
assert.deepStrictEqual(await wait(), ["file-top.csv"]);
@@ -90,14 +90,14 @@ describe("FileWatchers.of(loaders, path, names, callback)", () => {
);
it(
"ignores changes to empty files",
- withTemporyWatcher("comment.md", ["empty.js"], async (root, wait) => {
+ withTemporaryWatcher("comment.md", ["empty.js"], async (root, wait) => {
touch(join(root, "empty.js"));
assert.deepStrictEqual(await wait(10), []);
})
);
it(
"handles a file being renamed",
- withTemporyWatcher("files.md", ["temp1.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["temp1.csv"], async (root, wait) => {
// First rename the file, while writing a new file to the same place.
renameSync(join(root, "temp1.csv"), join(root, "temp2.csv"));
writeFileSync(join(root, "temp1.csv"), "hello 2", "utf-8");
@@ -110,7 +110,7 @@ describe("FileWatchers.of(loaders, path, names, callback)", () => {
);
it(
"handles a file being renamed and removed",
- withTemporyWatcher("files.md", ["file-top.csv", "temp3.csv"], async (root, wait) => {
+ withTemporaryWatcher("files.md", ["file-top.csv", "temp3.csv"], async (root, wait) => {
// First delete the temp file. We don’t care if this is reported as a change or not.
unlinkSync(join(root, "temp3.csv"));
await pause();
@@ -122,18 +122,18 @@ describe("FileWatchers.of(loaders, path, names, callback)", () => {
);
});
-function withTemporyWatcher(
+function withTemporaryWatcher(
path: string,
paths: string[], // paths to create and watch
run: (root: string, wait: (delay?: number) => Promise) => Promise
): () => Promise;
-function withTemporyWatcher(
+function withTemporaryWatcher(
path: string,
paths: string[], // paths to create
watchPaths: string[], // paths to watch
run: (root: string, wait: (delay?: number) => Promise) => Promise
): () => Promise;
-function withTemporyWatcher(...args: any): () => Promise {
+function withTemporaryWatcher(...args: any): () => Promise {
const [path, paths, watchPaths = paths, run]: [
path: string,
paths: string[],
From 2444d948f1ed25adea217802b8c2833f5b81b71e Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:12:47 -0400
Subject: [PATCH 25/27] spelling: the
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
docs/inputs/checkbox.md | 2 +-
examples/markdown-it-footnote/src/index.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/inputs/checkbox.md b/docs/inputs/checkbox.md
index bd5711b38..beb4ee8b0 100644
--- a/docs/inputs/checkbox.md
+++ b/docs/inputs/checkbox.md
@@ -103,7 +103,7 @@ const size2 = view(
size2
```
-Passing a Map to checkbox is especially useful in conjunction with [d3.group](https://d3js.org/d3-array/group). For example, given a the sample `olympians` dataset of Olympic athletes, we can use d3.group to group them by gold medal count, and then checkbox to select the athletes for the chosen count. Note that the value of the checkbox will be an array of arrays, since d3.group returns a Map from key to array; use [*array*.flat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) to merge these arrays if desired.
+Passing a Map to checkbox is especially useful in conjunction with [d3.group](https://d3js.org/d3-array/group). For example, given the sample `olympians` dataset of Olympic athletes, we can use d3.group to group them by gold medal count, and then checkbox to select the athletes for the chosen count. Note that the value of the checkbox will be an array of arrays, since d3.group returns a Map from key to array; use [*array*.flat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) to merge these arrays if desired.
```js echo
const goldAthletes = view(
diff --git a/examples/markdown-it-footnote/src/index.md b/examples/markdown-it-footnote/src/index.md
index 80e9b4e3a..a3fd3c7c0 100644
--- a/examples/markdown-it-footnote/src/index.md
+++ b/examples/markdown-it-footnote/src/index.md
@@ -37,7 +37,7 @@ And here is how you can define the footnotes.
belong to the previous footnote.
```
-Footnotes always appear at the bottom of the page, regardless of where they are defined. The remaining text is gibberish so that the page is taller, allowing you to try clicking on the footnote references to scroll down and then clicking on ther return link to scroll back up again.
+Footnotes always appear at the bottom of the page, regardless of where they are defined. The remaining text is gibberish so that the page is taller, allowing you to try clicking on the footnote references to scroll down and then clicking on the return link to scroll back up again.
Aliquam porta accumsan eros, ut posuere lorem congue at. Cras lobortis metus sit amet ex ullamcorper lobortis. Donec vitae nulla dictum, cursus nunc auctor, facilisis tellus. Morbi iaculis ex sed nisi tristique, a auctor elit suscipit. Vestibulum varius, massa in laoreet facilisis, quam arcu dictum metus, sit amet ultricies erat metus non elit. Quisque fringilla gravida sapien non facilisis. Aliquam a ligula vitae tellus rutrum tincidunt. Integer mattis suscipit ex vel egestas. Aenean pharetra sit amet tellus ac tempus.
From b3b63756b61f4ebe67768568e9c6d39be97955d6 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sat, 28 Mar 2026 23:12:04 -0400
Subject: [PATCH 26/27] spelling: typescript
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
test/deferred.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/deferred.ts b/test/deferred.ts
index e4307395d..929358a86 100644
--- a/test/deferred.ts
+++ b/test/deferred.ts
@@ -5,7 +5,7 @@ export class Deferred {
constructor() {
// The Promise constructor will re-set these before they can be observed,
- // and so they can never be called. Typescript doesn't know that though, so
+ // and so they can never be called. TypeScript doesn't know that though, so
// assign throw-away functions. These throw errors in case something goes
// wrong in the future.
this.resolve = () => {
From 10ffc95004cc06c089a71de5089d583cebeb0011 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Sun, 29 Mar 2026 14:12:47 -0400
Subject: [PATCH 27/27] spelling: well-formed
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
test/input/{wellformed-block.md => well-formed-block.md} | 0
test/output/{wellformed-block.html => well-formed-block.html} | 0
.../{wellformed-block.md.json => well-formed-block.md.json} | 2 +-
3 files changed, 1 insertion(+), 1 deletion(-)
rename test/input/{wellformed-block.md => well-formed-block.md} (100%)
rename test/output/{wellformed-block.html => well-formed-block.html} (100%)
rename test/output/{wellformed-block.md.json => well-formed-block.md.json} (70%)
diff --git a/test/input/wellformed-block.md b/test/input/well-formed-block.md
similarity index 100%
rename from test/input/wellformed-block.md
rename to test/input/well-formed-block.md
diff --git a/test/output/wellformed-block.html b/test/output/well-formed-block.html
similarity index 100%
rename from test/output/wellformed-block.html
rename to test/output/well-formed-block.html
diff --git a/test/output/wellformed-block.md.json b/test/output/well-formed-block.md.json
similarity index 70%
rename from test/output/wellformed-block.md.json
rename to test/output/well-formed-block.md.json
index 073862e44..2a1ab0553 100644
--- a/test/output/wellformed-block.md.json
+++ b/test/output/well-formed-block.md.json
@@ -3,5 +3,5 @@
"title": "Well-formed block",
"style": null,
"code": [],
- "path": "wellformed-block.md"
+ "path": "well-formed-block.md"
}
\ No newline at end of file