diff --git a/src/components/UnisexNounGame.tsx b/src/components/UnisexNounGame.tsx index 9d5bf7e..d28e70f 100644 --- a/src/components/UnisexNounGame.tsx +++ b/src/components/UnisexNounGame.tsx @@ -122,7 +122,7 @@ export default function() { return }; diff --git a/src/content/index.js b/src/content/index.js index 3e790b7..ac63590 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -37,6 +37,8 @@ import * as inflectionIntro from "!babel-loader!mdx-loader!./inflection/inflecti import * as inflectionPatterns from "!babel-loader!mdx-loader!./inflection/inflection-patterns.mdx"; import * as feminineInflection from "!babel-loader!mdx-loader!./inflection/feminine-inflection.mdx"; +import * as sandwiches from "!babel-loader!mdx-loader!./sandwiches/sandwiches.mdx"; + import * as theFiveYeys from "!babel-loader!mdx-loader!./writing/the-five-yeys.mdx"; import * as typingIssues from "!babel-loader!mdx-loader!./writing/typing-issues.mdx"; @@ -150,7 +152,7 @@ const contentTree = [ ], }, { - heading: "Inflection", + heading: "Inflection 🔘", subdirectory: "inflection", chapters: [ { @@ -168,7 +170,17 @@ const contentTree = [ ], }, { - heading: "Writing", + heading: "Sandwiches 🥪", + subdirectory: "sandwiches", + chapters: [ + { + import: sandwiches, + slug: "sandwiches", + }, + ], + }, + { + heading: "Writing 🖊", subdirectory: "writing", chapters: [ { diff --git a/src/content/inflection/inflection-patterns.mdx b/src/content/inflection/inflection-patterns.mdx index 81602da..9b2ef68 100644 --- a/src/content/inflection/inflection-patterns.mdx +++ b/src/content/inflection/inflection-patterns.mdx @@ -88,7 +88,7 @@ These words are a little irregular but you can see a common patten based around: **Note**: Nouns in this pattern will often only use the first inflection for the plural. Adjectives will use the 1st inflection for all 3 reasons. -## 5. Shorter words that take +## 5. Shorter words that squish These are also a little irregular but instead of lengthening the 1st masculine inflection they compress it as well and take just an on the end. diff --git a/src/content/nouns/nouns-unisex.mdx b/src/content/nouns/nouns-unisex.mdx index fb84c39..b0fac0e 100644 --- a/src/content/nouns/nouns-unisex.mdx +++ b/src/content/nouns/nouns-unisex.mdx @@ -172,7 +172,7 @@ If the accent comes on the end of the word, the femine form is a little differen } ]} /> -### 5. Shorter words that take +### 5. Shorter words that squish to school. I'm making supper for you. + +But in Pashto there are actually three kinds of these sandwiches: + +- Preposition - sticks to the beginning of the word 🍞🥓 (like we've seen already in English) +- Postposition - sticks to the end of the word 🥓🍞 (...interesting) +- Circumposition - surrounds the word on both sides! 🍞🥓🍞 (... 🤯) + +This last kind is probably the newest and most surprising to language learners. Not many languages do this where they have particles that surround a word on both sides. + +## Sandwiches and Examples + +export function SandwichTable() { + return ( + + + + + + + + + {sandwiches.map((s) => { + const pre = s.pre || { p: "", f: "" }; + const post = s.post || { p: "", f: "" }; + return + + + + })} + +
SandwichExamples
+ {{ + p: `${pre.p} ... ${post.p}`, + f: `${pre.f} ... ${post.f}`, + e: s.e, + }} + + + {s.examples} + +
+ ); +} + + + +More coming soon... In progress... 👷‍♂️ + + + + diff --git a/src/content/sandwiches/sandwiches.tsx b/src/content/sandwiches/sandwiches.tsx new file mode 100644 index 0000000..aa1532b --- /dev/null +++ b/src/content/sandwiches/sandwiches.tsx @@ -0,0 +1,430 @@ +import React from "react"; +import { + Types as T, +} from "@lingdocs/pashto-inflector"; + +type SandwichInfo = { + pre?: T.PsString, + post?: T.PsString, + e: string, + examples: (T.PsJSX | T.PsString)[] +} + +const sandwiches: SandwichInfo[] = [ + { + pre: {p: "په", f: "pu"}, + post: {p: "کې", f: "ke"}, + e: "in / at", + examples: [ + { + p: <>زه په کور کې یم, + f: <>zu pu kor ke yum, + e: <>I'm at home, + }, + { + p: <>هغه په پارک کې دی, + f: <>haghá pu paark ke dey, + e: <>He's in the park, + }, + { + p: <>مونږ په افغانستان کې اوسېږو, + f: <>moonG pu afghaanistaan ke oseGoo, + e: <>We live in Afghanistan, + }, + ], + }, + { + post: { p: "ته", f: "ta" }, + e: "to / towards", + examples: [ + { + p: <>زه ښار ته ځم, + f: <>zu xaar ta dzum, + e: <>I'm going to the city, + }, + { + p: <>ما ته وګوره, + f: <>maa ta óogora, + e: <>Look at me, + }, + ], + }, + { + pre: { p: "د", f: "du" }, + e: "of / 's", + examples: [ + { + p: <>د یوسف کور هلته دی, + f: <>du yoosuf kor halta dey, + e: <>Yousuf's house is there, + }, + { + p: <>مونږ د پېشور یو, + f: <>moonG du pexawar yoo, + e: <>We are of Peshawer (ie. We are from Peshawer), + }, + { + p: <>د خبره د منلو نه ده, + f: <>daa khoraak du khoRulo nu dey, + e: <>That food is not of eating (ie. It's unfit for eating), + }, + ], + }, + { + pre: { p: "له", f: "la" }, + post: { p: "سره", f: "sara" }, + e: "with", + examples: [ + { + p: <>هغه له احمد سره دی, + f: <>haghá la ahmad sara dey, + e: <>He is with Ahmed., + }, + { + p: <>ته له ما سره ځې؟, + f: <>tu la maa sara dze?, + e: <>Will you go with me?, + }, + ], + }, + { + pre: { p: "د", f: "du" }, + post: { p: "دپاره", f: "dupaara" }, + e: "for", + examples: [ + { + p: <>دا د هغې دپاره دی, + f: <>daa du haghé dupaara dey, + e: <>This is for her, + }, + ], + }, + { + pre: { p: "پر", f: "pur" }, + post: { p: "باندې", f: "baande" }, + e: "on", + examples: [ + { + p: <>کتاب پر مېز باندې دی, + f: <>kitáab pur mez baande dey, + e: <>The book is on the table, + }, + ], + }, + { + pre: { p: "د", f: "du" }, + post: { p: "په اړه", f: "pu aRa" }, + e: "about / concerning", + examples: [ + { + p: <>د تعلیم په اړه خبرې کوو, + f: <>du taleem pu aRa khabure kawoo, + e: <>We are talking about education, + }, + ], + }, + { + pre: { p: "د", f: "du" }, + post: { p: "په بارې کې", f: "pu baare ke" }, + e: "about / concerning", + examples: [ + { + p: <>د تعلیم په بارې کې خبرې کوو, + f: <>du taleem pu baare ke khabure kawoo, + e: <>We are talking about education, + }, + ], + }, + { + pre: { p: "پر", f: "pur" }, + post: { p: "سربېره", f: "sărbera" }, + e: "in addition to, along with", + examples: [ + { + p: <>پر وچکالۍ سربېره دلته جنګ هم شته, + f: <>pur wuchkaaluy sărbera dălta jang hum shta, + e: <>In addition to drought, there is also war here, + }, + ], + }, +]; + +export default sandwiches; + +/* + + { + pre: {p: "په", f: "pu"}, + post: {p: "سره", f: "sara"}, + e: "with (in the adverbial sense)", + examples: [ + { + p: { + before: {p:"هغه", f:"hagha"}, + mid: {p:"احطیات", f:"ihtiyaat"}, + after: {p:"کار کوي", f:"kaar kawee"}, + }, + e: { + before: "He works ", + pre: "with ", + mid: "caution ", + post: "", + after: "(ie. carefully)", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "نه", f: "na"}, + e: "from / than", + examples: [ + { + p: { + before: {p:"اروسه", f:"aroosa"}, + mid: {p:"بازار", f:"baazaar"}, + after: {p:"راځي", f:"raadzee"}, + }, + e: { + before: "Aroosa is coming ", + pre: "from", + mid: " the bazaar", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "پرته", f: "prata"}, + e: "without", + examples: [ + { + p: { + before: {p:"دا وړاندېز", f:"daa wRaandez"}, + mid: {p:"شرط", f:"shart"}, + after: {p:"کړی دی", f:"kuRey dey"}, + }, + e: { + before: "He's made that offer ", + pre: "without", + mid: " condition", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "څخه", f: "tsukha"}, + e: "from / than", + examples: [ + { + p: { + before: {p:"اروسه", f:"aroosa"}, + mid: {p:"بازار", f:"baazaar"}, + after: {p:"راځي", f:"raadzee"}, + }, + e: { + before: "Aroosa is coming ", + pre: "from", + mid: " the bazaar", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "راهیسې", f: "raaheese"}, + e: "since, for", + examples: [ + { + p: { + before: {p:"", f:""}, + mid: {p:"درېو کالو", f:"dreyo kaalo"}, + after: {p:"کار کوم", f:"kaar kawum"}, + }, + e: { + before: "I've been working ", + pre: "for ", + mid: "three years", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "په", f: "pu"}, + post: {p: "باندې", f: "baande"}, + e: "on / on top of", + examples: [ + { + p: { + before: {p:"کتاب", f:"kitaab"}, + mid: {p:"مېز", f:"mez"}, + after: {p:"دی", f:"dey"}, + }, + e: { + before: "The book is ", + pre: "on", + mid: " the table", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "د", f: "du"}, + post: {p: "لاندې", f: "laande"}, + e: "under", + examples: [ + { + p: { + before: {p:"کتاب", f:"kitaab"}, + mid: {p:"مېز", f:"mez"}, + after: {p:"دی", f:"dey"}, + }, + e: { + before: "The book is ", + pre: "under", + mid: " the table", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "تر", f: "tur"}, + post: {p: "پورې", f: "pore"}, + e: "until/up to", + examples: [ + { + p: { + before: {p:"", f:""}, + mid: {p:"اوسه", f:"oosa"}, + after: {p:"کار کوم", f:"kaar kawum"}, + }, + e: { + before: "I've been working ", + pre: "up until", + mid: " now", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "د", f: "du"}, + post: {p: "له مخې", f: "la mukhe"}, + e: "according to", + examples: [ + { + p: { + before: {p:"هغه", f:"hagha"}, + mid: {p:"یو پلان", f:"yo plaan"}, + after: {p:"کار کوي", f:"kaar kawee"}, + }, + e: { + before: "He works ", + pre: "according to", + mid: " a plan", + post: "", + after: "", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "مخکې", f: "mukhke"}, + e: "before", + examples: [ + { + p: { + before: {p:"", f:""}, + mid: {p:"جنګ", f:"jang"}, + after: {p:"خلک خوساله وو", f:"khalk khoshaala woo"}, + }, + e: { + before: "", + pre: "Before", + mid: " the war", + post: "", + after: " people were happy", + }, + }, + ] + }, + { + pre: {p: "له", f: "la"}, + post: {p: "وروسته", f: "wroosta"}, + e: "after", + examples: [ + { + p: { + before: {p:"", f:""}, + mid: {p:"جنګ", f:"jang"}, + after: {p:"کاروبار خراب شو", f:"kaarobaar kharaab sho"}, + }, + e: { + before: "", + pre: "After", + mid: " the war", + post: "", + after: " business became bad", + }, + }, + ] + }, + { + pre: {p: "د", f: "du"}, + post: {p: "نه بعد", f: "na ba'd"}, + e: "after", + examples: [ + { + p: { + before: {p:"", f:""}, + mid: {p:"ډېر وخت", f:"Der wakht"}, + after: {p:"خپل کلي ته راغلم", f:"khpul kulee ta raaghlum"}, + }, + e: { + before: "", + pre: "After", + mid: " a long time", + post: "", + after: " I've come to my own village", + }, + }, + ] + }, + { + pre: {p:"بې له", f:"be la"}, + post: {p:"ه", f:"a"}, + e: "without", + examples: [ + { + p: { + before: {p:"داسې کلمې", f:"daase kalime"}, + mid: {p:"کوم تغیر", f:"kUm tagheer"}, + after: {p:"پښتو ته راننوتې دي", f:"puxto ta raanunawute dee"}, + }, + e: { + before: "Words like this came into Pashto", + pre: "without", + mid: "any change", + post: "", + }, + }, + ], + }, +]; + +export default sandwiches; */ \ No newline at end of file diff --git a/src/lib/psmd.js b/src/lib/psmd.js index f92dfce..d25387b 100644 --- a/src/lib/psmd.js +++ b/src/lib/psmd.js @@ -3,7 +3,7 @@ import Markdown from "markdown-to-jsx"; export default function mdps(input) { if (Array.isArray(input)) { - return input.map((x) => mdps(x)); + return input.map(mdps); } return { ...input, diff --git a/yarn.lock b/yarn.lock index 2935193..87093e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1567,9 +1567,9 @@ chalk "^4.0.0" "@lingdocs/pashto-inflector@^0.9.3": - version "0.9.5" - resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-0.9.5.tgz#fc2cba942932a5870bdbbb326c9e1112560f8028" - integrity sha512-dMT8C16umXz9A6Sxo7H9QP5FI/EkazxFiMPZCymetK++o3JbGJZe1ffLl3TZphl1odpE/NzXgtKdd2paAwmEuQ== + version "0.9.6" + resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-0.9.6.tgz#c7b5fe2d0c253cdae48151f667b0248600603819" + integrity sha512-/fLCHUdRqCLO9bDDve59yQlRXNd+7gXOeD6aO+IKOBz2KhIzSk7KRctSdM1jfv2E356QU/JmVL/+o0EfdWI33Q== dependencies: classnames "^2.2.6" pbf "^3.2.1"