diff --git a/docs/Debugging.md b/docs/Debugging.md
index 356cb1122..11d7b2a22 100644
--- a/docs/Debugging.md
+++ b/docs/Debugging.md
@@ -1,4 +1,4 @@
-We recomend you use:
+We recommend you use:
- [re-frame-10x](https://github.com/day8/re-frame-10x) or [refrisk](https://github.com/flexsurfer/re-frisk)
- with [clj-devtools](https://github.com/binaryage/cljs-devtools)
diff --git a/docs/EPs/001-CaptureHandlerMetadata.md b/docs/EPs/001-CaptureHandlerMetadata.md
index 55ed361db..96e13f879 100644
--- a/docs/EPs/001-CaptureHandlerMetadata.md
+++ b/docs/EPs/001-CaptureHandlerMetadata.md
@@ -177,7 +177,7 @@ XXX
- XXX implications for Cursive - it currently special-cases re-frame registration function -- give ColinF a heads up??
- XXX Dear God, consider changes to documentation/tutorials
- XXX means giving up syntax sugar for reg-sub ?
- - XXX any format for `:doc` for display in HTML? Or just texual.
+ - XXX any format for `:doc` for display in HTML? Or just textual.
diff --git a/docs/EPs/004-ViewRegistration.md b/docs/EPs/004-ViewRegistration.md
index bfb639fe2..d85a9514d 100644
--- a/docs/EPs/004-ViewRegistration.md
+++ b/docs/EPs/004-ViewRegistration.md
@@ -24,7 +24,7 @@ What might need to be injected (as args) into a view:
- other context: data from higher in the DOM tree
- animation? CSS ?
-XXX searches up the DOM heirarchy looking for a `frame` context then extracts dispatch and subscribe. Sounds inefficient.
+XXX searches up the DOM hierarchy looking for a `frame` context then extracts dispatch and subscribe. Sounds inefficient.
### Code Doodle #1
@@ -95,7 +95,7 @@ Use of `:my-view-id `:
:something
(fn [arg1 arg2]
;; obtain dispatch and subscription
- ;; obtain a subscription ot two
+ ;; obtain a subscription or two
;; add a key on the component
(fn [arg1 arg2]
))
diff --git a/docs/Effects.md b/docs/Effects.md
index 53affc146..be3651b47 100644
--- a/docs/Effects.md
+++ b/docs/Effects.md
@@ -173,7 +173,7 @@ registered "effect handlers" for each.
The FISA Court requires that we deny all claims
that `do-fx` is secretly injected NSA surveillance-ware.
We also note that you've been sloppy with your personal
- grooming again, including, but not limited to, forgetting to clean your teeth on one occassion last week.
+ grooming again, including, but not limited to, forgetting to clean your teeth on one occasion last week.
If ever you want to take control of the way effect handling is done,
create your own alternative to `reg-event-fx` and, in it, inject
diff --git a/docs/FAQs/FocusOnElement.md b/docs/FAQs/FocusOnElement.md
index 419092360..57fc53890 100644
--- a/docs/FAQs/FocusOnElement.md
+++ b/docs/FAQs/FocusOnElement.md
@@ -32,7 +32,7 @@ Instead, you could use a more portable (but more complicated) version of this ap
[:input {:ref #(reset! ref %)}])})))
```
-A terse way of achiving the same outcome is:
+A terse way of achieving the same outcome is:
```clj
[:input {:ref #(when % (.focus %)}]
```
diff --git a/docs/Flows.md b/docs/Flows.md
index 72316e82f..4ea4d71bf 100644
--- a/docs/Flows.md
+++ b/docs/Flows.md
@@ -7,7 +7,7 @@
This tutorial introduces **Flows**, part of [Domino 3](http://localhost:8000/re-frame/dominoes-30k/#domino-3-effect-handling) (effects).
!!! Note "Not to be confused with..."
- - [re-frame-async-flow-fx](https://github.com/day8/re-frame-async-flow-fx). A `re-frame/flow` is totally sychronous, running on every event.
+ - [re-frame-async-flow-fx](https://github.com/day8/re-frame-async-flow-fx). A `re-frame/flow` is totally synchronous, running on every event.
- The [on-changes interceptor](/re-frame/api-re-frame.core/#on-changes). Flows are an evolution of this idea.
- [domino](https://github.com/domino-clj/domino). Another take on dataflow programming, inspired by re-frame.
@@ -283,7 +283,7 @@ When either input changes value, our flow calls the `:output` function to recalc
As before, once `:output` runs, the resulting value is stored at `:path`.
So, the new value of `app-db` will contain a number at the path `[:ratios :main-rooms]`
-Under the hood, flows relate to each other in a depedency graph.
+Under the hood, flows relate to each other in a dependency graph.
An input like `(rf/flow<- ::kitchen-area)` creates a dependency.
That means re-frame will always run `::kitchen-area` first,
ensuring its output value is current before your `:main-room-ratio` flow can use it.
diff --git a/docs/README.md b/docs/README.md
index 1e575575f..26d161087 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -47,7 +47,7 @@ docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material:5.1.1
Then, in your browser tab, load `http://localhost:8000/`. You should see the website Home page.
-You can now edit the markdown in `/docs` and your changes will be hot reloaded into the brower tab for inspection.
+You can now edit the markdown in `/docs` and your changes will be hot reloaded into the browser tab for inspection.
## Configuration
diff --git a/docs/Subscribing-To-External-Data.md b/docs/Subscribing-To-External-Data.md
index fb0d760af..eaf7d9469 100644
--- a/docs/Subscribing-To-External-Data.md
+++ b/docs/Subscribing-To-External-Data.md
@@ -1,6 +1,6 @@
> This document will soon be retired, and you probably shouldn't be reading it. It may mislead you.
-> It documents an approach we experiemented with early, before realising it was probably wrong, but we haven't yet transfered the knowledge it contains to some other, less central place. So here is still sits.
+> It documents an approach we experiemented with early, before realising it was probably wrong, but we haven't yet transferred the knowledge it contains to some other, less central place. So here is still sits.
>
> The RIGHT WAY in think can be found in FAQs like:
> 1. https://day8.github.io/re-frame/FAQs/LoadOnMount/
diff --git a/docs/breaking-it.md b/docs/breaking-it.md
index 7ba5ab11f..917f20d99 100644
--- a/docs/breaking-it.md
+++ b/docs/breaking-it.md
@@ -10,7 +10,7 @@ The essence of science is earnestness of inquiry.
> Eddington defined science as “the earnest endeavour to put into order the facts of experience”
-So what are we doing here? Marketing (Narative warefare) for the re-frame framework or computer science.
+So what are we doing here? Marketing (Narrative warefare) for the re-frame framework or computer science.
## Pros
@@ -23,7 +23,7 @@ So what are we doing here? Marketing (Narative warefare) for the re-frame frame
- it leverages
- pure functions
- immutable data
- - declarative style, useing data-based DSLs
+ - declarative style, using data-based DSLs
- a shockingly effective and beautiful language (50 years of refinement by the finest minds in computer science)
- React's entire ecosystem of components - although Hooks is starting to bimodalate (?word) the ecosystem.
- full interop with js
@@ -58,7 +58,7 @@ As the framework author, I should be a relentless chearleader, right?. The gyrat
But one of the best ways for me to help you, an evaluator of this framework, is explain where and how it doesn't work well? That's this section.
-Every design represents a point in design space, with pros and cons. The tradeoffs are the intersting bit.
+Every design represents a point in design space, with pros and cons. The tradeoffs are the interesting bit.
So I'll do that now.
@@ -67,7 +67,7 @@ I will not try to contrast re-frame with your other framework options. I wish I
that, but to do that well, i would need deep knowledge of all the frameworks, and I don't know of
anyone who really has that. Certainly not me. I try to keep an eye on them, but by "deep knowledge"
I mean you need to have used it in anger, professionally for a couple of years. Anything less and
-the comparisions tend to be too shallow and misleading - which means: not unsful - particularly when they
+the comparisons tend to be too shallow and misleading - which means: not unsful - particularly when they
are written by someone with a
@@ -91,4 +91,4 @@ What breaks re-frame:
A Framework should be invisible and boring. So, where you notice it ... that's an example of it being broken. Connection with server??
-XXX I will say that I don't think React is on the right track with hooks, Suspense. React was at its best when it tried to be the `V` in `MVC`.
\ No newline at end of file
+XXX I will say that I don't think React is on the right track with hooks, Suspense. React was at its best when it tried to be the `V` in `MVC`.
diff --git a/docs/clojurescript.md b/docs/clojurescript.md
index 613299a84..fb1b6216a 100644
--- a/docs/clojurescript.md
+++ b/docs/clojurescript.md
@@ -23,7 +23,7 @@ Clojure is a modern LISP.
Alan Kay once described LISP as "Maxwell's equations of software".
Paul Graham believes LISP was a competitive advantage for his startup.
-Eric Raymmond said that learning LISP was profoundly enligthening and that knowing it would make you a better programmer for the rest of your days.
+Eric Raymmond said that learning LISP was profoundly enligtening and that knowing it would make you a better programmer for the rest of your days.
In the 70s, 80s and 90s, the LISP community went through a washing machine phase of evolutionary churn.
Innovation flourished, experiments happened, prototype ideas were tested and knowledge foliated.
@@ -121,7 +121,7 @@ using Clojure's data literals and we've covered data literals.
You are going to be surprised and delighted with the simplicity of "evaluation".
-**1st Evaluation Rule:** all data litterals other than `lists` and `symbols` **evaluate** to themselves.
+**1st Evaluation Rule:** all data literals other than `lists` and `symbols` **evaluate** to themselves.
| Value | Evaluates To | Comment |
|---------------------|-----------------------------|-------------|
@@ -180,7 +180,7 @@ Example symbol evaluations:
!!! Note "Symbols are often bound to functions"
For the moment, you'll have to take my word on this: the symbol `#!clj inc`
- is bound to a function in Clojure's standard library. As a result, when you evaulate `#!clj inc`, you get the function!! Because that's what `inc` is bound to.
+ is bound to a function in Clojure's standard library. As a result, when you evaluate `#!clj inc`, you get the function!! Because that's what `inc` is bound to.
There's also another symbol, `#!clj count`, which is bound to different function in the standard library.
@@ -395,7 +395,7 @@ This is a naming convention. It is used for symbols bound to predicate functions
| `#!clj (empty? [:some :thing])` | `#!clj false` | |
Again, we can use `#!clj ?` in names because it is not
-an operator, as it is in other lanugages.
+an operator, as it is in other languages.
---
## What Have You Learned ?
@@ -1145,7 +1145,7 @@ XXX tracking is reified dynamics. residential
We have learned:
- - in ClojureScript we evaulate data, to create new data
+ - in ClojureScript we evaluate data, to create new data
- virtually all data literals evaluate to themselves
-
diff --git a/docs/data-oriented-design.md b/docs/data-oriented-design.md
index e0845f84e..806edb511 100644
--- a/docs/data-oriented-design.md
+++ b/docs/data-oriented-design.md
@@ -2,7 +2,7 @@
**Data-Oriented programming happens when "data is code".** The data can be evaluated/executed.
-This data must be in a specific format - it must conform to a DSL (domain-specific language) - and there must be an interpreter for this DSL. When you feed correctly formated data into the interpreter, it is executed. "Data is code" for this interpreter.
+This data must be in a specific format - it must conform to a DSL (domain-specific language) - and there must be an interpreter for this DSL. When you feed correctly formatted data into the interpreter, it is executed. "Data is code" for this interpreter.
Okay, we'll cycle back to this in a minute. But first ...
@@ -115,7 +115,7 @@ Look carefully into re-frame, and you'll see the primacy of data everywhere.
For example, with hiccup at runtime two things are happening:
- one execution context (ClojureScript) creates the data `(into [:div] (map renderer items))`
- - one execution context interpets the data (as code) - Reagent.
+ - one execution context interprets the data (as code) - Reagent.
Same for string-oriented programming. One context creates the regex string (perhaps it is just a literal in that context). And the other context executes it.
diff --git a/docs/flows-advanced-topics.md b/docs/flows-advanced-topics.md
index bc6847e2e..57104f1e8 100644
--- a/docs/flows-advanced-topics.md
+++ b/docs/flows-advanced-topics.md
@@ -111,7 +111,7 @@ along with the *entire* subgraph of subscription inputs:
std-balloon-volume 2.5
num-balloons (/ kitchen-volume std-balloon-volume)
num-bags-to-buy (js/Math.ceil
- (/ num-baloons balloons-per-bag))]
+ (/ num-balloons balloons-per-bag))]
{:fx [[:amazon {:fn :order
:sku :balloon-bag
:ct num-bags-to-buy}]]})))
@@ -137,7 +137,7 @@ The fact that some view is creating and destroying them starts to seem arbitrary
Subscriptions don't *need* to couple their behavior with that of their calling components.
The easy, automatic lifecycle behavior of subscriptions comes with a coupling of concerns. You can't directly control this lifecycle.
-You have to contol it by proxy, by mounting and unmounting your views. You can't *think* about your signal graph without thinking about views first.
+You have to control it by proxy, by mounting and unmounting your views. You can't *think* about your signal graph without thinking about views first.
The `app-db` represents your business state, and signals represent outcomes of your business logic. Views are just window dressing.
We're tired of designing our whole business to change every time we wash the windows!
diff --git a/examples/simple/README.md b/examples/simple/README.md
index 51579846d..3f76f709b 100644
--- a/examples/simple/README.md
+++ b/examples/simple/README.md
@@ -16,7 +16,7 @@ Steps:
2. `git clone https://github.com/day8/re-frame.git`
3. `cd re-frame/examples/simple`
4. Run "`npm install`" then "`npm run watch`" to compile the app and start up shadow-cljs hot-reloading
-5. Wait for the compile to finish. At a minumum, 15 seconds. But, if you are new to ClojureScript and some downloads are needed (caches are empty), it might take a minute or two. Eventually you should see `[:client] Build Completed (...)`
+5. Wait for the compile to finish. At a minimum, 15 seconds. But, if you are new to ClojureScript and some downloads are needed (caches are empty), it might take a minute or two. Eventually you should see `[:client] Build Completed (...)`
6. Open `http://localhost:8280/` to see the app
diff --git a/examples/todomvc/README.md b/examples/todomvc/README.md
index d5771bfab..f4e79df20 100644
--- a/examples/todomvc/README.md
+++ b/examples/todomvc/README.md
@@ -29,9 +29,9 @@ really required to get the job done. So lean and minimal is no longer a goal.
npm run watch
```
-5. Wait for the compile in step 4 to finish. At a minumum, 15 seconds. But, if you are new to ClojureScript and some downloads are needed (caches are empty), it might take a minute or two. Eventually you should see `[:client] Build Completed (...)`
+5. Wait for the compile in step 4 to finish. At a minimum, 15 seconds. But, if you are new to ClojureScript and some downloads are needed (caches are empty), it might take a minute or two. Eventually you should see `[:client] Build Completed (...)`
-6. Wait for step 5 to do the compile, and then open in UI in the broswer:
+6. Wait for step 5 to do the compile, and then open in UI in the browser:
```sh
open http://localhost:8280
```
diff --git a/src/re_frame/alpha.cljc b/src/re_frame/alpha.cljc
index 23416645e..be6fc94b5 100644
--- a/src/re_frame/alpha.cljc
+++ b/src/re_frame/alpha.cljc
@@ -532,7 +532,7 @@
`(handler [original-error re-frame-error])`
- - `original-error`: A plaform-native Error object.
+ - `original-error`: A platform-native Error object.
Represents the original error thrown by user code.
This is the error you see when no `handler` is registered.
diff --git a/src/re_frame/core.cljc b/src/re_frame/core.cljc
index 8ae500e46..a431460c7 100644
--- a/src/re_frame/core.cljc
+++ b/src/re_frame/core.cljc
@@ -461,7 +461,7 @@
`dynv` exists for historical reasons and is borderline deprecated these days.
It is a vector of signals. Re-frame will dereference each of them and pass a
vector of their values to your subscription handler as a third argument.
- If there's logic determing __what__ query to subscribe __to__, consider
+ If there's logic determining __what__ query to subscribe __to__, consider
expressing it in a `signal function`, or use `reg-sub-raw`. Failing that, `dynv`
allows you to colocate this logic with the `subscribe` call.
@@ -690,7 +690,7 @@
`(handler [original-error re-frame-error])`
- - `original-error`: A plaform-native Error object.
+ - `original-error`: A platform-native Error object.
Represents the original error thrown by user code.
this is the error you see when no `handler` is registered.
diff --git a/src/re_frame/interceptor.cljc b/src/re_frame/interceptor.cljc
index f3853631c..ffc9a82fa 100644
--- a/src/re_frame/interceptor.cljc
+++ b/src/re_frame/interceptor.cljc
@@ -170,7 +170,7 @@
(let [{:keys [event-v direction interceptor]} (ex-data re-frame-error)
event-handler? (#{:db-handler :fx-handler :ctx-handler} interceptor)]
(apply console :error
- "An error occured while handling the re-frame event:"
+ "An error occurred while handling the re-frame event:"
(str event-v)
"\n"
(map str