Ndandisoloko ndikholelwa ukuba umdwebi wenkqubo owonqenayo ngumcwangcisi olungileyo. Ngoba? Kuba cela umntu osebenza nzima ukuba enze into, uya kuya ayenze. Kwaye umdwelisi onobuqili uya kuchitha amaxesha angama-2-3 ngaphezulu, kodwa uya kubhala iskripthi esiya kumenzela sona. Kungathatha ixesha elide ngokungekho ngqiqweni ukwenza oku okokuqala, kodwa ngemisebenzi ephindaphindiweyo le ndlela iya kuhlawula ngokukhawuleza. Ndizibona ndingumcwangcisi owonqenayo. Yayiyintshayelelo leyo, ngoku makhe sehle siye kwishishini.
Ibali lokuqala
Kwiminyaka embalwa edlulileyo ndandizibuza ukuba ndingasiphucula njani isiNgesi sam. Ayikho into eyathi qatha engqondweni ngaphezu kokufunda uncwadi. Ndathenga i-electronic reader, ndakhuphela iincwadi ndaza ndaqalisa ukufunda. Ngoxa ndifunda, ndandimana ndidibana namagama endingawaqhelanga. Ndaziguqulela ngoko nangoko ndisebenzisa izichazi-magama ezakhelwe kumfundi, kodwa ndaphawula into enye: amagama ayengafuni ukukhunjulwa. Xa ndidibana neli gama kwakhona kumaphepha ambalwa kamva, nge-90% enokwenzeka ndaphinda ndafuna ukuguqulelwa, njalo njalo rhoqo. Isigqibo yayikukuba akwanelanga ukuguqulela amagama angaqhelekanga ngelixa ufunda, kufuneka wenze enye into. Eyona ndlela ilungileyo iya kuba kukuyingenisa kubomi bemihla ngemihla kwaye uqalise ukuyisebenzisa, kodwa andihlali kwilizwe elithetha isiNgesi kwaye oku akunakwenzeka. Emva koko ndakhumbula ukuba ndakha ndafunda malunga .
Yintoni kwaye ityiwa ngantoni? Ngamafutshane, kukho oku , ukucaphula ngakumbi kwiWikipedia:
Sele ilibele kwiyure yokuqala ukuya kuthi ga kwi-60% yalo lonke ulwazi olufunyenweyo; kwiiyure ezili-10 emva kokunkqaya, i-35% yezinto ezifundiweyo zihlala zisenkumbulo. Emva koko inkqubo yokulibala iqhubela phambili kancinci, kwaye emva kweentsuku ezi-6 malunga ne-20% yenani elipheleleyo lama-syllables afundiweyo ahlala ememori, kwaye isixa esifanayo sihlala kwimemori emva kwenyanga.
Kwaye isiphelo sisuka apha
Izigqibo ezinokuthi zenziwe ngokusekelwe kule ngqungquthela kukuba ukukhumbula okusebenzayo kuyimfuneko ukuphinda izinto ezinkqayiweyo.
Ngoko size necebo .
yinkqubo yomthombo esimahla kwaye evuleleke ngokupheleleyo esebenzisa umbono wokuphindaphinda indawo. Ngamafutshane, amakhadi oonotsheluza ekhompyuter anombuzo kwelinye icala kunye nempendulo kwelinye. Kuba unokwenza imibuzo / iimpendulo usebenzisa rhoqo html/css/javascript, ngoko sinokutsho ukuba inamathuba angenasiphelo ngokwenene. Ukongeza, ukwandiswa ngokukhethekileyo , yaye enye yazo iya kuba luncedo kakhulu kuthi kwixesha elizayo.
Ukwenza amakhadi ngesandla kude, kuyadinisa, kwaye kunethuba eliphezulu, emva kwexesha uya kulibala ngalo msebenzi, kwaye ke ngaxa lithile ndazibuza umbuzo, ngaba kunokwenzeka ukwenza lo msebenzi ngokuzenzekelayo. Impendulo nguewe, unako. Ndaye ndayenza. Ndiza kuthi ngoko nangoko, kungaphezulu , kodwa enokusetyenziswa. Ukuba kukho umdla ovela kubasebenzisi kunye nabanye abaphuhlisi ababandakanyekayo, ngoko inokuziswa kwimveliso egqityiweyo enokuthi isetyenziswe nabasebenzisi abangafundanga. Ngoku, ukusebenzisa usetyenziso lwam kufuna ulwazi oluthile lwenkqubo.
Ndafunda iincwadi ndisebenzisa inkqubo . Iyakwazi ukudibanisa izichazi-magama zangaphandle, kwaye xa uguqulela igama, igcina igama olibizele ukuguqulelwa kwifayile yombhalo. Ekuphela kwento eseleyo kukuguqulela la magama kunye nokwenza amakhadi e-ANKI.
Ekuqaleni ndazama ukusebenzisela ukuguqulela , njl. Kodwa izinto azizange zisebenze ngeenkonzo zasimahla. Ndiphelelwe umda wamahhala ngexesha lenkqubo yophuhliso, ukongeza, ngokwemiqathango yelayisenisi, andinalo ilungelo lokufihla amagama. Ngaxa lithile ndiye ndaqonda ukuba kufuneka ndiwaguqulele ngokwam amagama. Ngenxa yoko, kwabhalwa imodyuli apho unokudibanisa khona kwaye ngubani owaziyo ukuba ziguqulelwa njani HTML ifomathi.
Le yindlela ungeniso lwesichazi-magama olujongeka ngayo kwi-*.html, ukhetho lwam xa kuthelekiswa nokhetho

