diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 701a4f5..cedaed7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,13 +14,10 @@ jobs: env: LINGDOCS_NPM_TOKEN: ${{ secrets.LINGDOCS_NPM_TOKEN }} LINGDOCS_DICTIONARY_URL: ${{ secrets.LINGDOCS_DICTIONARY_URL }} - strategy: - matrix: - node-version: [12.x, 14.x, 15.x] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node-version }} + node-version: 12 - run: yarn install - run: yarn build diff --git a/package.json b/package.json index e8407a9..9b5b2fb 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,14 @@ "private": true, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.2", - "@lingdocs/pashto-inflector": "^0.2.5", + "@lingdocs/pashto-inflector": "^0.3.3", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", + "@types/jest": "^26.0.21", + "@types/node": "^14.14.35", + "@types/react": "^17.0.3", + "@types/react-dom": "^17.0.2", "bootstrap": "4.5.3", "classnames": "^2.2.6", "react": "^17.0.1", @@ -17,7 +21,8 @@ "react-router-hash-link": "^2.3.1", "react-scripts": "3.4.3", "react-scrollspy": "^3.4.3", - "react-smooth-collapse": "^2.1.0" + "react-smooth-collapse": "^2.1.0", + "typescript": "^4.2.3" }, "scripts": { "start": "react-scripts start", diff --git a/src/components/Chart.tsx b/src/components/Chart.tsx new file mode 100644 index 0000000..aef2fc8 --- /dev/null +++ b/src/components/Chart.tsx @@ -0,0 +1,36 @@ +import React from "react"; +import { + Types as T, + Examples, +} from "@lingdocs/pashto-inflector"; + + +function Chart({ titleRow, children, opts }: { + titleRow: string[] | undefined, + children: T.PsString[][], + opts: T.TextOptions, +}) { + console.log(children) + return + + {titleRow && + {titleRow.map((title) => ( + + ))} + } + + + {children.map((row) => ( + + {row.map((col) => ( + + ))} + + ))} + +
{title}
+ {col} +
; +} + +export default Chart; \ No newline at end of file diff --git a/src/content/pronouns/pronouns-mini.mdx b/src/content/pronouns/pronouns-mini.mdx index acf14fe..774be24 100644 --- a/src/content/pronouns/pronouns-mini.mdx +++ b/src/content/pronouns/pronouns-mini.mdx @@ -1,5 +1,5 @@ --- -title: Mini Pronouns +title: Mini Pronouns 👶 --- - import { defaultTextOptions, grammarUnits, VerbTable, + Examples, } from "@lingdocs/pashto-inflector"; +import bigAndLittleBrother from "../../images/big-and-little-brother.jpg"; +import Chart from "../../components/Chart"; -These are **enclitic prounouns** that hang on to the back of words. They can't be used at the beginning of a sentence. +Mini pronouns are **enclitic prounouns** that hang on to the back of words. They can't be used at the beginning of a sentence. You can think of them as little babies 👶 that can't stand on their own. **They can't be used to start a sentence.** They always need to lean up against the back of another word. -The can only be used as: + -1. The object of a non-past tense transitive verb -2. The subject/agent of a past tense transitive verb +Mini pronouns can only be used as one of three things: + +1. The object of a present/future verb +2. The subject of a past tense transitive verb 3. A possesive pronoun \ No newline at end of file +/> + +## Examples + +Below are some examples of how mini pronouns can be used in the place of regular pronouns. The mini pronouns are used when you don't need a strong emphasis on the pronoun. + +### 1. As the object of a present/future verb + +{[ + [ + { p: "زه تا وینم", f: "zu taa weenum", e: "I see you"}, + { p: "زه دې وینم", f: "zu de weenum", e: "I see you"}, + ], + [ + { p: "هلک ما وهي", f: "haluk maa wahee", e: "The boy's hitting me" }, + { p: "هلک مې وهي", f: "haluk me wahee", e: "The boy's hitting me" }, + ], + [ + { p: "دوي ولې مونږ وهی؟", f: "dwee wăle moonG wahée?", e: "Why are they hitting us?" }, + { p: "دوي ولې مو وهی؟", f: "dwee wăle mU wahée?", e: "Why are they hitting us?" }, + ], +]} + +### 2. As the subject of a past tense transitive verb + +{[ + [ + { p: "ما ډوډۍ وخوړله", f: "maa DoDuy óokhoRula", e: "I ate food"}, + { p: "ډوډۍ مې وخوړله", f: "DoDuy me óokhoRula", e: "I ate food"}, + ], + [ + { p: "هغه واده کړی دی", f: "haghú waadu kúRey dey", e: "He's gotten married" }, + { p: "واده یې کړی دی", f: "waadu ye kúRey dey", e: "He's gotten married" }, + ], + [ + { p: "ما ولیدې", f: "maa óoleede", e: "I saw you" }, + { p: "ومې لیدې", f: "óo-me-leede", e: "I saw you" }, + ], +]} + +### 3. As a possesive pronoun + +{[ + [ + { p: "د هغې پلار مریض دی", f: "du haghe plaar mareez dey", e: "Her father is ill" }, + { p: "پلار یې مریض دی", f: "plaar ye mareez dey", e: "Her father is ill" }, + ], + [ + { p: "ستاسو کار سخت دی", f: "staaso kaar sakht dey", e: "Your work is difficult" }, + { p: "کار مو سخت دی", f: "kaar mU sakht dey", e: "Your work is difficult" }, + ], + [ + { p: "زمونږ کور په کابل کې دی", f: "zmoonG kor pu kaabul ke dey", e: "Our house is in Kabul" }, + { p: "کور مو په کابل کې دی", f: "kor mU pu kaabul ke dey", e: "Our house is in Kabul" }, + ], +]} + +## The order of mini-pronouns + +In some sentences we might have more than one mini-prounoun. In these cases, it can be confusing for learners to know which pronoun has what role. For example, have a look at these sentences: + +{[ + { p: "پلار مې یې وهي", f: "plaar me ye wahee" }, +]} + +Does this mean "My dad is hitting him" or "His dad is hitting me" ? + +
+ Answer: + It means, "." +
+ +{[ + { p: "کتاب مې یې ولیده", f: "kitaab me ye óoleedu" }, +]} + +Does this mean "He saw my book" or "I saw his book" ? + +
+ Answer: + It means, "I saw his book." +
+ +{[ + { p: "غږ مې دې واورېده", f: "ghuG me de wáawredu" }, +]} + +Does this mean "I heard your voice" or "You heard my voice" ? + +
+ Answer: + It means, "I heard your voice." +
\ No newline at end of file diff --git a/src/images/big-and-little-brother.jpg b/src/images/big-and-little-brother.jpg new file mode 100644 index 0000000..36c4257 Binary files /dev/null and b/src/images/big-and-little-brother.jpg differ diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..f2850b7 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react" + }, + "include": [ + "src" + ] +} diff --git a/yarn.lock b/yarn.lock index 51b41bb..ec9742a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1493,10 +1493,21 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" -"@lingdocs/pashto-inflector@^0.2.5": - version "0.2.6" - resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-0.2.6.tgz#556fd1f1d3e6b03512a6b4f28ced92d52f2bdf97" - integrity sha512-X3DQSzyicSm3xwk9Kztx6jKrl2Zad9cr2ehW2Ogfq5Nb04jmt/VUDleaxidwZOzGnLoBVgT7O/c72GbYfwL0aw== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@lingdocs/pashto-inflector@^0.3.3": + version "0.3.3" + resolved "https://npm.lingdocs.com/@lingdocs%2fpashto-inflector/-/pashto-inflector-0.3.3.tgz#4121f5fb7aca110ec55e42656175abd35bde1956" + integrity sha512-63PVVepthTsn4LuT753KL5JYCf8OgZ93jwdfdLyvzz2qDiwGpsh7lnRYUQX+I8QgMQZYlDv3OurTrvLGp9k5Qw== dependencies: classnames "^2.2.6" pbf "^3.2.1" @@ -1841,6 +1852,21 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.21": + version "26.0.21" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.21.tgz#3a73c2731e7e4f0fbaea56ce7ff8c79cf812bd24" + integrity sha512-ab9TyM/69yg7eew9eOwKMUmvIZAKEGZYlq/dhe5/0IMUd/QLJv5ldRMdddSn+u22N13FP3s5jYyktxuBwY0kDA== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + "@types/json-schema@^7.0.3": version "7.0.4" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" @@ -1868,6 +1894,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349" integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg== +"@types/node@^14.14.35": + version "14.14.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" + integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -1895,6 +1926,13 @@ dependencies: "@types/react" "*" +"@types/react-dom@^17.0.2": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.2.tgz#35654cf6c49ae162d5bc90843d5437dc38008d43" + integrity sha512-Icd9KEgdnFfJs39KyRyr0jQ7EKhq8U6CcHRMGAS45fp5qgUvxL3ujUCfWFttUK2UErqZNj97t9gsVPNAqcwoCg== + dependencies: + "@types/react" "*" + "@types/react-transition-group@^4.4.1": version "4.4.1" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.1.tgz#e1a3cb278df7f47f17b5082b1b3da17170bd44b1" @@ -1910,7 +1948,7 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@>=16.9.11", "@types/react@>=16.9.35": +"@types/react@>=16.9.11", "@types/react@>=16.9.35", "@types/react@^17.0.3": version "17.0.3" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz#ba6e215368501ac3826951eef2904574c262cc79" integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg== @@ -3199,6 +3237,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + change-case@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" @@ -4134,6 +4180,11 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -6491,6 +6542,16 @@ jest-diff@^24.0.0, jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -6549,6 +6610,11 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + jest-haste-map@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" @@ -9257,6 +9323,16 @@ pretty-format@^25.1.0, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + prismjs@^1.15.0: version "1.23.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" @@ -9563,6 +9639,11 @@ react-is@^16.12.0, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-i resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" @@ -11416,6 +11497,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== + typographic-apostrophes-for-possessive-plurals@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/typographic-apostrophes-for-possessive-plurals/-/typographic-apostrophes-for-possessive-plurals-1.0.5.tgz#ca31b6f3d27ba800d6902d62fba29b548f639b99"