forked from rioastamal/quran-json
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit c5ba859
Showing
116 changed files
with
14,603 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
## Tentang | ||
|
||
Alhamdulillah puji syukur ke hadirat Allah SWT. Sholawat serta salam semoga selalu tercurahkan kepada Nabi Muhammad SAW. | ||
|
||
Quran-json adalah project untuk menyajikan kitab suci Al-Quran dalam bentuk file json surah per surah. Dimana satu surah diwakili oleh satu buah file json. Sebagai contoh surah pertama (Al-Fatihah) lokasi penyimpanannya adalah `surah/1.json`. Total surah (file json) yang ada adalah 114 file. | ||
|
||
Al-Quran adalah kitab suci sempurna yang diturunkan Allah SWT. segala bentuk kesalahan yang ada pada project ini adalah pasti karena kebodohan dan kekhilafan saya sendiri. Untuk itu mohon dengan hormat jika anda menemukan ada suatu kesalahan untuk menghubungi saya melalui email. | ||
|
||
Project Al-Quran lain: | ||
|
||
- [quran-text](https://github.com/rioastamal/quran-text) | ||
- [quran-single-file](https://github.com/rioastamal/quran-single-file) | ||
|
||
## Latar Belakang | ||
|
||
Latar belakang kenapa saya membuat project ini adalah karena pada handphone saya yaitu Blackberry Passport (SE) tidak ada aplikasi atau mobile website Quran yang dapat berjalan dengan baik di perangkat saya tersebut. | ||
|
||
Kebanyakan mobile site tersebut menggunakan terlalu banyak javascript sehingga lambat atau kadang tampilannya tidak sesuai dengan yang saya inginkan. Sehingga saya berinisiatif untuk membuat situs mobile Quran static yang ringan dan juga mudah digunakan. Tentunya sesuai selera saya karena untuk saya gunakan pribadi. | ||
|
||
Dalam proses pembuatan itulah saya melakukan pengumpulan ayat-ayat dalam bentuk file text agar dapat diproses oleh generator. Generator tersebut akan menghasilkan sebuah situs mobile static Quran. | ||
|
||
## Sumber | ||
|
||
Sumber utama ayat-ayat Al-Quran dan terjemahannya dalam project ini didapat dari situs dan aplikasi resmi dari Kementrian Agama Republik Indonesia yang dapat diakses di https://quran.kemenag.go.id. | ||
|
||
## Generator | ||
|
||
File yang ada di folder surah/ dihasilkan oleh Bash script `generator.sh`. Script ini memerlukan file quran dan terjemahan yang ada pada project [quran-single-file](https://github.com/rioastamal/quran-single-file). | ||
|
||
Cara menjalankan script. | ||
|
||
``` | ||
$ bash generator.sh /path/to/quran.txt /path/to/quran.id.txt | ||
Generating surah 1 - Al-Fatihah - الفاتحة ...done. | ||
Generating surah 2 - Al-Baqarah - البقرة ...done. | ||
Generating surah 3 - Ali 'Imran - اٰل عمران ...done. | ||
Generating surah 4 - An-Nisa' - النساۤء ...done. | ||
Generating surah 5 - Al-Ma'idah - الماۤئدة ...done. | ||
... | ||
dst | ||
... | ||
``` | ||
|
||
## Penulis | ||
|
||
Project ini dibuat oleh Rio Astamal \<[email protected]\>. | ||
|
||
## Kontribusi | ||
|
||
Jika anda ingin melakukan kontribusi pada project ini silahkan lakukan Pull Request [PR] melalui Github. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
#!/bin/bash | ||
# | ||
# Generate quran in JSON file each surah represent in one json file. | ||
# As an example surah number 1 will be saved as: | ||
# | ||
# ``` | ||
# surah/1.json | ||
# ``` | ||
# | ||
# Usage: | ||
# ------ | ||
# ./generator /path/to/quran.txt /path/to/quran.id.txt | ||
# | ||
# @author Rio Astamal <[email protected]> | ||
# @require quran-single-file <https://github.com/rioastamal/quran-single-file> | ||
|
||
quran_file=$1 | ||
quran_trans_file=$2 | ||
total_ayah=(7 286 200 176 120 165 206 75 129 109 123 111 43 52 \ | ||
99 128 111 110 98 135 112 78 118 64 77 227 93 88 69 60 34 \ | ||
30 73 54 45 83 182 88 75 85 54 53 89 59 37 35 38 29 18 45 \ | ||
60 49 62 55 78 96 29 22 24 13 14 11 11 18 12 12 30 52 52 \ | ||
44 28 28 20 56 40 31 50 40 46 42 29 19 36 25 22 17 19 26 \ | ||
30 20 15 21 11 8 8 19 5 8 8 11 11 8 3 9 5 4 7 3 6 3 5 4 5 6) | ||
|
||
surah_name_latin=("Al-Fatihah" "Al-Baqarah" "Ali 'Imran" "An-Nisa'" "Al-Ma'idah" \ | ||
"Al-An'am" "Al-A'raf" "Al-Anfal" "At-Taubah" "Yunus" "Hud" "Yusuf" "Ar-Ra'd" \ | ||
"Ibrahim" "Al-Hijr" "An-Nahl" "Al-Isra'" "Al-Kahf" "Maryam" "Taha" "Al-Anbiya'" \ | ||
"Al-Hajj" "Al-Mu'minun" "An-Nur" "Al-Furqan" "Asy-Syu'ara'" "An-Naml" "Al-Qasas" \ | ||
"Al-'Ankabut" "Ar-Rum" "Luqman" "As-Sajdah" "Al-Ahzab" "Saba'" "Fatir" "Yasin" \ | ||
"As-Saffat" "Sad" "Az-Zumar" "Gafir" "Fussilat" "Asy-Syura" "Az-Zukhruf" \ | ||
"Ad-Dukhan" "Al-Jasiyah" "Al-Ahqaf" "Muhammad" "Al-Fath" "Al-Hujurat" "Qaf" \ | ||
"Az-Zariyat" "At-Tur" "An-Najm" "Al-Qamar" "Ar-Rahman" "Al-Waqi'ah" "Al-Hadid" \ | ||
"Al-Mujadalah" "Al-Hasyr" "Al-Mumtahanah" "As-Saff" "Al-Jumu'ah" "Al-Munafiqun" \ | ||
"At-Tagabun" "At-Talaq" "At-Tahrim" "Al-Mulk" "Al-Qalam" "Al-Haqqah" "Al-Ma'arij" \ | ||
"Nuh" "Al-Jinn" "Al-Muzzammil" "Al-Muddassir" "Al-Qiyamah" "Al-Insan" "Al-Mursalat" \ | ||
"An-Naba'" "An-Nazi'at" "'Abasa" "At-Takwir" "Al-Infitar" "Al-Mutaffifin" \ | ||
"Al-Insyiqaq" "Al-Buruj" "At-Tariq" "Al-A'la" "Al-Gasyiyah" "Al-Fajr" "Al-Balad" \ | ||
"Asy-Syams" "Al-Lail" "Ad-Duha" "Asy-Syarh" "At-Tin" "Al-'Alaq" "Al-Qadr" "Al-Bayyinah" \ | ||
"Az-Zalzalah" "Al-'Adiyat" "Al-Qari'ah" "At-Takasur" "Al-'Asr" "Al-Humazah" "Al-Fil" \ | ||
"Quraisy" "Al-Ma'un" "Al-Kausar" "Al-Kafirun" "An-Nasr" "Al-Lahab" "Al-Ikhlas" "Al-Falaq" "An-Nas") | ||
|
||
surah_name_arab=("الفاتحة" "البقرة" "اٰل عمران" "النساۤء" "الماۤئدة" "الانعام" "الاعراف" \ | ||
"الانفال" "التوبة" "يونس" "هود" "يوسف" "الرّعد" "ابرٰهيم" "الحجر" "النحل" "الاسراۤء" "الكهف" \ | ||
"مريم" "طٰهٰ" "الانبياۤء" "الحج" "المؤمنون" "النّور" "الفرقان" "الشعراۤء" "النمل" "القصص" \ | ||
"العنكبوت" "الرّوم" "لقمٰن" "السّجدة" "الاحزاب" "سبأ" "فاطر" "يٰسۤ" "الصّٰۤفّٰت" "ص" \ | ||
"الزمر" "غافر" "فصّلت" "الشورى" "الزخرف" "الدخان" "الجاثية" "الاحقاف" "محمّد" "الفتح" \ | ||
"الحجرٰت" "ق" "الذّٰريٰت" "الطور" "النجم" "القمر" "الرحمن" "الواقعة" "الحديد" "المجادلة" \ | ||
"الحشر" "الممتحنة" "الصّفّ" "الجمعة" "المنٰفقون" "التغابن" "الطلاق" "التحريم" "الملك" \ | ||
"القلم" "الحاۤقّة" "المعارج" "نوح" "الجن" "المزّمّل" "المدّثّر" "القيٰمة" "الانسان" \ | ||
"المرسلٰت" "النبأ" "النّٰزعٰت" "عبس" "التكوير" "الانفطار" "المطفّفين" "الانشقاق" "البروج" \ | ||
"الطارق" "الاعلى" "الغاشية" "الفجر" "البلد" "الشمس" "الّيل" "الضحى" "الشرح" "التين" "العلق" \ | ||
"القدر" "البيّنة" "الزلزلة" "العٰديٰت" "القارعة" "التكاثر" "العصر" "الهمزة" "الفيل" "قريش" \ | ||
"الماعون" "الكوثر" "الكٰفرون" "النصر" "اللهب" "الاخلاص" "الفلق" "الناس") | ||
|
||
surah_name_trans_id=("Pembukaan" "Sapi" "Keluarga Imran" "Wanita" "Hidangan" "Binatang Ternak" \ | ||
"Tempat Tertinggi" "Rampasan Perang" "Pengampunan" "Yunus" "Hud" "Yusuf" "Guruh" "Ibrahim" "Hijr" \ | ||
"Lebah" "Memperjalankan Malam Hari" "Goa" "Maryam" "Taha" "Para Nabi" "Haji" "Orang-Orang Mukmin" \ | ||
"Cahaya" "Pembeda" "Para Penyair" "Semut-semut" "Kisah-Kisah" "Laba-Laba" "Romawi" "Luqman" \ | ||
"Sajdah" "Golongan Yang Bersekutu" "Saba'" "Maha Pencipta" "Yasin" "Barisan-Barisan" "Sad" \ | ||
"Rombongan" "Maha Pengampun" "Yang Dijelaskan" "Musyawarah" "Perhiasan" "Kabut" "Berlutut" \ | ||
"Bukit Pasir" "Muhammad" "Kemenangan" "Kamar-Kamar" "Qaf" "Angin yang Menerbangkan" "Bukit Tursina" \ | ||
"Bintang" "Bulan" "Maha Pengasih" "Hari Kiamat" "Besi" "Gugatan" "Pengusiran" "Wanita Yang Diuji" \ | ||
"Barisan" "Jumat" "Orang-Orang Munafik" "Pengungkapan Kesalahan" "Talak" "Pengharaman" "Kerajaan" \ | ||
"Pena" "Hari Kiamat" "Tempat Naik" "Nuh" "Jin" "Orang Yang Berselimut" "Orang Yang Berkemul" \ | ||
"Hari Kiamat" "Manusia" "Malaikat Yang Diutus" "Berita Besar" "Malaikat Yang Mencabut" \ | ||
"Bermuka Masam" "Penggulungan" "Terbelah" "Orang-Orang Curang" "Terbelah" "Gugusan Bintang" \ | ||
"Yang Datang Di Malam Hari" "Maha Tinggi" "Hari Kiamat" "Fajar" "Negeri" "Matahari" "Malam" \ | ||
"Duha" "Lapang" "Buah Tin" "Segumpal Darah" "Kemuliaan" "Bukti Nyata" "Guncangan" \ | ||
"Kuda Yang Berlari Kencang" "Hari Kiamat" "Bermegah-Megahan" "Asar" "Pengumpat" "Gajah" \ | ||
"Quraisy" "Barang Yang Berguna" "Pemberian Yang Banyak" "Orang-Orang kafir" "Pertolongan" \ | ||
"Api Yang Bergejolak" "Ikhlas" "Subuh" "Manusia") | ||
|
||
lang_id=id | ||
last_line=1 | ||
total_ayah_before=0 | ||
|
||
for surah in $( seq 1 114 ) | ||
do | ||
echo -n "Generating surah ${surah} - ${surah_name_latin[$surah-1]} - ${surah_name_arab[$surah-1]} ..." | ||
mkdir -p surah | ||
|
||
last_line=$(( $total_ayah_before + 1 )) | ||
|
||
printf \ | ||
'{ | ||
"%s": { | ||
"number": "%s", | ||
"name": "%s", | ||
"name_latin": "%s", | ||
"number_of_ayah": "%s", | ||
"text": { | ||
' "$surah" "$surah" "${surah_name_arab[$surah-1]}" "${surah_name_latin[$surah-1]}" "${total_ayah[$surah-1]}" > surah/${surah}.json | ||
|
||
# Generate each ayah in arabic text | ||
line=$last_line | ||
for ayah_number in $( seq 1 ${total_ayah[$surah-1]} ) | ||
do | ||
arabic=$( tail -n+$line "$quran_file" | head -1 ) | ||
comma="," | ||
|
||
if [ $ayah_number -eq ${total_ayah[$surah-1]} ]; then | ||
comma="" | ||
fi | ||
|
||
printf ' "%s": "%s"%s' "$ayah_number" "$arabic" "$comma">> surah/${surah}.json | ||
echo "" >> surah/${surah}.json | ||
|
||
line=$(( $line + 1 )) | ||
done | ||
|
||
printf ' }, | ||
"translations": { | ||
"%s": { | ||
"name": "%s", | ||
"text": { | ||
' "$lang_id" "${surah_name_trans_id[$surah-1]}" >> surah/${surah}.json | ||
|
||
# Generate each ayah in latin text (Bahasa Indonesia) | ||
line=$last_line | ||
for ayah_number in $( seq 1 ${total_ayah[$surah-1]} ) | ||
do | ||
latin=$( tail -n+$line "$quran_trans_file" | head -1 | sed 's/"/\\"/g' ) | ||
comma="," | ||
|
||
if [ $ayah_number -eq ${total_ayah[$surah-1]} ]; then | ||
comma="" | ||
fi | ||
|
||
printf ' "%s": "%s"%s' "$ayah_number" "$latin" "$comma">> surah/${surah}.json | ||
echo "" >> surah/${surah}.json | ||
|
||
line=$(( $line + 1 )) | ||
done | ||
|
||
printf ' } | ||
} | ||
} | ||
} | ||
}' >> surah/${surah}.json | ||
echo "done." | ||
total_ayah_before=$(( $total_ayah_before + ${total_ayah[$surah-1]} )) | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
{ | ||
"1": { | ||
"number": "1", | ||
"name": "الفاتحة", | ||
"name_latin": "Al-Fatihah", | ||
"number_of_ayah": "7", | ||
"text": { | ||
"1": "بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِيْمِ", | ||
"2": "اَلْحَمْدُ لِلّٰهِ رَبِّ الْعٰلَمِيْنَۙ", | ||
"3": "الرَّحْمٰنِ الرَّحِيْمِۙ", | ||
"4": "مٰلِكِ يَوْمِ الدِّيْنِۗ", | ||
"5": "اِيَّاكَ نَعْبُدُ وَاِيَّاكَ نَسْتَعِيْنُۗ", | ||
"6": "اِهْدِنَا الصِّرَاطَ الْمُسْتَقِيْمَ ۙ", | ||
"7": "صِرَاطَ الَّذِيْنَ اَنْعَمْتَ عَلَيْهِمْ ەۙ غَيْرِ الْمَغْضُوْبِ عَلَيْهِمْ وَلَا الضَّاۤلِّيْنَ ࣖ" | ||
}, | ||
"translations": { | ||
"id": { | ||
"name": "Pembukaan", | ||
"text": { | ||
"1": "Dengan nama Allah Yang Maha Pengasih, Maha Penyayang.", | ||
"2": "Segala puji bagi Allah, Tuhan seluruh alam,", | ||
"3": "Yang Maha Pengasih, Maha Penyayang,", | ||
"4": "Pemilik hari pembalasan.", | ||
"5": "Hanya kepada Engkaulah kami menyembah dan hanya kepada Engkaulah kami mohon pertolongan.", | ||
"6": "Tunjukilah kami jalan yang lurus,", | ||
"7": "(yaitu) jalan orang-orang yang telah Engkau beri nikmat kepadanya; bukan (jalan) mereka yang dimurkai, dan bukan (pula jalan) mereka yang sesat." | ||
} | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.