Phambi kokuba ndikhangele igama kwizichazi-magama eziqhagamshelweyo, ndizisa kulo usebenzisa ithala leencwadi . Enyanisweni, ngenxa yeli thala leencwadi, ndaqala ukubhala kwiJava kwaye isicwangciso sokuqala yayikukubhala yonke into kwiJava, kodwa kwinkqubo ndafumana ilayibrari. apho ungenza ngokulula ikhowudi yeJava ukusuka kwi-nodejs kwaye enye ikhowudi ibhalwe kwiJavaScript. Ukuba bendifumene eli thala leencwadi ngaphambili, akukho nomgca omnye onokuthi ubhalwe kwiJava. Enye iprojekthi yecala eyazalwa kwinkqubo yindalo efunyenwe kumsebenzi womnatha kwifomati *.chm, waguqulwa waza wenziwa waba kwimo yobuthixo. Ukuba umbhali wefayile yoqobo ungumsebenzisi ngesiteketiso yozhic Xa ebona eli nqaku, ndimbulela kakhulu ngomsebenzi awenzileyo; ngaphandle kwamaxwebhu akhe, ngokuqinisekileyo ngendingazange ndiphumelele.
Ke, ndinegama kwisiNgesi, ungeniso lwalo lwesichazi-magama kwifomathi *.html, konke okuseleyo kukudibanisa yonke into, ukudala amanqaku e-ANKI ukusuka kuluhlu lwamagama kwaye uwafake kwi-database ye-ANKI. Ukwenzela le njongo le projekthi ilandelayo yenziwa . Ingathatha uluhlu lwamagama njengegalelo, ukuguqulela, ukwenza i-ANKI *.html amanqaku kwaye uwarekhode kwi-database ye-ANKI. Ekupheleni kwenqaku kukho imiyalelo malunga nendlela yokuyisebenzisa. Okwangoku, ibali lesibini kulapho uphinda-phindo olubekwe kwindawo lunokuba luncedo.
Ibali lesibini.
Bonke abantu abafuna i-specialty engaphezulu / engaphantsi, kuquka nabadwelisi benkqubo, bajongene nesidingo sokulungiselela udliwano-ndlebe. Uninzi lweengcamango ezibuzwayo kudliwano-ndlebe ongazisebenzisiyo kwimisebenzi yemihla ngemihla kwaye ziyalityalwa. Xa ndilungiselela udliwano-ndlebe, ndityhila amanqaku, incwadi, incwadi yereferensi, bendijongene nenyaniso yokuba kuthatha ixesha elininzi nengqalelo ukuhluza ulwazi osele usazi kuba alusoloko lubonakala kwaye kufuneka yifunde ngononophelo ukuze uqonde ukuba yintoni na. Xa ufika kwisihloko esifuna ngokwenene ukuphindaphinda, ngokuqhelekileyo kwenzeka ukuba sele udiniwe kwaye umgangatho wokulungiselela kwakho uhlupheka. Ngaxa lithile ndiye ndacinga, kutheni ungasebenzisi amakhadi e-ANKI kule nto? Ngokomzekelo, xa uthatha amanqaku ngesihloko, yenza ngokukhawuleza inqaku ngendlela yombuzo kunye nempendulo, kwaye xa uyiphinda, uya kukwazi ngokukhawuleza ukuba uyayazi impendulo yalo mbuzo okanye hayi.
Ingxaki kuphela eyavelayo yayikukuba ukuchwetheza imibuzo yayinde kakhulu kwaye iyindinisa. Ukwenza inkqubo ibe lula, iprojekthi ndongeze ukuguqula ukusebenza okubhaliweyo kumakhadi e-ANKI. Konke okudingayo kukubhala ifayile enye enkulu apho imibuzo kunye neempendulo ziya kumakishwa ngokulandelelana kwangaphambi koonobumba, apho umhlalutyi uya kuqonda ukuba uphi umbuzo kwaye impendulo iphi.
Nje ukuba le fayile yenziwe, usebenzisa i-data2anki kwaye yenza amakhadi e-ANKI. Ifayile yoqobo kulula ukuyihlela kunye nokwabelana, udinga nje ukucima ikhadi elihambelanayo (a) kwaye uqhube inkqubo kwakhona, kwaye inguqulelo entsha iya kwenziwa.
Ukufakela kunye nokusetyenziswa
Ukufakela i-ANKI + AnkiConnect
- Khuphela i-ANKI apha:
- Faka iplagi ye-AnkiConnect:
isicwangciso
- Khuphela ukusuka kwindawo yokugcina i-github
git clone https://github.com/anatoly314/data2anki - Faka ukuxhomekeka
cd data2anki && npm install - Khuphela ukuxhomekeka kwejava
- Ukukhupha izinto jar-dependencies.zip kwaye ubeke imixholo yayo data2anki/java/jars
- Khuphela ukusuka kwindawo yokugcina i-github
Sebenzisa ukuguqulela amagama:
Kwifayile idatha2anki/config.json:
kwisitshixo imo ngenisa ixabiso dsl2anki
kwisitshixo iimodyuli.dsl.anki.deckName и iimodyuli.dsl.anki.modelName bhala ngokufanelekileyo и (kufuneka sele senziwe ngaphambi kokudala amakhadi). Okwangoku kuphela uhlobo lwemodeli oluxhaswayo esiSiseko:
Inamabala angaphambili nasemva, kwaye iya kudala ikhadi elinye. Umbhalo owufakayo Ngaphambili uya kuvela ngaphambili ekhadini, kwaye umbhalo owufaka ngasemva uya kuvela ngasemva ekhadini.
liphi igama lokuqala? Ibala elingaphambili, kwaye inguqulelo iya kuba kwi Indawo yangasemva.
Akukho ngxaki yokongeza inkxaso Ikhadi elisisiseko (kunye nekhadi elibuyiselwe umva), apho ikhadi le-reverse liya kudalwa igama kunye nokuguqulelwa, apho kusekelwe kwinguqulelo kuya kufuneka ukhumbule igama lokuqala. Konke okudingayo lixesha kunye nomnqweno.
kwisitshixo iimodyuli.dsl.dictionariesPath bhalisa uluhlu oluqhagamshelwe *.dsl izichazi-magama. Isichazi-magama ngasinye esiqhagamshelwe nguvimba weefayili apho iifayile zesichazi-magama zibekwe ngokuhambelana nefomathi:
kwisitshixo iimodyuli.dsl.wordToTranslatePath ngenisa umendo kuluhlu lwamagama ofuna ukuwaguqulela.
- Qalisa ngesicelo se-ANKI esisebenzayo
node data2ankiindex.js - INZUZO!!!
Ukusetyenziswa ekudaleni amakhadi ukusuka kuphawulo
Kwifayile idatha2anki/config.json:
- kwisitshixo imo ngenisa ixabiso markdown2anki
- kwisitshixo iimodyuli.markdown.anki.deckName и iimodyuli.dsl.anki.modelName bhala ngokufanelekileyo и (kufuneka sele senziwe ngaphambi kokudala amakhadi). Kuba markdown2anki imowudi yohlobo kuphela oluxhaswayo esiSiseko.
kwisitshixo iimodyuli.markdown.selectors.startQuestionSelectors и iimodyuli.markdown.selectors.startAnswerSelectors ubhala abakhethi ophawula ngabo isiqalo sombuzo kunye nempendulo, ngokulandelelanayo. Umgca onomkhethi ngokwawo awuzukwahlulwa kwaye awuyi kuphelela ekhadini; umhlaseli uya kuqalisa ukusebenza kumgca olandelayo.
Umzekelo, eli khadi lombuzo/lempendulo:

