Ingat "The Word Editor"!? Berikut ialah skrip yang bertanggungjawab melaksanakan fungsi hujung ke hujungnya yang membenarkan menulis perubahan melalui antara muka pengguna kepada repositori bercabang pengguna.
Pecahan Fungsi
Editor Word yang diberi kuasa oleh skrip harus melaksanakan dua (2) fungsi, mengambil beberapa langkah tertentu
Tulis Perkataan Baharu - pada asasnya untuk menambah perkataan baharu pada kamus; lakukan ini dalam langkah berikut...
Dapatkan fail templat perkataan (.md) yang telah ditetapkan
Isi pemegang tempat templat dengan tajuk dan kandungan perkataan yang dikumpul untuk mencipta fail word.mdx dalam direktori perkataan yang sesuai src/pages/browse
dan lakukan perubahan kepada cawangan/ref perubahan yang telah ditetapkan pada repositori bercabang pengguna
Edit/Kemas kini Perkataan Sedia Ada - ubah suai perkataan sedia ada dalam kamus, ia melakukannya dalam langkah berikut...
Dapatkan perkataan sedia ada daripada jargons.dev pengguna (melihat dalam direktori perkataan src/pages/browse)
Menghuraikan kandungannya dan membuat suntingan yang diperlukan
dan dan lakukan perubahan kepada cawangan/ref perubahan yang telah ditetapkan pada repositori bercabang pengguna
Pecahan mengilhamkan penciptaan fungsi pembantu dan utiliti berikut.
writeNewWord - fungsi yang menerima tajuk perkataan dan kandungan antara lain, memanfaatkan contoh GitHub yang disahkan pengguna, ia melaksanakan operasi tulis iaitu menulis fail baharu (word.mdx) pada percabangan jargons.dev pada akaun pengguna bagi pihak mereka melalui "PUT /repos/{owner}/{repo}/contents/{path}" titik akhir.
getExistingWord - fungsi yang hanya mengambil semula kandungan fail perkataan sedia ada pada repositori bercabang pengguna, dengan tujuan untuk memanfaatkannya untuk diedit. Ia melakukan ini dengan mengambil perkataan sebagai hujah dan menggabungkannya dalam param laluan (contoh src/pages/browse/${normalizeAsUrl(word)}.mdx) permintaan yang dibuatnya ke titik akhir "GET /repos/{owner} /{repo}/contents/{path}"; Adalah penting untuk menyatakan bahawa saya terpaksa membuat beberapa pelarasan pada data yang dikembalikan daripada pembantu ini atas sebab penggunaan, pelarasan adalah seperti berikut
Menambahkan sifat tajuk: objek respons.data yang datang daripada pertanyaan kepada titik akhir "GET /repos/{owner}/{repo}/contents/{path}" tidak mempunyai sifat tajuk (ini ialah perkataan itu sendiri);
Menambahkan sifat content_decoded: sifat response.data.content memegang kandungan utama perkataan yang diambil, TETAPI ia datang dalam format "base64"; jadi saya fikir adalah lebih baik jika fungsi memanfaatkannya dalam format sedia penggunaan yang boleh digunakan serta-merta tanpa perlu menukar semasa penggunaan. Ini saya lakukan dengan kod di bawah...
updateExistingWord - dengan nama awal editExistingWord dan ditukar kepada nama semasa dalam jargonsdev/jargons.dev#34, fungsi ini menjalankan operasi yang serupa dengan writeNewWord tetapi ia terlebih menulis kandungan perkataan sedia ada dalam fail tertentu dengan menggantikan fail dengan fail lain dengan kandungan yang dikemas kini. Ini juga dilakukan melalui akaun pengguna bagi pihak mereka melalui titik akhir "PUT /repos/{owner}/{repo}/contents/{path}".
writeFileContent - pembantu ini seperti yang tersirat dalam namanya melakukan satu perkara — ia menulis kandungan fail untuk perkataan yang diserahkan dalam permintaan yang dibuat oleh kedua-dua writeNewWord dan updateExistingWord ke API GitHub, ia melakukan ini dengan mengambil tajuk perkataan dan kandungan (iaitu definisi perkataan) sebagai pembolehubah dan menjana kandungan daripada templat yang memanfaatkannya menggantikan kandungan pemegang tempat dalam ia.
PR itu
feat: melaksanakan skrip `editor perkataan`
#18
babblebey
disiarkan pada
Permintaan Tarik ini melaksanakan skrip editor perkataan; fungsi utama skrip ini adalah untuk membenarkan menambah perkataan baharu, mendapatkan semula dan mengemas kini perkataan sedia ada yang merupakan fail .mdx individu yang berada dalam direktori src/pages/browse projek. Skrip ini memanfaatkan kami semua fungsi pembantu yang diperlukan untuk melaksanakan operasi ini.
Perubahan Dibuat
Melaksanakan fungsi writeNewWord - fungsi ini mengambil 3 params iaitu userOctokit, forkedRepoDetails, dan perkataan; ia memanfaatkan contoh userOctokit untuk melaksanakan operasi tulis iaitu menulis fail baharu (newWord.mdx) pada percabangan projek kami pada akaun pengguna bagi pihak pengguna melalui "PUT /repos/{owner}/{repo}/ kandungan/{path}" titik akhir
Melaksanakan fungsi getExistingWord - fungsi ini membantu mendapatkan semula data perkataan sedia ada dalam garpu projek kami pada akaun pengguna dengan memanggil titik akhir "GET /repos/{owner}/{repo}/contents/{path}"; ia mengembalikan objek yang membawa sifat berikut yang paling kami minati...
tajuk - tajuk perkataan sedia ada - infak ini ialah data tersuai yang dilampirkan pada respons.data daripada panggilan yang dibuat ke titik akhir
laluan - laluan ke fail perkataan sedia ada
sha - SHA unik perkataan sedia ada
Melaksanakan fungsi editExistingWord - fungsi ini mengambil 3 params iaitu userOctokit, forkedRepoDetails, dan perkataan (memegang sifat: laluan, sha, tajuk dan kandungan); ia memanfaatkan contoh penggunaOctokit untuk melaksanakan operasi edit iaitu mengemas kini fail sedia ada pada percabangan projek kami pada akaun pengguna bagi pihak pengguna melalui "PUT /repos/{owner}/{repo}/contents/{path} yang sama " titik akhir
Fungsi pembantu writeFileContent yang dilaksanakan - fungsi ini membantu menulis kandungan untuk fail perkataan kamus kami yang menjananya daripada pemalar tambahan lain dalam src/lib/template/word.md.js
Siaran Skrin/Tangkapan Skrin
terlalu malas untuk merakam siaran skrin untuk yang ini ?, tetapi percayalah ? berkesan ??
Lihat di GitHub
Atas ialah kandungan terperinci Membina jargons.dev [# Skrip Editor Word. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn