diff --git a/docs/allsetlearning/A2/每.md b/docs/allsetlearning/A2/每.md
new file mode 100644
index 0000000..e17beb5
--- /dev/null
+++ b/docs/allsetlearning/A2/每.md
@@ -0,0 +1,108 @@
+# Expressing "every" with "每"
+
+
+
+- _每_ 个 菜 **都** 好吃。
+
+ - Every dish is delicious.
+- 你 _每_ 个 人 **都** 认识 吗?
+
+ - Do you know every person?
+- 老板 _每_ 个 月 **都** 出差。
+
+ - The boss goes on business trips every month.
+- 他 _每_ 天 **都** 不 吃 早饭。
+
+ - Every morning he skips breakfast.
+- 他 _每_ 年 **都** 来 中国。
+
+ - He comes to China every year.
+- 我 _每_ 个 星期 **都** 给 妈妈 打电话。
+
+ - I give mom a phone call every week.
+- 这个 班 的 _每_ 个 学生 **都** 很 聪明。
+
+ - Each of the students in this class are very smart.
+- 老师 _每_ 天 **都** 给 我们 很多 作业。
+
+ - Every day the teacher gives us a lot of homework.
+- 我们 _每_ 周 **都** 要 开会。
+
+ - Every week we need to have a meeting.
+- 他们 _每_ 个 周末 **都** 去 公园。
+
+ - Every weekend they go to the park.
+
+
+
+
+
+- Level: [A2](https://resources.allsetlearning.com/chinese/grammar/A2_grammar_points) / [HSK2](https://resources.allsetlearning.com/chinese/grammar/HSK2_grammar_points)
+- Similar to
+ - [The "all" adverb "都"](https://resources.allsetlearning.com/chinese/grammar/The_%22all%22_adverb_%22dou%22) (A1)
+ - [Emphasizing quantity with "都"](https://resources.allsetlearning.com/chinese/grammar/Emphasizing_quantity_with_%22dou%22) (A2)
+ - [Measure words for counting](https://resources.allsetlearning.com/chinese/grammar/Measure_words_for_counting) (A2)
+ - [Expressing "every time" with "每" and "都"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22every_time%22_with_%22mei%22_and_%22dou%22) (B1)
+ - [Expressing "how often"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22how_often%22) (B1)
+ - [Measure words for verbs](https://resources.allsetlearning.com/chinese/grammar/Measure_words_for_verbs) (B1)
+ - [Expressing "all" with "凡是"](../C1/凡是.md) (C1)
+- Used for
+- Keywords: [都](https://resources.allsetlearning.com/chinese/grammar/%E9%83%BD), [每](https://resources.allsetlearning.com/chinese/grammar/%E6%AF%8F)
+
+
+
+In this article we will look at the structure for saying "every" in Chinese, which is slightly more involved than just throwing in the word 每 (měi).
+
+## Structure
+
+The pronoun 每 (měi) covers the meanings of "each" and "every." It should normally be used with a [measure word](https://resources.allsetlearning.com/chinese/grammar/Measure_word) and [used with 都 (dōu)](https://resources.allsetlearning.com/chinese/grammar/Emphasizing_quantity_with_%22dou%22) in a complete sentence.
+
+每 + Measure Word + Noun + 都
+
+Note that there are some words that don't use measure words because they themselves are already measure words. For example: 天 (tiān), 年 (nián), 周 (zhōu), 次 (cì) etc.
+
+## Examples
+
+- _每_ 个 菜 **都** 好吃。
+
+ - Every dish is delicious.
+- 你 _每_ 个 人 **都** 认识 吗?
+
+ - Do you know every person?
+- 老板 _每_ 个 月 **都** 出差。
+
+ - The boss goes on business trips every month.
+- 他 _每_ 天 **都** 不 吃 早饭。
+
+ - Every morning he skips breakfast.
+- 他 _每_ 年 **都** 来 中国。
+
+ - He comes to China every year.
+- 我 _每_ 个 星期 **都** 给 妈妈 打电话。
+
+ - I give mom a phone call every week.
+- 这个 班 的 _每_ 个 学生 **都** 很 聪明。
+
+ - Each of the students in this class are very smart.
+- 老师 _每_ 天 **都** 给 我们 很多 作业。
+
+ - Every day the teacher gives us a lot of homework.
+- 我们 _每_ 周 **都** 要 开会。
+
+ - Every week we need to have a meeting.
+- 他们 _每_ 个 周末 **都** 去 公园。
+
+ - Every weekend they go to the park.
+
+## See also
+
+- [Expressing "every time" with "每" and "都"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22every_time%22_with_%22mei%22_and_%22dou%22)
+- [Measure words for counting](https://resources.allsetlearning.com/chinese/grammar/Measure_words_for_counting)
+- [Measure words for verbs](https://resources.allsetlearning.com/chinese/grammar/Measure_words_for_verbs)
+
+## Sources and further reading
+
+### Books
+
+- [HSK Standard Course 2](https://resources.allsetlearning.com/chinese/grammar/HSK_Standard_Course_2) (pp. 12) [Anything Goes (无所不谈) →buy](https://www.amazon.cn/mn/detailApp?_encoding=UTF8&tag=allset-23&linkCode=as2&asin=B001J0ADWA&camp=536&creative=3132&creativeASIN=B001J0ADWA,)
+- [Chinese: An Essential Grammar, Second Edition](https://resources.allsetlearning.com/chinese/grammar/Chinese:_An_Essential_Grammar,_Second_Edition) (p. 19) [→buy](https://www.amazon.com/gp/product/0415372615/ref=as_li_ss_tl?ie=UTF8&tag=allset-20&linkCode=as2&camp=217145&creative=399369&creativeASIN=0415372615)
diff --git a/docs/allsetlearning/B2/只要.md b/docs/allsetlearning/B2/只要.md
new file mode 100644
index 0000000..437f14c
--- /dev/null
+++ b/docs/allsetlearning/B2/只要.md
@@ -0,0 +1,104 @@
+# Expressing "as long as" with "只要"
+
+
+
+- _只要_ 你 真的 喜欢, 我 _就_ 给 你 买 。
+
+ - As long as you really like it, I will buy it for you.
+- _只要_ 你 努力 学习, _就_ 会 有 进步 。
+
+ - As long as you study hard, you'll make progress.
+- _只要_ 有 你 在, 我 _就_ 放心 了 。
+
+ - As long as you are here, I won't be worried.
+- _只要_ 下雨, 她 _就_ 会 心情 不 好 。
+
+ - Whenever it rains, she will be in a bad mood.
+- _只要_ 看到 妈妈, 宝宝 _就_ 不 哭 了 。
+
+ - Whenever she sees her mother, the baby stops crying.
+- _只要_ 你 完成 了 工作, _就_ 可以 不 用 加班 。
+
+ - As long as you have finished your work, there is no need to do overtime.
+- _只要_ 你 妈妈 同意 你 去 北京, 我 _就_ 没有 意见 。
+
+ - As long as your mother agrees with you going to Beijing, I have no issue with it.
+- _只要_ 不 堵车, 我们 _就_ 能 准时 到 。
+
+ - As long as traffic isn't bad, we can get there on time.
+- _只要_ 你 不 生气 , 我 _就_ 告诉 你 。
+
+ - As long as you won't get mad, I'll tell you.
+- _只要_ 你 的 要求 是 合理 的 , 我们 _就_ 可以 考虑 。
+
+ - As long as your requirements are reasonable, we can consider them.
+
+
+
+
+
+- Level: [B2](https://resources.allsetlearning.com/chinese/grammar/B2_grammar_points) / [HSK3](https://resources.allsetlearning.com/chinese/grammar/HSK3_grammar_points) and [HSK4](https://resources.allsetlearning.com/chinese/grammar/HSK4_grammar_points)
+- Similar to
+ - [Expressing "only after" with "才"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22only_after%22_with_%22cai%22) (B2)
+ - [Expressing "only if" with "只有"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22only_if%22_with_%22zhiyou%22) (B2)
+ - [Expressing "all" with "凡是"](../C1/凡是.md) (C1)
+- Used for: [Indicating conditions](https://resources.allsetlearning.com/chinese/grammar/Indicating_conditions), [Indicating cause and effect](https://resources.allsetlearning.com/chinese/grammar/Indicating_cause_and_effect)
+- Keywords: [就](https://resources.allsetlearning.com/chinese/grammar/%E5%B0%B1), [只要](https://resources.allsetlearning.com/chinese/grammar/%E5%8F%AA%E8%A6%81), [只](https://resources.allsetlearning.com/chinese/grammar/%E5%8F%AA)
+
+
+
+只要……就…… (zhǐyào... jiù...) means "as long as... then...." In other words, _whenever_ A happens, B (always) results.
+
+## Structure
+
+Use this structure to express that "as long as" [something happens], "then" [something else will happen]. In logic, this is referred to as a "[sufficient condition](https://en.wikipedia.org/wiki/Necessity_and_sufficiency)," meaning that it may not be the _only way_ to bring about the these specific consequences, but it is _one reliable way_.
+
+只要 + Condition ,就 + Result
+
+## Examples
+
+- _只要_ 你 真的 喜欢, 我 _就_ 给 你 买 。
+
+ - As long as you really like it, I will buy it for you.
+- _只要_ 你 努力 学习, _就_ 会 有 进步 。
+
+ - As long as you study hard, you'll make progress.
+- _只要_ 有 你 在, 我 _就_ 放心 了 。
+
+ - As long as you are here, I won't be worried.
+- _只要_ 下雨, 她 _就_ 会 心情 不 好 。
+
+ - Whenever it rains, she will be in a bad mood.
+- _只要_ 看到 妈妈, 宝宝 _就_ 不 哭 了 。
+
+ - Whenever she sees her mother, the baby stops crying.
+- _只要_ 你 完成 了 工作, _就_ 可以 不 用 加班 。
+
+ - As long as you have finished your work, there is no need to do overtime.
+- _只要_ 你 妈妈 同意 你 去 北京, 我 _就_ 没有 意见 。
+
+ - As long as your mother agrees with you going to Beijing, I have no issue with it.
+- _只要_ 不 堵车, 我们 _就_ 能 准时 到 。
+
+ - As long as traffic isn't bad, we can get there on time.
+- _只要_ 你 不 生气 , 我 _就_ 告诉 你 。
+
+ - As long as you won't get mad, I'll tell you.
+- _只要_ 你 的 要求 是 合理 的 , 我们 _就_ 可以 考虑 。
+
+ - As long as your requirements are reasonable, we can consider them.
+
+## See also
+
+- ["Only if" with "只有"](https://resources.allsetlearning.com/chinese/grammar/%22Only_if%22_with_%22zhiyou%22)
+- ["If…, then…" with "如果…, 就…"](https://resources.allsetlearning.com/chinese/grammar/%22If%E2%80%A6,_then%E2%80%A6%22_with_%22ruguo%E2%80%A6,_jiu%E2%80%A6%22)
+
+## Sources and further reading
+
+### Books
+
+- [HSK Standard Course 3](https://resources.allsetlearning.com/chinese/grammar/HSK_Standard_Course_3) (pp. 154) [Anything Goes (无所不谈) →buy](https://www.amazon.cn/mn/detailApp?_encoding=UTF8&tag=allset-23&linkCode=as2&asin=B001J0ADWA&camp=536&creative=3132&creativeASIN=B001J0ADWA,)
+- [HSK Standard Course 4上](https://resources.allsetlearning.com/chinese/grammar/HSK_Standard_Course_4%E4%B8%8A) (pp. 93) [Anything Goes (无所不谈) →buy](https://www.amazon.cn/mn/detailApp?_encoding=UTF8&tag=allset-23&linkCode=as2&asin=B001J0ADWA&camp=536&creative=3132&creativeASIN=B001J0ADWA,)
+- [New Practical Chinese Reader 3 (新实用汉语课本3)]() (pp. 83) [Anything Goes (无所不谈) →buy](https://www.amazon.cn/mn/detailApp?_encoding=UTF8&tag=allset-23&linkCode=as2&asin=B001J0ADWA&camp=536&creative=3132&creativeASIN=B001J0ADWA,)
+- [Integrated Chinese: Level 2, Part 2](https://resources.allsetlearning.com/chinese/grammar/Integrated_Chinese:_Level_2,_Part_2) (pp. 124) [Anything Goes (无所不谈) →buy](https://www.amazon.cn/mn/detailApp?_encoding=UTF8&tag=allset-23&linkCode=as2&asin=B001J0ADWA&camp=536&creative=3132&creativeASIN=B001J0ADWA,)
+- [卓越汉语-公司实战篇](https://resources.allsetlearning.com/chinese/grammar/%E5%8D%93%E8%B6%8A%E6%B1%89%E8%AF%AD%EF%BC%8D%E5%85%AC%E5%8F%B8%E5%AE%9E%E6%88%98%E7%AF%87) (pp. 112) [卓越汉语-公司实战篇 →buy](http://amzn.to/2z4g8q6,)
diff --git a/docs/allsetlearning/C1/凡是.md b/docs/allsetlearning/C1/凡是.md
new file mode 100644
index 0000000..394d95f
--- /dev/null
+++ b/docs/allsetlearning/C1/凡是.md
@@ -0,0 +1,98 @@
+# Expressing "all" with "凡是"
+
+
+
+- _凡是_ 用 鸡蛋 做 的 菜 ,他 **都** 不 喜欢 。
+ - As long as the food is made of egg, he wouldn't like.
+- _凡是_ 不 听话 的 孩子 **都** 没有 糖 吃 。
+ - As long as the kid doesn't behave well, he won't get any candy to eat.
+- _凡是_ 会员 **都** 有 折扣 。
+ - As long as you have a membership, you can benefit from a discount.
+- _凡是_ 美国 公民 **就** 可以 投票 ,这 是 真的 吗 ?
+ - As long as you're an American citizen, you can vote. Is this true?
+- _凡是_ 提前 三天 报名 的 人 **就** 可以 免费 入场 。
+ - As long as you sign up three days in advance, you can enter free of charge.
+- _凡是_ 没有 体检 的 人 **一律** 不能 献血 。
+ - As long as you haven't take an physical examination, you can't donate blood.
+- _凡是_ 杀 了 人 的 人 **一律** 判死刑 ,这是 真的 吗 ?
+ - As long as you kill someone, you will be sentenced to death. Is that true?
+- _凡是_ 听说 这件事 的 人 **无不** 惊讶 。
+ - Everyone is surprised as long as they've heard about this.
+- _凡是_ 看 过 他 的 表演 的 人 **无不** 赞叹 他 的 演技 。
+ - Everyone are amazed by his acting skills as long as they've seen his acting.
+- _凡_ 质量 不合格 的 产品 **均** 须 退回 。
+ - The product must be returned as long as it's not qualified.
+- _凡_ 使用 兴奋剂 的 运动员 **均** 会 受到 严重 惩罚 。
+ - As long as the athletes take stimulants, they will be punished very seriously.
+
+
+
+
+
+- Level: [C1](https://resources.allsetlearning.com/chinese/grammar/C1_grammar_points) / [HSK6](https://resources.allsetlearning.com/chinese/grammar/HSK6_grammar_points)
+- Similar to
+ - [Expressing "every" with "每"](https://resources.allsetlearning.com/chinese/grammar/Expressing_%22every%22_with_%22mei%22) (A2)
+ - [Expressing "as long as" with "只要"](../B2/只要.md) (B2)
+- Used for
+- Keywords: [凡是](https://resources.allsetlearning.com/chinese/grammar/%E5%87%A1%E6%98%AF)
+
+
+
+凡是(fánshì),副词,指在某个范围内的所有事物或情况,没有例外,意思是"只要是"。用于句子的开头,用来修饰名词或名词性词组,口语中常和"就、都、一律"等搭配使用。
+
+## Basic Pattern
+
+### Structure
+
+凡是 + Noun + 都 / 就 / 一律 + Predicate
+
+### Examples
+
+- 凡是 with 都:
+
+- _凡是_ 用 鸡蛋 做 的 菜 ,他 **都** 不 喜欢 。
+ - As long as the food is made of egg, he wouldn't like.
+- _凡是_ 不 听话 的 孩子 **都** 没有 糖 吃 。
+ - As long as the kid doesn't behave well, he won't get any candy to eat.
+- _凡是_ 会员 **都** 有 折扣 。
+ - As long as you have a membership, you can benefit from a discount.
+
+- 凡是 with 就:
+
+- _凡是_ 美国 公民 **就** 可以 投票 ,这 是 真的 吗 ?
+ - As long as you're an American citizen, you can vote. Is this true?
+- _凡是_ 提前 三天 报名 的 人 **就** 可以 免费 入场 。
+ - As long as you sign up three days in advance, you can enter free of charge.
+
+- 凡是 with 一律:
+
+- _凡是_ 没有 体检 的 人 **一律** 不能 献血 。
+ - As long as you haven't take an physical examination, you can't donate blood.
+- _凡是_ 杀 了 人 的 人 **一律** 判死刑 ,这是 真的 吗 ?
+ - As long as you kill someone, you will be sentenced to death. Is that true?
+
+## Advanced Pattern
+
+### Structure
+
+凡是 can also be used with 无不 and 均. 无不 literally means 没有一个不, which gives a stronger tone of emphasis. 均 simply means 都 in written language.
+
+凡 is used more in written language than 凡是.
+
+凡(是) + Noun + 无不 / 均 + Predicate
+
+### Examples
+
+- _凡是_ 听说 这件事 的 人 **无不** 惊讶 。
+ - Everyone is surprised as long as they've heard about this.
+- _凡是_ 看 过 他 的 表演 的 人 **无不** 赞叹 他 的 演技 。
+ - Everyone are amazed by his acting skills as long as they've seen his acting.
+- _凡_ 质量 不合格 的 产品 **均** 须 退回 。
+ - The product must be returned as long as it's not qualified.
+- _凡_ 使用 兴奋剂 的 运动员 **均** 会 受到 严重 惩罚 。
+ - As long as the athletes take stimulants, they will be punished very seriously.
+
+## See also
+
+- [Expressing "as long as" with "只要"](../B2/只要.md)
+- [Expressing "every" with "每"](../A2/每.md)
diff --git a/docs/index.md b/docs/index.md
index b45957c..91698c7 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -7,3 +7,4 @@
- [C1/Adverbs/很是](./allsetlearning/C1/很是.md)
- [C1/Adverbs/足足](./allsetlearning/C1/足足.md)
- [C1/Adverbs/一再](./allsetlearning/C1/一再.md)
+- [C1/Adverbs/凡是](./allsetlearning/C1/凡是.md)
diff --git a/webview.js b/webview.js
index 53c7de3..955dd61 100644
--- a/webview.js
+++ b/webview.js
@@ -2,6 +2,10 @@ const { Webview } = require("webview-nodejs");
const { spawn } = require("child_process");
const PORT = 5173;
+/**
+ * I don’t see an alternative: “DeprecationWarning: Passing args to a child process with shell option true …”
+ * https://github.com/nodejs/help/issues/5063
+ */
const p = spawn("pnpm", ["vitepress", "dev", "--port", String(PORT), "docs"], {
shell: true,
stdio: "inherit",
@@ -14,7 +18,7 @@ w.init(/* js */ `
document.addEventListener('click', (ev) => {
if (ev.target.matches('a')) {
const href = ev.target.href || '';
- if (href.startsWith('https://')) ev.preventDefault();
+ if (href.startsWith('https://resources.allsetlearning.com/chinese/')) ev.preventDefault();
}
})
`);
@@ -22,4 +26,9 @@ w.navigate(`http://localhost:${PORT}`);
w.show();
console.log(p.kill("SIGINT"));
+
+/**
+ * node:child_process#spawn doesn't fire close event if app exits immediately after spawned app exits
+ * ??? https://github.com/oven-sh/bun/issues/3083
+ */
require("kill-port")(PORT);