Iyakujongeka ngolu hlobo kuphawulo:
#UMBUZO# ## Umbuzo 5. Bhala umsebenzi we-mul oza kusebenza kakuhle xa ucetywa ngesintaksi silandelayo. ``` javascript console.log(mul(2)(3)(4)); // imveliso : 24 console.log (mul (4) (3) (4)); // imveliso : 48 ``` #IMPENDULO // imbuyekezo yomsebenzi ongachazwanga x * y * z; }; }; } ``` Apha `mul` umsebenzi wamkela impikiswano yokuqala kwaye ibuyisela umsebenzi ongachazwanga igama othatha iparameter yesibini kwaye ibuyisele umsebenzi ongachazwanga igama othatha iparameter yesithathu kwaye ibuyisela uphinda-phindo lweempikiswano ezigqithiswa ngokulandelelana Kwi Javascript umsebenzi ochaziweyo. ngaphakathi inofikelelo kuguquko lomsebenzi wangaphandle kwaye umsebenzi yinto yodidi lokuqala ukuze ibuyiswe ngumsebenzi ngokunjalo kwaye igqithiswe njengengxoxo komnye umsebenzi. - Umsebenzi ngumzekelo wohlobo lweNjongo - Umsebenzi unokuba neepropati kwaye unekhonkco emva kwindlela yomakhi wayo - Umsebenzi unokugcinwa njengento eguquguqukayo - Umsebenzi unokugqithiswa njengeparameter komnye umsebenzi - Umsebenzi ungagcinwa ubuyile komnye umsebenzi
Umzekelo othathwe apha:
Kukho kwakhona ifayile enemizekelo kwifolda yeprojekthi
examples/markdown2anki-example.md- kwisitshixo iimodyuli.markdown.pathToFile
bhala phantsi umendo wefayile apho *.md umbuzo/ifayile yempendulo
- Qalisa ngesicelo se-ANKI esisebenzayo
node data2ankiindex.js - INZUZO!!!
Nantsi indlela ekhangeleka ngayo kwifowuni ephathwayo:

