diff --git a/package.json b/package.json
index 0779662..7370680 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@formkit/auto-animate": "^1.0.0-beta.1",
"@fortawesome/fontawesome-free": "^5.15.4",
"@lingdocs/lingdocs-main": "^0.3.1",
- "@lingdocs/pashto-inflector": "^3.1.8",
+ "@lingdocs/pashto-inflector": "^3.1.9",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
diff --git a/src/App.css b/src/App.css
index 5692f14..d81d964 100644
--- a/src/App.css
+++ b/src/App.css
@@ -18,7 +18,7 @@
overflow-y: auto;
}
-@media (max-width: 980px) {
+@media (max-width: 900px) {
.table-of-contents {
display: none;
}
diff --git a/src/components/Link.js b/src/components/Link.js
index 67d396e..4d3b587 100644
--- a/src/components/Link.js
+++ b/src/components/Link.js
@@ -12,7 +12,10 @@ import { Link } from "react-router-dom";
export default function L(props) {
const { to } = props || "";
- if (to.includes("#")) {
+ const toA = (to.includes("#") && to.split("#")[0] === window.location.pathname)
+ ? ("#" + to.split("#")[1])
+ : to;
+ if (toA.includes("#")) {
// If it's a hash link return the special hash link
return {props.children};
}
// If it's a regular link return the regular router linker
- return {props.children};
+ return {props.children};
};
\ No newline at end of file
diff --git a/src/components/terms-links.tsx b/src/components/terms-links.tsx
index 56d46f4..860248a 100644
--- a/src/components/terms-links.tsx
+++ b/src/components/terms-links.tsx
@@ -1,25 +1,33 @@
import Link from "./Link";
-export function NP({ text }: { text: string}) {
+export function NP({ text }: { text: string }) {
return {text || "NP"};
}
-export function AP({ text }: { text: string}) {
+export function AP({ text }: { text: string }) {
return {text || "AP"};
}
-export function VP({ text }: { text: string}) {
+export function VP({ text }: { text: string }) {
return {text || "VP"};
}
-export function EP({ text }: { text: string}) {
+export function EP({ text }: { text: string }) {
return {text || "EP"};
}
-export function KidsSection({ text }: { text: string}) {
+export function KidsSection({ text }: { text: string }) {
return {text || "kids' section"};
}
-export function MiniPronoun({ text }: { text: string}) {
+export function MiniPronoun({ text }: { text: string }) {
return {text || "mini-pronoun"};
+}
+
+export function BlockTerm({ text }: { text: string }) {
+ return { text || "block"};
+}
+
+export function PerfectiveHead({ text }: { text: string }) {
+ return { text || "perfective head"};
}
\ No newline at end of file
diff --git a/src/content/index.ts b/src/content/index.ts
index 35d3187..ea7f337 100644
--- a/src/content/index.ts
+++ b/src/content/index.ts
@@ -58,6 +58,8 @@ import * as imperativeVerbs from "!babel-loader!@lingdocs/mdx-loader!./verbs/imp
// @ts-ignore
import * as verbEndings from "!babel-loader!@lingdocs/mdx-loader!./verbs/verb-endings.mdx";
// @ts-ignore
+import * as negativeVerbs from "!babel-loader!@lingdocs/mdx-loader!./verbs/negative.mdx";
+// @ts-ignore
import * as rootsAndStems from "!babel-loader!@lingdocs/mdx-loader!./verbs/roots-and-stems.mdx";
// @ts-ignore
import * as pastVerbs from "!babel-loader!@lingdocs/mdx-loader!./verbs/past-verbs.mdx";
@@ -221,6 +223,10 @@ const contentTree = [
import: pastVerbs,
slug: "past-verbs",
},
+ {
+ import: negativeVerbs,
+ slug: "negative-verbs",
+ },
{
import: verbEndings,
slug: "verb-endings",
diff --git a/src/content/phrase-structure/blocks-and-kids.mdx b/src/content/phrase-structure/blocks-and-kids.mdx
index 5bae718..a7d1d68 100644
--- a/src/content/phrase-structure/blocks-and-kids.mdx
+++ b/src/content/phrase-structure/blocks-and-kids.mdx
@@ -86,7 +86,7 @@ Click on the on the following examples to see where the kids' sec
{"blocks":[{"key":0.27231313024586834,"block":{"type":"subjectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":0,"distance":"far"}}}},{"key":0.6810015291689175,"block":{"type":"objectSelection","selection":{"type":"NP","selection":{"type":"pronoun","person":5,"distance":"far"}}}}],"verb":{"type":"verb","verb":{"entry":{"ts":1527812275,"i":11610,"p":"لیدل","f":"leedul","g":"leedul","e":"to see","c":"v. trans./gramm. trans.","psp":"وین","psf":"ween","tppp":"لید","tppf":"leed","ec":"see,sees,seeing,saw,seen"}},"verbTense":"perfectivePast","perfectTense":"presentPerfect","imperativeTense":"imperfectiveImperative","tenseCategory":"perfect","transitivity":"transitive","isCompound":false,"voice":"active","negative":true,"canChangeTransitivity":true,"canChangeVoice":true,"canChangeStatDyn":false},"form":{"removeKing":true,"shrinkServant":true}}
}
-Here are the kids that go in the kids' section, and they always line up **in this order**.
+Here are the kids go in the kids' section, and they always line up **in this order**.
The emphatic particle
diff --git a/src/content/verbs/negative.mdx b/src/content/verbs/negative.mdx
new file mode 100644
index 0000000..8f6f017
--- /dev/null
+++ b/src/content/verbs/negative.mdx
@@ -0,0 +1,70 @@
+---
+title: Negatives
+---
+
+import {
+ defaultTextOptions as opts,
+ Examples,
+ InlinePs,
+ grammarUnits,
+ RootsAndStems,
+ getVerbInfo,
+ removeFVarients,
+} from "@lingdocs/pashto-inflector";
+import Link from "../../components/Link";
+import { BlockTerm, KidsSection, PerfectiveHead, VP } from "../../components/terms-links.tsx";
+import psmd from "../../lib/psmd";
+
+To make verbs negative, we use a negative .
+
+-
+- (for imperative verbs)
+
+### Where the negative goes
+
+The negative goes in front of the verb block at the end of a .
+
+{psmd([
+ { p: "زه ښار ته نه ځم", f: "zu xaar ta nú dzum", e: "I'm not going to the city" },
+ { p: "هغه عربي نه زده کوي", f: "haghá arabee nu zda kawee", e: "He's not learning Arabic" },
+])}
+
+With the perfective roots and stems, if we have a of or , the always goes *after* the block.
+
+{psmd([
+ { p: "زه ورسره وغږېدم", f: "zu wăr-sara óoghuGedum", e: "I talked with him" },
+ { p: "زه ورسره ونه غږېدم", f: "zu wăr-sara oo-nú ghuGedum", e: "I talked with him", sub: "negative block always goes after the perfective head" },
+ { p: "ما کتابچه واخسته", f: "maa kitaabchaa wáakhista", e: "I took the booklet" },
+ { p: "ما کتابچه وانه خسته", f: "maa kitaabchaa wáa-nu khista", e: "I didn't take the booklet", sub: "negative block always goes after the perfective head" },
+])}
+
+But if it's one of those verbs that don't take the prefix where the is made from splitting off the first syllable of the word, you can put the negative after the perfective head *or* before it.
+
+{psmd([
+ { p: "هغه کور ته لاړه", f: "haghá kor ta láaRa", e: "She went home" },
+ { p: "هغه کور ته لانه ړه", f: "haghá kor ta laa-nú-Ra", e: "She didn't go home", sub: "negative block after the perfective head" },
+ { p: "هغه کور ته نه لانه ړه", f: "haghá kor ta nú laaRa", e: "She didn't go home", sub: "negative block before the perfective head" },
+ { p: "زه دلته کېنم؟", f: "zu dălta kenúm?", e: "Do I sit here? (present)" },
+ { p: "زه دلته کېنم؟", f: "zu dălta kénum?", e: "Should I sit here? (subjunctive)" },
+ { p: "زه دلته نه کېنم؟", f: "zu dălta nú kenum?", e: "Do I not sit here? (present)", sub: "no perfective head, negative block before verb block" },
+ { p: "زه دلته نه کېنم؟", f: "zu dălta nú kenum?", e: ":Should I not sit here? (subjunctive)", sub: "negative block before the perfective head" },
+ { p: "زه دلته نه کېنه نم؟", f: "zu dălta ke-nú num?", e: "Should I not sit here? (subjunctive)", subj: "negative block after the perfective head" },
+])}
+
+Notice how with verbs like the only thing indicating a difference between the perfective and imperfective forms is the accent, and therefore when we add the we have no way of telling if a verb was perfective or imperfective, because the took over the accent.
+
+With stative compounds the complement and verb are considered one or two blocks depending on the aspect.
+
+With the **imperfective** aspect, the complement and verb are fused together and considered one indivisable block, so the negative goes before that whole verb block.
+
+{psmd([
+ { p: "ما پښتو نه زده کوله", f: "maa puxto nú zda kawula", e: "I wasn't learning Pashto" },
+ { p: "هغه ما نه ستړی کوي", f: "hagha maa nú stuRey kawee", e: "He's not making me (m.) tired" },
+])}
+
+In the **perfective** aspect, however the complement breaks out and acts as a , so the negative goes after it.
+
+{psmd([
+ { p: "ما پښتو زده نه کړه", f: "maa puxto zda nú kRa", e: "I didn't learn Pashto" },
+ { p: "چې هغه ما نه ستړی نه کړي", f: "che haghá maa stuRey nú kRee", e: "I hope he doesn't make me (m.) tired" },
+])}
\ No newline at end of file
diff --git a/src/content/verbs/past-verbs.mdx b/src/content/verbs/past-verbs.mdx
index 50d99e1..9cee592 100644
--- a/src/content/verbs/past-verbs.mdx
+++ b/src/content/verbs/past-verbs.mdx
@@ -43,8 +43,10 @@ We'll use the **imperfective and perfective roots** to make two past tense verb
1. The simple ( perfective) past
- one time, complete actions
+ - formula 🧪: perfective root + past verb ending
2. The continuous ( imperfective) past
- continuous, ongoing, unfinished in the past
+ - formula 🧪: imperfective root + past verb ending
Then, we will see **what really trips people up** when learning Pashto is that the phrase structure totally changes depending on what type of verb we are using. So we will have to see how these verb forms work with both:
diff --git a/src/content/verbs/roots-and-stems.mdx b/src/content/verbs/roots-and-stems.mdx
index 0ae0ca0..36ddb7f 100644
--- a/src/content/verbs/roots-and-stems.mdx
+++ b/src/content/verbs/roots-and-stems.mdx
@@ -30,6 +30,8 @@ import Link from "../../components/Link";
import verbTreeBase from "./verb-tree-base.svg";
import verbTreePastPresent from "./verb-tree-past-present.svg";
import verbTreeImperfectivePerfective from "./verb-tree-imperfective-perfective.svg";
+import { BlockTerm, KidsSection, PerfectiveHead, VP } from "../../components/terms-links.tsx";
+import psmd from "../../lib/psmd";
export const opts = defaultTextOptions;
@@ -87,20 +89,20 @@ The tree is also divided from left to right. On the left we have the [*imperfect
On the **perfective** side of the tree:
- The accent/emphasis **always** goes on the first syllable
- - The prefix goes on this side (for the verbs that can take it)
- - The first syllable can split off from the rest of the verb
+ - The verb has a that splits off into a seperate
## Making the Verb Tree
Many verbs follow a very clear pattern of how the roots and stems grow out from the dictionary form. But there are some verbs that have irregular roots and stems. If you're new to verbs, don't worry about reading or understanding everything all the way to the bottom.
+
### Regular Verbs
With regular verbs, knowing all the roots and stems is simple:
- The perfective root is made by:
- - **adding the prefix** and
- - **shifting the accent to the front**.
-- The stems are just the **shorter version** of the roots.
+ - **adding the prefix** as the
+ - **shifting the accent to the front**
+- The stems are just the **shorter version** of the roots
Flip through all these regular verbs and notice the pattern of how they're all built.
@@ -112,7 +114,9 @@ export const regularTrans = regularVerbs.filter((verb) => verb.entry.c && verb.e
-Notice how the behaves a little differently when it's added on to a word starting with a vowel. In these cases, it behaves like a < and the vowel behind is kept long.
+### Introducing the Perfective Head
+
+On the right (perfective) side of the verb tree beside the icon you'll notice there's a button labelled "split head." When you click it you'll see how one part splits off the rest of the verb stem/root. The front part that splits off is what we'll call the **perfective head**. In the phrase structure, it gets treated like a seperate from the rest of the verb. For regular verbs starting with a consonant the perfective head is just the prefix. But for verbs starting with an or the perfective side starts with a in front and then the is taken with it in the split so the perfective head is . Look for verbs starting with in the examples above and see how this works.
### Regular Intransitive Verbs
@@ -154,6 +158,8 @@ export const separableVerbs = verbs.filter((verb) => (
!verb.entry.ssp
));
+The other fascinating part about these types of verbs is that the first syllable gets split off as the perfective head.
+
### Totally Irregular Verbs
@@ -179,33 +185,17 @@ In almost all verbs, the past participle is just the imperfective root plus a
-## About the split in the perfective side
-In the perfective roots and stems there is a spot where the verb can be broken apart into two blocks. This is important because you can put the in there or the split can become a .
+## With the negative
-## About inserting
+The negative is a used to make verbs negative, and is used to with the imperative forms.
-If the verb takes a prefix and you want to use a to make it negative, you always have to insert the into the split in the perfective form.
+### The negative takes over the accent
-For example:
+When one of these negatives is used **it always takes over the accent from the verb**.
-{[
- { p: "زه ورسره ونه غږېدم", f: "zu wăr-sara oo-nú-ghuGedum", e: "I didn't talk with him" },
-]}
-
-{[
- { p: "زه ورسره نه وغږېدم ❌", f: "zu wăr-sara nú ooghuGedum ❌", e: "I didn't talk with him" },
-]}
-
-But if the verb is a one of the seperable verbs that doesn't take a prefix, then the can be inserted *inside or outside of the split*.
-
-{[
- { p: "زه ورسره کې نه ناستم", f: "zu wăr-sara ke-nú-naastum", e: "I didn't sit with him" },
-]}
-
-{[
- { p: "زه ورسره نه کېناستم", f: "zu wăr-sara nú kenaastum", e: "I didn't sit with him" },
-]}
-
-### always takes over the accent
-
-Whenever a is inserted in a split or in front of a verb, it takes over the accent and receives the emphasis for a verb. It's like a mean, negative bully.
+{psmd([
+ { p: "دتله **کېنه**", f: "dălta **kéna**", e: "sit here" },
+ { p: "دلته **مه کېنه**", f: "dălta **mú kena**", e: "don't sit here" },
+ { p: "زه ورسره **غږېدم**", f: "zu wăr-sara **ghuGedúm**", e: "I was talking with him" },
+ { p: "زه ورسره **نه غږېدم**", f: "zu wăr-sara **nú ghuGedum**", e: "I was talking with him" },
+])}
diff --git a/src/content/verbs/verb-tree-imperfective-perfective.svg b/src/content/verbs/verb-tree-imperfective-perfective.svg
index e5d1bd5..43460d4 100644
--- a/src/content/verbs/verb-tree-imperfective-perfective.svg
+++ b/src/content/verbs/verb-tree-imperfective-perfective.svg
@@ -1,22 +1,28 @@