Isiphumo
Amakhadi afunyenwe kwinguqulelo yedesktop ye-ANKI adityaniswa ngokulula nelifu le-ANKI (simahla ukuya kuthi ga kwi-100 MB), uze emva koko ungawasebenzisa naphi na. Kukho abathengi be Android и iPhone, ingasetyenziswa nakwisikhangeli-ziza. Ngoko ke, ukuba unexesha lokubulala, endaweni yokuskrola uFacebook okanye ujonge iikati kwi-Instagram, ungafunda into entsha.
Ipilo
Njengoko benditshilo, oku kungaphezulu kwe-POC esebenzayo onokuyisebenzisa kunemveliso egqityiweyo. Malunga ne-30% yomgangatho wokwahlulahlula we-DSL awuphunyezwanga, kwaye ke ngoko, , kukho nombono wokuphinda uwubhale kuwo JavaScript, kuba ndifuna "ukuhambelana", kwaye ngaphandle koko, ngoku ayibhalwanga ngokufanelekileyo. Ngoku i-parser yakha umthi, kodwa ngokombono wam oku akuyomfuneko kwaye akufuneki ukuba nzima ikhowudi. IN markdown2anki Imowudi, imifanekiso ayicalulwanga. Ndiza kuzama ukusika kancinci kancinci, kodwa ekubeni ndizibhalela, ndiza kuqala ndisombulule iingxaki endizozinyathela ngokwam, kodwa ukuba kukho umntu ofuna ukunceda, wamkelekile. Ukuba unemibuzo malunga neprogram, ndiya kuvuya ukunceda ngemiba evulekileyo kwiiprojekthi ezifanelekileyo. Bhala ezinye izigxeko kunye neengcebiso apha. Ndiyathemba ukuba le projekthi iya kuba luncedo kumntu.
PS Ukuba uqaphela naziphi na iimpazamo (kwaye, ngelishwa, kukho ezinye), bhala kum kumyalezo womntu, ndiya kulungisa yonke into.
umthombo: www.habr.com

